一、练习shell命令历史、别名、特殊字符用法
二、
1./etc/passwd
passwd为密码文件,用来管理用户的密码。普通用户通常只能修改自己的密码信息。
2. /etc/shadow
shadow是一个影子化的密码文件,它包含系统账户的密码信息和可选的年龄信息。只有管理员能查看修改。
3. /etc/group
group文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户组的用户之间具有相似的特征。
4./etc/gshadow
/etc/gshadow是/etc/group的加密资讯文件,比如用户组(Group)管理密码就是存放在这个文件。/etc/gshadow和/etc/group是互补的两个文件;对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。
、shell 命令应用练习
(1)
1、/etc/passwd 用户账户文件
2、/etc/shadow可选加密后的密码文件
3、/etc/group 有关用户组管理的一个文件
4、/etc/gshadow包含影子化了的组账目信息
(2)
id命令输出所有用户的自己id和组id
id -u 显示用户用户id
id -u root 显示用户root的id·
id -u wcc显示用户wcc的uid
(3)
which可以查找可以直接执行的文件
whereis可以查找源文件和man文件
这两种适用于查找已经安装好的命令
locate可以查找任意类型的文件
find可以查到所有但是查找速度最慢
(3)
which gimp:查询gimp的位置。
sudo apt remove gimp:卸载gimp。
which gimp:查询gimp的位置,此时已经没有查询结果。
(4)
ls -dl /root --time-style=long-iso | cut -d ' ' -f1,8
先显示定义好的时间显示方式 在剪出以空格为分隔符的地方
(5)
显示文件的时间
逆序显示文件时间
顺序显示
(6)
ls /usr/share/man
显示在/usr/share/man下的目录
ls /usr/share/man | grep man[1-8]:
在/usr/share/man下的目录的基础上搜索man1~man8
ls /usr/share/man/man1:
显示/usr/share/man/man1下的目录
file /usr/share/man/man1/ls.1.gz
mkdir ~/temp; cp /usr/share/man/man1/ls.1.gz ~/temp:
根目录下创建temp文件夹,把ls.1.gz复制到temp下
cd ~/temp; ls:转到temp目录下,查看所有文件目录,此时有后缀.gz
(7)
ls –l /home | grep "^d" | wc –l:
查找在home目录下以d开头的文件 并统计文件的行数
(8)
sudo adduser user7
ls /home | tee users | wc -l
用管理员身份创建用户user7 显示home目录下的用户 并统计行数
(2)依次输入如下命令,观察运行结果。结合man id查看到的帮助信息,指出每一条命令功能
①id
②id -u
③id -u root
④id -u hadoop
g或--group 显示用户所属群组的ID。
-G或--groups 显示用户所属附加群组的ID。
-n或--name 显示用户,所属群组或附加群组的名称。
-r或--real 显示实际ID。
-u或--user 显示用户ID。
-help 显示帮助。
-version 显示版本信息
(3)
①which python
whereis python
locate python
find /usr/bin -name python
(说明: which, whereis, locate,find都具有检索的功能,结合执行结果,查找帮助信息,总结其区别)
which查看可执行文件的位置
whereis查看文件的位置
locate配合数据库查看文件位置
find实际搜寻硬盘查询文件名称
②grep -n -E 'root|jsj|^user*' /etc/passwd(提示:扩展正则表达式)
grep -n -E '[[:digit:]]' /etc/passwd
grep -n -E '[[:alpha:]]' /etc/passwd
grep -n '[0-9]\{4,\}' /etc/group
①cp/etc/apt/sources.listt1; 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
在linux中curl是一个利用URL规则在命令行下工作的文件传输工具,是一款很强大的http命令行工具,它支持文件的上传和下载,是综合传输工具。
(1)安装curl
(2)不加任何选项使用curl时,如 curl http://www.baidu.com ,默认会发送GET请求来获取链接内容到标准输出。
(3)只显示http头,而不显示文件内容,使用-I选项
(4)同时显示http头和文件内容,使用-i选项。
(5)将链接保存到文件。使用 > 符号将输出重定向到本地文件中。
三、
练习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
功能:搜索code和filename重定向到t1,然后从t1输出到major
总结:本次实验内容较大,需要运行的程序很多,需要多实验。