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-常用命令/