shell常用过滤参数及经典案例脚本

[root@centos2 ~]# a=’ ’
[root@centos2 ~]# echo KaTeX parse error: Expected 'EOF', got '#' at position 9: {a:+OK} #̲如果a为有值则返回OK [ro…{b}a KaTeX parse error: Expected 'EOF', got '#' at position 15: {f}" t.txt #̲在变量b后加入变量f的内容 e…{aa}" t.txt #aa变量精确匹配
sed -i “/c/ s/$/000/” t.txt #在t.txt文本中包含c字母那行的行未加上000

find ./ -iname a.txt #不分大小写找
find ./ -atime -n #多少天以内访问过 (把成mtime是修为时间,ctime为更改属性时间)
find ./ -atime +n #多少天以前访问过 (把成mtime是修为时间)
find ./ -empty #找空文件
find ./ -user root #查root用户文件
find ./ -type f -name “.txt" -exec mv {} {}.bak ; #批量改文件后缀
rename .c .h .c #批量改后缀
find ./ -type f -name "
.txt" -exec tar -cvf 1111.tar.gz {} + ; #批量压缩
pgrep -l hci0 |wc -l #计算hci0进程数量
egrep “root | avahi” #可过滤两个关键字
sed “s/[0-9]//g” #删除所有的数字
sed -n ‘$p’ #取最后一行,如果是双引号就要转义$ sed里面的
$ ( { 都要转义
sed “s/ //g” #去除空格
date -d “-1 day” +”%F %T" #一天以前的时间
seq -w 01 09 #取01-09数字
awk -F ‘:’ '{print KaTeX parse error: Expected 'EOF', got '}' at position 3: NF}̲' #NF取最后一列
cat 11.log |awk -F":" ‘$2>90 {print $1 “\t” $2}’ #awk重要写法
sar -n DEV 2 2 |egrep “eno”|awk ‘END {print “rx=” $58000 “kbps” “\n” “tx=” $68000 “kbps” }’
#上面取网卡的上传和下载速度
ip addr show dev eno16777736 |grep “inet” |awk ‘{print $2}’|sed -n ‘1p’ #取网卡ip
mysql -uroot -h localhost -padmin -Bse “show databases” #直接查看数据库存

以下为创建用户和组

users(){
userss=(sales devs dply)
for i in `echo "${userss[@]}"`
do
        groupadd ${i}
        if [ "$?" -eq "0" ];then
                for a in `(seq 1 2)`
                do
                        useradd -M -s /sbin/nologin  -g $i $i$a
                done
        else
                echo "your input error..."
                return 1

        fi
done
}

Main(){
        users
        if [ "$?" -eq "1" ];then
                exit 1
        fi
}

Main

你可能感兴趣的:(shell,笔记,linux)