Linux常用命令

作为Linux开发人员,这里是最常用的命令分类总结:

Linux开发人员常用命令全面分类

文件系统操作

  • ls - 列出文件和目录

    ls          # 简单列出文件和文件夹
    ls -l       # 详细列表,显示权限、所有者、大小等
    ls -a       # 列出所有文件,包括隐藏的配置文件
    
  • cd - 切换目录

  • pwd - 显示当前路径

  • cp - 复制文件/目录

  • mv - 移动/重命名文件

  • rm - 删除文件/目录

  • mkdir - 创建目录

    mkdir my_folder          # 在当前目录创建名为 ‘my_folder’ 的文件夹
    mkdir -p project/docs    # 创建嵌套目录(-p 确保父目录不存在时也会被创建)
    
  • rmdir - 删除空目录

  • touch - 创建空文件

  • find - 查找文件

    -name "pattern" - 按文件名匹配(区分大小写)
    
    -iname "pattern" - 按文件名匹配(不区分大小写)
    
    -regex "pattern" - 使用正则表达式
    
    # 在当前目录找所有 .js 文件
    find . -name "*.js"
    
    # 在 src 目录找所有 .ts 文件  
    find src -name "*.ts"
    
    # 不区分大小写找配置文件
    find . -iname "readme.md"
    
  • locate - 快速定位文件

    -i:忽略大小写
    
    -l N:只显示前 N 个结果
    
    -b:只匹配文件名(不匹配路径)
    
    -c:只显示匹配数量,不显示具体文件
    
    # 1. 快速找一个已知文件在哪
    locate settings.py
    
    # 2. 查看系统中有多少某种类型的文件
    locate -c ".gitignore"
    
    # 3. 找安装的软件在哪里
    locate nginx
    
  • ln - 创建链接

  • stat - 文件详细信息

    # 显示文件的详细信息
    stat filename.txt
    
    # 显示目录的详细信息
    stat /home/user
    

文本处理

  • cat - 查看文件内容

  • less/more - 分页查看文件

  • head - 查看文件头部

  • tail - 查看文件尾部

    # 查看最后10行(默认)
    tail filename.log
    
    # 查看最后20行
    tail -n 20 app.log
    
    # 实时追踪日志(非常实用!)
    tail -f app.log
    
    # 实时追踪并显示行号
    tail -fn 20 app.log
    
  • grep - 文本搜索

    # 在文件中搜索关键词
    grep "error" app.log
    
    # 搜索时忽略大小写
    grep -i "error" app.log
    
    # 显示行号
    grep -n "error" app.js
    
    # 在多个文件中搜索
    grep "TODO" *.js
    grep "TODO" *.js
    这里正则表达式不能用于文件匹配,但能用shell通配符:*匹配任意多字符,?指定一个字符。
    
    # 显示匹配行的前后内容
    grep -A 3 -B 2 "TODO" app.log    # 显示匹配行及前后3行、前2行
    
    # 搜索同时包含 A 和 B 的行
    grep "error" app.log | grep "timeout"
    grep -E "error|timeout" app.log
    
    # 搜索包含 A 但不包含 B 的行
    grep "error" app.log | grep -v "test"
    
    # 搜索 A 或 B
    grep "error" app.log; grep "warning" app.log
    
    
  • sed - 流编辑器

  • awk - 文本处理语言

  • sort - 排序

    # 按字母顺序排序
    sort file.txt
    
    # 按数字大小排序
    sort -n numbers.txt
    
    # 反向排序
    sort -r file.txt
    
    # 去重排序(同时去重)
    sort -u file.txt
    
  • uniq - 去重

    # 统计重复次数(最实用)
    uniq -c file.txt
    
    # 只显示重复的行
    uniq -d file.txt
    
    # 只显示唯一的行
    uniq -u file.txt
    
    # 忽略大小写
    uniq -i file.txt
    
  • cut - 字段提取

  • tr - 字符替换

  • wc - 统计行数/字数

文件编辑

  • vim/vi - Vim编辑器
  • nano - 简单文本编辑器
  • emacs - Emacs编辑器

进程管理

  • ps - 查看进程

    # 看所有进程
    ps aux
    USER(进程所有者) PID(进程ID) %CPU(CPU占用率) %MEM(内存占用率) VSZ(虚拟内存) RSS(物理内存) TTY(终端) STAT(进程状态) START(启动时间) TIME(CPU时间) COMMAND(命令)
    root            1           0.0             0.1              169256        13004         ?       Ss           Oct14         0:12        /sbin/init
    
    # 查看完整进程树
    ps -ef
    UID(用户ID) PID(进程ID) PPID(父进程ID) C(CPU利用率) STIME(启动时间) TTY(终端) TIME(CPU时间) CMD(完整命令)
    root        1           0             0            Oct14          ?        00:00:12      /sbin/init
    
    STAT 进程状态:
    R - 运行中
    S - 睡眠中
    D - 不可中断睡眠
    Z - 僵尸进程
    T - 已停止
    
    # 最常用
    ps aux | grep 进程名
    
  • top - 实时进程监控

    # 启动 top(默认3秒刷新一次)
    top
    PID(进程ID) USER(进程所有者) PR(优先级) NI(友好值) VIRT(虚拟内存) RES(物理内存) SHR(共享内存) S(进程状态) %CPU(CPU使用率) %MEM(内存使用率) TIME+(累计CPU时间) COMMAND(命令名称)
    1234        root             20          0          169256        13004         8904          S           0.0             0.1              0:12.34          systemd
    5678        mysql            20          0          2123456       512304        12345         S           5.5             6.3              10:30.15         mysqld
    
    # 按内存使用排序启动
    top -o %MEM
    
  • htop - 增强版进程监控

    # Ubuntu/Debian
    sudo apt install htop
    
    # CentOS/RHEL
    sudo yum install htop
    
    # macOS
    brew install htop
    
    htop
    [1/2][|||||||||||||||||||||              50.5%]   Tasks: 150, 125 thr; 1 running
    [2/2][|||||||||||                        25.2%]   Load average: 0.05 0.10 0.15 
    [Memory:|||||||||||||||||||              2.1G/8G] Uptime: 10 days, 15:30:25
    [Swp:  |                                 100M/2G]
    
    PID   USER     PRI  NI  VIRT    RES    SHR   CPU%  MEM%   TIME+    Command
    1234  root     20   0   169M   13M    8.7M   0.0   0.1   0:12.34  systemd
    5678  mysql    20   0   2.1G   512M   12M    5.5   6.3   10:30.15 mysqld
    
    上方顶部状态栏:
    CPU使用率 - 每个核心的条形图
    内存使用 - 已用/总内存
    交换空间 - 已用/总交换空间
    系统负载 - 1/5/15分钟平均值
    运行时间 - 系统运行时长
    
  • kill - 终止进程

  • killall - 按名称终止进程

  • jobs - 查看后台任务

  • bg - 将任务放到后台

  • fg - 将后台任务调至前台

  • nohup - 后台运行不挂断

  • screen - 终端会话管理

  • tmux - 终端复用器

系统信息

  • uname - 系统信息
  • whoami - 当前用户
  • id - 用户ID信息
  • uptime - 系统运行时间
  • date - 日期时间
  • cal - 日历
  • df - 磁盘使用情况
  • du - 目录大小
  • free - 内存使用情况
  • lscpu - CPU信息
  • lsblk - 块设备信息

权限管理

  • chmod - 修改文件权限
  • chown - 修改文件所有者
  • chgrp - 修改文件所属组
  • umask - 设置默认权限
  • sudo - 以超级用户权限执行
  • su - 切换用户
  • su - 进入root权限
  • exit - 退出su权限

网络相关

  • ping - 网络连通性测试
  • curl - 数据传输工具
  • wget - 文件下载
  • ssh - 远程登录
  • scp - 远程文件复制
  • rsync - 文件同步
  • netstat - 网络连接状态
  • ss - 现代版netstat
  • iptables - 防火墙管理
  • tcpdump - 网络抓包
  • nmap - 端口扫描

压缩归档

  • tar - 归档文件
  • gzip/gunzip - gzip压缩/解压
  • zip/unzip - zip压缩/解压
  • 7z - 7zip压缩工具

环境变量

  • export - 设置环境变量
  • env - 查看所有环境变量
  • which - 查找命令位置
  • whereis - 查找二进制、源码、手册
  • type - 显示命令类型
  • alias - 设置命令别名

包管理

  • apt/apt-get - Debian/Ubuntu包管理
  • yum - RedHat/CentOS包管理
  • dnf - Fedora包管理
  • pip - Python包管理
  • npm - Node.js包管理
  • yarn - JavaScript包管理
  • brew - macOS包管理

版本控制

  • git - Git版本控制
  • svn - SVN版本控制

监控调试

  • strace - 系统调用跟踪
  • ltrace - 库函数调用跟踪
  • lsof - 查看打开的文件
  • iostat - IO统计
  • vmstat - 虚拟内存统计
  • sar - 系统活动报告
  • dmesg - 内核消息

磁盘管理

  • mount/umount - 挂载/卸载文件系统
  • fdisk - 磁盘分区
  • parted - 分区工具
  • mkfs - 创建文件系统
  • fsck - 文件系统检查

定时任务

  • crontab - 定时任务管理
  • at - 一次性定时任务

输入输出重定向

  • > - 输出重定向
  • >> - 追加输出
  • < - 输入重定向
  • | - 管道
  • tee - 同时输出到文件和屏幕

字符串操作

  • echo - 输出文本
  • printf - 格式化输出
  • basename - 提取文件名
  • dirname - 提取目录名

数据库

  • mysql - MySQL客户端
  • psql - PostgreSQL客户端
  • sqlite3 - SQLite客户端
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长不大的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值