一、练习
1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
● 实现命令
who | cut -d ” ” -f1 | sort –u
● 命令分解
who:显示已经登录的用户信息;
|:管道,连接程序,用于实现将前一个命令的输出直接定向后一个程序当作输入数据流;
cut:截取who命令显示结果的一部分,使用 -d 选项以空格作为分隔符,然后使用 -f 选项截取第1字段;
sort:文本内容排序,使用 -u 选项实现重复的行只显示一次。
2、取出最后登录到当前系统的用户的相关信息。
● 实现命令
last | head -n 1
● 命令分解
last:显示最后登录到当前系统的用户列表;
head:查看文件内容的前n行,使用 -n 选项查看第一行内容。
3、取出当前系统上被用户当作其默认shell的最多的那个shell。
● 实现命令
cat /etc/passwd | cut -d “:” -f7 | uniq -c | sort -rn | head -n 1 | cut -d ” ” -f7
● 命令分解
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
● 命令分解
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
● 命令分解
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
● 命令分解
ls:列出/etc目录下的文件内容,使用 -a 选项列出所有文件,同时*.conf中*表示任意匹配,即列出所有以.conf结尾的文件;
tr ‘a-z’ ‘A-Z’:将命令显示结果中的小写字母全部转换成大写字母;
>:输出重定向,将命令显示的结果输出并保存至/tmp/etc.conf文件中。
7、显示/var目录下一级子目录或文件的总个数。
● 实现命令
ls /var | wc -l
● 命令分解
ls:列出/var目录下的文件内容;
wc:文本统计工具,使用 -l 选项只显示行数,即21个。
8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
● 实现命令
sort -rn -t “:” -k3 /etc/group | head -n 10 | cut -d “:” -f1
● 命令分解
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
● 命令分解
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
验证:
2) 创建用户mandriva, 其ID号为1005;基本组为distro;
命令:
useradd -u 1005 -g distro mandriva
验证:
3) 创建用户mageia,其ID号为1100,家目录为/home/linux;
命令:
useradd -u 1100 -d /home/linux mageia
验证:
4) 给用户mageia添加密码,密码为mageedu;
命令:
passwd mageia
验证:
5) 删除mandriva,但保留其家目录;
命令:
userdel mandriva
验证:
6) 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
命令:
groupadd peguin
useradd -u 2002 -g distro -G peguin slackware
验证:
7) 修改slackware的默认shell为/bin/tcsh;
命令:
usermod -s /bin/tcsh slackware
验证:
8) 为用户slackware新增附加组admins;
命令:
groupadd admins
usermod -G peguin,admins -a slackware
验证:
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/99397