linux常用指令汇总(持续更新)

  • 某个字符串被哪些文件包含
find /opt/ylbzj/renkoudata/ -name  "cbry_child*.txt"|xargs grep 130982199906081155
  • 输出当前目录文件夹大小
du -h --max-depth=1  2>/dev/null  | sort -hr 
  • 检查端口是否占用
netstat -ntlp|grep 8823
  • 检查是否安装了epel
rpm -qa|grep epel
  • 替换文件中的字符
简单替换
sed -i 's/原字符串/新字符串/g' /home/1.txt
批量替换(grep '需要替换的字符' -rl 路径|xargs sed -i 's/原始字符/新字符/g')
mac替换命令如下,需要增加一个空字符,空字符表示不备份文件,如果为其他值表示将源文件备份为引号中的文件名
sed -i "" 's/shardkey=auther_no//g' *
grep '123456:8089' -rl . |xargs sed -i 's/123456/111.63.208.5/g'
打印passwd的3到10行 
sed -n '3,10'p passwd
打印passwd 中包含 ‘root’ 的行 
sed -n '/root/'p passwd
删除passwd 的15行以及以后所有行 
sed '15,$'d  passwd
删除passwd中包含 ‘bash’ 的行 
sed '/bash/'d passwd
替换passwd 中 ‘root’ 为 ‘toor’ 
sed 's/root/toor/g' passwd
替换passwd中 ‘/sbin/nologin’ 为 ‘/bin/login’ 
sed 's#sbin/nologin#bin/login#g' passwd
删除passwd中5到10行中所有的数字 
sed '5,10s/[0-9]//g' passwd
删除passwd 中所有特殊字符(除了数字以及大小写字母) 
sed 's/[^0-9a-zA-Z]//g' passwd
把passwd中第一个单词和最后一个单词调换位置 
sed 's/\(^[a-zA-Z][a-zA-Z]*\)\([^a-zA-Z].*\)\([^a-zA-Z]\)\([a-zA-Z][a-zA-Z]*$\)/\4\2\3\1/' passwd
把passwd中出现的第一个数字和最后一个单词替换位置 
sed 's#\([^0-9][^0-9]*\)\([0-9][0-9]*\)\([^0-9].*\)\([^a-zA-Z]\)\([a-zA-Z][a-zA-Z]*$\)#\1\5\3\4\2#' passwd
把passwd 中第一个数字移动到行末尾 
sed 's#\([^0-9][^0-9]*\)\([0-9][0-9]*\)\([^0-9].*$\)#\1\3\2#' passwd
在passwd 20行到末行最前面加 ‘aaa:’ 
sed 's/^.*$/&aaa/' passwd
  • 查看文件行数
wc -l 文件名
  • 网络抓包命令 抓tcp的80端口输出到 captcha22.cap
tcpdump -tttt -s0 -X -vv tcp port 80 -w captcha22.cap
  • 从当前目录查找包含特定内容的文件
## 不区分大小写列出内容和文件
find .|xargs grep -ri '特定内容'
## 只列出文件
find .|xargs grep -ril '特定内容'
  • 查找文件
## 查找文件和文件夹 / 可替换为特定目录 如:/opt
find / -name 'filename'
## 查找文件夹
find / -name 'path' -type d
## 查找文件
find / -name 'fileName' -type f
##查找20天之前有修改的文件 ,后面增加 |xargs rm -rf 将会删除所有检索到的文件
find  / -mtime +20
  • 查询某个字符在文件中出现的次数
grep "INSERT INTO" db.sql -o |wc -l
  • 从文件第N行开始检索数据
// tail -n + 从第N行开始检索,head -n 取前N行
 cat  log.txt|tail -n +1000|head -n 20 
  • 查看io、cpu状态
-c 代表cpu状态 -x 查看设备使用率%util、响应时间await  -k 查看吞吐量,一般-x就够用了
iostat -x -k -c  2 10
  • 查看gc情况
jstat -gcutil pid 间隔 次数
例子
jstat -gcutil 56592 1000 100
## 打印堆栈信息
jstack 126919
  • awk 简易命令
## -F 后面跟分割符,NR 表示打印行号, $n 表示打印第N列
awk -Fpartition  '{print NR $2}'
## 打印第二行第二列
awk -Fpartition  'NR==2{print NR $2}'
## 打印最后一行
awk -Fpartition  'END{print}'
##满足计算列,并输出全部内容
cat log-2023-04-23.log|grep "queryById" |awk -F "|" '$9>10000 {print}'
##某些情况下计算列并不完全是数字,需要做预处理才能进行筛选,比如说结果为`2350,result`,先使用gsub替换,然后再做比较
cat log-2023-04-23.log|awk -F "=" ' { gsub(/,result/,"");print}'|awk -F "=" '$2>1000 {print}'
  • maven命令
## 强拉本地仓库,用于解决一些莫名其妙拉不到包的情况
mvn dependency:purge-local-repository
  • 从binlog中筛选某段时间的执行记录,并指定库名,最好加上grep方便定位具体内容
./mysqlbinlog --base64-output=decode-rows -vv -d waring_center --start-datetime='2023-09-02 08:29:01' --stop-datetime='2023-09-02 08:32:01' /opt/ylbzj/mysql/data/mysql-bin.000042 |grep UPDATE

你可能感兴趣的:(linux常用指令汇总(持续更新))