程序员的日常 - 必备Linux常用指令(实例)

后端开发人员必备的linux常用命令清单与实例,这是我在公司给团队小伙伴一次技术小分享。内容深入浅出,简单明了,放出来给大家分享。新手司机可以收藏、学习,老司机可以批评指正。

(
本文持续更新中^_^)

系统信息监控/查看

  • psProcess Status的缩写,ps命令用来列出系统中当前运行的那些进程的快照。

    • -a 显示同一终端下的所有程序
    • -A 显示所有进程
    • -e 等于“-A
    • -f  显示程序间的关系,pid & ppid
    • -H 显示树状结构
    • -u  指定(当前)用户的所有进程
    • 示例

      • ps -ef
      • ps -aux
  • top 性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

    top - 14:06:23 up 70 days, 16:44,  2 users,  load average: 1.25, 1.32, 1.35
    
    Tasks: 206 total,   1 running, 205 sleeping,   0 stopped,   0 zombie
    
    Cpu(s):  5.9%us,  3.4%sy,  0.0%ni, 90.4%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
    
    Mem:  32949016k total, 14411180k used, 18537836k free,   169884k buffers
    
    Swap: 32764556k total,        0k used, 32764556k free,  3612636k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                
    
    28894 root      22   0 1501m 405m  10m S 52.2  1.3   2534:16 java
  • netstat 查看访问网络连接状态

    • -a–all 显示所有连线中的Socket
    • -n–numeric 直接使用IP地址,而不通过域名服务器
    • -p–programs 显示正在使用Socket的程序识别码和程序名称
    • -t–tcp 显示TCP传输协议的连线状况
    • -u–udp 显示UDP传输协议的连线状况
    • 示例

      • netstat -apn | grep 8080
      • netstat -apnt | grep 8080

编辑器

  • vi 编辑器常用命令

    • 编辑 a
    • 查看

      • /word
      • 查找上一个 n
      • 查找下一个 N
    • 替换

      • xxx
    • 撤回、重做 uctrl + r
    • 复制

      • 从光标当前位置开始 v
      • 从光标当前行开始 V
    • 粘贴

      • p
    • 删除

      • 字符 xX
      • 单词 diwdaw
      • dd
    • 添加行

      • 上一行 O
      • 下一行 o
    • 翻页 ctrl + d, ctrl + u
    • 显示行号 :set nu
    • 显示当前行信息 ctrl + g
      • 0
      • $
      • 第一行 gg
      • 最后一行 G
      • (
      • )
      • {
      • }
    • 屏幕

      • 上滚 ctrl + v
      • 下滚 ctrl + e
      • 上半屏 ctrl + u
      • 下半屏 ctrl + d
      • 上滚整屏 ctrl + b
      • 下滚整屏 ctrl + f
    • 保存退出

      • w 保存
      • q 退出
      • q! 不保存,强制退出

磁盘文件有关

  • df 检查linux服务器的文件系统的磁盘空间占用情况

    • -T 文件系统类型
    • -h 方便阅读方式显示,1K=1024
    • -H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
    • -l 只显示本地文件系统列表
    • -k 区块为1024字节
    • -a 全部文件系统列表
    • 示例

      • df -hl 查看当前目录下所有目录、文件的大小
  • du 查看文件和目录磁盘使用的空间

    • -a 显示当前目录以及子目录下所有的文件大小
    • -h 自动转换单位 M,GB
    • -s 统计总大小
    • 示例

      • du -a
      • du -sh 当前目录大小
  • find 查找文件,配合正则使用更佳

    • -name 名字
    • -size 大小
    • -type 类型
    • 示例

      • find /home/server -name server.xml 查找/home/server下名字为server.xml的文件
      • find . -type d | sort 查找当前所有目录并排序
      • find . -size +1000c -print 查找当前目录大于1K的文件
  • tail 从指定点开始将文件写到标准输出

    • 示例

      • tail -20f app.log
  • tar 打包工具

    • -c 新建压缩文件,与 x 逆操作
    • -v 显示操作过程
    • -f 指定压缩文件
    • -x 解压缩文件 与 c 反向操作
    • -z 支持gzip解压文件
    • 示例

      • tar -xvf name.tar.gz 解包
      • tar -cvf name.tar.gz /dir 打包,未压缩
      • tar -zxvf name.tar.gz 解包,gzip解压缩
      • tar -zcvf name.tar.gz /dir 打包,gzip压缩
  • grep 文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行信息打印出来。

    • -A 前多少行,不包括当前行
    • -B 后多少行,不包括当前行
    • -C 前后多少行,不包括当前行
    • -c 统计行数
    • -i 忽略大小写
    • 示例

      • grep -C 10 keywords fileName.log 在文件fileName.log查找关键词keywords前后10行
  • wcWord Count 缩写,统计指定文件中的字节数、字数、行数,并将统计结果显示输出

    • -c 统计字节数
    • -l 统计行数
    • -m 统计字符数。这个标志不能与 -c 标志一起使用
    • -w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
    • -L 打印最长行的长度
    • 示例

      • wc -m
  • xargs 替换工具,读取输入数据重新格式化后输出。简单的理解就是通过指定的分隔符(默认空格)切割(split)字符串,然后把处理后的多列数据作为参数,作为下一个指令的参数传入。

    • -a--arg-file=FILE 从指定文件读取内容
    • -d--delimiter=CHARACTER 指定分隔符,默认空格
    • -n 多行显示,指定一行显示的列数
    • 示例

      • echo '--help' | xargs catcat --help
      • jps | awk '{print $1}' | xargs kill -9 关闭所有Java进程

用户相关操作

  • su – 或 su - root 切换到root用户
  • exit 退回到上一个用户
  • whoami 查看当前用户
  • useradd 添加用户,所有用户在配置文件:/etc/passwd

    • -g 组别编号,缺省时表当前用户组
    • -u 用户编号
    • -d 家目录,默认在/home
    • 示例

      • useradd -g 666 -u 666 -d /home/Aron Aron 新建Aron用户
  • user modify 修改用户

    • -g 组编号
    • -u 用户编号
    • -d 家目录
    • -l 新名字
    • 示例

      • usermod -g 666 -u 666 -d /home/Aron -l Aron2 Aron 注意修改家目录时需要手动创建
  • userdel删除用户

    • -r 删除用户同时删除其家目录
    • 示例

      • userdel Aron
      • userdel -r Aron 删除用户同时删除其家目录
  • 设置用户密码

    • 示例

      • passwd Aron
  • chmodchange mode,改变文件模式。

    • 语法chmod [-cfvR] [--help] [--version] mode file...,其中,mode是权限设定字串,格式为[ugoa...][[+-=][rwxX]...][,...],说明:ugoa 中的u为当前用户,g当前用户组,o其他用户组,a所有用户
    • -c 若该文件权限确实已经更改,才显示其更改动作
    • -f 若该文件权限无法被更改也不要显示错误讯息
    • -v 显示权限变更的详细资料
    • -R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
    • 示例

      • chmod ugo+r file1.txt 将文件file1.txt设置为所有人可读
      • chmod u+r,g+w,o+r file1.txt将文件file1.txt设置为当前用户可读,同组可写,其他组可读
      • chmod -R a+rw /home/server 将目录/home/server以递归形式设置为所有人可读写
  • chgrpchange group改变用户组,语法chgrp [-R] newGroup fileOrDirector

    • -R 递归方式查找子目录
    • 示例

      • chgrp Aron app.java
      • chgrp -R Aron /data
  • chownchange owner改变拥有者

    • 只改拥有者,语法chown [-R] newUser fileOrDirector
    • 修改拥有者,同时修改用户组,语法 chown [-R] newUser:newGroup fileOrDirector
    • 示例

      • chown Aron app.java
      • chown Aron:AronGroup app.java
    原文作者:Aron
    原文地址: https://segmentfault.com/a/1190000016376773
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞