如今程序员生产的程序99%都部署在linux环境下,程序发现缺陷,程序员的第一反应是到 Linux 上拉日志下来看。程序员不是运维,不需要掌握非常多复杂命令。
推荐终端
- SecureCRT
- xshell
- MobaXterm
常用命令⭐
- ls/ll
- cd
- mkdir
- rm
- cp
- mv
- ps
- top / htop
- grep
- kill
- free
- tar
- netstat
top⭐
显示系统中各个进程的资源占用状况,可以看是否有 CPU 占用过大的进程。
查看进程PS
ps -ef | grep xxx (例:如何查看所有xx进程)
ps -aux | grep xxx(-aux显示所有状态)
cat、less 、 more、tail ⭐
cat:是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况;
more: 顾名思义显示更多
less: 由于more不能后退,就取more的反义词less加上后退功能;所以Linux里流传着这样一句话:“less is more”.
more 和 less的区别
- less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
- less不必读整个文件,加载速度会比more更快
- less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容
tail
tail -f *.log : 适用于实时查看日志,开发环境还行,生产就算了,日志会很多。
tail -f error.log :生产中一般用这个实时看异常日志
-f :循环读取 ,用于查阅正在改变的日志文件。
netstat⭐
用于显示网络状态,可能没有安装,可以通过yum安装:yum install net-tools
-a (all)显示所有选项,netstat默认不显示LISTEN相关 -n 拒绝显示别名,能显示数字的全部转化成数字。(重要) -r 显示路由信息,路由表 -e 显示扩展信息,例如uid等 -s 按各个协议进行统计 (重要)
grep 查找⭐
grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。
常见例子
grep -r ‘关键字如商品ID’ *.log (使用频率最高)
grep ‘关键字如商品ID’ *.log | grep 免费商品(在管道符前条件结果中,在加条件筛选下)
grep ‘关键字如商品ID’ *.log » anan.txt (相关日志输入到一个txt中,下载到本地慢慢看)
grep -n 2019-10-24 00:01:11’ *.log 可以查找 *.log文件中,查到时间内的所有信息
查找特定文件 find
find ~ -name “需要查找的文件名”
管道操作符 |
可将指令连接起来,前一个指令的输出作为后一个指令的输入
杀僵尸进程
ps -ef | grep java 【先查java进程ID】
kill -9 java进程ID 【生产环境谨慎使用】
对文件内容做统计 awk ⭐
依次处理文件的每一行,并读取里面的每一个字段,可用作统计。
$ awk 动作 文件名
批量替换 sed
sed 配合正则表达式批量替换文本内容