Skip to content

Linux 常见高频命令操作手册 ​

适用系统: Ubuntu / Debian / CentOS / 通用 Linux
编写日期: 2026-06-27
目标: 覆盖日常运维与开发中最常用的高频命令,附带实用示例


目录 ​

  1. 文件与目录操作
  2. 文本查看与处理
  3. 文本搜索与过滤
  4. 系统信息与监控
  5. 进程管理
  6. 磁盘与存储管理
  7. 网络相关
  8. 用户与权限管理
  9. 压缩与解压
  10. 软件包管理
  11. 定时任务与计划
  12. 其他实用工具
  13. 命令速查表

一、文件与目录操作 ​

1.1 目录导航 ​

命令说明示例
pwd显示当前所在目录的绝对路径pwd
cd切换目录cd /var/log
cd ~切换到用户主目录cd ~ 或 cd
cd -切换到上一次所在的目录cd -
cd ..切换到上级目录cd ..
ls列出目录内容ls -la /var

ls 常用选项详解:

bash
ls              # 列出当前目录文件
ls -l           # 以长格式列出(权限、大小、时间等)
ls -a           # 显示所有文件,包括隐藏文件(以.开头)
ls -la          # 组合:长格式 + 隐藏文件
ls -lh          # 长格式 + 人类可读的文件大小(K/M/G)
ls -lt          # 按修改时间排序(最新的在前)
ls -ltr         # 按修改时间反向排序(最旧的在前)
ls -R           # 递归列出子目录内容
ls -d */        # 只列出目录

1.2 目录创建与删除 ​

bash
mkdir dirname              # 创建单个目录
mkdir -p a/b/c             # 递归创建多级目录(-p: parents)
mkdir -m 755 dirname       # 创建目录并指定权限

rmdir dirname              # 删除空目录
rm -r dirname              # 递归删除目录及其内容(危险!)
rm -rf dirname             # 强制递归删除(极度危险,慎用!)

1.3 文件创建与删除 ​

bash
touch file.txt             # 创建空文件,或更新已有文件的时间戳
touch {a,b,c}.txt          # 批量创建多个文件

rm file.txt                # 删除文件
rm -i file.txt             # 删除前询问确认(interactive)
rm -f file.txt             # 强制删除,不提示
rm *.log                   # 删除所有 .log 文件

1.4 文件复制与移动 ​

bash
# 复制文件
cp source.txt dest.txt                 # 复制文件
cp -r sourcedir/ destdir/              # 递归复制目录
cp -i source.txt dest.txt              # 覆盖前询问
cp -v source.txt dest.txt              # 显示复制过程(verbose)
cp -p source.txt dest.txt              # 保留原文件属性(权限、时间等)

# 移动/重命名文件
mv oldname.txt newname.txt             # 重命名
mv file.txt /path/to/dest/             # 移动文件
mv -i source.txt dest.txt              # 覆盖前询问
mv -f source.txt dest.txt              # 强制覆盖

1.5 文件链接 ​

bash
ln file.txt hardlink.txt               # 创建硬链接(同一文件系统,不跨分区)
ln -s /path/to/file symlink.txt        # 创建软链接/符号链接(类似快捷方式)
ls -l symlink.txt                      # 查看链接指向
readlink -f symlink.txt                # 查看软链接指向的真实路径

1.6 文件查找 ​

bash
# find 命令(功能最强大)
find /var/log -name "*.log"            # 按名称查找
find /var/log -name "*.log" -type f    # 只查找文件(-type f),排除目录
find /home -type d -name "backup"      # 查找名为 backup 的目录
find . -size +100M                     # 查找大于 100MB 的文件
find . -size +1G -size -5G             # 查找 1G 到 5G 之间的文件
find . -mtime -7                       # 查找 7 天内修改过的文件
find . -mtime +30                      # 查找 30 天前修改过的文件
find . -perm 644                       # 查找权限为 644 的文件
find . -user root                      # 查找属主为 root 的文件
find . -empty                          # 查找空文件或空目录
find . -name "*.tmp" -delete           # 查找并删除 .tmp 文件

# locate 命令(基于数据库,速度更快)
updatedb                               # 更新文件数据库(需 root)
locate filename.txt                    # 快速查找文件路径
locate -i "*.conf"                     # 忽略大小写查找

二、文本查看与处理 ​

2.1 文件内容查看 ​

bash
cat file.txt                           # 显示整个文件内容
cat -n file.txt                        # 显示行号
cat file1 file2 > file3                # 合并多个文件

tac file.txt                           # 倒序显示文件内容(最后一行先显示)

less file.txt                          # 分页查看(支持上下翻页、搜索)
# less 中常用按键:
#   空格/PageDown = 下一页    b/PageUp = 上一页
#   /keyword = 向下搜索       ?keyword = 向上搜索
#   n = 下一个匹配            N = 上一个匹配
#   q = 退出

more file.txt                          # 分页查看(仅支持向下翻页)

head file.txt                          # 显示前 10 行
head -n 20 file.txt                    # 显示前 20 行
head -c 100 file.txt                   # 显示前 100 个字节

tail file.txt                          # 显示最后 10 行
tail -n 50 file.txt                    # 显示最后 50 行
tail -f /var/log/syslog                # 实时追踪文件新增内容(follow)
tail -f -n 0 /var/log/syslog           # 只追踪新增内容,不显示已有内容

2.2 文本统计与比较 ​

bash
wc file.txt                            # 统计行数、单词数、字节数
wc -l file.txt                         # 只统计行数(line)
wc -w file.txt                         # 只统计单词数(word)
wc -c file.txt                         # 只统计字节数(char)

diff file1.txt file2.txt               # 比较两个文件的差异
diff -u file1.txt file2.txt            # 统一格式输出(unified)
diff -r dir1/ dir2/                    # 递归比较两个目录

cmp file1.bin file2.bin                # 逐字节比较两个文件

2.3 文本编辑(行处理) ​

bash
# sed - 流编辑器
sed 's/old/new/' file.txt              # 将每行第一个 old 替换为 new
sed 's/old/new/g' file.txt             # 将每行所有 old 替换为 new(global)
sed -i 's/old/new/g' file.txt          # 直接修改文件(in-place)
sed -i.bak 's/old/new/g' file.txt      # 修改前备份为 .bak
sed '2d' file.txt                      # 删除第 2 行
sed '1,5d' file.txt                    # 删除第 1-5 行
sed '/pattern/d' file.txt              # 删除包含 pattern 的行
sed -n '5,10p' file.txt                # 只打印第 5-10 行
sed 's/^[ \t]*//' file.txt            # 删除行首空白
sed 's/[ \t]*$//' file.txt            # 删除行尾空白

# awk - 文本处理工具
awk '{print $1}' file.txt              # 打印每行第 1 个字段(默认空格分隔)
awk '{print $NF}' file.txt             # 打印每行最后一个字段
awk -F: '{print $1}' /etc/passwd       # 以冒号为分隔符,打印第 1 个字段
awk '{print NR, $0}' file.txt          # 打印行号和整行内容
awk 'NR==5' file.txt                   # 打印第 5 行
awk '/pattern/' file.txt               # 打印包含 pattern 的行
awk '$3 > 100' file.txt                # 打印第 3 字段大于 100 的行
awk '{sum+=$1} END {print sum}' file   # 对第 1 列求和

2.4 文本转换 ​

bash
tr 'a-z' 'A-Z' < file.txt              # 小写转大写
tr -d '0-9' < file.txt                 # 删除所有数字
tr -s ' ' < file.txt                   # 将多个空格压缩为单个

cut -d: -f1 /etc/passwd                # 以冒号分隔,提取第 1 字段
cut -c1-10 file.txt                    # 提取每行前 10 个字符
cut -c5- file.txt                      # 提取每行第 5 个字符之后的内容

sort file.txt                          # 按字母排序
sort -n file.txt                       # 按数字排序
sort -r file.txt                       # 反向排序
sort -k2 file.txt                      # 按第 2 字段排序
sort -t: -k3 -n /etc/passwd            # 以冒号分隔,按第 3 字段数字排序

uniq file.txt                          # 去除相邻重复行
uniq -c file.txt                       # 统计每行重复次数
uniq -d file.txt                       # 只显示重复的行

paste file1.txt file2.txt              # 并排合并两个文件

三、文本搜索与过滤 ​

3.1 grep 命令 ​

bash
grep "pattern" file.txt                # 在文件中搜索包含 pattern 的行
grep -i "pattern" file.txt             # 忽略大小写(ignore case)
grep -v "pattern" file.txt             # 反向匹配:显示不包含 pattern 的行
grep -n "pattern" file.txt             # 显示行号(number)
grep -c "pattern" file.txt             # 统计匹配行数(count)
grep -l "pattern" *.txt                # 只显示包含匹配的文件名
grep -r "pattern" /var/log/            # 递归搜索目录
grep -w "word" file.txt                # 匹配整个单词(word)
grep -E "pattern1|pattern2" file.txt   # 扩展正则,匹配多个模式
grep -A 3 "pattern" file.txt           # 显示匹配行及后 3 行(After)
grep -B 3 "pattern" file.txt           # 显示匹配行及前 3 行(Before)
grep -C 3 "pattern" file.txt           # 显示匹配行及前后各 3 行(Context)
grep --color "pattern" file.txt        # 高亮显示匹配内容

# 与管道结合
cat file.txt | grep "error"            # 从管道输入中过滤
cat file.txt | grep -v "^#" | grep -v "^$"   # 过滤掉注释行和空行

3.2 正则表达式示例 ​

bash
grep "^start" file.txt                 # 以 start 开头的行
grep "end$" file.txt                   # 以 end 结尾的行
grep "[0-9]" file.txt                  # 包含数字的行
grep "[a-zA-Z]" file.txt               # 包含字母的行
grep "^$" file.txt                     # 空行
grep -E "\bword\b" file.txt          # 匹配完整单词边界

四、系统信息与监控 ​

4.1 系统基本信息 ​

bash
uname -a                               # 显示系统内核信息
uname -r                               # 显示内核版本
uname -m                               # 显示机器硬件架构

hostname                               # 显示主机名
hostname -I                            # 显示所有 IP 地址

whoami                                 # 显示当前用户名
who                                    # 显示当前登录的用户
w                                      # 显示当前登录用户及其正在执行的命令
last                                   # 显示最近登录记录
uptime                                 # 显示系统运行时间、负载

# 日期时间
date                                   # 显示当前日期时间
date "+%Y-%m-%d %H:%M:%S"             # 格式化输出
date -d "yesterday" "+%Y-%m-%d"       # 显示昨天日期
date -d "+3 days" "+%Y-%m-%d"         # 显示 3 天后日期

4.2 CPU 与内存 ​

bash
# CPU 信息
cat /proc/cpuinfo                      # 详细 CPU 信息
lscpu                                  # CPU 架构信息汇总
nproc                                  # 显示可用 CPU 核心数

# 内存信息
free                                   # 显示内存使用情况
free -h                                # 人类可读格式
free -m                                # 以 MB 为单位
cat /proc/meminfo                      # 详细内存信息

# 综合系统资源
vmstat 1 5                             # 每秒刷新,共显示 5 次
vmstat -s                              # 显示内存统计事件

4.3 磁盘使用 ​

bash
df                                     # 显示文件系统磁盘使用情况
df -h                                  # 人类可读格式
df -T                                  # 显示文件系统类型
df -i                                  # 显示 inode 使用情况

du                                     # 显示目录/文件磁盘使用量
du -sh /var/log                        # 查看 /var/log 总大小
du -sh *                               # 查看当前目录下各文件/目录大小
du -h --max-depth=1 /var               # 查看 /var 下各一级目录大小

# 查找大文件
find / -type f -size +500M -exec ls -lh {} \;   # 查找大于 500MB 的文件

4.4 实时监控 ​

bash
top                                    # 实时显示进程和资源使用
# top 中常用按键:
#   M = 按内存排序    P = 按 CPU 排序    T = 按时间排序
#   k = 杀死进程      r = 修改优先级      q = 退出
#   1 = 显示每个 CPU 核心

htop                                   # 增强版 top(需安装:apt install htop)
iostat 1 5                             # 显示 CPU 和 I/O 统计(需安装 sysstat)

# 网络监控
iftop                                  # 实时网络流量(需安装)
nethogs                                # 按进程显示网络流量(需安装)

4.5 硬件信息 ​

bash
lsusb                                  # 列出 USB 设备
lspci                                  # 列出 PCI 设备
lsblk                                  # 列出块设备(硬盘、分区等)
fdisk -l                               # 显示磁盘分区表(需 root)
blkid                                  # 显示块设备 UUID 和文件系统类型
dmidecode                              # 显示 DMI/BIOS 硬件信息(需 root)

五、进程管理 ​

5.1 查看进程 ​

bash
ps                                     # 显示当前终端的进程
ps aux                                 # 显示所有进程的详细信息
ps aux | grep nginx                    # 查找 nginx 进程
ps -ef                                 # 全格式显示所有进程
ps -u username                         # 显示指定用户的进程
ps -p 1234 -o pid,ppid,cmd,%mem,%cpu # 显示指定 PID 的指定字段

pgrep nginx                            # 通过名称查找进程 PID
pgrep -u root nginx                    # 查找 root 用户的 nginx 进程
pidof nginx                            # 查找 nginx 主进程 PID

5.2 终止进程 ​

bash
kill 1234                              # 向 PID 1234 发送 TERM 信号(默认,优雅终止)
kill -9 1234                           # 强制终止(SIGKILL,无法拦截)
kill -15 1234                          # 发送 TERM 信号(同默认)
kill -HUP 1234                         # 发送 HUP 信号(通常用于重载配置)

killall nginx                          # 终止所有名为 nginx 的进程
pkill nginx                            # 通过名称匹配终止进程
pkill -f "python app.py"               # 匹配完整命令行

# 安全查找并终止
pgrep -a nginx                         # 先查看进程详情
kill $(pgrep nginx)                    # 再终止

5.3 后台运行与作业控制 ​

bash
command &                              # 在后台运行命令
nohup command &                        # 后台运行,忽略挂起信号(终端关闭后继续运行)
nohup python app.py > app.log 2>&1 &   # 后台运行并输出到日志

ctrl + z                               # 暂停当前前台进程
jobs                                   # 显示当前 shell 的后台作业
fg %1                                  # 将作业 1 调到前台
bg %1                                  # 在后台继续运行作业 1

5.4 进程优先级 ​

bash
nice -n 10 command                     # 以较低优先级(nice 值 10)运行命令
renice +5 -p 1234                      # 调整已有进程的 nice 值

六、磁盘与存储管理 ​

6.1 分区与格式化 ​

bash
# 查看磁盘
lsblk
fdisk -l

# 分区(交互式)
sudo fdisk /dev/sdb                    # MBR 分区
sudo gdisk /dev/sdb                    # GPT 分区

# 格式化
sudo mkfs.ext4 /dev/sdb1               # 格式化为 ext4
sudo mkfs.xfs /dev/sdb1                # 格式化为 xfs
sudo mkfs.vfat /dev/sdb1               # 格式化为 FAT32

6.2 挂载与卸载 ​

bash
mount                                  # 显示已挂载的文件系统
mount /dev/sdb1 /mnt                   # 挂载分区到 /mnt
mount -o remount,rw /                  # 重新以读写模式挂载根目录
mount -a                               # 挂载 /etc/fstab 中定义的所有设备

umount /mnt                            # 卸载 /mnt
umount /dev/sdb1                       # 通过设备卸载
fuser -m /mnt                          # 查看占用 /mnt 的进程

# 永久挂载(编辑 /etc/fstab)
# UUID=xxxxx  /mnt/data  ext4  defaults,noatime  0  2

6.3 逻辑卷管理(LVM) ​

bash
# 物理卷
pvcreate /dev/sdb1
pvdisplay
pvscan

# 卷组
vgcreate vg0 /dev/sdb1
vgextend vg0 /dev/sdc1
vgdisplay

# 逻辑卷
lvcreate -L 10G -n lv_data vg0
lvextend -L +5G /dev/vg0/lv_data
lvdisplay

# 文件系统扩展
resize2fs /dev/vg0/lv_data             # ext4
xfs_growfs /mnt                        # xfs

七、网络相关 ​

7.1 网络配置查看 ​

bash
ip addr                                # 显示所有网络接口和 IP 地址(替代 ifconfig)
ip addr show eth0                      # 显示指定接口
ip link                                # 显示网络接口状态
ip link set eth0 up                    # 启用网卡
ip link set eth0 down                  # 禁用网卡

ip route                               # 显示路由表
ip route add default via 192.168.1.1   # 添加默认网关
ip neigh                               # 显示 ARP 表(替代 arp)

# 传统命令(需安装 net-tools)
ifconfig                               # 显示网络接口信息
ifconfig eth0                          # 显示指定接口
ifconfig eth0 up                       # 启用网卡
netstat -tlnp                          # 显示监听端口和进程
netstat -anp                           # 显示所有连接

7.2 网络连接诊断 ​

bash
ping google.com                        # 测试网络连通性
ping -c 4 google.com                   # 发送 4 个包后停止
ping -i 0.5 google.com                 # 每 0.5 秒发送一次

traceroute google.com                  # 追踪路由路径
tracepath google.com                   # 类似 traceroute,无需 root
mtr google.com                         # 实时路由追踪(需安装)

# DNS 查询
nslookup google.com                    # DNS 查询
dig google.com                         # 详细 DNS 查询
dig @8.8.8.8 google.com               # 指定 DNS 服务器
dig +short google.com                  # 简洁输出
host google.com                        # 简单 DNS 查询

# 端口扫描
nc -zv 192.168.1.1 22                  # 测试 22 端口是否开放
nc -zv 192.168.1.1 1-1000              # 扫描端口范围
ss -tlnp                               # 查看监听端口(替代 netstat)
ss -tan                                # 查看所有 TCP 连接

7.3 数据传输 ​

bash
# curl - 强大的 URL 工具
curl https://api.example.com           # GET 请求
curl -I https://example.com            # 只显示响应头
curl -O https://example.com/file.zip   # 下载文件(保留原文件名)
curl -o myfile.zip https://example.com/file.zip   # 下载并指定文件名
curl -L https://example.com            # 跟随重定向
curl -H "Authorization: Bearer token" https://api.example.com   # 自定义请求头
curl -X POST -d "key=value" https://api.example.com              # POST 请求
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' https://api.example.com
curl -u username:password https://api.example.com                # 基本认证
curl -k https://self-signed.badssl.com                           # 忽略 SSL 证书验证

# wget - 下载工具
wget https://example.com/file.zip      # 下载文件
wget -O myfile.zip https://example.com/file.zip   # 指定输出文件名
wget -c https://example.com/file.zip   # 断点续传
wget -r -np -N https://example.com/docs/          # 递归下载(不向上级目录)
wget --limit-rate=1m https://example.com/file.zip  # 限速下载

# scp - 安全复制(基于 SSH)
scp file.txt user@remote:/path/        # 本地 → 远程
scp user@remote:/path/file.txt ./      # 远程 → 本地
scp -r dir/ user@remote:/path/         # 递归复制目录
scp -P 2222 file.txt user@remote:/path/ # 指定端口

# rsync - 增量同步(更高效)
rsync -avz /local/dir/ user@remote:/remote/dir/     # 本地 → 远程
rsync -avz user@remote:/remote/dir/ /local/dir/      # 远程 → 本地
rsync -avz --delete /local/dir/ /backup/dir/         # 同步并删除目标多余文件
rsync -avz --progress /large/file remote:/path/      # 显示进度
rsync -avz -e "ssh -p 2222" /local/ user@remote:/remote/   # 指定 SSH 端口

7.4 SSH 相关 ​

bash
ssh user@hostname                      # 登录远程主机
ssh -p 2222 user@hostname              # 指定端口
ssh -i ~/.ssh/id_rsa user@hostname     # 指定私钥
ssh user@hostname "ls -la"             # 执行远程命令后退出
ssh -X user@hostname                   # 启用 X11 转发
ssh -N -L 8080:localhost:80 user@remote   # 本地端口转发
ssh -N -R 9090:localhost:3000 user@remote   # 远程端口转发

# SSH 密钥管理
ssh-keygen -t rsa -b 4096              # 生成 RSA 密钥对
ssh-keygen -t ed25519                  # 生成 Ed25519 密钥对(推荐)
ssh-copy-id user@hostname              # 将公钥复制到远程主机
ssh-add ~/.ssh/id_rsa                  # 将私钥添加到 ssh-agent
ssh-add -l                             # 列出已添加的密钥

八、用户与权限管理 ​

8.1 用户管理 ​

bash
# 查看用户信息
id username                            # 显示用户 ID、组 ID 等
whoami                                 # 当前用户名
users                                  # 显示当前登录的用户名列表

# 添加用户
sudo useradd username                  # 创建用户
sudo useradd -m -s /bin/bash username # 创建用户并创建主目录、指定 shell
sudo useradd -r -s /bin/false serviceuser   # 创建系统用户

# 删除用户
sudo userdel username                  # 删除用户
sudo userdel -r username               # 删除用户及其主目录

# 修改用户
sudo usermod -aG sudo username         # 将用户添加到 sudo 组
sudo usermod -aG docker username       # 将用户添加到 docker 组
sudo usermod -s /bin/zsh username      # 修改用户 shell
sudo usermod -l newname oldname        # 修改用户名
sudo usermod -d /new/home -m username  # 修改主目录并移动文件

# 密码管理
sudo passwd username                   # 修改用户密码
sudo passwd -l username                # 锁定用户
sudo passwd -u username                # 解锁用户
sudo passwd -d username                # 删除密码(无密码登录)

8.2 组管理 ​

bash
groups                                 # 显示当前用户所属组
groups username                        # 显示指定用户所属组

cat /etc/group                         # 查看所有组

sudo groupadd groupname                # 创建组
sudo groupdel groupname                # 删除组
sudo groupmod -n newname oldname       # 重命名组
sudo gpasswd -a username groupname     # 将用户添加到组
sudo gpasswd -d username groupname     # 从组中删除用户

8.3 文件权限 ​

bash
ls -l file.txt                         # 查看文件权限
# 权限位解释:-rwxr-xr--
# 第 1 位:文件类型(- 文件,d 目录,l 链接)
# 第 2-4 位:属主权限(rwx)
# 第 5-7 位:属组权限(r-x)
# 第 8-10 位:其他用户权限(r--)

chmod 755 file.txt                    # rwxr-xr-x
chmod 644 file.txt                    # rw-r--r--
chmod 777 file.txt                    # rwxrwxrwx(不推荐)
chmod +x script.sh                    # 添加执行权限
chmod -x file.txt                     # 移除执行权限
chmod u+x file.txt                    # 给属主添加执行权限
chmod g+w file.txt                    # 给属组添加写权限
chmod o-r file.txt                    # 移除其他用户的读权限
chmod -R 755 dir/                     # 递归修改目录权限

# 特殊权限
chmod 4755 file.txt                   # SUID(执行时以属主权限运行)
chmod 2755 dir/                       # SGID(目录内新建文件继承属组)
chmod 1755 dir/                       # Sticky(只有文件所有者能删除)

8.4 文件所有权 ​

bash
chown user file.txt                    # 修改属主
chown user:group file.txt              # 同时修改属主和属组
chown :group file.txt                  # 只修改属组
chown -R user:group dir/              # 递归修改
chgrp group file.txt                   # 修改属组

8.5 权限数字对照表 ​

数字权限说明
0---无权限
1--x执行
2-w-写
3-wx写 + 执行
4r--读
5r-x读 + 执行
6rw-读 + 写
7rwx读 + 写 + 执行

常用组合:

  • 644 = rw-r--r--(文件默认)
  • 755 = rwxr-xr-x(目录/可执行文件默认)
  • 700 = rwx------(私有文件)
  • 750 = rwxr-x---(组内共享)

九、压缩与解压 ​

9.1 tar 命令 ​

bash
# 打包(不压缩)
tar -cvf archive.tar file1 file2       # 创建 tar 包(c=create, v=verbose, f=file)
tar -cvf archive.tar dir/              # 打包目录

# 查看包内容
tar -tvf archive.tar                   # 列出 tar 包内容(t=list)

# 解压
tar -xvf archive.tar                   # 解压 tar 包(x=extract)
tar -xvf archive.tar -C /dest/path     # 解压到指定目录

# gzip 压缩(.tar.gz / .tgz)
tar -czvf archive.tar.gz dir/          # 打包并 gzip 压缩(z=gzip)
tar -xzvf archive.tar.gz               # 解压 gzip 压缩包

# bzip2 压缩(.tar.bz2)
tar -cjvf archive.tar.bz2 dir/         # 打包并 bzip2 压缩(j=bzip2)
tar -xjvf archive.tar.bz2              # 解压 bzip2 压缩包

# xz 压缩(.tar.xz)
tar -cJvf archive.tar.xz dir/          # 打包并 xz 压缩(J=xz)
tar -xJvf archive.tar.xz               # 解压 xz 压缩包

# 排除文件
tar -czvf backup.tar.gz --exclude='*.log' --exclude='node_modules' dir/

9.2 gzip / gunzip ​

bash
gzip file.txt                          # 压缩为 file.txt.gz(原文件删除)
gzip -k file.txt                       # 压缩并保留原文件(keep)
gzip -9 file.txt                       # 最高压缩级别

gunzip file.txt.gz                     # 解压
gzip -d file.txt.gz                    # 同上

9.3 zip / unzip ​

bash
zip archive.zip file1 file2            # 创建 zip 压缩包
zip -r archive.zip dir/                # 递归压缩目录
zip -r archive.zip dir/ -x "*.log"     # 排除 .log 文件

unzip archive.zip                      # 解压到当前目录
unzip archive.zip -d /dest/path        # 解压到指定目录
unzip -l archive.zip                   # 列出 zip 内容
unzip -o archive.zip                   # 覆盖已有文件

9.4 其他压缩工具 ​

bash
# bzip2
bzip2 file.txt                         # 压缩为 file.txt.bz2
bunzip2 file.txt.bz2                   # 解压

# xz
xz file.txt                            # 压缩为 file.txt.xz
unxz file.txt.xz                       # 解压

# 7z(需安装 p7zip-full)
7z a archive.7z file1 dir/             # 创建 7z 压缩包
7z x archive.7z                        # 解压
7z l archive.7z                        # 列出内容

十、软件包管理 ​

10.1 Debian/Ubuntu (APT) ​

bash
# 更新包索引
sudo apt update

# 升级已安装包
sudo apt upgrade                       # 安全升级
sudo apt full-upgrade                  # 完整升级(可能删除旧包)
sudo apt dist-upgrade                  # 发行版升级

# 安装软件
sudo apt install package_name
sudo apt install package1 package2
sudo apt install -y package_name       # 自动确认

# 删除软件
sudo apt remove package_name           # 保留配置文件
sudo apt purge package_name            # 完全删除(含配置)
sudo apt autoremove                    # 删除不再需要的依赖

# 搜索与信息
apt search keyword                     # 搜索包
apt show package_name                  # 显示包详情
dpkg -l                                # 列出所有已安装包
dpkg -l | grep nginx                   # 查找已安装的 nginx 包
dpkg -L package_name                   # 显示包安装的文件列表
dpkg -S /path/to/file                  # 查找文件属于哪个包

# 清理
sudo apt clean                         # 清理下载的包缓存
sudo apt autoclean                     # 清理旧版本包缓存

# 修复
sudo apt --fix-broken install          # 修复依赖问题
sudo dpkg --configure -a               # 修复中断的配置

10.2 RedHat/CentOS (YUM/DNF) ​

bash
# DNF(CentOS 8+/RHEL 8+)
sudo dnf update
sudo dnf install package_name
sudo dnf remove package_name
sudo dnf search keyword
sudo dnf info package_name
sudo dnf list installed

# YUM(CentOS 7)
sudo yum update
sudo yum install package_name
sudo yum remove package_name
sudo yum search keyword
sudo yum info package_name

# RPM
rpm -qa                                # 列出所有已安装包
rpm -qi package_name                   # 包信息
rpm -ql package_name                   # 包文件列表
rpm -ivh package.rpm                   # 安装 rpm 包
rpm -e package_name                    # 卸载

十一、定时任务与计划 ​

11.1 crontab ​

bash
crontab -e                             # 编辑当前用户的 crontab
crontab -l                             # 列出当前用户的定时任务
crontab -r                             # 删除当前用户的所有定时任务
crontab -u username -e                 # 编辑指定用户的 crontab(需 root)

# 时间格式:
# .---------------- 分钟 (0-59)
# |  .------------- 小时 (0-23)
# |  |  .---------- 日期 (1-31)
# |  |  |  .------- 月份 (1-12)
# |  |  |  |  .---- 星期 (0-7, 0 和 7 都表示周日)
# |  |  |  |  |
# *  *  *  *  *  command

# 示例:
0 2 * * * /path/to/backup.sh           # 每天凌晨 2 点执行备份
*/5 * * * * /path/to/check.sh          # 每 5 分钟执行一次
0 0 * * 0 /path/to/weekly.sh           # 每周日午夜执行
0 0 1 * * /path/to/monthly.sh          # 每月 1 号午夜执行
0 9-18 * * 1-5 /path/to/work.sh        # 工作日 9 点到 18 点每小时执行

11.2 at 命令(一次性任务) ​

bash
at now + 1 hour                        # 1 小时后执行
at 14:00 tomorrow                      # 明天下午 2 点
atq                                    # 列出待执行的 at 任务
atrm 1                                 # 删除编号为 1 的 at 任务

# 输入命令后按 Ctrl+D 结束
# 示例:
# $ at now + 10 minutes
# warning: commands will be executed using /bin/sh
# at> echo "Hello" > /tmp/hello.txt
# at> <EOT>

11.3 系统级定时任务 ​

bash
# 系统 crontab(需 root)
sudo vim /etc/crontab

# 预定义目录(将脚本放入即可):
/etc/cron.hourly/                      # 每小时执行
/etc/cron.daily/                       # 每天执行
/etc/cron.weekly/                      # 每周执行
/etc/cron.monthly/                     # 每月执行

# 查看 cron 日志
sudo grep CRON /var/log/syslog

十二、其他实用工具 ​

12.1 命令历史与别名 ​

bash
history                                # 显示命令历史
history | grep "apt"                   # 在历史中搜索
history -c                             # 清空历史记录
!n                                     # 执行历史第 n 条命令
!!                                     # 执行上一条命令
!$                                     # 上一条命令的最后一个参数
!*                                     # 上一条命令的所有参数
^old^new                               # 将上一条命令中的 old 替换为 new

# 别名(alias)
alias                                  # 列出所有别名
alias ll='ls -alF'                     # 创建别名
alias ..='cd ..'                       # 快捷返回上级
unalias ll                             # 删除别名

# 永久别名(添加到 ~/.bashrc)
echo "alias ll='ls -alF'" >> ~/.bashrc
source ~/.bashrc                       # 重新加载配置

12.2 输入输出重定向 ​

bash
command > file.txt                     # 标准输出重定向到文件(覆盖)
command >> file.txt                    # 标准输出追加到文件
command 2> error.log                   # 标准错误重定向到文件
command &> all.log                     # 标准输出和错误都重定向
command > out.log 2>&1                 # 同上
command > /dev/null 2>&1               # 丢弃所有输出

command < input.txt                    # 从文件读取输入
command << EOF                         # Here Document(多行输入)
line1
line2
EOF

command1 | command2                    # 管道:将 command1 的输出作为 command2 的输入
cat file.txt | grep "error"            # 管道示例
ps aux | grep nginx | awk '{print $2}' # 多管道组合

12.3 实用小工具 ​

bash
# tee - 同时输出到屏幕和文件
echo "hello" | tee file.txt            # 输出到屏幕并写入文件
echo "hello" | tee -a file.txt         # 追加模式
ls -la | tee output.log | less         # 保存输出同时分页查看

# xargs - 将标准输入转为命令参数
cat files.txt | xargs rm               # 删除 files.txt 中列出的文件
find . -name "*.log" | xargs rm        # 查找并删除 .log 文件
find . -name "*.log" | xargs -I {} mv {} /backup/   # 移动文件
find . -name "*.py" | xargs grep "import"           # 在多个文件中搜索

echo {1..10}                           # 生成序列:1 2 3 4 5 6 7 8 9 10
echo {a..z}                            # 生成字母序列
mkdir -p project/{src,test,docs}       # 批量创建目录

tree                                   # 以树形结构显示目录(需安装)
tree -L 2                              # 只显示 2 层深度

watch -n 1 'df -h'                     # 每 1 秒执行一次命令并显示
watch -n 2 'ps aux | grep nginx'       # 实时监控 nginx 进程

which python3                          # 查找命令位置
whereis python3                        # 查找命令、源码、手册位置
whatis ls                              # 显示命令简短描述
man ls                                 # 查看命令手册
info ls                                # 查看 info 文档
ls --help                              # 查看命令帮助

# 生成随机数据
openssl rand -base64 32                # 生成 32 字节随机 base64 字符串
uuidgen                                # 生成 UUID

# 计算
expr 1 + 2                             # 表达式计算
echo $((3 * 4))                        # 算术运算
echo "scale=2; 10/3" | bc              # 浮点计算(需安装 bc)

12.4 系统控制 ​

bash
sudo reboot                            # 重启系统
sudo shutdown -r now                   # 立即重启
sudo shutdown -h now                   # 立即关机
sudo shutdown -h +10                   # 10 分钟后关机
sudo shutdown -c                       # 取消关机计划
sudo poweroff                          # 关机
sudo systemctl suspend                 # 挂起(睡眠)
sudo systemctl hibernate               # 休眠

十三、命令速查表 ​

文件操作速查 ​

操作命令
查看当前目录pwd
列出文件ls -la
切换目录cd /path
创建目录mkdir -p dir
创建文件touch file
复制cp -r src dest
移动/重命名mv old new
删除文件rm file
删除目录rm -rf dir
查找文件find . -name "*.txt"
查看内容cat file / less file
查看前 N 行head -n 20 file
查看后 N 行tail -n 20 file
实时追踪tail -f file

权限速查 ​

操作命令
修改权限chmod 755 file
添加执行chmod +x script.sh
修改属主chown user:group file
查看权限ls -l file

系统监控速查 ​

操作命令
磁盘使用df -h
目录大小du -sh dir
内存使用free -h
进程查看ps aux / top
杀死进程kill -9 PID
系统负载uptime

网络速查 ​

操作命令
查看 IPip addr
测试连通ping host
查看端口ss -tlnp
下载文件wget url / curl -O url
远程复制scp file user@host:/path
同步目录rsync -avz src/ dest/
SSH 登录ssh user@host
DNS 查询dig domain

压缩速查 ​

格式压缩解压
.tar.gztar -czvf a.tar.gz dir/tar -xzvf a.tar.gz
.tar.bz2tar -cjvf a.tar.bz2 dir/tar -xjvf a.tar.bz2
.tar.xztar -cJvf a.tar.xz dir/tar -xJvf a.tar.xz
.zipzip -r a.zip dir/unzip a.zip
.gzgzip filegunzip file.gz

文档完成
本手册涵盖了 Linux 日常运维与开发中最常用的高频命令,建议配合实际环境多加练习以熟练掌握。