文章目录
1. shell合集
4.shell脚本中的变量
需练习!
2. 练习
1. cut sort uniq 命令练习
- 练习1
显示当前主机中不能登陆的用户(默认不能bash登陆)
grep bash -v /etc/passwd | cut -d : -f 1
- 练习2
1.ifconfig 网卡,可以显示此网卡的信息,显示信息中包含此网卡使用的ip地址,
请用命令过滤此ip并在输出时之显示ip不显示其他信息。
[root@server mnt]# ifconfig ens3 | head -n 2 | tail -n 1 | cut -c 14-27
172.25.254.121
2.找出能登陆系统用户中UID最大的用户,并显示其名称。
[root@server mnt]# grep bash /etc/passwd | sort -nr -t : -k 3 | cut -d : -f 1 |head -n 1
3.当前主机为web服务器,请抓取访问web服务器次数排在前5的ip地址。
[root@server mnt]# cat /etc/httpd/logs/access_log | cut -d " " 1 | |sort -nr | uniq -c | head -n 5 |awk '{print $2}'
2. test 命令脚本练习
2.1 test对于文件的判定
编写脚本文成以下条件:
file_check.sh在执行时,如果脚本后未指定检测文件报错“未指定检测文件,请指定”;如果脚本后指定文件不存在报错“此文件不存在”;当文件存在时请检测文件类型并显示到输出中。
#!/bin/bash
[ -z "$1" ] && {
echo "Error: no check file , please input file name !!"
exit
}
[ -e "$1" ] || {
echo "$1" is not exist!
exit
}
TYPE=$(ls -l $1 | cut -c 1)
[ "$TYPE" = "l" ] && {
echo $1 is flexible connection
exit
}
[ "$TYPE" = "-" ] && {
echo $1 is common file
exit
}
[ "$TYPE" = "s" ] && {
echo $1 is socket
exit
}
[ -c $1 ] && {
echo $1 is character device
exit
}
[ -b $1 ] && {