在当前shell下再运行一个子shell程序sh,该sh程序不是从标准输入(键盘)读入命令串,而是用输入转向从文件uc中读入命令串令。
(2)shuc
sh程序也可从参数中接受文件名uc,并从这个文件中读入命令串。
(3)先为命令文件uc建立执行许可:
chmoda+xuc
再执行该命令文件:
$uc
4、简单说明下列环境变量存放的内容。
(1)HOME
(2)PATH(3)PS1(4)MAIL
答案:
(1)HOME:
存放用户主目录。
(2)PATH:
shell查找命令时,在文件系统中的查找路径。
(3)PS1:
shell系统主提示符,Bshell主提示符为“$”后跟一空格。
(4)MAIL:
规定mail程序用来储存用户邮件的文件名。
5、在空格处填上合适的输出内容。
$x=Hello
$exportx
$sh(新的shell)
$echo$x(x在子shell中有定义)
(1)
$x=‘goodbye’(改变x的值)
$echo$x
(2)
$(ctrl+d)(退出shell)
$
$echo$x(x仍是Hello)
(3)
答案:
(1)Hello
(2)goodbye(3)Hello
6、简述Unix的基本结构。
答案:
硬件:
可以是便携机、个人机、工作站、小型机等
内核:
包括中断、存储、进程、I/O、文件等管理程序
Shell:
具有多种功能的系统程序
实用程序:
完成大部分UNIX高级命令的功能
7、shell变量中,用户定义变量的命名规则是什么?
如何给它赋值?
答案:
用户定义变量必须以字母或下滑线开始,可以包括字母,下划线和数字的字符序列。
用户定义的shell变量能用赋值语句置初值或重置值。
8、shell最基本的四个功能是什么?
答案:
(1)命令的解释执行
(2)环境变量的设置
(3)输入输出的重新定向
(4)shell程序语言的设计
9、vi编辑器有几种模式?
几种模式之间怎样切换?
答案:
用“ZZ”命令
用“Vifilename”命令
用“i,a”命令
UnixShell
用ESC键
Vi的命令行方式
用“:
,/,?
”命令
自动返回
Vi的末行方式
Vi的插入方式
10、在UNIX/Linux系统中,环境变量是非常重要,在字符界面下试说明:
(1)PATH变量的作用,如何得到PATH的值?
(2)在UNIX/Linux系统的超级用户的环境变量PATH中允许包含当前目录吗?
(3)若在超级用户的当前目录内有可执行文件mypro,如何执行它(写出执行时键盘输入内容)?
(4)如何使用该命令在后台执行(写出执行时键盘输入内容)?
答案:
(1)PATH为命令搜索路径,可用echo$PATH命令显示;
(2)UNIX/Linux的PATH变量内不允许包含当前路径(.);
(3)./mypro;
(4)./mypro&
11、什么是链接?
符号链接与硬链接的区别是什么?
答案:
链接是指用一个i节点对应多个文件名。
硬链接是把文件的i节点号指向该i节点,且链接计数器值加1。
删除链接文件时计数器值减1,当其值为0时,i节点被释放。
符号链接是只有文件名的一个链接文件,并不指向一个真正的i节点。
在删除符号链接文件时与硬链接文件有区别。
三、操作题
1、写出下面几条命令的执行结果,并说明其功能。
(1)$ls–ljunk
-r--r-r--lyou29Sep2006;07junk
$chmoda=rwjunk
$ls–ljunk
(2)$chmod755junk
$ls–ljunk
答案:
(1)-rw-rw-rw-lyou29Sep2006;07junk
功能:
将文件junk的访问权限对所有用户都修改为读、写。
(2)-rwxr-xr-xlyou29Sep2006;07junk
功能:
将文件junk的访问权限修改为:
文件主:
读、写、执行;同组用户和其他用户:
读、执行。
2、设当前工作目录是/home/user2,写出完成下列功能的UNIX命令。
(1)显示当前工作目录的绝对路径名。
(2)列出文件myfile的权限。
(3)使用符号模式模式给所有人设定读、写文件myfile的权限.
(4)删除文件myfile。
答案:
(1)pwd
(2)ls–l
(3)chmoda=rwmymyfile
(4)rmmyfile
3、写出完成下列功能的UNIX命令。
(1)列出其他用户可以读写的子目录和普通文件名(要求使用一条命令)。
(2)使用chmod的符号模式,撤销组用户和其他用户对当前目录下temp文件的写权限。
(3)连接文件sec1和sec2的内容,写入chapter中。
答案:
(1)ls–l|grep‘^…….rw’
(2)chmodgo-wtemp
(3)catsec1sec2>chapter
4、
(1)设当前工作目录是/home/user2/dir2,以长格式显示当前目录下的所有内容。
(2)如果显示的结果包含下面的内容:
drwxr_xr_x2user2staff512Jan2914:
28recipes
则:
recipes的文件主是什么?
该用户的同组用户是什么?
文件主拥有什么权限?
其他用户拥有什么权限?
使用符号模式给同组用户和其他用户添加修改该文件的权限.
答案:
(1)ls–l
(2)user2staff读、写、执行读、执行
chmodgo+wrecipes
5、写出完成以下功能的UNIX命令。
(1).在当前目录里查找扩展名为“.man”的文件,并交互地删除之。
(2).使用符号模式取消其他用户察看当前目录下文件notes内容的权限。
.(3).将文件/usr/dict/words的末5行输出到屏幕。
答案:
(1)find.–name‘*.man’–okrm{}\;
(2)chmodo-rnotes
(3)tail-5/usr/dict/words
6、设当前工作目录是/home/user2,写出完成以下功能的UNIX命令。
(1)为了查看当前目录下文件dante_1的大小,以长格式的形式显示文件dante_1的列表信息。
(2)把当前目录更改到其下的子目录dir2。
.(3)在当前目录里查找前缀为sec的文件,并输出在屏幕上。
答案:
(1)ls–ldante_1
(2)cddir2或cd/home/user2/dir2
(3)find.–name‘sec*’-print
7、写出下列命令的功能
(1)find/usr–namemyfile
(2)ls–la|grep–y‘jun17’
(3)cp~/home/*/tmp
(4)lnplanetplan
(5)mvpractice/projectpractice/project2
答案:
(1)从/usr目录开始搜索文件myfile。
(2)在当前目录中搜索创建或修改于6月17日的文件。
(3)把用户主目录下home目录中的所有文件拷贝到/tmp目录中。
(4)把文件planet链接到同一目录中的另一文件plan。
(5)使用相对路径名把practice目录中的project文件或子目录重命名为project2。
8、设当前的工作目录是/home/user2/dir4.
(1)在当前目录下以testdir为目录名创建子目录.
(2)把当前目录改到testdir下
(3)在新创建的目录下创建三个空文件:
testfile1、testfile2、testfile3
(4)显示用户主目录下所有以b开头的文件.
答案:
(1)mkdirtestdir
(2)cdtestdir.
(3)touchtestfile1testfile2testfile3
(4)ls~/b*
9、设当前工作目录是/home/user2
(1)在当前目录中创建空文件myscript.
(2)列出文件myscript的权限.
(3)使用符号模式(相对)模式给其他(用户)设定读、写、执行该文件的权限.
答案:
(1)touchmyscript
(2)ls–l
(3)chmodu=rwxmyscript
10、设当前工作目录是/home/user2/dir2
(1)从用户的主目录开始搜索文件core并且删除它.
(2)使用符号(相对)模式取消其他(用户)察看文件notes内容的权限.
(3)使用管道命令在当前目录下查找创建于1999年的文件.
答案:
(1)find~-namecore–execrm{}\;
(2)chmodo-rnotes
(3)ls–l|grep1999
11、设当前工作目录是/home/user2/dir2
(1)把ls命令的输出重定向到当前目录下的文件dir2list.
(2)显示文件dir2list的内容。
(3)在指定的打印机hplaser1上打印文件dir2list.
答案:
(1)ls>dir2list
(2)catdir2list
(3)lp–dhplaser1dir2list
12、当前工作目录是/home/user2
(1)把当前的提示符$改为你的计算机名。
.
(2)列出当前目录下以字母p或以字母d开头的文件和目录.
(3)显示所有进程的列表并且用管道命令查找与dbprog命令相关的进程.
答案:
(1)PS1=”’uname–n’$“
(2)ls[pd]*
(3)ps–e|grepdbprog
13.假设linux分配给光驱的设备名是/dev/cdrecord,叙述Linux如何在这个光驱上使用光盘。
写出详细的命令步骤解释。
答案:
建立挂载目录mkdir/mnt/cdrom
挂载mount/dev/cdrecord/mnt/cdrom
卸载umount/mnt/cdrom
四、编程题
创建一个shell脚本,它从用户那里接收10个数,并显示已输入的最大的数。
参考程序:
#!
/bin/bash
max=0
for((count=1;count<=10;count=count+1))
do
echo-n"Enternumber$count:
"
readvalue
if[$max-lt$value]
then
max=$value
fi
done