Linux基础练习题

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

[root@node1 ~]# who
root     tty1         2018-06-08 12:24
root     pts/0        2018-06-08 10:58 (192.168.6.88)

[root@node1 ~]# who | cut -d' ' -f1 | uniq 
or [root@node1 ~]# who | cut -d' ' -f1 | sort -u
root

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

[root@node1 ~]# last | head -1
root     pts/1        192.168.6.88      Fri Jun  8 12:40   still logged in

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

[root@node1 ~]# cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n | tail -1 | cut -d' ' -f7
/bin/bash

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

[root@node1 ~]# sort -n -t: -k3 /etc/passwd | tail | tr 'a-z' 'A-Z' > /tmp/maxusers.txt
[root@node1 ~]# cat /tmp/maxusers.txt
BASH:X:4008:4008::/HOME/BASH:/BIN/BASH
BASHER:X:4009:4009::/HOME/BASHER:/BIN/BASH
TESTBASH:X:4010:4010::/HOME/TESTBASH:/BIN/BASH
NOLOGIN:X:4011:4011::/HOME/NOLOGIN:/SBIN/NOLOGIN
USER5:X:4012:4012::/HOME/USER5:/BIN/BASH
USER6:X:4013:4013::/HOME/USER6:/BIN/BASH
USER7:X:4014:4014::/HOME/USER7:/BIN/BASH
HADOOP:X:4015:4015::/HOME/HADOOP:/BIN/BASH
FEDORA:X:4016:4016::/HOME/FEDORA:/BIN/BASH
CENTOS:X:4017:4017::/HOME/CENTOS:/BIN/BASH

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

[root@node1 ~]# ifconfig eno16777736 | grep "inet " | cut -d' ' -f10
192.168.6.89

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

[root@node1 ~]# ls -R /etc | grep ".conf$" | tr 'a-z' 'A-Z' > /tmp/etc.conf

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

这道题是不是有歧义?所以给两种答案:

限于/var目录下的这一层目录:

[root@node1 ~]# find /var | grep "^/var\(/[^/]*\)\{2\}$" | wc -l
81

限于/var目录下的这一层目录的子目录:

[root@node1 ~]# find /var | grep "^/var/[^/]*$" | wc -l
21
or [root@node1 ~]# ls -A /var | wc -l

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

[root@node1 ~]# sort -n -t: -k3 /etc/group | head | cut -d: -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

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

[root@node1 ~]# cat /etc/fstab /etc/issue > /tmp/etc.test

 
 

猜你喜欢

转载自blog.51cto.com/201731/2126739