Linux后台研发超实用命令总结

作者 码龙喵 转载请注明出处

1.概述

计算机领域水太深了,不可能什么都记住,所以只需要理解并记住核心的原理,其他的交给网络,用的时候查一下就可以了。因此整理了平时工作中自己觉得好用的命令。

2.系统相关

  • 查看手册命令

man

  • 只查看当前下一级目录占用大小

du --max-depth=1 -h

  • 查看某个进程是否在运行

ps -ef | grep prog | grep -v grep

pgrep prog

  • 查看内存统计

free -m

  • 查看系统任务运行情况(类似window的任务管理器)

top

  • 根据内存或者CPU占用对进程排序

    • 内存排序:执行top,然后按“shift + m”,这时进程就会按照内存占用从大到小排序。

    • CPU排序:执行top即可,top默认是按照CPU占用排序,也可以执行“shift + p”从内存大小排序转换为CPU排序。

  • 查看系统CPU占用情况

mpstat -P ALL 2

  • 查看系统io,内存,swap分区,cpu等汇总统计信息

vmstat 2

  • 查看系统tcp连接情况

netstat -anpt

3.进程相关

  • 杀掉所有某个程序的所有进程

killall program

  • 强杀一个指定pid的进程,江湖俗称“酒杀”,一杀必中

kill -9 pid

  • 查看某个程序的所有进程

pidof program

  • 查看指定pid的进程的运行时加载的环境变量

cat /proc/pid/environ | tr -s '0' 'n'

  • 通过pid查看对应的执行文件(这对查看来历不明的进程有帮助)

lsof -p pid | grep txt

  • 查看指定pid的进程内存地址空间映射(查看进程运行时实际加载的是那个库)

pmap -x pid

  • 查看程序的符号表(排查编译连接失败,调用异常等问题很好用)

nm file

readelf -s file

  • 查看指定pid的进程线程关系树(查看某个开源程序是否是多线程模型)

pstree -p pid

  • 查看指定pid的进程打开的文件

lsof -p pid

  • 查看指定pid的进程当前运行时的堆栈

pstack pid

  • 查看指定pid的进程当前在执行的系统调用

strace -p pid

  • 查看指定pid的进程当前在执行的库调用

ltrace -p pid

  • 查看指定程序依赖的动态链接库

ldd program

4.运营调试相关

  • 从一堆文件中查找包含某个字符串的文件(编译一堆文件时有变量冲突时特别好用,可以快速定位在那些文件中声明了相同的变量)

find ./ -type f -name ".c" -o -name ".h" | xargs grep "strings"

  • 查看文件被那些进程打开(对查看库被那些进程使用,在你要修改一个基础库在评估影响范围的时候就很好用)

fuser -v filename

lsof filename

  • 对字符串求MD5值或者SHA1值(验证程序MD5和SHA1算法时特别有用)

echo -n "abcde123" | md5sum

echo -n "abcde123" | sha1sum

  • linux shell中如何快速查询历史命令

ctrl + r

  • 查看执行历史带详细时间

export HISTTIMEFORMAT="%F %T whoami "

history

  • c++函数符号转换成c模式工具

c++filt

  • gdb设置打印完整字符串

set print element 0

  • scp跨主机远程拷贝

scp src user@host:dest

  • ssh登录远程主机

ssh user@host

  • 返回当前用户的home目录

cd

cd ~

  • 返回上一个目录

cd -

  • 删除当前输入的命令

ctrl + u

  • 中断当前命令的输入或者中断当前在执行的前台程序

ctrl + c

  • 强制退出当前命令的执行,有时执行ctrl + c无用时采用

ctrl + \

  • 实时查看日志文件的输出(只要日志有更新就能看到且是实时的)

tail -20f /home/xxx/log/yy.log

  • 测试web服务工具

curl

wget

  • 打包压缩命令

tar -zcvf test.tar ./*

  • 解包解压命令

tar -zxvf test.tar

5.写在最后

后续我会写一系列关于Linux后端研发的文章,为大家展示如何一步一步构建一个真正的Linux后端集群服务,记录一个“Linux C/C++后端研发菜鸟成长记”。

转:https://segmentfault.com/a/1190000008820785

相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个健康类的公众号,欢迎关注
小青桔健康