linux实验报告3

一、实验目的
1. 练习并熟练掌握 shell 中通配符、管道线、重定向等特殊符号的用法
2. 练习 shell 中正则表达式的用法
3. 体验学习更多常用 linux 命令工具,尤其是和管道线、正则表达式等配合的组合使用
4. 掌握 shell 中普通变量的基本用法
5. 掌握 shell 脚本程序建立和执行的方法
二、实验准备
结合第 4 章课件,学习/复习第 4 章教材 4.1 节~4.5 节,具体包括:
(1)shell 脚本建立和执行的方法
(2)shell 特殊字符的用法
三、实验内容
1. 练习 shell 中命令历史、别名、特殊字符用法(第 4 章 4.2 节~4.5 节)

1) 显示历史命令

语法格式为history[opyion][arg...]

①如果不带参数,则显示历史命令清单

②如果后面给出一个正整数m,则显示最后m行

2)定义别名

语法格式:alias[name[value]]...

3) shell特殊字符

1.3.1 引号

引号分为三种:单引号、双引号和倒引号

① 倒引号内的字符会被当做shell命令,会进行置换处理
② 单引号内的字符都当做普通字符处理
③ 双引号内的字符除了$、倒引号(`)、反斜线(\)、感叹号(!)外,均作为普通字符处理

 

1.3.2 输入/ 输出重定向符

输入重定向:

输出重定向:

2. 练习 shell 中正则表达式的用法

1)简述以下文件的用途

① /etc/passwd:用户账户信息

② /etc/shadow:安全用户账户信息

③ /etc/group:组账户信息

④ /etc/gshadow:安全组账户信息

2)指出每一条命令的功能

① id 打印真实有效的用户和组ID

② id -u 仅打印有效的用户ID

③ id -u root 仅打印root用户的ID

④ id -u wt 打印wt用户的ID

 3) 观察以下命令执行结果,理解其功能

2.3.1

which       查看可执行文件的位置 
whereis    查看文件的位置 
locate       配合数据库查看文件位置 
find          实际搜寻硬盘查询文件名称 

2.3.2

grep -n -E 'root|jsj|^user*' /etc/passwd  显示目录下以root、jsj、user开头的记录
grep -n -E ' [[:digit:]] ' /etc/passwd  显示目录下数字字符记录
grep -n -E ' [[:alpha:]] ' /etc/passwd 显示目录下文字字符记录
grep -n '[0-9]\{4,\}' /etc/group 在用户组文件中查找GID 是4 位数及以上的组信息记录

2.2.3

gimp:Linux下的图形处理工具

2.3.4

2.3.5

ls -l --time-style=long-iso 按详细时间格式显示当前目录下详细信息
ls -l --time-style=long-iso -t  按详细时间从先到后排序
ls -l --time-style=long-iso -t -r 按详细时间从后到先排序

2.3.6

ls /usr/share/man 列出该目录下信息
ls /usr/share/man | grep man[1-8] 列出该目录下man1-man8的信息
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 解压文件

2.3.7

统计/home目录下以d开头的记录的行数

2.3.8

sudo adduser user7 创建一个新用户
ls /home | tee users | wc -l  统计用户数量

3 编写与执行shell脚本

1) 编写并执行脚本ex1.sh

方式1:bash< 脚本名

 

方式2:bash filename [参数]

 

方式3:filename

方式4:. filename

2) 编写并执行脚本ex2.sh

方式1:bash< 脚本名

3) 总结脚本代码中以下内容

① ex2.sh的Line3中read命令选项-n11功能:从输入中读取11个字符,读取后自动结束输入。

② ex2.sh的Line14的功能:根据上面得出的专业代号code在filename("major_code.txt")中搜索对应的行并把结果重定向到他

中。然后将t1中的内容重定向到major中当做输入。

4.总结

  通过此次实验,我对Linux中的shell程序设计有了新的认识。我决定以后更加努力地学习linux这个系统。

猜你喜欢

转载自www.cnblogs.com/Herbert1998/p/8982825.html