Linux

第441题

如下为命令终端下的一个截图:

命令终端截图

则,以下两句的执行结果是:______

path=‘the home path is $HOME’
echo $path


第442题

以下为程序名为prog的程序内容。则 sh prog a b c d的执行结果为______

set A B C D
shift
shift
echo $1
第443题

shell脚本程序test(具有可执行权限)只有如下两条语句,则sh test 5的运行结果是______

price=$10.00
echo $price
第444题

简述linux的几个运行级别及其相应的含义。


答:0-关机模式,

1-单用户模式,单用户只有系统管理员可以登录。

2-多用户模式,但是不支持文件共享,例如不支持NFS服务.这种模式不常用。

3-完全的多用户模式,支持NFS服务.最常用的用户模式,默认登录到系统的字符界面。

4-保留模式。

5-完全多用户模式,默认登录到X-window系统,也就是登录到linux图形界面。

6-重启模式,也就是执行关闭所有运行的进程,然后重新启动系统。

第445题

什么是链接?符号链接与硬链接的区别是什么?


答:链接是指用一个i节点对应多个文件名。硬链接是把文件的i节点号指向该i节点,

且链接计数器值加1。删除链接文件时计数器值减1,当其值为0时,i节点被释放。

符号链接是只有文件名的一个链接文件,并不指向一个真正的i节点。

在删除符号链接文件时与硬链接文件有区别。

第446题

使用进程调度启动,指定30分钟后(或在2008年12月28日晚上20点30分)将/home/stu目录里的文件备份并压缩为stu.tar.gz,并放到/home/temp目录里(当前/home/temp目录并不存在)。


解答1:

(1) 编辑一个文件,如:atfile,内容如下:

mkdir /home/temp

tar –czvf /home/temp/stu.tar.gz /home/stu/*

(2) 执行at命令

at –f atfile now +30 minutes

解答2:

(1) 执行at命令

at now +30 minutes

(2) 回车出现at>提示符后,继续输入要做的命令

at> mkdir /home/temp

at> tar –czvf /home/temp/stu.tar.gz /home/stu/*

at>

第447题

Shell程序中,对用户变量赋值有哪些方式?简要说明每种赋值方式的使用方法。


答:(1) 等号赋值

1)在等号前后均不能有空格。

2)当需要将一个包含空格的字符串赋给用户变量时,应用单引号将该字符串括起来。

(2) 键盘赋值

由read命令来实现的。用法为:read 用户变量名

当shell程序执行到该行时,将等待用户从键盘输入,

当用户按下回车键时shell把你输入的内容赋给用户变量。

(3) 命令替换赋值

用法为:用户变量=`命令`

该语句将首先执行反向单引号之间的命令,

然后将其执行后输出的内容赋给该用户变量,在这种赋值方式中,

等号前后同样不能有空格,而且必须用反向单引号(即重音号)把命令括起来。

第448题

编写1个弹出式菜单的shell程序并实现其简单的菜单功能:

 *******************************************************

*                         MENU                          *

*         1.copy                   2.rename             *

*         3.remove                 4.find               *

*                          5.exit                       *

*******************************************************

即用户按下数字1,则提示用户输入源和目的文件名后执行复制;输入数字2,则提示用户输入要更名的文件或目录后执行更名操作;输入数字3,则提示用户输入要删除的文件并执行删除操作;输入数字4,则提示用户输入要查找的文件并执行查找操作;输入数字5,则退出该菜单shell程序的执行。


答:

#! /bin/sh -
clear
while [ 0 ]; do
echo "************************************************"
echo "                       menu                     "
echo "           1.copy               2.rename        "
echo "           3.remove             4.find          "
echo "                      5.exit                    "
echo "************************************************"
echo
echo -n "         select:"
read choice
echo
case $choice in
1)
echo -n "source file:"
read src
echo
echo -n "destination fold:"
read des
cp -arf $src $des
if $?; then
echo "copy sucessful!"
else
echo " copy fail"
fi;;
2)
 
echo -n "the file to be renamed:"
read src
echo
echo -n "the new  file:"
read des
mv $src $des
if $?; then
echo "rename sucessful!"
else
echo " rename fail"
fi;;
3)
echo -n "the file to be removed:"
read src
rm -rf $src
if $?; then
                  echo "remove sucessful!"
else
echo " remove fail"
fi;;
    4)
echo -n "the file to be found:"
read src
find $HOME -name $src;;
5) exit;;
*) echo "Invalid option";;
esac
done
第449题

编写shell程序,实现自动删除50个用户账号的功能。账号名为stud1至stud50


答:

#!/bin/sh
i=1
while [ $i -le 50 ]
do
userdel -r stud${i}
i=$(($i+1 ))
done
echo "remove sucessful!"
else
echo " remove fail"
fi;;
第450题

用shell编写小九九乘法表程序,程序执行结果如下:

乘法表程序执行结果


答:

#! /bin/sh –
for i in 1 2 3 4 5 6 7 8 9
do
for j in 1 2 3 4 5 6 7 8 9
do
if ( test $j -le $i ) then
echo -ne `expr $i \* $j` "\t"
else
echo
break
fi
done
done