- awk 命令
删除重复的、非连续的行`awk ‘! a[$0]++‘`
awk 使用特殊分隔符分隔列
echo "192.168.102.134" | awk -F . ‘{print $4}‘
- sed 命令
截取程序日志中某个时间范围内的文本sed -n ‘/^2015-05-14 15:32:30/,/^2015-05-14 16:12:09/p‘ access_log > log.txt
去除空白行的 sed
SECRET=`sed ‘/^$/d‘ file.txt | head -1`
通过 sed 替换字特殊字符
echo "12,34,56" | sed ‘s/,/ /g‘
通过 sed 替换二者之间的字符串内容
文件内容<server id="film-web" address="127.0.0.1" port="6881"> </server>
[[email protected] /]# cat test.txt <server id="film-web" address="127.0.0.1" port="6881"> </server> [[email protected] /]# sed -n "s/\( *server.*port=\"\).*\(\".*\)/\1abc\2/p" test.txt <server id="film-web" address="127.0.0.1" port="abc"> </server> [[email protected] /]# sed -n "s/\( *server.*address=\"\).*\(\" *port\)/\1abc\2/p" test.txt <server id="film-web" address="abc" port="6881"> </server>
注:sed 里,使用圆括号括起来的内容,可以看做是变量。使用 \ 1 和 \ 2 来输出。
参见:http://coolshell.cn/articles/9104.html 圆括号匹配
sed "s/abc/123/g" test.txt 将abc替换为123 - grep 命令
查找文本内容,剔除.jar、.log文件grep -i -r --exclude=*.jar --exclude=*.log abc /home/
查看 tomcat 日志特定内容
cat catalina.out | grep timecost | grep FamilyController | awk ‘{if($10 > 100) print $0}‘
查看 tomcat 某天日志
tail -800000 catalina.out | grep 2016-05-20 > 2016-05-20.log
grep或操作
grep -E "pattern1|pattern2" file.txt egrep "pattern1|pattern2" file.txt
grep非操作
grep -v ‘pattern1‘ file.txt
- ps 命令
cpu / 内存占用率排序ps auxw --sort=%cpu ps auxw --sort=%mem
查看端口占用
lsof -i:8080 ps -aux | grep java ps -aux | grep pid
- kill 命令
批量关闭进程kill -9 `ps -ef | grep QQ | grep -v ‘grep‘ | awk {‘print $2‘}`
- vim 命令
vim 显示 / 隐藏行号:set nu 或 :set number :set nonu 或 :set nonumber
vim 替换指定区域匹配文本
: 10,20 s/10.13.92.1/10.13.92.2/g
- date 命令
打印时间echo `date ‘+%Y-%m-%d %H:%M:%S‘`
时间显示
date date ‘+%Y-%m-%d %H:%M:%S‘
- tar 命令
tar 打包文件,exclude 选项排除指定文件或目录## 将当前目录文件打包为pak.tar.gz,排除logs文件夹 tar zcvf ../pkg.tar.gz * --exclude=*.txt --exclude=logs
- bashrc 和 profile 的区别
https://wido.me/sunteya/understand-bashrc-and-profile
时间: 2024-11-03 15:02:54