~~

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

  • # who | cut -d" " -f 1 | sort -u

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

  • # id $(who | tail -1 |cut -d" " -f 1)

  • # last | head -1

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

  • # cat /etc/passwd | cut -d":" -f 7 | sort | uniq -c | sort -n | tail -1

  • # cut -d":" -f 7 /etc/passwd | sort | uniq -c | sort -n | tail -1

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

  • # sort -n -t: -k /etc/passwd | tail -10 | tr 'a-z' 'A-Z' > /tmpmaxuser.txt

5;取出当前主机的ip地址,提示:对ifconfig命令的结果进行切分。

  • # ifconfig | head -2 | tail -1 | cut -d " " -f 10

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

  • # ls /etc/*.conf | tr 'a-z' 'A-Z' > /tmp/etc.conf

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

  • # ls /var | wc -l

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

  • # sort -n -t: -k 3 /etc/group | tail -10 | cut -d ":" -f 1

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

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

10;请总结描述用户和组管理类命令的使用方法并完成以下练习:

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;
 #  echo mageedu | passwd --stdin mageia

5> 删除mandriva, 但保留其家目录;
 #  userdel mandriva

6> 创建用户slackware, 其ID为2002,其本组为distro, 附加组peguin;
 #  useradd -u 2002 -g distro -G peguin slackware

7> 修改slackware的默认shell为/bin/tcsh;
 #  usermod -s /bin/tcsh slackware

8> 为用户slackware 新增附加组admins;
 #  usermod -G admins slackware

9> 为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;
 #  passwd -x 180 -n 3 -w 3 slackware 

10> 添加用户openstack, 其ID为3003,基本组为clouds, 附加组为peguin和nova;
 #  useradd openstack -u 3003 -g clouds -G peguin,nova

11> 添加系统用户mysql,要求其shell为/sbin/nologin;
 #  useradd mysql -s /sbin/nologin

12> 使用echo 命令,非交互式为openstack 添加密码;
 #  echo "openstack" | passwd --stdin openstackp

命令详解


cut ,sort ,head ,tail ,uniq

cut
  • -d –delimiter=DELIM    指定分隔符

  • -f –fields=LIST    指定字段    +   #   单个字段    +   #,# 离散字段    +   #-# 连续字段  ######sort

  • -n –mumeric-sort   按数字大小排序

  • -t  –field-separator=SEP   指定分隔符

  • -k –key==KEYDEF    用于排序比较的字段

  • -f –ignore-case    忽略字符大小写

  • -u –unique     重复的行只保留一行;    重复行:连续且相同的行 ######head

  • -#  指定输出前行;默认输出10行 tail

  • -#  指定输出后行,默认输出10行

  • -f  实时显示指定文本末行

uniq  报告可移除重复的行
  • uniq [OPTION]… [INPUT [OUTPUT]]

  • -c –count  显示每行的重复次数

  • -u –unique 仅显示未曾重复过的行

  • -d –repeated   仅显示重复过的行

useradd ,usermod ,passwd

useradd
  • useradd -D 显示创建用户的默认配置

  • useradd -D [options] 修改默认选项的值

  • useradd [options] LOGIN

    • -g –gid 基本组

    • -G –groups 附加组

    • -p –password 设置密码

    • -r –system create a system account.创建系统用户

    • -u –uid UID号

    • -s –shell 用户登录shell

    • -d –home-dir 指定用户家目录路径

    • -m –create-home 创建家用户目录

    • -M –no-create-home 不创建家用户目录

    • -c –command    注释信息

usermod
  • -u –uid UID号

  • -g –gid 基本组

  • -G –groups 附加组

  • -a –append 与-G一起使用,用于为用户追加新的附加组

  • -c –command 修改注释信息

  • -d –home-dir 修改用户家目录;用户原来的文件不会被移除

  • -m –move-home  只能与-d一起使用,用于将原来的家目录移动至新目录

  • -l –login  修改用户名

  • -s –shell  修改用户的默认shell

  • -L –lock 锁定用户密码;即在用户原来的密码字符串之前添加一个"!"

  • -U –unlock 解锁用户密码

userdel
  • -r –remove-home    删除用户时并删除家目录

passwd
  • passwd  [-k]  [-l]  [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [-S] [–stdin] [username]

  • -l –lock   锁定用户

  • -u –unlock 解锁用户

  • -f –force

  • -e –exprie 用户下次登录时更改密码

  • -d –delete 删除用户密码

  • -n –ninmun DAYS        最小使用日期

  • -x –maximun DAYS   最大使用日期

  • -w –warning DAYS   警告日期

  • -i –inactive DAYS  失效日期

  • -S –status 显示用户密码状态

  • –stdin 非交互式管道设置密码
    echo "abcdefg" | passwd --stdin root

原创文章,作者:c_c,如若转载,请注明出处:http://www.178linux.com/65645

(0)
c_cc_c
上一篇 2017-01-03
下一篇 2017-01-03

相关推荐

  • 进入linux世界的初步认识

    1、 描述计算机的组成及其功能.
    2、 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别.
    3、 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述.
    4、 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述.
    5、 如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的.
    6、 请罗列Linux发行版的基础目录名称命名法则及功用规定.

    Linux干货 2018-02-25
  • Linux之yum详解及程序包安装

    Linux之 yum详解 及 程序包安装    在Linux常用的命令安装工具中,rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包的工作变得容易,并且具有查询、验证软件包的功能。与图形化工具相比,使用命令行可以获得更大的灵活性。    但是rpm有一个缺点,无法解决包的依赖性,也就是…

    Linux干货 2016-08-24
  • sed用户小结

    sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法sed命令行格式为:         sed [-nefri] ‘command’ 输入文本  …

    Linux干货 2016-08-12
  • n28 第二周作业

    n28 第二周作业

    Linux干货 2017-12-09
  • N21—-第一周课程练习题

    1、描述计算机的组成及其功能。 我们现在通常理解为计算机是由硬件系统+软件系统组成的,根据冯·诺依曼体系结构。计算机主要由五大部件组成:      运算器(Datapath): 计算机中执行各种算术和逻辑运算操作的部件      控制器(Control):是整个计算机的中枢神经,…

    Linux干货 2016-07-12
  • N26第五周博客作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;grep “^[[:space:]]+” /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;grep “^#[[:space:…

    Linux干货 2017-03-06