您的当前位置:首页>新品 > 正文

linux实用教程复习题 linux上机复习题部分答案-当前快报

来源:CSDN 时间:2023-02-15 08:50:02

上机复习题

Shell命令上机操作题

1.在当前目录下创建子目录dir1和dir2。


(资料图片)

mkdir dir1

mkdir dir2

2.以短格式查看目录/usr中的文件清单,把该信息重定向到文件my1中。

ls /usr > my1

3. 复制my1文件到两个名为t1.txt和t2.txt的文件中。

cp my1 t1.txt

cp my1 t2.txt

4.把t2.txt文件的存取属性设置为对所有用户不可读,不可写和不可执行。

chmod a-rwx t2.txt

5.在当前目录下建立t2.txt文件的符号链接文件ts。

6.在当前目录下创建空文件x1和x2,用长格式显示当前目录信息,并把该信息附加重定向到文件my1中。

touch x1

touch x2

7.在当前目录下查看当前系统的进程状态信息,把结果重定向到文件my2中。

8.查看环境变量PS1的值,将结果附加重定向到文件my2中。

echo $PS1 >>test2

9.在当前目录下,查看环境变量LOGNAME值,将结果重定向到文件ss.txt中。

echo $LOGNAME >ss.txt

10.在当前目录下创建子目录d1,把ss.txt文件复制到子目录d1中。

mkdir d1

cp ss.txt d1

11. 把ss.txt文件复制到文件copy中,然后把ss.txt改名为you1。

cp ss.txt copy

mv ss.txt you1

把you1文件的存取属性设置为对所有用户可读,可写和可执行。

chmod a+rwx test1.txt

13.为系统添加一个组名,组名为pet,然后把文件copy的组名更改为pet。

groupadd pet

chgrp copy pet

14.用长格式显示当前目录,把该信息附加重定向到文件you1中,然后用长格式显示子目录d1中的信息,把该信息附加重定向到文件you1中。

15.定位man命令的可执行二进制文件的位置,且把定位结果重定向到文件you2中。

16.在当前目录下,使用shell命令查看系统日期和时间,把该信息附加重定向到文件you2中。

date >>you2

17.在当前目录下,查看2012年7月份的月历,把结果重定向到文件he1中。

cal 7 2012 >he1

18.创建子目录dd和ff,然后把当前目录信息以长格式附加重定向到文件he1中,最后把子目录dd改名为gg。

mkdir dd ff

mv dd gg

19.查看环境变量HOME的值,且把该信息附加重定向到文件he1中。

echo $HOME >>test1

20.复制he1到文件copy1和文件copy2中,对其他用户设置文件copy1具有只读属性且不可写和不可执行。

cp he1 copy1

cp he2 copy2

chmod o+r copy1

chmod o-wx copy1

21.用长格式显示当前目录信息,把该信息附加重定向到文件he1中,删除文件copy1,再用长格式显示当前目录信息,把该信息附加重定向到文件he1中。

rm copy1

22.删除子目录ff,用长格式显示当前目录信息,把该信息附加重定向到文件he1中。

rmdir dd

23.把copy2文件的内容加上行号后输出到文件copy3中,再把copy3内容重定向到文件he2中。

cat copy3>he2

24.在当前目录下,用awk程序把文件copy3的每行的第一个字段(即行号)输出,附加重定向到文件he2中。

awk ‘{print $1}’ copy3 >>test2

25.查找/bin目录中以字母c开头的文件,把结果重定向到文件her1中。

26.查看PATH变量的值,且把该信息附加重定向到文件her1中。

echo $PATH >>her1

复制her1文件到另外三个文件中,这三个文件的名称分别为new1,new2,new3。

cp her1 new1

cp her1 new2

cp her1 new3

28.把new1文件的存取属性设置为对所有用户可读,可写和可执行。

chmod a+rwx new1

29.在当前目录中,创建子目录xyz,把当前目录中的所有文件复制到子目录xyz中。

mkdir xyz

cp *xyz

用长格式显示当前目录包括点文件在内的所有文件,把该信息附加重定向到文件her1中,然后再以长格式显示目录xyz中包括点文件在内的所有文件,把该信息附加重定向到文件her1中。

31.删除文件new1和new2,用短格式显示当前目录中的所有文件,把该信息重定向到文件her2中。

rm new1

rm new2

ls >her2

32.在当前目录下,使用shell命令查看当前系统的环境变量值,把这些信息附加重定向到文件her2中。

env>>test2

33 .在当前目录下,查看环境变量MAIL的值,把结果重定向到文件pp.txt中。

echo $MAIL > pp.txt

34.把pp.txt文件的存取属性设置为对所有用户可读,可写和不可执行。

chmod a+rw pp.txt

chmod a-x pp.txt

35.在当前目录下,创建子目录dir1,把pp.txt文件复制到字目录dir1中hello的文件中。

mkdir dir1

cp pp.txdir1/hello

36.复制pp.txt文件到同一层目录下名为him1的文件中。把变量a赋值为12345,显示变量a的值,且把值附加重定向到him1中。

cp pp.txt him1

a=12345

echo $a >>him1

37.用长格式显示子目录dir1中的信息,把该信息附加重定向到文件him1中。

38.在当前目录中,创建空文件jjj,然后用长格式显示当前目录信息,把该信息附加重定向到文件him1中。

touch jjj

为系统添加两个组,组名分别为ford和wrolf,把/etc/group文件的内容重定向到文件him2中。

groupadd ford

groupadd wrolf

cat /etc/group >him2

40.删除组名为ford的组,再把/etc/group文件的内容附加重定向到文件him2中。

groupdel ford

cat /etc/group >>him2

41.显示当前用户使用的Shell,且把该信息重定向到文件they1中。

echo $SHELL >they1

42.在当前目录下,查看当前的进程状态信息,把信息附加重定向到文件they1中。

43. 复制文件they1到另外两个文件copy1和copy2中。

cp they1 copy1

cp they1 copy2

44.用长格式显示当前目录信息,把该信息附加重定向到文件they1中。

45.删除文件copy1,把copy2改名为newcopy,用长格式显示当前目录信息,把该信息附加重定向到文件they1中。

rm copy1

mv copy1newcopy

在屏幕上显示文件/etc/passwd文件的内容,且把该信息输出重定向到文件they2中。

cat /etc/passwd >they2

47.定位cat命令的可执行二进制文件的位置,且把定位结果附加重定向到文件they2中。

48.在当前目录下,使用shell命令查看当前的磁盘空间信息,把该信息附加重定向到文件they2中。

df >>they2

49.在当前目录下,输出“hello world”的提示信息,然后把该信息重定向到文件jjj.txt中。

echo “hello world” >jjj.txt

50.显示jjj.txt文件的内容,并把该内容重定向到文件kkk.txt中。然后再次显示jjj.txt文件的内容,并把该内容附加重定向到文件kkk.txt中。

cat jjj.txt >kkk.txt

cat jjj.txt>>kkk.txt

51.把kkk.txt文件的内容加上行号后,重定向到一个名为them1的文件中。

52.把kkk.txt的文件属主改成zhwang。

chown zhwang kkk.txt

53.用长格式显示当前目录信息,把该信息附加重定向到文件them1中。删除文件jjj.txt,再用长格式显示当前目录信息,且把该信息附加重定向到文件them1中。

rm jjj.txt

54为系统添加两个用户,用户名分别为wang和zhu,把/etc/passwd文件的内容重定向到文件them2中。

useradd wang

useradd zhu

cat /etc/passwd > them2

55. 删除用户zhu,把/etc/paswwd文件的内容附加重定向到文本文件them2中,

userdel zhu

cat /etc/passwd >>them2

56.把2012年12月份的月历输出到文件gg.txt中,用awk程序把gg.txt文件的第2列附加重定向到文件them2中。

cal 12 2012 >gg,.txt

awk ‘{print $2}’gg.txt >>them2

57.在当前目录下,以短格式列出目录/dev中的内容,把其内容重定向到文件ttt.txt中,把ttt.txt文件复制到同一目录下名为all1和car的文件中。

ls /dev >ttt.txt

cp ttt.txt all1

cp ttt.txt car

58.用长格式显示当前目录,把该信息附加重定向到文件all1中,删除文件car。

rm car

59.把ttt.txt文件的存取属性设置为对其他用户可读,可写和可执行,

chmod o+rwx ttt.txt

60.创建子目录kkk,把ttt.txt文件转移至该kkk子目录中。

mkdir kkk

mv ttt.txt kkk

61.创建一个空文件fff,把fff文件的属主改为wang。

touch fff

chown wang fff

62.用长格式显示当前目录信息,把该信息附加重定向到文件all1中。再以长格式显示子目录kkk的信息,把该信息附加重定向到文件all1中。

63. 为系统添加三个用户,用户名分别为和student,worker,docter,把/etc/passwd文件的内容重定向到文本文件all2中。

useradd student

useradd worker

useradd doctor

cat /etc/passwd >all2

64.为系统添加一个名叫teacher的组,把/etc/group文件的内容附加重定向到文本文件all2中。

groupadd teacher

cat /etc/group >>all2

65.在当前目录下创建空文件a1,把文件a1的存取属性改为“rwxrwxr--”

touch a1

chmod u+rwx g+rwx o-r a1

66.以短格式查看目录/bin中的文件清单,把该信息重定向到文件zhu1中。

ls /bin

ls /bin>zhu1

67. 添加两个用户xyz1,xyz2, 把/etc/passwd文件内容附加重定向到文件zhu1中。

useradd xyz1

useradd xyz2

cat /etc/passwd >>zhu1

68.把a1文件复制到b1和b2两个文件中。

cp a1 b1

cp a1 b2

69.删除名为xyz1的用户,然后把/etc/passwd文件内容附加重定向到文件zhu1中。

userdel xyz1

cat /etc/passwd

cat /etc/passwd >>zhu1

70.在当前目录下,用长格式显示当前目录信息,并把该信息附加重定向到文件zhu1中。

ls -l

ls -l >>zhu1

71.查看命令nslookup的帮助信息,将结果重定向到文件zhu2中。

man nslookup

man nslookup >zhu2

72.把环境变量PATH的值附加重定向到文件zhu2中。

echo $PATH

echo $PATH >>zhu2

73.查看系统当前日期和时间,将结果重定向到文件wang1中。

date

date >wang1

74.创建空文件aa,在当前目录下创建子目录dd。

touch aa

mkdir dd

75.把aa文件复制文件bb中,再复制到子目录dd中名为cc的文件中。

cp aa bb

cp aa dd/cc

76.把文件bb的存取属性设置为对文件属主可读,可写和可执行。对组用户和其他用户可读,不可写和不可执行。

chmod u+rwx bb

chmod g-rwx o-rwx bb

77.为系统添加一个组名,组名为cat,然后把文件aa的组名更改为cat。

groupadd cat

chgrp cat aa

78.用长格式显示当前目录,把该信息附加重定向到文件wang1中,然后用长格式显示子目录dd中的信息,把该信息附加重定向到文件wang1中。

ls -l

ls -l >>wang1

ls -l dd >>wang1

79.查找/bin目录中所有字母v开头的文件,且把定位结果重定向到文件wang2中。

find /bin -name “v*”

find /bin -name “v*”>wang1

80.查找ps命令的帮助信息,把该信息附加重定向到文件wang2中。

man ps

man ps >>wang2

81.查看2017年7月份的月历,把结果重定向到文件song1中。

cal 7 2017

cal 7 2017 >song1

82.创建子目录dd,然后把当前目录信息以长格式附加重定向到文件song1中。

mkdir dd

ls -l >>song1

83.查看当前系统日期和时间信息,且把该信息附加重定向到文件song1中。

date

date>>song1

84.复制song1到文件copy1和文件copy2中,对组用户设置文件copy2具有只读属性且可写和不可执行。

cp song1 copy1

cp song1 copy2

chmod g+r copy2

chmod g-wx copy2

85.用长格式显示当前目录信息,把该信息附加重定向到文件song1中,删除文件copy2,再用长格式显示当前目录信息,把该信息附加重定向到文件song1中。

ls -l

ls -l >>song1

rm copy2

ls -l >>song1

86.把目录dd改名为gg,用长格式显示当前目录信息,把该信息附加重定向到文件song1中。

mv dd gg

ls -l >>song1

87.把系统中所有环境变量的值重定向到文件song2中。

env

env >song2

88.把当前文件系统的有效空间信息,附加重定向到文件song2中。

df

df >>song2

89.显示当前目录的路径,把结果重定向到文件tang1中。

pwd

pwd>tang1

90.查看HOME变量的值,且把该信息附加重定向到文件tang1中。

echo $HOME

echo $HOME >>tang1

91.复制test1文件到另外两个文件中,这两个文件的名称分别为new1,new2。

cp test1 new1

cp test1 new2

92.当前目录下,创建目录www,把文件new1复制到www中的文件new3中。

mkdir www

cp new1 www/new3

93.显示当前系统正在运行的进程信息,把该信息附加重定向到文件tang1中。

ps -ef

ps -ef >>tang1

94.用长格式显示当前目录包括点文件在内的所有文件,把该信息附加重定向到文件tang1中。

ls -a

ls -a >>tang1

95.删除文件new1,用长格式显示当前目录中的所有文件,把该信息重定向到文件tang2中。

rm new1

ls -l >tang2

96.在当前目录下,输出”hello world”显示信息,把该信息附加重定向到文件tang2中。

echo “hello world”

echo “hello world ” >>tang2

vi编辑器上机操作题

1.分别把2016的全年的年历输出到文件f1中,把2017年7月份的月历输出到文件test3中,用vi编辑器一次编辑文件f1和nt3。

把f1文件的4,5,6月所在行开始的7行复制并粘贴到文件nt3的最后一行后。

把文件test3的“July2017”所在的行删除。

在文件test3的首行前插入一行,输入文字“information of year”。

在文件test3的最后一行后面附加上/bin目录中的文件清单。

2.把下面一段文字用vi编辑器输入到文本文件bj3中:

Time: PM 3:30 2012.5.30

Place:Computer Hall 408

Lecture:History of Computer Science

把第1行到第3行连续复制3遍。

在第一行前面添加标题“Meeting Notes”

把最后一行的“History”改成“Future”。

(4)在最后一行后面添加上2012年5月月历。

3.用vi编辑器新建文件文件gd3,输入下面一行语句:

The vi editor was developed at the Univesity of California,Berkeley.

把该行语句复制10行。

把最后一行中出现的所有大写字母均改为相应的小写字母。

在第一行前面插入标题,内容是“vihistory”。

在最后一行附加上当前日期和时间。

4.分别把2014年3月输出到文件f1中,把2013年3月份月历输出到文件test3中,用vi编辑器一次编辑文件f1和test3。

把f1文件的第2行到第5行内容复制并粘贴到文件test3的第3行后。

在文件test3的第1行前面插入标题 newinformation。

删除文件test3的最后两行。

在文件test3的最后一行后面附加上当前注册的用户信息。

5.用ps -ef命令查看进程信息,把结果信息重定向到文本文件wh3中,用vi编辑器编辑该文件。

1)仅仅保留该文件的前面5行,把后面的行都删除。

2)把该文件第1行中的字符串“PID”改成“Process ID”。

3)把第1行内容整体复制到最后一行下面。

4)在最后一行后面附加上2012年5月份的月历。

6.用df命令查看文件系统,把结果信息重定向到文本文件nj3中,用vi编辑器编辑该文件。

1)在文件的第1行前面插入一行,添加标题“file system information”。

2)把添加的标题行再复制5遍到最后一行下面。

3)把该文件中的出现的所有%号都删除掉。

4)在最后一行后面附加上当前目录的清单。

7.把2012年的5月份的月历重定向到文本文件te3中,用vi编辑器编辑该文件。

1)把文件第一行的标题“May 2012” 改为“year 2012 month 5”。

2)把关于星期的第二行复制到最后一行后面。

3)整体删除日期20到26号所在的行。

4)在最后一行后面附加上当前磁盘上文件系统的信息。

8.把2013年的年历重定向到文本文件tt3中,用vi编辑器编辑该文件。

1)删除1月份,2月份和3月份的月历。

2)把4,5,6月的月历整体复制到最后一行。

3)把文件第一行的标题“2013”改为“2013 year”。

4)在最后一行后面附加上2012年6月份的月历。

9.把2018年的年历重定向到文本文件qq3中,用vi编辑器编辑该文件。

1)删除从首行开始的9行。

2)把4,5,6月的月历整体复制到最后一行。

3)在第一行前面插入标题“2018 year”。

4)在最后一行后面附加上/etc/group文件的内容。

10.把2019年的5月份的月历重定向到文本文件pp3中,用vi编辑器编辑该文件。

1)把文件第一行的标题“May 2019” 改为“This is year 2019 month 5”。

2)把关于是星期几的第二行复制到最后一行后面。

3)整体删除日期16号所在的那一行。

4)在最后一行后面附加上目录/proc的清单内容。

11.用vi编辑器编辑新文件test3。

1)在test3文件的第1行输入“hello world ”。

2)接下来附加上文件系统的有效空间信息。

3)然后删除test3文件中的最后1行。

4)把第1行的内容复制5行,放到test3文件的最后一行后面。

12.用env命令查看环境变量,把结果信息重定向到文本文件dd3中,用vi编辑器编辑该文件。

(1)仅仅保留该文件的前面5行,把后面的行都删除。

(2)在该文件第1行前面插入一行“environment variable”。

(3)把新的第1行内容整体复制5行到最后一行下面。

(4)在最后一行后面附加上当前系统日期和时间。

Shell编程上机操作题

1编写Shell程序,首先显示提示信息:“below is the information of command line”,然后显示命令行中的程序名称,接着一行显示实际给出的所有实参字符串,最后一行再显示命令行上参数的个数。

echo "below is the infomaion of command line"

echo $0

echo $*

echo $#

2编写Shell程序,首先显示进程状态信息,接着把值12345赋给变量A1,然后输出一行信息“the value of A1 is:”,然后输出变量A1的值。

A1=12345

echo "the vlue of A1 is:"

echo $A1

3编写Shell程序test4,首先着输出一行提示信息“please input a integer”,然后从键盘读入一个整数,接着显示该整数值,最后显示文件test4的内容。

echo "please input a integer"

read x

echo $x

cat test4

4编写Shell程序,首先显示一行信息:“input x and y”,然后从键盘读入两个整数,接着显示“the sum oftwo input is ”,然后把两个数的和输出到屏幕上,最后输出系统当前日期和时间信息。

echo "inputx and y"

read x y

echo "the sum of two input is"

((s=x+y))

echo $s

date

5编写Shell程序,首先输出一行“this is the information of users”的提示信息,接着查看当前注册的用户信息,然后查找目录/bin中的所有以字母l开头的文件,最后显示当前工作路径。

echo "this is the infomation of users"

who

pwd

6编写Shell程序,首先输出提示信息"please input x",然后从键盘读入一个整数,接着判断该数是否大于11,如果是则输出2012年12月份的月历,否则输出2013年11月份的月历。

echo "please input x"

read x

if ((x>=11))

then

cal 12 2012

else

cal 11 2013

fi

7编写Shell程序,首先输出一行提示信息:“please input a integer ”,接着从键盘输入一个整数,然后把该整数乘以10之后的值输出。

echo "please input a number "

read x

((x=x*10))

echo $x

8编写Shell程序,首先输出一行提示信息:“hello world”,接着给变量A赋值54321,然后把变量A的值减去10,接着输出变量A的值,最后显示该文件的内容。

echo "hello world "

A=54321

((A=A-10))

echo $A

cat test4

9编写Shell程序,首先显示日期和时间,然后显示当前工作目录,接着添加一个名为ecnomics的组,最后查找/usr目录下字母m开头的文件。

date

pwd

groupadd ecnomics

find /usr -name “m*”

10 编写Shell程序,首先显示命令ps的帮助信息,然后查看当前注册用户,查询域名 HYPERLINK "http://www.ntu.edu.cn" www.ntu.edu.cn 对应的IP地址,最后显示“all done”信息。

man ps

w

nslookup www.ntu.edu.cn

echo “all done “

11编写Shell程序,首先输出一行“hello everybody”的提示信息,接着添加一个名为xyz的用户信息,然后查找目录/proc中的所有以字母c开头的文件,最后删除名为yyy的文件。

echo “hello everybodyman”

useradd xyz

find /proc -name “c*”

rm -fyyy

12编写Shell程序test4,首先显示当前与主机连接的主机名和网卡硬件信息,然后查询域名HYPERLINK "http://www.edn.cn"www.edn.cn对应的IP地址,接着查找/bin目录下属于用户root的文件,最后显示文件test4的内容。

arp

nslookup www.edu.cn

find /bin -user root

cat test4

13编写Shell程序,使其执行时在屏幕上输出整数1~50,但其中位于20和30之间的偶数不输出。

for ((i=1;i<=50;i++))

do

if ((i>=20 && i<=30 && i%2==0))

then continue

fi

echo $i

done

14编写Shell程序,在屏幕上输出10行,第一行输出1个“*”号,第二行输出3个“*”号,第二行输出5个“*”号,依此类推。

for ((i=1;i<=10;i++))

do

for ((j=1;j<=2*i-1;j++))

do

echo -n "*"

done

echo

done

15编写Shell程序,输入一批正整数(以0为结束标志),请统计其中奇数的个数,并把统计结果输出。

sum=0

echo "please enter the interger,ended by 0"

read num

while((num!=0))

do

if((num%2==1))

then ((sum=sum+1))

fi

read num

done

echo "the number of ji shu is $sum"

16 编写Shell程序,求1*1+2*2+3*3+…….+50*50的总和。

sum=0

for ((i=1;i<=50;i++))

do

((ji=i*i))

((sum=sum+ji))

done

echo $sum

17编写Shell程序,列出等差数列1,3,5,7,9,…的前20项及其总和。(上机)

n=1

s=0

for ((i=1;i<=20;i++))

do

echo $n

((s=s+n))

((n=n+2))

done

echo "sum=$s"

18编写Shell程序,把100分转换为5级计分制,从键盘输入百分值,根据情况,显示具体的等级,其中90-100之间对应A,80-89之间对应B,70-79之间对应C,60-69之间对应D,60以下对应E。

echo "please input x="

read x

if(($x<=100 && $x>=90))

then

echo "A"

else

if(($x>=80 && $x<=89))

then

echo "B"

else

if(($x>=70 && $x<=79))

then

echo "C"

else

if(($x>=60 && $x<=69))

then

echo "D"

else

echo "E"

fi

fi

fi

fi

19编写Shell程序,在屏幕上输出如下格式的九九表。

1*1=1

2*1=2 2*2=4

……………….

8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64

9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

for ((i=1;i<=9;i++))

do

for ((j=1;j<=i;j++))

do

((b=i*j))

echo -n "$i*$j=$b "

done

echo

done

20编写程序test5,对命令行传给它的数字参数求和并显示结果,例如

用户键入test5 10 20 30回车,则显示如下:

10 + 20 + 30 = 60

count=$#

s=0

i=1

while [ $i -le $count ]

do

((i=i+1))

echo -n "$1"

((s=s+$1))

shift

if [ $i -le $count ]

then

echo -n "+"

fi

done

echo "=$s"

21编写程序test5,对命令行传给它的数字参数求积并显示结果,例如用户键入test5 243后回车,则屏幕显示如下:2 * 4 * 3 = 24。

count=$#

s=1

i=1

while [ $i -le $count ]

do

((i=i+1))

echo -n "$1"

((s=s*$1))

shift

if [ $i -le $count ]

then

echo -n "*"

fi

done

echo "=$s"

22编写Shell程序test5,使之从命令行接受数字,输出最大值,例如,键入test5 1 2 3,则屏幕显示:the largest number is : 3。

n=$#

if (($#<1))

then echo "error number"

exit

else

max=$1

while ((n>=1))

do

if (($1>=max))

then max=$1

fi

shift

((n=n-1))

done

echo "the largest number is :$max"

fi

23编写程序test5,使之从命令行接受数字,输出最小值,例如,键入test5 1 2 3屏幕显示:the smallest number is : 1。

n=$#

if (($#<1))

then echo "error number"

exit

else

min=$1

while ((n>=1))

do

if (($1<=min))

then min=$1

fi

shift

((n=n-1))

done

echo "the smallest number is :$min"

fi

24编写Shell程序,求1!+ 2!+ 3!+….+ 10!的值。

s=0

echo "please input number:"

read x

for ((i=1;i<=x;i++))

do

t=1

for ((j=1;j<=i;j++))

do

((t=t*j))

done

((s=s+t))

done

echo "the sum is $s"

PAGE \* MERGEFORMAT8

PAGE

PAGE8

标签:

最新新闻:

新闻放送
Top