grep扩展应用
- 列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
who | grep -o “^[^[:space:]]\+” | uniq - 取出最后登录到当前系统的用户的相关信息。
grep “$(last | grep -o “^[^[:space:]]\+” | uniq -1)” /etc/passwd - 取出当前系统上被用户当作其默认shell的最多的那个shell。
echo $(cut -f7 -d’:’ /etc/passwd | sort | uniq -c | sort -rn | head -1) | cut -d ” ” -f2 - 将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
sort –t : -nk /etc/passwd | tail -10 | tr a-z A-Z &> /tmp/maxusers.txt - 取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
ifconfig | grep -o “[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}” - 列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
ls -l /etc | grep -o “[[:alnum:]]\+.conf” | tr a-z A-Z &> /tmp/etc.conf - 显示/var目录下一级子目录或文件的总个数。
ls -l /var | wc -l - 取出/etc/group文件中第三个字段数值最小的10个组的名字。
cat /etc/group | sort -rnk 3 -t: | tail | cut -d”:” -f1 - 将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
cat /etc/fstab /etc/issue > /tmp/etc.test
用户及组管理命令
useradd命令:添加用户
规则:useradd [OPTION] USERNAME
示例:useradd –u 1000 testuser
常用选项:
-u:定义UID
-g:定义用户的基本组
-c “”:添加用户的注释信息,comment
-d:指定用户的家目录
-s SHELL:定义用户的默认shell
-G:定义用户的一个或多个附加组,用逗号隔开,并且这些组必须已存在
-D:修改用户的默认信息(其实是间接修改了/etc/default/useradd文件)
-s:修改用户的默认shell信息
groupadd命令:创建组
规则:groupadd [OPTION] GROUPNAME
示例:groupadd –g 1000 testgroup1
常用选项:
-g GID:设定组的ID
-r:将此次创建的组设定为系统组
id命令:查看用户信息
规则:id [OPTION] [USERNAME]
示例:id(输出当前登录用户的各种信息,包括组,附加组,注释等等信息)
常用选项:
-u:只显示UID
-g:只显示基本GID
-G:只显示附加组ID
-n:显示用户的name(必须和以上三个参数一起配合用,不能单独使用)
su命令:切换用户或以另外用户的身份运行命令
规则:su [OPTION] [-| l] [user]
示例:su – root(切换到root用户,需要输入root’密码)
常用用法:
su USERNAME:非登录式切换,不会读取目标用户的配置文件
su – USERNAME 或者su –l USERNAME:登录式切换,重新以目标用户的身份登录
注意:root切换到其他用户无需输入密码,其他用户则需要输入密码,非登录式切换也需要的哟
usermod命令:修改用户的属性
规则:usermod [OPTION] USERNAEM
示例:usermod –u 666 test01(将test01的UID修改为666)
常用选项:
-u UID:修改用户UID
-g GID:修改用户的基本组ID
-G group1,group2:为用户修改或添加附加组
-s SHELL:修改用户的shell
-c“comment”:修改用户的注释信息
-d /path/to/newhome:修改用户的家目录(原来的家目录文件不会移至新目录,除非加上-m选项)
-l newname:修改用户的名称为newname
-L:锁定用户
-U:解锁已锁定的用户
-e +时间:设置用户的过期时间
-f inactive:指定用户的非活动期限
passwd命令:修改用户的密码
注意:root可以随意修改任意用户的密码,普通用户只能修改自己的密码
规则:passwd [OPTION] UserName
示例:~]#:passwd test01(echo “string” | passwd –stdin test01)
常用选项:
-l:锁定用户
-u:解锁用户
-n mindays:指定最短的使用期限
-x maxdays:使用最大期限
-w warndays:提前多少天开始告警
-i inactive-days:非活动期限
–stdin:从标准输入接收用户密码
echo “string” | passwd –stdin test01
注意:
/dev/null能够接收任何内容,并将其丢弃
/dev/zero能够连续不断的输出0信息
userdel命令:删除用户
规则:userdel [OPTION] USERNAME
示例:userdel test01
常用选项:
-r:删除用户的家目录
groupmod命令:修改组属性
规则:groupmod [OPTION] GROUPNAME
示例:groupmod –n mygrp yougrp
常用选项:
-n newname:修改组名
-g GID:修改组的GID
groupdel命令:删除组,用法类似于userdel
gpasswd命令:用于用户切换基本组
规则:gpasswd [OPTION] group
示例:gpasswd –a test01 mygrp
常用选项:
-a user:将user添加至指定组中
-d user:将user从组中删除
-A user:将user设置为拥有组权限的组管理员
相关练习:
- 创建组distro,其GID为2016;
groupadd –g 2016 distro - 创建用户mandriva, 其ID号为1005;基本组为distro;
useradd –u 1005 –g distro mandriva - 创建用户mageia,其ID号为1100,家目录为/home/linux;
useradd –u 1100 –d /home/linux mageia - 给用户mageia添加密码,密码为mageedu;
echo “mageedu” | passwd –stdin mageia(在root用户模式下) - 删除mandriva,但保留其家目录;
userdel mandriva - 创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
useradd –u 2002 –g distro –G peguin slackware - 修改slackware的默认shell为/bin/tcsh;
usermod –s /bin/tcsh slackware - 为用户slackware新增附加组admins; usermod –G admins slackware
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/91391
评论列表(1条)
练习基本上没有什么问题,能熟练应用到日常的工作中最好~加油~