Linux后台研发命令总结

Linux后台研发命令总结

1.系统相关

  • 查看手册命令:

    man ls  #查看ls手册
    
  • 只查看当前下一级目录占用大小

    du --max-depth=1 -h #-h选项表示以人类的方式显示
    
  • 查看某个进程是否在运行

    ps -ef | grep prog | grep -v grep
    pgrep prog		
    
  • 查看内存统计

    free -m
    
  • 查看系统任务运行情况

    top  #按shift+m是按照内存排序,Shift+p是按照CPU排序
    
  • 查看系统CPU占用情况

    mpstat -P ALL 2
    
  • 查看系统io,内存,swap分区,CPU等汇总统计信息

    vmstat 2
    
  • 查看系统tcp连接情况

    netstat -anpt
    

2.进程相关

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

    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的进程当前运行时的堆栈

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

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

    ltrace -p pid
    
  • 查看指定程序依赖的动态链接库

    ldd program
    

3.运营调试相关

  • 从一堆文件红查找包含某个字符串的文件

    find ./ -name \*.md #当前目录下查找所有后缀为.md的文件
    
    locate \*.md  #查找后缀为.md的文件
    
    whereis python  #显示python的位置
    
  • 查看文件被哪些进程打开

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

    echo-n "abcde123" |md5sum
    echo -n "abcde123" | sha1sum
    
  • 快速查询历史命令

    Ctrl + r
    
  • 查询执行历史,带详细时间

    export HISTORYFORMAT="%F%T whoami"
    history
    
  • c++函数符号转换为c模式工具

    c++filt
    
  • gbd设置打印完成字符串

    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
    

4 文件和目录管理基本指令

  • ls命令

    ls [选项] [目录或文件]
    选项:
    -a:显示指定目录下所有子目录与文件,包含隐藏文件
    -l:显示文件的详细信息
    -d:显示目录
    -R:查看多个子目录的内容
    -1:以单独一列显示内容
    -r:倒序输出
    -m:以逗号分割
    -F:显示文件的类型   *表示可执行文件,/表示目录,没有后缀表示就是一个普通文件
    --color:用不同颜色显示
                    默认的shell文本颜色 普通文件
                    绿色 可执行文件
                    蓝色 目录
                    紫红色 符号链接文件
                    黄色 管道(FIFO)
                    紫红色 套接字(socket)
                    红色 压缩文件( .tar 、 .zip 、. deb 、 .rpm )
                    紫红色 图片文件( .jpg 、 .gif 、 .png 、 .tiff )
                    紫红色 音频文件( .mp3 、 .ogg 、 .wav )
    -X:按扩展名字母排序
    -t:按日期和时间排序
    -S:按文件大小排序
    -h:用K、M、G显示文件大小
    #例子
    ls -dl
    
  • cd命令

    cd [directory]
    
    #例子
    cd /etc
    cd
    cd .. #返回上一级目录
    cd - #返回到以前的位置
    
    
  • pwd命令

    pwd #显示当前工作目录的路径
    
  • mkdir命令

    #作用:创建一个空目录
    #语法:
    mkdir [选项] 目录名
    
    #选项:
    -m:在创建新目录的同时设置目录权限,默认权限是755
    -p:在创建新目录时,若所要创立的目录的上层目录目前尚未建立,则会一并建立上层目录
    
    #例子
    mkdir -p /p1/p2
    
    
  • touch命令

    #作用:
    修改文件的创建日期或以当前系统日期创建一个空文件
    #语法:
    touch file1 file2 ...
    #例子
    touch #创建新的空文件
    touch a.txt
    touch -t 202005080301 a.txt #将文件a.txt的访问时间修改为2020年5月8号3点2分
    
  • cp命令

    #作用:
    把一个或多个源文件复制到目标目录
    #语法:
    cp [选项] 源文件或目录 目标文件或目录
    #选项
    -f:如果目标文件已经存在,不提示而覆盖
    -i:覆盖既有文件之前先询问用户
    -p:把修改时间和访问权限也复制到新文件中
    -r:如果源文件是一个目录,将递归复制该目录下所有的子目录和文件,此时目标文件必须是一个目录名
    -v:显示执行过程
    -a:复制文件到其他目录以作为完整的备份
    
    #例子
    cp a.txt /etc/123/b.txt
    
  • mv命令

    #作用:
    将文件重命名或将文件由一个目录移动到另一个目录中
    #语法
    mv [选项] 源文件或目录 目标文件或目录
    
    #选项
    -f:如果目标文件已经存在,不提示而覆盖
    -i:和f选项相反
    
    #例子
    mv a.txt x.txt
    
  • rm命令

    #作用
    删除一个目录中的一个或者多个文件或目录
    #语法
    rm [选项] 文件
    -f:不需确认地删除多个文件,可带通配符
    -r:将参数中列出的全部目录和子目录均递归地删除
    -i:进行交互式删除
    -v:显示执行过程
    -r:递归删除
    
    #例子
    rm -rf /etc/123/b.txt
    
    
  • rmdir命令

    rmdir mypictures #报错,rmdir只能删除空目录
    
  • cat命令

    #作用
    在屏幕上显示文件内容,或者连接两个或多个文件
    #语法
    cat [选项] 文件名
    
    #例子
    cat /etc/wj.txt
    
  • which命令

    #作用
    显示应用程序文件的位置
    #语法
    which [文件名]
    
    which touch
    
  • whereis命令

    #作用
    显示指定命令或文件的帮助信息
    #语法
    whereis 文件名
    
    #例子
    whereis mkdir
    

    注意:和which的区别,简单来说whereis显示的内容要多于which,因为which仅仅显示程序文件的位置

  • grep命令

    #作用
    从一个文件中找出匹配指定关键子的行,并送到标准输出
    #语法
    grep [选项] 匹配模式 [文件]
    
    #例子
    rpm -qa |grep vim
    
  • gzip命令

    #作用
    文件压缩或者解压缩,不支持对目录进行亚索,如果对目录进行压缩,要先打包再压缩
    #语法
    gzip [选项] [文件名]
    #选项
    -d:解压缩
    -n:指定压缩比1-9,不指定默认为6
    -c:将输出写到标准输出上,并保留原有文件
    
    #例子
    gzip a.txt #压缩
    gzip -d a.txt.gz9 #解压
    
  • whoami命令

    #作用
    输出当前用户名
    
    #例子
    whoami
    
  • su命令

    #作用
    switch user,切换用户,让某个用户蚕食以另一个用户的身份进行操作。
    
    #语法
    su username
    su -:不仅变更为root,而且还使用了root的环境变量
    
    #例子
    su root #切换到root用户,获得所有权
    
  • chmod修改权限

    #作用
    可以修改与文件或目录相关联的权限。
    
    #用户组及其缩写
    用户:u
    组:g
    其他:o
    
    #文件或目录的权限:
    读:r
    写:w
    执行:x
    
    #格式:
    chmod [ugo][+-=][rwx] file#想要修改的对象,添加或者删除或者完美匹配,要修改的权限
    
    #例子
    chmod g+w test.cpp#解释:给用户组增加对文件test.cpp的修改权限
    
    也可以用数字表示,其中格式是:
    chmod [拥有者权限:0-7][组权限:0-7][其他人权限:0-7] file
    读:4   写:2    执行:1
    最后的值是权限对应的数字和,比如可以读写就是4+2=6,只有读就是4,读和执行就是5
    
    
    
  • history查看历史指令

    #作用
    查看历史指令,指令会比较多,因此可以使用less指令一次只查看一个屏幕的内容
    #查看历史指令
    history
    #一次查看一个屏幕的内容
    history | less		
    
  • !!再次执行上一条指令

    #作用
    能查看命令历史文件,并运行其中的最后一条指令
    #例子
    pwd
    !!
    
  • !加数字指定运行第几条历史指令

    #作用
    运行历史的某一条指令,用history查看历史指令时,前面会给历史指令编号,只需要!加上指令编号,就能再次运行这个命令
    
  • !加字符串再次运行历史指令中最近包含字符串的指令

  • alias显示所有命令的别名

你可能感兴趣的:(Linux,linux,shell,系统指令,调试,后台研发)