Linux实验三: shell 编程

Posted nullno

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux实验三: shell 编程相关的知识,希望对你有一定的参考价值。

  1. hell 命令应用练习

①    /etc/passwd  ‘

etc/passwd 为每个用户账户包含一行,包含使用冒号 (“:”)分隔的七个字段,分别是:登录名,选的加密后的密码,字用户ID ,字组 ID ,户名和注释字段,  用户主目录,可选的用户命令解释器

② /etc/shadow

shadow是一个文件,它包含系统账户的密码信息和可选的年龄信息。   如果没有维护好密码安全,此文件绝对不能让普通用户可读。

③ /etc/group 

  文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。

④ /etc/gshadow 、

/etc/gshadow 包含影子化了的组账户信息。如果没有维护好密码安全,此文件绝对不能让普通用户可读。

(2)依次输入如下命令,观察运行结果。结合 man id 查看到的帮助信息,指出每一条 命令功能

①     Id  显示真实有效的用户ID(UID)和组ID(GID)

②        id -u  显示用户id

③ id -u root  显示root用户id

④ id -u Jiang 显示jiang的id

 

(3)在 shell 命令终端依次输入以下命令,观察执行结果,理解每条命令实现的具体功能

① which python   which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

       whereis python查看文件的位置

locate python  配合数据库查看文件位置

find/usr/bin -name python        实际搜寻硬盘查询文件名称

 技术分享图片

技术分享图片

 

 

 

③     grep  -n  -E  ‘root|jiang|^user*‘  /etc/passwd 

在/etc/passwd  中查找以root或者jiang开头的行

 技术分享图片

 

 grep  -n  -E  ‘ [[:digit:]] ‘  /etc/passwd

在/etc/passwd  中查找含有的数字

 技术分享图片

 

grep  -n  -E  ‘ [[:alpha:]] ‘  /etc/passwd

在/etc/passwd  中查找含有的字母

 技术分享图片

 

grep  -n  ‘[0-9]\\{4,\\}‘  /etc/group (提示: 在用户组文件中查找 GID 是 4

技术分享图片

 

       sudo apt install gimp:安装gimp软件

 技术分享图片

 

which gimp查找gimp 的位置

 

sudo apt remove gimp 卸载gimp

 

which gimp 再查找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

将文件的时间按long-ios的形式进行列出

 

 技术分享图片

 

 

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]  搜索该目录下是否有man1-8

ls /usr/share/man/man1  查看man1目录

file /usr/share/man/man1/ls.1.gz 查看该文件信息

mkdir ~/temp; cp /usr/share/man/man1/ls.1.gz ~/temp  创建一个temp的目录,将ls.1.gz复制到该目录下

cd ~/temp; ls  转到temp目录下并查看

sudo gzip -d ls.1.gz; ls   解压并查看文件目录

 技术分享图片

 

⑦     ls –l /home  | grep  "^d"  |  wc –l

 

 

⑧      sudo adduser user7    创建user用户

 ls /home | tee users | wc –l  查找用户并统计数目

 技术分享图片

 

(4)根据要求写出相应的 shell 命令 ① 在目录/usr/include 下搜索文件 signal.h 是否存在

 技术分享图片

 

② 在/usr/include 目录下的所有文件中查找包含 BUFSIZ 的行,并显示所在行号。 要求:屏幕上只显示查找到的结果,过滤错误信息。

 技术分享图片

 

 ③ 在用户名密码文件/etc/passwd 中查找登录 shell 为 bash 的用户信息记录,并显 示行号

 技术分享图片

 

④ 从/etc/group 文件中截取第 1 列(组名)和第 3 列(组 id),并按照组 id 号的数 值大小由小到大排序。(提示:综合使用 cut, 管道线及 sort 命令)

 

 技术分享图片

 

 (5)体验 awk, sed 用法:依次执行命令,观察执行结果

① 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

 技术分享图片

 

(6)查阅网络或帮助,体验命令 curl 和 wget 用法。

① 命令工具 curl 功能,截图显示自己尝试的练习,并作必要陈述说明   

 技术分享图片

 

 

② 命令工具 wget 功能,截图显示自己尝试的练习,并作必要陈述说明

 技术分享图片

 

(1)      练习 1

 技术分享图片

 

(2)      练习2

 技术分享图片

 

以上是关于Linux实验三: shell 编程的主要内容,如果未能解决你的问题,请参考以下文章

合肥工业大学Linux实验三Linux 下的 shell 编程

Linux实验三 shell编程

Linux实验三: shell 编程

Ubuntu-Shell编程大作业

Ubuntu-Shell编程大作业

Linux实验三