Linux 指令大全
Linux 是服务器、嵌入式设备和开发者的首选系统。本篇整理了日常工作中最常用的 Linux 指令,按类别分类,方便快速查阅。
---
## 📑 目录导航
---
## 一、文件与目录操作
### 1.1 基础操作
| 指令 | 功能 | 示例 |
|------|------|------|
| `ls` | 列出目录内容 | `ls -la` |
| `cd` | 切换目录 | `cd /home` |
| `pwd` | 显示当前路径 | `pwd` |
| `mkdir` | 创建目录 | `mkdir -p a/b/c` |
| `rmdir` | 删除空目录 | `rmdir dir` |
| `touch` | 创建空文件 | `touch file.txt` |
| `cp` | 复制文件/目录 | `cp -r src/ dst/` |
| `mv` | 移动/重命名 | `mv old new` |
| `rm` | 删除文件/目录 | `rm -rf dir/` |
| `ln` | 创建链接 | `ln -s target link` |
rm -rf 是非常危险的指令,删除后无法恢复 ,请务必确认路径后再执行!
### 1.2 文件属性与权限
查看权限详解
Linux 文件权限分为三组:所有者 、所属组 、其他人 ,每组有读(r )、写(w )、执行(x )三种权限。
1 2 3 4 5 6 7 8 -rwxr-xr-- 1 user group 4096 Jan 1 00:00 file.txt │││││││││ │││││││└── 其他人: r-- (只读) │││││└──── 所属组: r-x (读+执行) │││└────── 所有者: rwx (读+写+执行) ││└──────── 特殊权限位 │└───────── 文件类型 (-=文件, d=目录, l=链接) └────────── 特殊文件标识
数字权限对照:
权限 数字 说明 ---0 无权限 --x1 仅执行 -w-2 仅写入 -wx3 写+执行 r--4 仅读取 r-x5 读+执行 rw-6 读+写 rwx7 读+写+执行
1 2 3 4 5 6 7 8 9 chmod 755 script.sh chmod +x script.sh chmod u+rw,go+r file.txt chown user:group file.txt chown -R user:group dir / chgrp group file.txt
### 1.3 文件查找与定位
1 2 3 4 5 6 7 8 9 10 find /home -name "*.log" find /var -type f -mtime +7 find . -size +100M find . -perm 755 which python3 whereis ls locate nginx.conf
---
## 二、文本处理与查看
### 2.1 文本查看
cat 、less 、tail 是日常最常用的文本查看三件套。
1 2 3 4 5 6 cat file.txt cat -n file.txt less file.txt head -n 20 file.txt tail -n 20 file.txt tail -f /var/log/syslog
### 2.2 文本搜索与过滤
1 2 3 4 5 6 7 8 grep "error" log.txt grep -i "warning" log.txt grep -r "TODO" ./src/ grep -n "pattern" file.txt grep -v "exclude" file.txt grep -c "error" log.txt grep -E "err|warn" log.txt
### 2.3 文本处理工具
查看高级文本处理指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 awk '{print $1}' file.txt awk -F ',' '{print $1, $3}' data.csv awk '{sum+=$1} END {print sum}' nums.txt sed 's/old/new/g' file.txt sed -i 's/old/new/g' file.txt sed -n '10,20p' file.txt sed '/^$/d' file.txt sort file.txt sort -rn file.txt sort -u file.txt sort -t ',' -k2 file.txt sort file.txt | uniq sort file.txt | uniq -c sort file.txt | uniq -d wc -l file.txt wc -w file.txt wc -c file.txt cut -d ':' -f1 /etc/passwd cut -c 1-10 file.txt echo "HELLO" | tr 'A-Z' 'a-z' echo "hello 123" | tr -d '0-9'
### 2.4 重定向与管道
管道 是 Linux 最强大的特性之一。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 command > file.txt command >> file.txt command 2> error.log command &> all.log command < input.txt cat log.txt | grep "error" | sort | uniq -c | sort -rn | head -10command | tee output.txt command | tee -a output.txt
---
## 三、用户与权限管理
### 3.1 用户管理
1 2 3 4 5 6 7 8 9 10 11 12 useradd -m -s /bin/bash username adduser username userdel username userdel -r username usermod -aG docker username usermod -l newname oldname usermod -s /bin/zsh username passwd username chage -l username
使用 usermod -aG 时,务必加 -a 参数 ,否则会将用户从其他组中移除!
### 3.2 用户切换
1 2 3 4 5 su - username su - root sudo command sudo -u user command sudo -i
### 3.3 用户与组查询
查看用户组管理指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 id username whoami who w last finger username groupadd devops groupdel devops groupmod -n new old gpasswd -a user group groups username cat /etc/group
---
## 四、进程与系统管理
### 4.1 进程查看
1 2 3 4 5 6 7 8 9 10 ps aux ps -ef ps aux | grep nginx ps -eo pid,ppid,cmd,%mem,%cpu top top -u username htop
### 4.2 进程控制
1 2 3 4 5 6 7 8 9 10 11 12 kill PID kill -9 PID killall process_name pkill -f "pattern" command & jobs fg %1 bg %1 nohup command &
### 4.3 系统信息
查看系统信息指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 uname -a cat /etc/os-release hostnamectl uptime date timedatectl lscpu free -h df -h lsblk lspci lsusb dmidecode vmstat 1 iostat 1 mpstat 1 sar 1
### 4.4 系统服务管理(systemd)
systemd 是现代 Linux 发行版的标准初始化系统。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 systemctl start nginx systemctl stop nginx systemctl restart nginx systemctl reload nginx systemctl status nginx systemctl enable nginx systemctl disable nginx systemctl is-enabled nginx journalctl -u nginx journalctl -f journalctl --since "1 hour ago" journalctl -p err
---
## 五、网络与通信
### 5.1 网络配置
1 2 3 4 5 6 7 8 9 10 ip addr show ip addr show eth0 ip link set eth0 up/down ip route cat /etc/resolv.conf nslookup example.com dig example.com
### 5.2 网络诊断
网络排查时,建议按 ping → traceroute → curl 的顺序逐步排查。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ping -c 4 google.com ping -i 0.5 google.com traceroute google.com tracepath google.com netstat -tlnp ss -tlnp lsof -i :80 nc -zv host port curl -O https://example.com/file.zip wget https://example.com/file.zip curl -I https://example.com
### 5.3 网络安全
查看防火墙配置指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 iptables -L iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT ufw enable ufw status ufw allow 22/tcp ufw allow 80/tcp ufw deny 3306/tcp ufw delete allow 80/tcp firewall-cmd --state firewall-cmd --list-all firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload
### 5.4 远程连接
1 2 3 4 5 6 7 8 9 10 11 ssh user@host ssh -p 2222 user@host ssh -i key.pem user@host ssh-copy-id user@host scp file.txt user@host:/path/ scp user@host:/path/file.txt ./ scp -r dir / user@host:/path/ rsync -avz src/ user@host:dst/
---
## 六、磁盘与存储管理
### 6.1 磁盘查看
1 2 3 4 5 6 7 df -h df -i du -sh /home du -sh /home/* du -ah /home | sort -rh | head -10 lsblk fdisk -l
### 6.2 磁盘操作
磁盘分区和格式化操作会清空数据 ,请确保已备份重要文件!
查看磁盘分区与挂载指令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 fdisk /dev/sdb parted /dev/sdb gdisk /dev/sdb mkfs.ext4 /dev/sdb1 mkfs.xfs /dev/sdb1 mkswap /dev/sdb2 mount /dev/sdb1 /mnt/data umount /mnt/data pvcreate /dev/sdb vgcreate vg0 /dev/sdb lvcreate -L 50G -n lv0 vg0 lvextend -L +20G /dev/vg0/lv0 resize2fs /dev/vg0/lv0
---
## 七、软件包管理
### 7.1 Debian/Ubuntu(apt)
apt 是 Debian 系发行版的包管理器,使用最广泛。
1 2 3 4 5 6 7 8 9 apt update apt upgrade apt install nginx apt remove nginx apt autoremove apt search keyword apt show nginx apt list --installed apt cache policy nginx
### 7.2 CentOS/RHEL(dnf/yum)
1 2 3 4 5 6 7 8 9 10 11 dnf update dnf install nginx dnf remove nginx dnf search keyword dnf info nginx dnf list installed yum update yum install nginx yum remove nginx
### 7.3 通用包管理
查看其他包管理方式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 snap install package snap list snap remove package flatpak install flathub app flatpak list ./configure make make install pip install package pip install --break-system-packages package pip list
---
## 八、压缩与解压
最常用的格式是 tar.gz 和 zip ,建议优先掌握这两种。
### 8.1 tar 打包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 tar -cvf archive.tar dir / tar -czvf archive.tar.gz dir / tar -cjvf archive.tar.bz2 dir / tar -cJvf archive.tar.xz dir / tar -xvf archive.tar tar -xzvf archive.tar.gz tar -xjvf archive.tar.bz2 tar -xJvf archive.tar.xz tar -tf archive.tar.gz tar -xzvf archive.tar.gz -C /target/
### 8.2 其他格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 zip archive.zip file1 file2 dir / zip -r archive.zip dir / unzip archive.zip unzip -d /target/ archive.zip gzip file.txt gunzip file.txt.gz gzip -k file.txt zcat file.txt.gz bzip2 file.txt bunzip2 file.txt.bz2 xz file.txt unxz file.txt.xz rar a archive.rar dir / rar x archive.rar
---
## 九、搜索与查找
### 9.1 文件搜索
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 find / -name "*.conf" find / -type f find / -type d find / -size +100M find / -mtime -7 find / -mmin -30 find / -perm 644 find / -user username find / -empty find / -name "*.log" -and -size +10M find / -name "*.tmp" -or -name "*.swp" find / ! -name "*.git" find / -name "*.bak" -delete find / -name "*.sh" -exec chmod +x {} \;
### 9.2 文本搜索
1 2 3 4 5 6 7 8 9 10 11 grep -rn "TODO" ./src/ grep -rl "error" ./logs/ grep -R --include="*.py" "import" ./ grep -E "\d{1,3}\.\d{1,3}\.\d{1,3}" grep --color "error" log.txt rg "pattern" ./src/ rg -t py "import" ./ rg -l "error" ./logs/
---
## 十、Shell 快捷键与技巧
### 10.1 终端快捷键
| 快捷键 | 功能 |
|--------|------|
| Ctrl + C | 中断当前命令 |
| Ctrl + Z | 挂起当前命令 |
| Ctrl + D | 退出当前Shell |
| Ctrl + L | 清屏(等同 clear ) |
| Ctrl + A | 光标移到行首 |
| Ctrl + E | 光标移到行尾 |
| Ctrl + U | 删除光标前所有内容 |
| Ctrl + K | 删除光标后所有内容 |
| Ctrl + W | 删除光标前一个单词 |
| Ctrl + R | 搜索历史命令 |
| Tab | 自动补全 |
| Tab × 2 | 列出所有补全选项 |
### 10.2 通配符与特殊符号
1 2 3 4 5 6 7 8 9 10 11 * ? [abc] [a-z] {a,b,c} ~ . .. ; && ||
### 10.3 实用技巧
查看Shell实用技巧
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 history !! !grep !$ sudo !! cp file.txt{,.bak} mkdir -p project/{src,docs,tests} touch file{1..5}.txt diff <(cmd1) <(cmd2) wc -l <(grep "error" log.txt) find . -name "*.log" | xargs rm find . -name "*.py" | xargs grep "import" echo "file1 file2" | xargs -n 1 cp -v /src/ /dst/ watch -n 2 df -h watch -n 1 "ps aux | grep nginx"
---
## 📊 指令掌握进度
---
## 🔗 参考资源
Linux颂
终端如战场, 指令手中枪。Linux 精神在, 代码写华章。
Linux 自由开源 Shell 命令利器 Open Source 开源精神