用得到用不到写起来

linux 和 shell

1.获取随机数

expr $[$RANDOM%150] +1  

%150 取余范围 150 RANDOM 随机数

2.linux 启动过程 简

内核的引导。
运行 init。
系统初始化。
建立终端 。
用户登录系统。

3.统计日志 前10的ip访问 cat /var/log/nginx/access.log|awk '{print $1}'|sort|uniq -c|sort -n -r|head -10

扩展

sort命令: 短参数 长参数 说明 -n – number-sort 按字符串数值排序,与-g区别为不转为浮点数 -r –reverse 降序排序,默认为升序

-g –general-number-sort 按通用数值排序,支持科学计数法 -f –ignore-case 忽略大小写,默认大小写字母不同 -k –key=POS1[,POS2] 排序从POS1开始,若指定POS2,则POS2结束,否则以pos1排序 -t –field-separator=SEP 指定列的分割符 -h –human-numeric-sort 使用易读性数字(例如: 2K 1G) -u –unique 去除重复的行 -o –output=FILE 将输出写入文件


uniq命令

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]
-c或--count 在每列旁边显示该行重复出现的次数。
-d或--repeated 仅显示重复出现的行列。
-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
-u或--unique 仅显示出一次的行列。
-w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
--help 显示帮助。
--version 显示版本信息。
[输入文件] 指定已排序好的文本文件。如果不指定此项,则从标准读取数据;
[输出文件] 指定输出的文件。如果不指定此选项,则将内容显示到标准输出设备(显示终端)。

awk 命令 https://www.cnblogs.com/ginvip/p/6352157.html

3.批量添加用户

function main(){
    for i in {1..20}
    do 
       username=user$i
       passwd="user`cat /dev/urandom  | head -1 | md5sum | head -c 5`"
       useradd $username 
       echo "$username:$passwd" | passwd --stdin $username
       echo "$username--$passwd" >> user.txt
    done
}

批量删除

function main(){
    users=`cat /etc/passwd | grep "^user" |awk -F ":" '{print $1}'`
    for user in $users
    do
       userdel -r $user
       ret=$?
       if [ $ret -eq 0 ];then
           echo "delete $user successful"
       else
           echo "delete $user failed"
       fi
    done
    cat /etc/passwd | grep "^user" |awk -F ":" '{print $1}' &>> /dev/null
    if [ $? -eq 0 ];then
           echo "delete users successful"
    else
           echo "delete users failed"
    fi
}

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:http://kkxl95.cn/article/1613994312/