shell编程1

Shell命令应用练习

(1)简述以下文件用途 

/etc/passwd

passwd为密码文件,用来管理用户的密码。普通用户通常只能修改自己的密码信息。

 

 /etc/shadow

shadow是一个影子化的密码文件,它包含系统账户的密码信息和可选的年龄信息。只有管理员能查看修改。

 

/etc/group

group文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组。

 

/etc/gshadow

/etc/gshadow是/etc/group的加密资讯文件。/etc/gshadow和/etc/group是互补的两个文件。

 

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

 

id命令显示真实有效的用户id和组id

id -u只显示用户ID

id -u root 查看root用户的id

id -u hadoop 查看hadoop用户的id

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

 

which python:查找名为python的可执行文件的位置
whereis python:查看文件位置
locate python:配合数据库查看文件位置
find /usr/bin -name python:通过直接搜索硬盘的方式查找/usr/bin目录下名为python的文件。

 

grep -n -E 'root|hadoop|^user*':/etc/passwd -n为显示行号,该指令作用是在/etc/passwd文件中查找以root或hadoop为行首的行,其中*表示重复零次以上,^表示必须出现在行首。
grep -n -E ' [[:digit:]] ' /etc/passwd:在 /etc/passwd文件中查找含有纯数字的行。
grep -n -E ' [[:alpha:]] ' /etc/passwd:在 /etc/passwd文件中查找含有纯字母的行。
grep -n '[0-9]\{4,\}' /etc/group 因为不加-E,所以使用花括号加转义符\{\} ,[0-9]等价于[[:digit:]],找出纯数字,4代表4位以上。

sudo apt install gimp:安装软件gimp。
which gimp:查询gimp的位置。
sudo apt remove gimp:卸载gimp

 

ls -dl /root --time-style=long-iso:/root下显示文件目录信息,详细信息,时间按完整的IOS时间格式显示。
ls -dl /root --time-style=long-iso | cut -d' ' -f1,8:以空格为分隔符,截取上一条指令中的第一和第八个域。

 

ls -l --time-style=long-iso,:ls -l 是列出文件的详细信息,时间设置为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下的目录

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开头的行,并统计行数

 

sudo adduser user7:创建用户user7。
ls /home | tee users | wc -l:在home目录下查找用户名,并统计行数。

4根据要求写出相应的 shell 命令

 

 

 

 

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

 

 

 

 

 

提交文档时,查阅网络,总结如下内容:

① 文件/etc/apt/sources.list用途

 /etc/apt/sources.list是包管理工具apt所用的记录

② 命令工具sed功能,截图显示2~3个自己尝试的sed命令练习,并对具体功能作必要陈述说明

sed可将字符进行替换,上图练习中将love替换为hate

③ 命令工具awk功能,截图显示2~3个自己尝试的awk命令练习,并对具体功能作必要陈述说明)

 

   行匹配语句awk ‘ ’ 只能用单引号

   每行按空格或tab分割,输出文本中的1,4项;

   awk -F: -F相当于内置变量FS,指定分割字符,在上图练习中使用’,’分割

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

(提交文档时,查阅网络,总结如下内容:

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

linux中curl是一个利用URL规则在命令行下工作的文件传输工具,是一款很强大的http命令行工具,它支持文件的上传和下载,是综合传输工具。

1)安装curl

 

(2)不加任何选项使用curl时,如 curl http://www.baidu.com ,默认会发送GET请求来获取链接内容到标准输出。

 

(3)只显示http头,而不显示文件内容,使用-I选项

 

 4)同时显示http头和文件内容,使用-i选项。

 

(5)将链接保存到文件。使用 > 符号将输出重定向到本地文件中。

 

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

   wget是一个下载文件的工具,它用在命令行下.wget工具功能完善,支持断点下载功能,同时支持FTPHTTP下载方式,支持代理服务器和设置起来方便简单。

(1) 使用wget下载单个文件,下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)

 

(2) 使用wget -O下载并以不同的文件名保存。下图练习中,下载一个文件并以名称download1保存

 

3. 编写一个shell脚本,使用4种方式(参见第4章教材/课件)分别执行。

(1)练习1

第1步,使用vi/vim/gedit或其它编辑器,编写shell脚本ex1.sh,内容如下:

该脚本的功能是,备份当前目录下最近1天以内(即24小时内)被修改过的普通文件。以backup系统当前日期时间为文件名,并压缩存档。备份过程中出错信息写入error_info。然后分别查看备份文档和报错信息。

 

第2步,尝试第4章介绍的四种方式,运行该脚本,并理解本例中综合使用的shell命令。

 

(2)练习2

第1步,使用vi/vim/gedit或其它编辑器,编写shell脚本ex2.sh,内容如下:

尝试第4章介绍的四种方式,运行该脚本。

若提示“找不到文件major_code.txt”,请将公邮实验文件夹中的major_code.txt拷贝至ex1.sh所在目录,重新执行一次。

注:文件major_code.txt,请不要做任何改动,包括格式。

结合运行结果,分析脚本代码,在实验报告中总结以下内容:

② 写出line3中read命令选项-n11功能

-n11表示输入11个字符后输入结束

②写出line14的功能

   Line14:grep $code $filename >t1 && read x major < t1

   功能:搜索codefilename重定向到t1,然后从t1输出到major

 

总结与体会

通过本次实验,我接触到了shell编程,掌握了shell中通配符,管道线,重定向等特殊符号的用法,练习了shell中正则表达式的用法,学习了常用的命令工具的使用,掌握了shell脚本的建立和执行方法等

 

 

猜你喜欢

转载自www.cnblogs.com/linux-homework-zjy/p/8979281.html