美文网首页学习todolinux学习
Linux后台研发超实用命令总结

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

作者: Linux后端研发工程实践 | 来源:发表于2017-03-21 13:02 被阅读3009次

    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++后端研发菜鸟成长记”。

    传送门 后端研发菜鸟成长记 第一章 入门 之 云服务器

    相关文章

      网友评论

      本文标题:Linux后台研发超实用命令总结

      本文链接:https://www.haomeiwen.com/subject/retgnttx.html