shell常见示例
1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。
>>> who | awk '{print $1}' | uniq
2、取出最后登录到当前系统的用户的相关信息。
>>> last | head -1
user03 pts/2 10.14.5.119 Mon Sep 3 09:40 still logged in
>>> lastlog | tail -1
user03 pts/2 10.14.5.119 Mon Sep 3 09:40:13 +0800 2018
3、取出当前系统上被用户当作其默认shell的最多的那个shell。
>>> awk -F: '{print $NF}' /etc/passwd | uniq -c | sort -rn | head -1
10 /sbin/nologin
4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。
>>>cat /etc/passwd | sort -k 3 -rn -t: | head -11 | tail -10 | tr "a-z" "A-Z" > /tmp/maxusers.txt
>>>cat /tmp/maxusers.txt
FEDORA:X:4002:4002:FEDORA CORE:/HOME/FEDORA:/BIN/TCSH
GENTOO:X:4001:4001::/VAR/TMP/GENTOO:/BIN/BASH
USER01:X:3000:3000:TEST USER:/HOME/USER01:/BIN/BASH
SLACKWARE:X:2002:2016::/HOME/SLACKWARE:/BIN/TCSH
MAGEIA:X:1100:1100::/HOME/LINUX:/BIN/BASH
VN0ECO6:X:1004:1004::/HOME/VN0ECO6:/BIN/BASH
USER02:X:1003:1003::/HOME/USER02:/BIN/BASH
ZABBIX:X:1001:1001::/HOME/ZABBIX:/BIN/BASH
APPUSER:X:1000:1000:APPUSER:/HOME/APPUSER:/BIN/BASH
POLKITD:X:999:997:USER FOR POLKITD:/:/SBIN/NOLOGIN
5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。
>>>ifconfig | grep inet | grep -v 'inet6' | awk '{print $2}'
10.233.49.250
127.0.0.1
6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。
>>> ls /etc/*.conf | tr {a-z} {A-Z} > /tmp/etc.conf
>>> cat /tmp/etc.conf
/ETC/ASOUND.CONF
/ETC/CHRONY.CONF
/ETC/DRACUT.CONF
/ETC/E2FSCK.CONF
/ETC/FPRINTD.CONF
.............................................
7、显示/var目录下一级子目录或文件的总个数。
>>> ll /var/* -d | wc -l
22
8、取出/etc/group文件中第三个字段数值最小的10个组的名字。
>>>cat /etc/group | sort -k 3 -rn -t: | tail -10 | cut -d: -f1
kmem
mem
lp
disk
tty
adm
sys
daemon
bin
root
9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。
>>>cat /etc/fstab /etc/issue > /tmp/etc.test
>>> cat /tmp/etc.test
# /etc/fstab
# Created by anaconda on Thu Apr 26 17:20:24 2018
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
/dev/mapper/centos-root / xfs defaults 0 0
UUID=31ed9270-a12c-4aad-884e-4d207c290651 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
\S
Kernel \r on an \m