Linux常用命令总结(持续更新,最近更新2021-9-7)
1. 过滤掉空行和注释行
$ grep -Ev '^$|[#;]' filename
2. 杀死僵尸进程
$ ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9
3. 生成随机数
$ openssl rand -base64 8
$ openssl rand -base64 80
4. 查看CPU核数
$ cat /proc/cpuinfo| grep "processor"| wc -l
5. 统计访问Nginx的IP数
$ awk '{print $1}' access.log | sort -n | uniq | wc -l
6. 对一列数字求和
$ seq 1 5 | awk '{sum+=$1} END{print sum}'
7. 统计每个用户的进程占用了多少内存
$ ps -aux | awk 'NR!=1{a[$1]+=$6} END {for (i in a) print i ", " a[i]/1024"M";}'
8. 释放内存
$ echo 1 > /proc/sys/vm/drop_caches # 释放页缓存
$ echo 2 > /proc/sys/vm/drop_caches # 释放目录和inodes
$ echo 3 > /proc/sys/vm/drop_caches # 释放所有缓存
9. vim常用操作
ctrl + d
:向下翻半页ctrl + u
:向上翻半页ctrl + 4
:光标移到一行最左端ctrl + 6
:光标移到一行最右端zz
:让光标所在行处于屏幕中央zt
:让光标所在的行居屏幕最上面zb
:让光标所在的行居屏幕最下面ctrl + G
:移动到文件末尾gg
:移动到文件首行u
:撤销最近一次的操作y
:复制当前行,会复制换行符yy
:只复制当前行内容yyp
:复制当前行到下一行ddp
:当前行和下一行交换位置
10. vim替换操作
# 替换当前行第一个tom为jerry
:s/tom/jerry/
# 替换当前行所有的tom为jerry
:s/tom/jerry/g
# 替换从第n行到最后一行中,每一行的第一个tom为jerry
:n,$s/tom/jerry/
# 替换从第n行到最后一行中,每一行的每个tom为jerry
:n,$s/tom/jerry/g
11. 在shell中发起一个curl带变量的post请求
有时候,需要在shell中用curl命令发起一个post请求,请求数据是json格式并且json的字段名和值都是变量,这时候可以这样做:
#!/bin/bash
username="syushin"
password="123456"
curl http://192.168.1.10:8888/login.html \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": '"username"',
"pwd": '"password"'',
}'
变量格式: '"变量名"'
12. 批量删除文件
$ find ./ -type f -name "*.txt" | xargs rm
$ find ./ -type f -name "*.txt" -exec rm -f {} \;
$ find ./ -type -f -name "*.txt" -delete
13. 批量备份文件
[root@web syushin]# ls
1.txt 2.txt 3.txt 4.txt 5.txt backup
[root@web syushin]# ls backup/
[root@web syushin]# find ./ -type f -name "*.txt" | xargs -i cp -a {} backup/
[root@web syushin]# ls backup/
1.txt 2.txt 3.txt 4.txt 5.txt
14. date命令去掉无用的0
比如日期 2021-09-07
,去掉0就变成了 2021-9-7
,只需要在 %m 中间加 -
即可,如下:
$ date +%Y-%m-%d
2021-09-07
$ date +%Y-%-m-%-d
2021-9-7