200 个 Linux 常用命令

200 个 Linux 常用命令,划分为了 10 大核心运维场景。每一个命令都精简为了最硬核、最经典的一行实战示例:

一、 文件与目录操作(35个)

  • ls:ls -lh(以人性化单位显示当前目录详细列表)
  • cd:cd /var/log/(切换到日志目录)
  • pwd:pwd(打印当前完整绝对路径)
  • mkdir:mkdir -p /app/src/data(递归创建多层新目录)
  • rmdir:rmdir empty_dir(删除空目录)
  • rm:rm -rf /tmp/cache_*(强制递归删除匹配的缓存文件,慎用)
  • cp:cp -r /source /backup(递归复制整个目录到备份路径)
  • mv:mv old.txt new.txt(重命名文件或移动文件)
  • touch:touch index.html(创建一个新的空文件或更新时间戳)
  • ln:ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx(创建软链接)
  • find:find /var/log -name “*.log” -mtime +7(查找7天前修改过的日志文件)
  • locate:locate my.cnf(通过数据库快速全局查找 my.cnf 配置文件)
  • whereis:whereis python(查找二进制、源码及帮助手册位置)
  • which:which java(查找环境变量中命令的绝对路径)
  • file:file picture.png(辨识文件的真实数据类型,不仅看后缀)
  • stat:stat config.json(查看文件的详细属性、权限及三次时间戳)
  • du:du -sh /var/log/*(统计指定目录下各个子目录的大小)
  • basename:basename /usr/bin/python(去除路径,输出文件名:python)
  • dirname:dirname /usr/bin/python(去除文件名,输出路径:/usr/bin)
  • rename:rename ‘s/.html/.php/‘ *.html(批量修改当前目录下文件后缀)
  • tree:tree -L 2 /var/log(以树状图列出目录结构,限制显示两层)
  • shred:shred -n 5 -z -u secret.txt(安全粉碎文件,覆盖5次,填零并删除)
  • split:split -b 100M large.zip file_(将大文件按 100MB 尺寸切割成多个小文件)
  • mktemp:mktemp /tmp/test.XXXXXX(安全地创建一个唯一的临时文件)
  • md5sum:md5sum ubuntu.iso(计算文件的 MD5 校验和,常用于验证文件完整性)
  • sha256sum:sha256sum backup.tar.gz(计算安全级别更高的 SHA-256 校验和)
  • cpio:find . | cpio -oH newc | gzip > ramdisk.img(传统归档工具,常用于制作镜像)
  • dd:dd if=/dev/zero of=/swapfile bs=1M count=2048(按块复制数据,常用于创建交换文件)
  • truncate:truncate -s 0 /var/log/nginx/access.log(在不删除文件的情况下将其大小清空为 0)
  • mkfifo:mkfifo /tmp/my_pipe(创建命名管道,用于进程间通信)
  • umask:umask 0022(查看或设置创建新文件和目录时的默认权限掩码)
  • chattr:chattr +i /etc/passwd(给文件加锁设置不可变属性,连 root 都无法修改)
  • lsattr:lsattr /etc/passwd(查看文件的第二扩展文件系统属性,如是否有 +i 锁)
  • mknod:mknod /dev/ttyS0 c 4 64(手动创建字符或块设备文件)
  • paste:paste file1.txt file2.txt(将两个文件的行按列合并在一起显示)

二、 文本查看与流处理(30个)

  • cat:cat -n app.log(带行号显示文件全部内容)
  • tac:tac file.txt(反向显示文件内容,从最后一行开始往前读)
  • less:less system.log(分页查看大文件,按 Q 退出,支持 / 搜索)
  • more:more readme.txt(基础的分页查看,按空格翻页)
  • head:head -n 20 error.log(查看文件开头的前 20 行)
  • tail:tail -f -n 100 access.log(实时滚动查看最新追加的 100 行日志)
  • grep:grep -i “error” server.log(在日志中不区分大小写检索指定字符串)
  • sed:sed -i ‘s/port=80/port=8080/g’ conf.ini(直接在文件中将 80 端口全局替换为 8080)
  • awk:awk ‘{print $1}’ access.log(打印日志文件中的第一列,通常是IP)
  • cut:cut -d’:’ -f1 /etc/passwd(以冒号为分隔符,截取第一列即用户名)
  • sort:sort -n -r numbers.txt(将数字文件按数值大小倒序排列)
  • uniq:uniq -c ip_list.txt(过滤相邻的重复行,并统计每一行出现的次数)
  • wc:wc -l error.log(统计日志文件的总行数)
  • diff:diff old.conf new.conf(逐行比对两个配置文件的差异)
  • xargs:find . -name “*.tmp” | xargs rm -rf(将标准输入转换为参数传给下游命令)
  • tr:echo “hello” | tr ‘a-z’ ‘A-Z’(字符替换工具,此处将小写转换为大写)
  • nl:nl -b a script.sh(给文本的所有行(包括空行)加上行号输出)
  • join:join -1 1 -2 1 file1.txt file2.txt(将两个文件中具有相同关键字的第一列进行行连接)
  • comm:comm -12 sorted1.txt sorted2.txt(比较两个已排序文件,仅显示交集行)
  • od:od -tx1 -c binary.bin(以八进制、十六进制等格式倾倒并查看二进制文件)
  • hexdump:hexdump -C data.dat(以十六进制和 ASCII 码对照形式查看文件内容)
  • strings:strings /bin/ls | grep “glibc”(在二进制文件中提取可打印的字符串)
  • tee:make 2>&1 | tee compile.log(读取标准输入,同时输出到屏幕并保存到文件)
  • rev:echo “12345” | rev(将文本的每一行字符进行反转输出,变成 54321)
  • look:look linux /usr/share/dict/words(在已排序的字典中快速查找指定字母开头的单词)
  • fmt:fmt -w 60 messy_text.txt(格式化文本段落,使其每行最大宽度不超过 60 个字符)
  • fold:fold -w 20 long_line.txt(硬性限制文本输出宽度,超过 20 个字符自动折行)
  • shuf:shuf -n 5 prize_pool.txt(随机打乱文本行并抽取 5 行,常用于抽奖)
  • seq:seq 1 2 10(生成数字序列,此处生成 1 到 10 之间步长为 2 的奇数)
  • egrep:egrep “error|warn” app.log(扩展的 grep,原生支持正则中的 OR 管道符)

三、 进程管理与资源监控(24个)

  • top:top(实时动态监控系统的 CPU、内存、负载及运行进程)
  • htop:htop(交互式的彩色高级进程监视器)
  • ps:ps -ef | grep tomcat(静态列出当前所有进程并过滤出 tomcat 进程)
  • kill:kill -9 1234(强制杀死 PID 为 1234 的进程)
  • pkill:pkill -9 nginx(根据名字强制杀死所有包含 nginx 的进程)
  • killall:killall php-fpm(杀死名为 php-fpm 的所有运行进程)
  • free:free -m(以 MB 为单位查看内存和 Swap 交换空间的使用情况)
  • lsof:lsof -i :8080(查看是谁占用了 8080 端口)
  • uptime:uptime(查看系统开机时长、当前登录人数及 1/5/15 分钟负载)
  • vmstat:vmstat 2 5(每隔2秒刷新一次,共显示5次虚拟内存与内核线程状态)
  • pstree:pstree -p(以树状图形式显示当前运行进程的父子层级关系及 PID)
  • pgrep:pgrep -u root nginx(根据用户和名字属性查找进程 PID)
  • nohup:nohup python script.py > output.log 2>&1 &(使程序在后台持久运行且不中断)
  • bg:bg %1(将一个在后台暂停的任务放到后台继续运行)
  • fg:fg %1(将后台运行或暂停的任务调回前台交互运行)
  • jobs:jobs -l(列出当前终端会话中所有在后台运行或暂停的任务列表)
  • strace:strace -p 1234(跟踪指定进程的系统调用和接收到的信号,调试利器)
  • ltrace:ltrace -p 5678(跟踪指定进程调用的库函数调用)
  • nice:nice -n -5 ./heavy_job.sh(以指定的优先级(Nice值,负值调高)启动新进程)
  • renice:renice -n 10 -p 1234(动态修改正在运行的进程优先级)
  • pidof:pidof sshd(快速查找指定运行程序的 PID 进程号)
  • taskset:taskset -cp 0,1 1234(查看或设置进程的 CPU 亲和性,绑定 CPU 核心)
  • watch:watch -n 1 “df -h”(每隔 1 秒高亮重复执行后续命令,动态监控输出变化)
  • exec:exec htop(用指定的程序彻底替换当前的 Shell 进程)

四、 网络配置、网络抓包与通信(25个)

  • ping:ping -c 4 baidu.com(发 4 个包测试与域名的连通性及网络延迟)
  • ifconfig:ifconfig eth0(查看第一张网卡 eth0 的 IP 地址和配置)
  • ip:ip a(现代标准命令:查看所有网络接口及 IP 分配情况)
  • netstat:netstat -tunlp(列出当前系统所有正在监听的 TCP/UDP 端口及 PID)
  • ss:ss -ant(比 netstat 更快地列出所有 TCP 链接状态)
  • curl:curl -I https://google.com(在终端发送 HTTP 请求并只获取响应头)
  • wget:wget -P /download/ http://example.com(下载网络文件并保存到指定目录)
  • telnet:telnet 192.168.1.1 22(测试目标主机的端口是否开放连通)
  • traceroute:traceroute google.com(追踪数据包到达目标域名所经过的所有路由节点)
  • nslookup:nslookup baidu.com(查询域名解析出的 IP 地址)
  • dig:dig +short baidu.com(精简查询域名的 DNS 详细解析记录)
  • route:route -n(查看系统当前的内核路由表)
  • host:host 8.8.8.8(反向查询 IP 地址对应的域名)
  • tcpdump:tcpdump -i eth0 port 80 -w http.pcap(网络抓包工具,截获80端口流量并保存)
  • nc / netcat:nc -zv 192.168.1.1 20-25(网络瑞士军刀,此处用于快速扫描端口)
  • nmap:nmap -sV 192.168.1.100(安全审计工具,探测目标主机的开放服务和版本)
  • ip route:ip route show(现代标准命令:查看当前系统的路由表详细配置)
  • arp:arp -an(查看和管理当前系统的内核 ARP 缓存表)
  • ip neighbor:ip neigh(现代标准的 ARP 缓存表查看命令)
  • iwconfig:iwconfig wlan0(专用于查看和配置无线网卡参数的老牌命令)
  • mii-tool:mii-tool eth0(查看或设置网卡物理层连接状态,如是否插网线)
  • ethtool:ethtool eth0(查询和设置网络驱动及硬件参数,如网卡速率、全双工模式)
  • iptables:iptables -L -n -v(传统的 Linux 包过滤防火墙规则查看与管理工具)
  • ufw:ufw allow 22/tcp(Ubuntu 的简易防火墙工具,快速放行 22 端口)
  • firewall-cmd:firewall-cmd –zone=public –add-port=80/tcp –permanent(RHEL/CentOS 的防火墙控制命令)

五、 磁盘分区、存储与文件系统(25个)

  • df:df -h(以 GB/MB 为单位查看磁盘分区剩余空间)
  • iostat:iostat -x 1 3(每秒刷新一次,查看详细磁盘 I/O 读写瓶颈)
  • lsblk:lsblk(以树状图格式列出所有块设备(磁盘)及分区挂载点)
  • fdisk:fdisk /dev/sdb(传统的 MBR 分区表管理工具,用于查看和交互式修改磁盘分区)
  • gdisk:gdisk /dev/sdc(用于管理现代大容量硬盘的 GPT 分区表工具)
  • parted:parted /dev/sdb print(高级磁盘分区工具,支持命令行参数直接操作,适合脚本)
  • mkfs:mkfs.ext4 /dev/sdb1(在指定的分区上格式化并创建 EXT4 文件系统)
  • mount:mount /dev/sdb1 /mnt/data(将磁盘分区挂载到指定的目录挂载点上)
  • umount:umount /mnt/data(卸载已挂载的文件系统,若提示繁忙可配合 -l 懒卸载)
  • mountpoint:mountpoint /mnt/data(验证某个目录是否是一个独立的文件系统挂载点)
  • tune2fs:tune2fs -l /dev/sda1(查看或调整 ext2/ext3/ext4 文件系统的详细内部参数)
  • fsck:fsck -y /dev/sdb1(检查并自动修复文件系统错误,修复前必须先 umount)
  • blkid:blkid(列出系统所有块设备的 UUID 唯一标识符以及文件系统类型)
  • findmnt:findmnt(以漂亮的树状图形式列出当前系统所有已挂载的文件系统)
  • sync:sync(强制将内存缓冲区中尚未写入的数据立即刷入磁盘中)
  • e2label:e2label /dev/sda1 BACKUP(查看或设置 ext2/ext3/ext4 分区的磁盘卷标名称)
  • pvcreate:pvcreate /dev/sdb1(创建 LVM 物理卷,LVM管理第1步)
  • pvdisplay:pvdisplay(显示物理卷的详细属性信息)
  • vgcreate:vgcreate vg_data /dev/sdb1(创建名为 vg_data 的 LVM 卷组,LVM管理第2步)
  • vgdisplay:vgdisplay(显示卷组的详细空间与状态信息)
  • lvcreate:lvcreate -L 100G -n lv_web vg_data(在卷组上划分一个 100G 的逻辑卷,LVM管理第3步)
  • lvdisplay:lvdisplay(显示逻辑卷的详细信息)
  • lvextend:lvextend -L +50G /dev/vg_data/lv_web(线上动态为逻辑卷扩容 50G 空间)
  • resize2fs:resize2fs /dev/vg_data/lv_web(扩容后刷新 ext4 文件系统使其识别新空间)
  • xfs_growfs:xfs_growfs /mnt/data(针对 XFS 文件系统的线上动态扩容刷新命令)

六、 用户、权限、安全与审计(22个)

  • chmod:chmod 755 script.sh(赋予脚本所有者读写执行权限,其他人读执行权限)
  • chown:chown -R www:www /data/wwwroot(递归修改整个网页目录的所有者和属组为 www)
  • chgrp:chgrp admin file.txt(将文件的所属组修改为 admin)
  • sudo:sudo systemctl restart nginx(临时借用 root 权限执行管理命令)
  • su:su - username(彻底切换到指定用户的环境配置下)
  • passwd:passwd root(修改指定用户的密码)
  • useradd:useradd -m newuser(创建新用户并自动建立其家目录)
  • userdel:userdel -r olduser(删除用户并同时清空其家目录数据)
  • groupadd:groupadd devops(新建一个名为 devops 的用户组)
  • groupdel:groupdel devops(删除指定的用户组)
  • whoami:whoami(显示当前终端正在操作的用户名)
  • last:last -n 10(查看系统最近 10 次成功的用户登录历史记录)
  • lastb:lastb(查看系统所有遭遇失败的恶意登录尝试,用于排查暴力破解)
  • lastlog:lastlog -u root(检查系统中所有用户最近一次成功登录的时间)
  • w:w(显示当前有哪些用户登录了系统,以及他们正在运行什么命令)
  • id:id username(查看指定用户的 UID、GID 以及所属的用户组详情)
  • groups:groups root(直接查看并列出某个用户所属的所有组名称)
  • logger:logger -p local0.notice “Disk space is low”(向系统 Syslog 日志中手动写入自定义消息)
  • logrotate:logrotate -f /etc/logrotate.d/nginx(强制执行日志轮转、压缩和清理任务)
  • faillock:faillock –user admin(查看或解锁由于密码输错次数过多而被锁定的用户)
  • getfacl:getfacl file.txt(查看文件的高级 ACL 细粒度权限)
  • setfacl:setfacl -m u:alice:rw file.txt(利用 ACL 单独赋予用户 alice 对该文件的读写权限)

七、 打包、压缩与备份同步(10个)

  • tar:tar -czvf logs.tar.gz /var/log(将日志目录打包并压缩为 .tar.gz 格式)
  • gzip:gzip source.txt(将文件压缩为 .gz 格式,原文件会消失)
  • gunzip:gunzip file.txt.gz(解压 .gz 压缩包)
  • zip:zip -r project.zip ./project(递归压缩目录为 project.zip)
  • unzip:unzip project.zip -d /tmp(将 project.zip 解压到指定的 /tmp 目录)
  • bzip2:bzip2 bigfile.txt(高压缩率压缩,生成 .bz2 文件)
  • bunzip2:bunzip2 file.txt.bz2(解压 .bz2 压缩包)
  • rsync:rsync -avz /src/ user@remote:/dst/(增量同步本地目录至远程服务器)
  • scp:scp -P 2222 file.txt user@ip:/tmp/(基于 SSH 协议的安全远程复制文件,-P 指定端口)
  • sftp:sftp -P 2222 user@192.168.1.1(交互式安全文件传输命令行界面)

八、 系统底层、内核模块与硬件(15个)

  • uname:uname -a(查看操作系统内核版本、硬件架构等完整系统信息)
  • hostname:hostname -I(查看并列出主机的所有内网 IP 地址)
  • systemctl:systemctl enable –now docker(设置 docker 服务开机自启并立刻启动它)
  • service:service network restart(老系统下重启网络服务的命令)
  • dmesg:dmesg | grep -i error(查看内核开机缓冲区日志,排查硬件或驱动报错)
  • lscpu:lscpu(查看 CPU 架构、核心数、主频、缓存等详细参数)
  • sysctl:sysctl -a(在运行时查看或动态修改内核参数,如网络栈优化)
  • modprobe:modprobe bbr(智能加载或卸载指定的内核模块,此处开启 BBR 加速)
  • lsmod:lsmod(列出当前系统所有已经加载进内核的模块)
  • rmmod:rmmod pcspkr(从当前运行的内核中卸载指定的模块,此处关闭蜂鸣器)
  • modinfo:modinfo kvm(查看指定内核模块的详细信息,如作者、描述、参数)
  • lspci:lspci | grep -i vga(列出系统中所有的 PCI 总线设备,此处过滤显卡信息)
  • lsusb:lsusb(列出系统中连接的所有 USB 总线及外部 USB 设备)
  • lshw:lshw -short(全面汇总并列出系统当前的硬件配置简要清单)
  • dmidecode:dmidecode -t memory(从 BIOS/SMBIOS 中提取硬件资产信息,此处查看内存条型号)

九、 软件部署、包管理与环境(16个)

  • apt:apt update && apt install -y curl(Ubuntu/Debian下刷新软件源并安装curl)
  • yum / dnf:yum update && yum install -y nginx(CentOS/RHEL下升级并安装nginx)
  • rpm:rpm -ivh package.rpm(底层离线安装包管理,-ivh 表示显示安装进度)
  • dpkg:dpkg -i package.deb(Debian/Ubuntu 下的底层离线安装 .deb 包命令)
  • env:env | grep PATH(显示当前所有的环境变量并从中过滤 PATH)
  • export:export JAVA_HOME=/usr/lib/jvm(设置并导出全局环境变量)
  • alias:alias ll=’ls -lah’(为常用的组合命令设置 ll 的简写别名)
  • unalias:unalias ll(取消已经设置的 ll 别名)
  • history:history 20(查看最近在终端执行过的 20 条命令历史)
  • clear:clear(清空当前终端屏幕,快捷键是 Ctrl + L)
  • make:make -j $(nproc)(根据 Makefile 自动编译源码,多核加速)
  • ldd:ldd /bin/ls(打印可执行文件或动态库所依赖的共享动态链接库清单)
  • ldconfig:ldconfig(配置完新链接库后用于刷新系统共享库缓存)
  • docker:docker ps -a(管理容器的核心命令,此处列出系统中的所有容器状态)
  • type:type -a ls(辨别一个命令到底是 Shell 内置、外部文件还是别名)
  • source / .:source ~/.bashrc(在当前会话中立修使得修改后的配置文件生效)

十、 日期、计算、Shell内置与杂项(18个)

  • date:date “+%Y-%m-%d %H:%M:%S”(以标准格式输出当前系统时间)
  • cal:cal -3(在终端同时打印出上月、本月和下月的日历)
  • shutdown:shutdown -h +10 “Maintenance”(10分钟后关机,并向所有终端广播通知)
  • reboot:reboot(立即重启系统)
  • poweroff:poweroff(立即切断电源关机)
  • init:init 3(切换系统到多用户文本命令行模式)
  • read:read -p “Enter your name: “ name(在脚本中交互式读取用户的键盘输入)
  • expr:expr 10 + 20(命令行计算器,执行基本的算术运算,注意空格)
  • bc:echo “scale=2; 10 / 3” | bc(支持任意精度的命令行高级计算器,保留2位小数)
  • factor:factor 12(分解质因数工具,输出 12: 2 2 3)
  • wall:wall “System will down”(向当前系统内所有在线用户的终端屏幕广播消息)
  • sleep:sleep 5(让当前脚本或终端会话暂停运行 5 秒钟)
  • exit:exit(退出当前终端会话、Shell 脚本或退出切换的用户身份)
  • logout:logout(专门用于退出当前登录的登录 Shell 终端)
  • echo:echo “Hello World”(在屏幕上直接打印输出指定的文本字符串或变量值)
  • printf:printf “Name: %s\nAge: %d\n” “Alice” 25(格式化文本并输出,比 echo 更精准控制格式)
  • true:true(什么都不做,仅仅返回一个代表成功的系统状态码 0)
  • false:false(什么都不做,仅仅返回一个代表失败的系统状态码 1)

这份归类整理的 200 命令清单 极度紧凑,非常适合您打印或放入日常笔记工具中备查。


200 个 Linux 常用命令
https://www.pcboy.com.cn/2026/05/27/200-个-Linux-常用命令/
作者
chituer
发布于
2026年5月27日
许可协议