按照时间生成文件‘2019.09.08.log' 将每天磁盘使用装填写入到对应日期的文件

df -h > $(date +%F)_log

统计Nginx日志中每个IP的访问量有多少,日志如下:

awk '{ips[$i]+=$11} END {for (i in ips) print i,ips[i]/1024/1024}' log.txt

计算Linux系统所有进程占用内存大小的和

# ps aux 第六列
pa aux|awk '{print $6}'|grep -v "RSS"

#!/usr/bin/bash
num=$(ps aux|awk '{print $6}'|grep -v "RSS")
sum=0
for i in $num
do 
    sum=$(($sum+$i))
done
echo "总值为$(( $sum/1024 )) M"

将文件.txt 改名为 txt.bak, 打包bak文件为123.tar.gz , 然后批量还原文件名字,删除bak


#!/usr/bin/bash

files=$(find /backup -type f -name "*.txt")
for file in $files
do 
    mv $file ${file}.bak
done
echo "改名成功"
# 打包
tar czf /backup/123.tar.gz $(find -type f -name "*.bak")

echo "压缩成功"

bakfiles=$(find -type f -name "*.bak")
for bak in $bakfiles
do 
    mv $bak ${bak%.*}
done
echo "还原成功"

把一个文本文档中前五行中白喊字母的行删除掉,同时把6到10行中的全部字母删除掉

sed -i "s#[a-Z]##g" aa.txt

linux 系统中是否有自定义用户,一共几个?

1. 查看/etc/passwd
2. 提取UID 和 /bin/bash
3. 判断UID 大于1000, 并且shell 为/bin/bash
#!/usr/bin/bash 
i=0
while read line 
do 
    user_uid=$(echo $line|awk -F ":" '{print $3}')
    user_shell=$(echo $line|awk -F ":" '{print $NF}')
    if [ $user_uid -ge 1000 -a $user_shell == "/bin/bash" ];then
        let i++
    fi 
    echo $user_uid, $user_shell
done</etc/passwd
echo "总共 $i个用户"

按单词出行频率降序排序

ss=the solid project procides a number of resources toassist users design,implement and supor squid installations. Please browsethe documentations and support sections for more infomation 
方法一
# 按单词降序排序
$ss | sed 's#[.,]# #g'|xargs -n1|sort|uniq -c|sort -nr
# 按字母降序排序
$ss|sed 's#[.,]# #g'|grep -o '[a-Z]'|sort|uniq -c|sort -nr 
方法二 awk
$ss|sed 's#[.,]# #g'|xargs -n1|awk '{code[$1]++} END {for (i in code) print code[i],j}'|sort -nr
$ss|grep -o '[a-Z]'|awk '{code[$1]++} END {for (i in code) print code[i],i}'|sort -nr

判断10.0.0.0/24 网络里,当前在线用户的IP 有哪些

#!/usr/bin/bash
for i in {1..254}
do 
    # 使用并发的方式
    {
    ip=10.0.0.$i
    ping -W1 -c1 $ip &>/dev/null
    if [ $? -eq 0 ];then
        echo "$ip is ok" >>ip.txt
    fi
    } &
done
    wait && cat ip.txt

正则表达式

# 特定字符
[[:space:]]  空格
[[:digit:]]  [0-9]
[[:lower:]]  [a-z]
[[:upper:]]  [A-Z]
[[:alpha:]]  [a-Z]
# 使用grep 取IP地址
ifconfig|grep 'inet'|egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
# 使用grep 取出 http1.0 http1.1
head -2 aa.log|grep -o 'HTTP/(1|2)\.(1|0)'|sort|uniq -c
# grep -v 排除
grep -vn '^$'  过滤空行
# 使用grep 排除配置文件中的空行和#开头的行
grep "^$" /etc/nginx/nginx.conf
egrep -v "(^$|^#|.*#)" /etc/nginx/nginx.conf
# 使用grep筛选出所有开启过的内容(所有都以字母开头)
egrep "^[a-Z]" /etc/zabbix/zabbix_agentd.conf

sed 文本处理

sed是一个流搬机器,非交互式的编辑器,一次处理一行内容。把当前处理的行存储在临时缓冲区中,用sed命令处理缓冲区中的内容,处理完后,送往拼命。
# sed支持增,删,改
# sed 命令格式  sed [option] 'command' files
# 选项参数
-e  允许多项编辑
-n 取消默认的输出
-i 直接修改对应文件
-r 支持扩展元字符
# sed 命令参数
a 在当前行后添加一行或多行
c 在当前行进行替换修改
d 在当前行进行删除
i 在当前行之前插入文本
p 打印匹配的行或指定行
n 读入下一输入行,从下一条命令进行处理 ! 对所选行以外的所有行应用命令

1. sed 的打印命令 p
sed -n '2p' passwd  # 打印第二行
sed -n '$p' passwd  # 打印最后一行
2. 追加命令 a
# 在37行添加一条记录, \t tab需要转义
sed -ri '37a \\t listen 8080;' nginx.conf
# vim nginx.conf +37  光标直接跳到37行
3. sed修改的命令
# 指定某行内容进行替换
sed -i '7c selinxu=disabled' /etc/selinux/config   # 第七行全部替换 
# 正则匹配内容进行替换
sed -i '/^selinux=/c selinux=disable' /etc/selinux/config
# 非交互式修改指定的配置文件
sed -ri '/userdns/c Userdnd no' /etc/ssh/sshd_config
4. sed 的删除命令 d
sed '3d' passwd
sed '3{d}' passwd
sed '3,$d' passwd
sed '$d' passwd
sed /mail/d passwd    # 正则匹配删除
4. sed 获取下一行命令 n
sed '/root/{n;d}' passwd  # 匹配root行,找到下一行进行删除
5. 方向选择命令
sed -r '3!d' /etc/hosts   #除了第三行都删除

sed 匹配替换

s  替换命令标志  g行内全局替换   i忽略替换大小写
# 替换每行中出现的一个root
sed 's/root/alice/' passwd
# 替换以root 开头的行
sed 's/^root/alice/' passwd
# 查找匹配的行,添加内容
sed -r 's/[0-9][0-9]$/& .5/' passwd
# 匹配包含root行进行替换
sed -r 's/root/alice/g' passwd
# 匹配包含root的行进行替换,忽略大小写
sed -r 's/root/alice/gi' passwd
# 后向引用, Roo替换成Roo-alice
sed -r 's#(Roo)#\1-alice#g' passwd
# sed 提取ip
ifconfig eth0|sed -rn '2s#(^.*inet) (.*) (net.*$)#\2 #gp'
# 替换建议使用# , 不需要转义
sed 's#/ect/test/123#/dev/null#g' 1.txt
# 删除所有字母
sed 's#[a-z]##g' a.txt
优质内容筛选与推荐>>
1、Django Rest Framework 视图和路由
2、Java从resources文件夹读取配置文件
3、微软发布.Net Core 3.0 RC1,最终版本定于9月23日
4、软件工程复习整理
5、使用showModalDialog时的两个关键东东


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号