一.实验内容python
(3)在 shell 命令终端依次输入如下命令,观察执行结果,理解每条命令实现的具体功
能
① which python 查看可执行文件的位置
whereis python 查看文件的位置
locate python 配合数据库查看文件位置
find /usr/bin -name python 实际搜寻硬盘查询文件名称
(说明: which, whereis, locate, find 都具备检索的功能,结合执行结果,查找帮 助信息,总结其区别)linux
② grep -n -E 'root|kyo|^user*' /etc/passwd (提示:扩展正则表达式)
grep -n -E ' [[:digit:]] ' /etc/passwd
grep -n -E ' [[:alpha:]] ' /etc/passwd
grep -n '[0-9]{4,}' /etc/group (提示: 在用户组文件中查找 GID 是 4 位数 及以上的组信息记录)
(说明:带选项-E的表示扩展的正则表达式;不带选项-E的是普通的正则表达式)
[:digit:] 匹配任意一个数字字符
[:alpha:] 匹配任意一个字母字符(包括大小写字母)
③sudo apt install gimp:安装软件gimp
which gimp:查询gimp的位置
sudo apt remove gimp:卸载gimp
which gimp:查询gimp的位置,此时已经没有查询结果
④ls -dl /root --time-style=long-iso:/root下显示文件目录信息,详细信息,时间按完整的IOS时间格式显示
ls -dl /root --time-style=long-iso | cut -d' ' -f1,8:以空格为分隔符,截取上一条指令中的第一和第八个域
(说明:cut命令的选项-d后引导里有空格;提示:和前一行对比视察)
git
⑤ ls -l --time-style=long-iso,:ls -l 是列出文件的详细信息,时间设置为long-iso格式,默认排序
ls -l --time-style=long-iso -t:在前一条命令的基础上按时间由近到远排序
ls -l --time-style=long-iso -t -r:在前一条命令的基础上按时间排序,但变为由远到近排序
⑥ ls /usr/share/man:显示/usr/share/man下的目录
ls /usr/share/man | grep man[1-8]:在上一条命令的基础上搜索man1~man8
ls /usr/share/man/man1:显示/usr/share/man/man1下的目录
file /usr/share/man/man1/ls.1.gz (结合执行结果,review2.8.1 节 gzip命令内容)
mkdir ~/temp; cp /usr/share/man/man1/ls.1.gz ~/temp:根目录下建立temp
文件夹,把ls.1.gz复制到temp下
cd ~/temp; ls:转到temp目录下,查看全部文件目录,此时有后缀.gz
sudo gzip -d ls.1.gz; ls:解压并查看目录,此时.gz消失,说明已经解压并删除了压缩包
正则表达式
⑦
统计home目录下以d开头的档的行数
⑧
添加用户
统计home目录下的用户行数
(4)根据要求写出相应的shell命令
① 在目录/usr/include 下搜索档 signal.h 是否存在
② 在/usr/include 目录下的全部档中查找包含 BUFSIZ 的行,并显示所在行号。
③ 在用户名密码档/etc/passwd 中查找登陆 shell 为 bash 的用户信息记录,并显示行号
④ 从/etc/group 档中截取第 1 列(组名)和第 3 列(组 id),并按照组 id 号的数值大小由小到大排序。
(5)
① cp /etc/apt/sources.list t1; 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脚本并用四种方式分别执行
(1)方式1: bash < filename
方式2: bash filename [ arguments ]
方式3: filename
方式4: . filename
shell
(2)
三.总结
这次试验了解到了编辑命令时缺乏或者多出一个空格会形成大相径庭的结果,让我明白了编写代码时要十分细心,不可粗枝大叶。另外在练习2中没有找到major_code文件,对此不明因此,但愿往后学习能够解决。数据库