1、# 删除/目录下大小为 0 的文件 #!/bin/bash dir="/" find / -type f -size 0 -exec rm -rf {} \;
2、查看可登录系统的账户数量
[root@libin5 shell]# grep "bash$" /etc/passwd | wc -l
3、查看远程本地的IP地址
[root@libin5 shell]# netstat -atn | awk '{print $5}' | awk '{print $1}' | sort -nr | uniq -c
4、查找 Linux 系统中的僵尸进程
[root@libin5 shell]# ps aux | awk '{if($8 == "Z"){print $2,$11}}'
5、生成随机密码(urandom 版本)
tr -dc '_A -Za -z0 -9' </dev/urandom | head -c 10
6、显示当前计算机中所有账户的用户名称
(1)[root@libin5 shell]# sed 's/:.*//' /etc/passwd
(2)[root@libin5 shell]# awk -F: '{print $1}' /etc/passwd
(3)[root@libin5 shell]# cut -d: -f1 /etc/passwd
7、#修改 Linux 系统的最大打开文件数量
#!/bin/bash
cat >> /etc/security/limits.conf <<EOF
* soft nofile 65536
* hard nofile 65536
EOF
8、显示本机 Linux 系统上所有开放的端口列表
[root@libin5 shell]# ss -nutlp | awk '{print $1,$5}' | awk -F"[: ]" '{print "协议:"$1,"端口号:"$NF}' | grep "[0‐9]" | uniq
9、将大于1000的UID用户删除
#!/bin/bash
# 将 Linux 系统中 UID 大于等于 1000 的普通用户都删除
# 先用 awk 提取所有 uid 大于等于 1000 的普通用户名称
# 再使用 for 循环逐个将每个用户删除即可
user=$(awk -F: '$3>=1000{print $1}' /etc/passwd)
for i in $user
do
userdel -r $i
done
10、时间格式
echo "显示星期简称(如:Sun)"
date +%a
echo "显示星期全称(如:Sunday)"
date +%A
echo "显示月份简称(如:Jan)"
date +%b
echo "显示月份全称(如:January)"
date +%B
echo "显示数字月份(如:12)"
date +%m
echo "显示数字日期(如:01 号)"
date +%d
echo "显示数字年(如:01 号)"
date +%Y echo "显示年‐月‐日"
date +%F
echo "显示小时(24 小时制)"
date +%H
echo "显示分钟(00..59)"
date +%M
echo "显示秒"
date +%S
echo "显示纳秒"
date +%N
echo "组合显示"
date +"%Y%m%d %H:%M:%S"