第三周,一些练习例题以及用户与组管理命令

一、练习

1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。

● 实现命令

who | cut -d ” ” -f1 | sort –u

EXER1

● 命令分解

who:显示已经登录的用户信息;

|:管道,连接程序,用于实现将前一个命令的输出直接定向后一个程序当作输入数据流;

cut:截取who命令显示结果的一部分,使用 -d 选项以空格作为分隔符,然后使用 -f 选项截取第1字段;

sort:文本内容排序,使用 -u 选项实现重复的行只显示一次。

 

2、取出最后登录到当前系统的用户的相关信息。

● 实现命令

last | head -n 1

EXER2

● 命令分解

last:显示最后登录到当前系统的用户列表;

head:查看文件内容的前n行,使用 -n 选项查看第一行内容。

 

3、取出当前系统上被用户当作其默认shell的最多的那个shell。

● 实现命令

cat /etc/passwd | cut -d “:” -f7 | uniq -c | sort -rn | head -n 1 | cut -d ” ” -f7

EXER3

● 命令分解

cat /etc/passwd:查看当前系统上用户的默认shell;

cut:文本内容截取,使用 -d 选项以冒号作为分隔符,然后使用 -f 选项截取第7字段(shell部分);

uniq:移除重复的行,使用 -c 选项显示重复行的次数;

sort:文本内容排序,使用 -r 选项实现逆序排序,以及 -n 选项实现基于数字大小进行排序;

head:查看文本的前n行,上步做了逆序排序,这里只看第一行内容;

cut:再次使用文本截取,以空格为分隔符,截取第7字段,得到最终结果。

 

4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。

● 实现命令

sort -rn -t “:” -k3 /etc/passwd | head -n 10 | tr ‘a-z’ ‘A-Z’ > /tmp/maxusers.txt

EXER4

● 命令分解

sort:使用 -rn 选项实现基于数字逆序排序。使用 -t 选项以冒号为分隔符,以 -k 选项选取第3字段对/etc/passwd中的内容进行排序;

head:使用 -n 选项查看前10行信息;

tr ‘a-z’ ‘A-Z’:将显示信息中的小写字母全部转换成大写字母;

>:输出重定向,将上述命令组合显示的内容输出保存至/tmp/maxusers.txt文件中。

 

5、取出当前主机的IP地址。

● 实现命令

ifconfig | head -n2 | tail -n1 | cut -d ” ” -f10

EXER5

● 命令分解

ifconfig:查看网卡信息,比如IP地址、掩码、MTU等信息;

head:IP地址处于第2行,使用 -n 选项查看前2行内容;

tail:使用head命令后,IP地址处于最后一行,使用tail命令的 -n1 选项查看最后一行内容;

cut:使用文本截取命令的 -d 选项以空格作为分隔符,使用 -f 选项选取第10字段,得到IP地址。

 

6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。

● 实现命令

ls -a /etc/*.conf | tr ‘a-z’ ‘A-Z’ > /tmp/etc.conf

EXER6-1

EXER6-2

● 命令分解

ls:列出/etc目录下的文件内容,使用 -a 选项列出所有文件,同时*.conf中*表示任意匹配,即列出所有以.conf结尾的文件;

tr ‘a-z’ ‘A-Z’:将命令显示结果中的小写字母全部转换成大写字母;

>:输出重定向,将命令显示的结果输出并保存至/tmp/etc.conf文件中。

 

7、显示/var目录下一级子目录或文件的总个数。

● 实现命令

ls /var | wc -l

EXER7

● 命令分解

ls:列出/var目录下的文件内容;

wc:文本统计工具,使用 -l 选项只显示行数,即21个。

 

8、取出/etc/group文件中第三个字段数值最小的10个组的名字。

● 实现命令

sort -rn -t “:” -k3 /etc/group | head -n 10 | cut -d “:” -f1

EXER8

● 命令分解

sort:使用 -rn 选项实现基于数字逆序排序。使用 -t 选项以冒号为分隔符,以 -k 选项选取第3字段对/etc/group中的内容进行排序;

head:使用 -n 选项显示前10行内容;

cut:使用 -d 选项以冒号作为分隔符,使用 -f 选项选取第1字段,即组名。

 

9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。

● 实现命令

cat /etc/{fstab,issue} > /tmp/etc.test

EXER9

● 命令分解

cat /etc/{fstab,issue}:因两个文件都在/etc下,可以使用命令行展开功能同时查看两个文件的内容,相当于两个文件的内容合并到了一起;

>:输出重定向,将上述命令显示的内容输出保存至/tmp/etc.test文件中。

 

二、用户和组管理命令及相关例题

1、useradd命令:创建用户

● 命令格式

useradd [选项] 登录名

● 常用选项

-u:指定UID;

-g:指定基本组ID;

-G:指定用户所属的附加组;

-s:指定用户的默认shell;

-d:以指定的路径作为用户的家目录。

 

2、usermod命令:修改用户属性

● 命令格式

usermod [选项] 登录名

● 常用选项

-u:修改用户的ID;

-g:修改用户所属的基本组;

-G:修改用户所属的附加组;

-a:为用户追加新的附加组,与-G同时使用;

-d:修改用户的家目录;

-s:修改用户的默认shell;

-L, -U:锁定及解锁用户的密码。

 

3、userdel命令:删除用户

● 命令格式

userdel [选项] 登录名

● 常用选项

-r:删除用户时,一并删除其家目录。

 

4、groupadd命令:创建组

● 命令格式

groupadd [选项] 组名

● 常用选项

-g:指定GID,默认是上一个组的GID+1;

 

5、groupmod命令:修改组属性

● 命令格式

groupmod [选项] 组名

● 常用选项

-g:修改组ID;

-n:修改组名。

 

6、groupdel:删除组

● 命令格式

groupdel [选项] 组名

 

7、passwd命令:密码

● 命令格式

passwd:修改用户自己的密码;

passwd 用户名:修改指定用户的密码。

● 常用选项

-l:锁定用户;

-u:解锁用户;

-d:清除用户密码串。

 

8、相关例题

1) 创建组distro,其GID为2016;

命令:

groupadd -g 2016 distro

验证:

userEXER1-2

 

2) 创建用户mandriva, 其ID号为1005;基本组为distro;

命令:

useradd -u 1005 -g distro mandriva

验证:

userEXER2

 

3) 创建用户mageia,其ID号为1100,家目录为/home/linux;

命令:

useradd -u 1100 -d /home/linux mageia

验证:

userEXER3

 

4) 给用户mageia添加密码,密码为mageedu;

命令:

passwd mageia

验证:

userEXER4

 

5) 删除mandriva,但保留其家目录;

命令:

userdel mandriva

验证:

userEXER5-1

userEXER5-2

 

6) 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

命令:

groupadd peguin

useradd -u 2002 -g distro -G peguin slackware

验证:

userEXER6

 

7) 修改slackware的默认shell为/bin/tcsh;

命令:

usermod -s /bin/tcsh slackware

验证:

userEXER7

 

8) 为用户slackware新增附加组admins;

命令:

groupadd admins

usermod -G peguin,admins -a slackware

验证:

userEXER8

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99397

(1)
joey.qiaojoey.qiao
上一篇 2018-05-26
下一篇 2018-05-26

相关推荐