Linux基础之正则表达式,用户、组管理命令介绍

2019-10-13 20:53:52于丽

练习

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

who |cut -d' ' -f 1|uniq

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

cat /etc/passwd|grep "^`last -1|cut -d' ' -f1|head -1`"

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

cat /etc/passwd|cut -d: -f7|sort -u|sort -rn|head -1

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

cat /etc/passwd|sort -t':' -k3 -n|tail|tr [a-z] [A-Z] 2&>1 /tmp/maxusers.txt

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

ifconfig eno16777736| grep  "<inet>"|cut -d' ' -f 10

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

ls /etc|grep -o ".*.conf$"|tr [a-z] [A-Z] >> /tmp/etc.conf

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

linux里没有直接的命令来展示一个目录下的文件个数,可以通过管道将两个命令组合
查看目录下所有文件个数命令如下:
ls |wc -l
 1、ls 是查看文件夹内所有文件的命令
 2、wc -l 是统计文件行数的命令
 3、以上两个命令叠加,相当于统计文件夹下文件总数

#!/bin/sh
find /tmp/homework -maxdepth 1 -type d | while read dir; do 
count=$(find "$dir" -type f | wc -l)
echo "$dir : $count"
done

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

cat /etc/group|sort -t':' -k 3 -n|head |cut -d':' -f1

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

cat /etc/fstab /etc/issue >>/tmp/etc.test

Linux基础知识—用户、组管理

Linux为了提高其安全性,通过创建用户及用户组并赋相应的权限来限制各用户访问不同的文件。下面我们来学习下用户及用户组的相关管理命令先来看看几个文件:

/etc/passwd

[root@localhost ~]# cat /etc/passwd|head -3
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

其文件内容格式是由‘:'分隔开的字符串,其内容包括如下: USERNAME:X:UID:GID:DESCRIPTION:HOME:SHELL

/etc/shadow

[root@localhost ~]# cat /etc/shadow|head -3
root:$6$1RSlswAIVbmtwWM5$WLZxHXzkL7.PvHb2ghYqbGvj3Cz4AB5sGRr33TwCX1cwSqV.syv0q1eqcF3NGUJeNNspAOt5C1rWfdsgBllB1.::0:99999:7:::
bin:*:16659:0:99999:7:::
daemon:*:16659:0:99999:7:::

其内容格式类似于/etc/passwd格式,只是内容不同:

USERNAME:ENCRYPTED PASSWD:DATE OF LAST CHANGE:MINIMUM PASSWD AGE: MAXIMUM PASSWD AGE:PASSWD WARNING:PASSWORD INACTIVITY:EXPIRATION