linux实验3

自作多情 提交于 2020-12-04 07:13:00

一、练习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)

 sudo apt install gimp:安装软件gimp。
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

 

总结:本次实验内容较大,需要运行的程序很多,需要多实验。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!