实验三
Posted czhj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验三相关的知识,希望对你有一定的参考价值。
1. 练习shell中命令历史、别名、特殊字符用法
2. shell命令应用练习
①/etc/passwd
②/etc/shadow
③/etc/group
④/etc/gshadow
(2)依次输入如下命令,观察运行结果。
①id②id -u③id -u root④id -u jsj
id :
id -u :
id -u root :
id –u ubuntu :
(3)
whereis python
locate python
find /usr/bin -name python
②grep -n –E ‘root|jsj|^user*‘ /etc/passwd
grep -n -E ‘[[:digit:]]‘/etc/passwd
grep -n -E ‘[[:alpha:]]‘/etc/passwd
grep -n ‘[0-9]\\{4,\\}‘/etc/group
③sudo aptinstall gimp
which gimp
sudo apt remove gim
which gimp
④ls -dl/root --time-style=long-iso
ls -dl /root --time-style=long-iso | cut -d‘ ‘ -f1,8
⑤ls -l --time-style=long-iso
ls -l --time-style=long-iso -t
ls -l --time-style=long-iso -t -r
⑥ls /usr/share/man
ls /usr/share/man | grep man[1-8]
ls /usr/share/man/man1
file /usr/share/man/man1/ls.1.gz
mkdir~/temp; cp /usr/share/man/man1/ls.1.gz ~/temp
cd ~/temp; ls
sudo gzip -d ls.1.gz; ls
⑦ls -l /home | grep "^d" | wc –l
⑧sudo adduser user7
ls /home | tee users | wc -l
(4)根据要求写出相应的shell命令
①在目录/usr/include下搜索文件signal.h是否存在
②在/usr/include目录下的所有文件中查找包含BUFSIZ的行,并显示所在行号。要求:屏幕上只显示查找到的结果,过滤错误信息。
③在用户名密码文件/etc/passwd中查找登录shell为bash的用户信息记录,并显示行号第 3 页 /共 5 页
④从/etc/group文件中截取第1列(组名)和第3列(组id),并按照组id号的数值大小由小到大排序。(提示:综合使用cut, 管道线及sort命令)
(5)体验awk, sed用法:依次执行命令,观察执行结果
①cp/etc/apt/sources.listt1; less t1
②sed -e "s/#.*//g"t1
③sed -e "s/#.*//g"t1| awk ‘{if (length != 0) print $0}‘
④tail -5 /etc/passwd | awk -F: ‘{print $1}‘
⑤tail -5 /etc/group | tee t2
awk ‘BEGIN{print "file t2"} {print "line" NR ":" $0} END {print "over"}‘ t2
3. 编写一个shell脚本,使用4种方式(参见第4章教材/课件)分别执行。
(1)练习1
第1步,使用vi/vim/gedit或其它编辑器,编写shell脚本ex1.sh,内容如下:
该脚本的功能是,备份当前目录下最近1天以内(即24小时内)被修改过的普通文件。以backup系统当前日期时间为文件名,并压缩存档。备份过程中出错信息写入error_info。然后分别查看备份文档和报错信息。
第2步,尝试第4章介绍的四种方式,运行该脚本,并理解本例中综合使用的shell命令。第 4 页 /共 5 页
(2)练习2
第1步,使用vi/vim/gedit或其它编辑器,编写shell脚本ex2.sh,内容如下:
尝试第4章介绍的四种方式,运行该脚本。
② 出line3中read命令选项-n11功能:读入数据为11哥字符
②写出line14的功能:把code和filename重定向到t1且从t1读取数据到major
以上是关于实验三的主要内容,如果未能解决你的问题,请参考以下文章