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

一、练习

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)
上一篇 2018-05-26 15:07
下一篇 2018-05-26 16:36

相关推荐

  • sed数据流编辑器

    sed(Stream Editor)行编辑器 基础用法

    2018-04-12
  • 批量部署工具Ansibale笔记

    自动化运维

    2018-05-28
  • 基础不牢,地动山摇——软链接与硬链接。

      inode 说明   说到软链接与硬链接就不得不提到一个概念——inode (索引节点号)。简单说linux系统中索引节点号与身份证号码一样,同一分区中文件将会被分配唯一的号码就是索引节点号。文件名是为了方便人使用,而索引节点号是计算机来区分文件的标志。 1.硬链接 硬链接(hard link)就是一个文件的一个或多个文件名。下面用试验说明硬链接特性 例…

    2018-07-29
  • 第四周作业

    第四周作业
    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2018-06-07
  • 初识Nginx——晓以大意 明以细理

    什么是nginx?nginx is a free,open-source,high-performance http server and reverse proxy,as well as an IMAP/POP3 proxy.通俗的说Nginx提供web服务,反向代理,以及IMAP/POP3代理,那么什么是web服务?反向代理?IMAP/POP3代理? w…

    2017-09-10