Linux分别观察etc,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        实际搜寻硬盘查询文件名称

38d172c8afc205911cc0eaec053e9f36.png

6833aac916131a96e7e71336e83d49bd.png

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

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

dbdbf79f1cb4c0eb639d99526856f1bf.png

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

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

d7bad68b023a82c70fccbd5947962a1e.png

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

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

e7b5624805479fd384bfd91ffcb73642.png

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

31ec4e26d1180397dbf80f0e6f3d8b43.png

sudo apt install gimp:安装gimp软件

9dfdb18367813595be76444cec38db17.png

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

c7af257230a48e03299da91b7e9619b5.png

⑤     ls -l --time-style=long-iso

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

6317cf20b5b5eea72d048c235be6f473.png

ls -l --time-style=long-iso -t

将文件按时间的修改时间顺序列出

5829d183a5374ea8bcc590f4531e2a8f.png

ls -l --time-style=long-iso -t -r

按上面的时间逆序排列

3abf94a6e79faedd1b2581d896fa7a57.png

⑥         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   解压并查看文件目录

77252f6c6f333390c04c94f29074f0da.png

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

⑧      sudo adduser user7    创建user用户

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

300376b89467e12992cb48f0f811d30e.png

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

90aef69a3f5980a8971c02c9e79b2a84.png

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

c29736f6cd6b57918797769faf918656.png

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

aceba07fc9a946c2b2e732050b403681.png

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

4eedad2c332982fce7cc530d03c002d3.png

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

① cp /etc/apt/sources.list  t1;  less t1

25a823db8622038f2ad92858d70df3f9.png

② sed -e "s/#.*//g"  t1

debc70d7d27c28187f2f1866ec3f68d1.png

③ sed -e "s/#.*//g"  t1 | awk '{if (length != 0) print $0}'

91f7233974e100b88f0bbd436abc8915.png

④ tail -5 /etc/passwd | awk -F: '{print $1}'

390dbf4d91e5f0b355b915065ef054a3.png

⑤ tail -5 /etc/group | tee t2

awk 'BEGIN{print "file t2"} {print "line" NR ":" $0} END {print "over"}' t2

7d99bdcd5b99a8e8ce48dd3f119dff89.png

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

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

9d5f9005c832ce55c0130bde4a529a46.png

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

b08bf303a65356974d170aa968757d46.png

(1)      练习 1

7d964461f00678a1daef89d31a887dbe.png

(2)      练习2

de513beacb99c5b2394843c7eec8bc4c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux Shell编程是指使用Shell脚本语言编写程序来完成在Linux系统中执行特定任务的过程。Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以使用Shell来启动、挂起、停止甚至编写一些程序。最流行的Shell是Bash(Bourne Again Shell),几乎所有的Linux和绝大部分的UNIX系统都可以使用Bash作为默认的Shell。在Shell编程中,可以使用各种命令、逻辑结构、循环和其他编程概念来编写脚本,以实现自动化任务、系统管理、文件处理和数据处理等功能。可以通过在终端中运行Shell脚本来执行其中的命令和操作。在Linux系统中,可以使用命令"cat /etc/shells"来查看系统支持的不同Shell类型。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux-Shell编程](https://blog.csdn.net/qq_40332952/article/details/110478113)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [linux shell编程](https://download.csdn.net/download/chen314422/10513071)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [(超详细)Linux Shell 编程](https://blog.csdn.net/qq_50685659/article/details/125738428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值