Debian 12 (Bookworm) 完整命令手册


1. 系统信息与基础命令

1.1 系统版本与信息查询

# 查看Debian版本
cat /etc/os-release
cat /etc/debian_version
​
# 查看内核版本
uname -r
uname -a
​
# 查看硬件信息
lscpu                    # CPU信息
lsmem                    # 内存信息
lsblk                    # 块设备信息
lspci                    # PCI设备
lsusb                    # USB设备
dmidecode                # 详细硬件DMI信息
​
# 查看系统架构
dpkg --print-architecture
​
# 查看主机名
hostnamectl
hostnamectl status

1.2 基础文件操作

# 文件与目录操作
ls -la                   # 详细列表,包含隐藏文件
ls -lh                   # 人类可读大小
pwd                      # 显示当前路径
cd ~ 或 cd               # 返回主目录
cd -                     # 返回上次目录
​
# 文件操作
cp -r source/ dest/      # 递归复制目录
cp -p file1 file2        # 保留权限复制
mv -i source dest        # 交互式移动(覆盖前询问)
rm -rf directory/        # 强制递归删除(谨慎使用)
rm -i file               # 删除前确认
​
# 查找与搜索
find /path -name "*.log" -mtime +7 -delete    # 删除7天前的日志
find /path -type f -size +100M                # 查找大于100M的文件
locate filename          # 快速定位文件(需安装mlocate)
updatedb                 # 更新locate数据库
​
# 文本处理
grep -r "pattern" /path/                      # 递归搜索
grep -i "pattern" file                        # 忽略大小写
grep -v "pattern" file                        # 反向匹配
grep -E "pattern1|pattern2" file              # 扩展正则
awk '{print $1}' file                         # 提取第一列
sed -i 's/old/new/g' file                     # 原地替换文本

1.3 压缩与归档

# tar 归档
tar -cvf archive.tar files/                   # 创建tar包
tar -czvf archive.tar.gz files/               # gzip压缩
tar -cjvf archive.tar.bz2 files/              # bzip2压缩
tar -xvf archive.tar                          # 解压tar
tar -xzvf archive.tar.gz -C /dest/path        # 解压到指定目录
tar -tvf archive.tar                          # 查看内容不解压
​
# 其他压缩工具
zip -r archive.zip directory/                 # 创建zip
unzip archive.zip -d /dest/path               # 解压zip
7z a archive.7z files/                        # 7zip压缩(需安装p7zip-full)

2. APT 软件包管理

2.1 基础包管理

# 更新包列表
sudo apt update
​
# 升级已安装包
sudo apt upgrade                              # 安全升级,不删除依赖
sudo apt full-upgrade                         # 完整升级,可能删除旧包(推荐)
sudo apt dist-upgrade                         # 处理依赖关系变化的升级
​
# 安装软件包
sudo apt install package_name
sudo apt install package1 package2 package3   # 安装多个包
sudo apt install -y package                   # 自动确认
sudo apt install ./local-package.deb          # 安装本地deb包
​
# 删除软件包
sudo apt remove package                       # 保留配置文件
sudo apt purge package                        # 完全删除(推荐)
sudo apt autoremove                           # 删除不再需要的依赖
​
# 搜索与信息
apt search keyword                            # 搜索包
apt show package                              # 显示包详情
apt list --installed                          # 列出已安装包
apt list --upgradeable                        # 列出可升级包
apt policy package                            # 显示版本策略
apt-cache depends package                     # 显示依赖关系
apt-cache rdepends package                    # 显示反向依赖

2.2 高级APT操作

# 清理系统
sudo apt clean                                # 清除已下载的包缓存
sudo apt autoclean                            # 清除旧版本缓存
sudo apt autoremove --purge                   # 深度清理
​
# 修复与诊断
sudo apt --fix-broken install                 # 修复损坏的依赖
sudo dpkg --configure -a                      # 重新配置所有包
sudo apt install -f                           # 修复依赖问题
​
# 源管理
sudo nano /etc/apt/sources.list               # 编辑软件源
sudo nano /etc/apt/sources.list.d/*.list      # 编辑额外源
sudo apt-add-repository ppa:user/ppa          # 添加PPA(Debian不推荐)
​
# 锁定与保留
sudo apt-mark hold package                    # 阻止包升级
sudo apt-mark unhold package                  # 解除阻止
sudo apt-mark showhold                        # 显示被锁定的包
​
# 下载与提取
sudo apt download package                     # 仅下载deb包
dpkg-deb -x package.deb /tmp/extract          # 提取deb内容
dpkg-deb -e package.deb /tmp/control          # 提取控制信息

2.3 dpkg 底层管理

# 查询
dpkg -l                                       # 列出所有已安装包
dpkg -l | grep package                        # 搜索特定包
dpkg -L package                               # 列出包安装的文件
dpkg -S /path/to/file                         # 查询文件属于哪个包
​
# 安装与卸载
sudo dpkg -i package.deb                      # 安装本地deb
sudo dpkg -r package                          # 移除包(保留配置)
sudo dpkg -P package                          # 完全清除
​
# 状态与诊断
dpkg --audit                                  # 检查包状态
sudo dpkg-reconfigure package                 # 重新配置包

3. 系统服务管理 (systemd)

3.1 服务控制

# 服务状态与控制
sudo systemctl status service                 # 查看服务状态
sudo systemctl start service                  # 启动服务
sudo systemctl stop service                   # 停止服务
sudo systemctl restart service                # 重启服务
sudo systemctl reload service                 # 重载配置(不中断)
sudo systemctl enable service                 # 开机自启
sudo systemctl disable service                # 禁用自启
sudo systemctl is-enabled service             # 检查是否自启
sudo systemctl is-active service              # 检查是否运行
​
# 一次性操作
sudo systemctl start --now service            # 立即启动并启用
sudo systemctl disable --now service          # 立即停止并禁用
​
# 查看依赖与树
systemctl list-dependencies service           # 查看依赖关系
systemctl cat service                         # 查看服务文件内容
systemctl edit service                        # 编辑服务覆盖配置
systemctl edit --full service                 # 完整编辑服务文件

3.2 系统状态与电源管理

# 系统状态
systemctl                                     # 列出所有运行中服务
systemctl --failed                            # 列出失败的服务
systemctl --type=service --state=running      # 筛选运行中服务
systemctl list-unit-files                     # 列出所有单元文件
​
# 电源管理
sudo systemctl poweroff                       # 关机
sudo systemctl reboot                         # 重启
sudo systemctl suspend                        # 挂起(内存保持)
sudo systemctl hibernate                      # 休眠(写入磁盘)
sudo systemctl hybrid-sleep                   # 混合睡眠
​
# 启动与救援
sudo systemctl rescue                         # 进入救援模式
sudo systemctl emergency                      # 进入紧急模式
sudo systemctl default                        # 返回默认目标

3.3 定时任务 (systemd timers)

# 查看定时器
systemctl list-timers --all                   # 列出所有定时器
systemctl status timer-name.timer             # 查看定时器状态
​
# 创建定时服务(替代cron)
# /etc/systemd/system/myjob.timer
[Unit]
Description=Run my job daily
​
[Timer]
OnCalendar=daily
Persistent=true
​
[Install]
WantedBy=timers.target
​
# /etc/systemd/system/myjob.service
[Unit]
Description=My Job
​
[Service]
Type=oneshot
ExecStart=/path/to/script.sh
​
# 启用定时器
sudo systemctl daemon-reload
sudo systemctl enable myjob.timer
sudo systemctl start myjob.timer

4. 用户与权限管理

4.1 用户管理

# 添加用户
sudo adduser username                         # 交互式添加(推荐)
sudo useradd -m -s /bin/bash username         # 基础添加
sudo useradd -m -G sudo,adm username          # 添加并加入组
​
# 修改用户
sudo passwd username                          # 修改密码
sudo chage -l username                        # 查看密码过期信息
sudo usermod -aG group username               # 添加用户到附加组
sudo usermod -L username                      # 锁定用户
sudo usermod -U username                      # 解锁用户
sudo usermod -l newname oldname               # 重命名用户
​
# 删除用户
sudo deluser username                         # 删除用户(保留家目录)
sudo deluser --remove-home username           # 删除用户及家目录
sudo deluser --remove-all-files username      # 删除用户及所有文件
​
# 查询用户
id username                                   # 查看用户ID和组
whoami                                        # 当前用户
who                                           # 查看登录用户
w                                             # 查看登录用户活动
last                                          # 查看登录历史
lastlog                                       # 查看所有用户最后登录

4.2 组管理

# 组操作
sudo addgroup groupname                       # 添加组
sudo groupdel groupname                       # 删除组
sudo groupmod -n newname oldname              # 重命名组
getent group groupname                        # 查看组成员
groups username                               # 查看用户所属组
​
# 常用系统组
sudo usermod -aG sudo username                # 添加sudo权限
sudo usermod -aG adm username                 # 添加adm权限(日志)
sudo usermod -aG systemd-journal username     # 查看所有日志
sudo usermod -aG docker username              # Docker权限(需安装)

4.3 权限与ACL

# 基础权限
chmod 755 directory                           # rwxr-xr-x
chmod 644 file                                # rw-r--r--
chmod u+x file                                # 用户添加执行权限
chmod g-w file                                # 组移除写权限
chmod o=r file                                # 其他仅读权限
​
# 特殊权限
chmod u+s file                                # SUID
chmod g+s directory                           # SGID
chmod +t directory                            # Sticky Bit
​
# 所有权
sudo chown user:group file                    # 更改所有者和组
sudo chown -R user:group directory            # 递归更改
sudo chgrp group file                         # 仅更改组
​
# ACL(访问控制列表)
sudo apt install acl                          # 安装ACL工具
getfacl file                                  # 查看ACL
setfacl -m u:username:rw file                 # 给用户添加权限
setfacl -m g:groupname:rwx directory          # 给组添加权限
setfacl -x u:username file                    # 移除用户ACL
setfacl -b file                               # 清除所有ACL
setfacl -R -m d:u:username:rx directory       # 默认ACL(继承)

4.4 Sudo配置

# 编辑sudoers(必须使用visudo)
sudo visudo                                   # 编辑/etc/sudoers
sudo visudo -f /etc/sudoers.d/custom          # 编辑子配置
​
# 常用配置示例
# 给用户完全权限
username ALL=(ALL:ALL) ALL
​
# 免密码sudo
username ALL=(ALL) NOPASSWD: ALL
​
# 限制特定命令
username ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx
username ALL=(root) NOPASSWD: /usr/bin/apt update, /usr/bin/apt upgrade
​
# 组权限
%sudo ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL

5. 网络配置与管理

5.1 网络接口管理

# 查看网络状态
ip addr show                                  # 显示所有接口地址
ip addr show eth0                             # 显示特定接口
ip link show                                  # 显示接口状态
ip -s link show eth0                          # 显示接口统计
​
# 接口控制
sudo ip link set eth0 up                      # 启用接口
sudo ip link set eth0 down                    # 禁用接口
sudo ip addr add 192.168.1.100/24 dev eth0    # 临时添加IP
sudo ip addr del 192.168.1.100/24 dev eth0    # 删除IP
​
# 传统工具(需安装net-tools)
sudo ifconfig eth0 up
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0

5.2 路由与连接

# 路由管理
ip route show                                 # 显示路由表
ip route add default via 192.168.1.1          # 添加默认网关
ip route add 10.0.0.0/8 via 192.168.1.1       # 添加静态路由
ip route del default                          # 删除默认路由
​
# 网络连接测试
ping -c 4 google.com                          # 测试连通性
traceroute google.com                         # 追踪路由(需安装)
mtr google.com                                # 高级路由追踪(需安装)
curl -I https://example.com                   # 测试HTTP
wget --spider https://example.com             # 测试下载
​
# DNS查询
nslookup example.com                          # DNS查询
dig example.com                               # 详细DNS查询
dig @8.8.8.8 example.com                      # 指定DNS服务器
host example.com                              # 简单DNS查询
systemd-resolve --status                      # 查看DNS配置(Debian 12)
resolvectl status                             # 同上

5.3 网络管理器 (NetworkManager/nmcli)

# 查看状态
nmcli device status                           # 设备状态
nmcli connection show                         # 连接配置列表
nmcli connection show --active                # 活动连接
​
# 连接管理
sudo nmcli connection up "Wired connection 1" # 启用连接
sudo nmcli connection down "Wired connection 1" # 禁用连接
sudo nmcli device disconnect eth0             # 断开设备
​
# 修改配置
sudo nmcli connection modify "Wired connection 1" \
  ipv4.addresses 192.168.1.100/24
sudo nmcli connection modify "Wired connection 1" \
  ipv4.gateway 192.168.1.1
sudo nmcli connection modify "Wired connection 1" \
  ipv4.dns "8.8.8.8,8.8.4.4"
sudo nmcli connection modify "Wired connection 1" \
  ipv4.method manual                          # 静态IP
sudo nmcli connection up "Wired connection 1" # 应用更改
​
# WiFi管理
nmcli device wifi list                        # 扫描WiFi
sudo nmcli device wifi connect "SSID" password "password"

5.4 传统网络配置 (/etc/network/interfaces)

# 编辑网络配置
sudo nano /etc/network/interfaces

# DHCP配置
auto eth0
iface eth0 inet dhcp

# 静态IP配置
auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 8.8.4.4

# 应用配置(如果使用ifupdown)
sudo systemctl restart networking
sudo ifdown eth0 && sudo ifup eth0

5.5 防火墙 (nftables/iptables)

# Debian 12默认使用nftables,但提供iptables兼容
sudo apt install nftables                     # 安装nftables
​
# 查看规则
sudo nft list ruleset                         # 列出所有规则
sudo nft list tables                          # 列出表
sudo nft list table inet filter               # 列出filter表
​
# 基础配置示例 /etc/nftables.conf
#!/usr/sbin/nft -f
​
flush ruleset
​
table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        
        # 允许 established/related
        ct state established,related accept
        
        # 允许回环
        iif "lo" accept
        
        # 允许ICMP
        ip protocol icmp accept
        ip6 nexthdr icmpv6 accept
        
        # 允许SSH
        tcp dport 22 accept
        
        # 允许HTTP/HTTPS
        tcp dport { 80, 443 } accept
        
        # 计数并丢弃其他
        counter drop
    }
    
    chain forward {
        type filter hook forward priority 0; policy drop;
    }
    
    chain output {
        type filter hook output priority 0; policy accept;
    }
}
​
# 应用配置
sudo systemctl enable nftables
sudo systemctl restart nftables

6. 存储与文件系统

6.1 磁盘与分区

# 查看磁盘
lsblk                                         # 树状显示块设备
lsblk -f                                      # 显示文件系统
fdisk -l                                      # 列出分区表(需root)
parted -l                                     # 详细分区信息
blkid                                         # 显示UUID和文件系统
​
# fdisk分区(MBR)
sudo fdisk /dev/sdb
# 常用交互命令:n(新建) p(主分区) w(写入) q(退出) d(删除)
​
# gdisk分区(GPT,推荐)
sudo apt install gdisk
sudo gdisk /dev/sdb
​
# parted分区
sudo parted /dev/sdb
(parted) mklabel gpt                          # 创建GPT标签
(parted) mkpart primary ext4 1MiB 100GiB
(parted) print
(parted) quit

6.2 文件系统管理

# 创建文件系统
sudo mkfs.ext4 /dev/sdb1                      # 创建ext4
sudo mkfs.xfs /dev/sdb1                       # 创建XFS
sudo mkfs.btrfs /dev/sdb1                     # 创建Btrfs
sudo mkswap /dev/sdb2                         # 创建swap

# 检查与修复
sudo fsck /dev/sdb1                           # 检查文件系统
sudo fsck -y /dev/sdb1                        # 自动修复
sudo e2fsck -f /dev/sdb1                      # 强制检查ext4
sudo xfs_repair /dev/sdb1                     # 修复XFS

# 调整大小
sudo resize2fs /dev/sdb1 50G                  # 调整ext4大小
sudo xfs_growfs /mountpoint                   # 扩展XFS(在线)
sudo btrfs filesystem resize 100G /mountpoint # 调整Btrfs

# 标签与UUID
sudo e2label /dev/sdb1 newlabel               # 设置ext4标签
sudo xfs_admin -L newlabel /dev/sdb1          # 设置XFS标签
sudo tune2fs -U random /dev/sdb1              # 生成新UUID

6.3 挂载与fstab

# 临时挂载
sudo mount /dev/sdb1 /mnt/data
sudo mount -o ro /dev/sdb1 /mnt/data          # 只读挂载
sudo mount -o remount,rw /dev/sdb1            # 重新挂载为读写
sudo mount LABEL=data /mnt/data               # 按标签挂载
sudo mount UUID=xxxxx /mnt/data               # 按UUID挂载
​
# 卸载
sudo umount /mnt/data
sudo umount -l /mnt/data                      # 延迟卸载(lazy)
sudo umount -f /mnt/data                      # 强制卸载
​
# /etc/fstab配置
sudo nano /etc/fstab
​
# 示例条目
UUID=xxxxx-xxxxx-xxxxx  /mnt/data  ext4  defaults,noatime  0  2
LABEL=data              /mnt/data  xfs   defaults          0  0
/dev/sdb1               /mnt/data  ext4  defaults,nofail   0  2
//server/share          /mnt/cifs  cifs  credentials=/root/.smbcred,iocharset=utf8,file_mode=0777,dir_mode=0777  0  0
​
# 测试fstab
sudo mount -a                                   # 挂载所有
sudo findmnt --verify                           # 验证fstab

6.4 LVM逻辑卷管理

sudo apt install lvm2                         # 安装LVM
​
# 物理卷(PV)
sudo pvcreate /dev/sdb1 /dev/sdc1             # 创建物理卷
sudo pvdisplay                                # 显示物理卷
sudo pvremove /dev/sdb1                       # 移除物理卷
sudo pvs                                      # 简要状态
​
# 卷组(VG)
sudo vgcreate vg_data /dev/sdb1 /dev/sdc1     # 创建卷组
sudo vgextend vg_data /dev/sdd1               # 扩展卷组
sudo vgreduce vg_data /dev/sdb1               # 缩减卷组
sudo vgdisplay                                # 显示卷组
sudo vgs                                      # 简要状态
​
# 逻辑卷(LV)
sudo lvcreate -L 100G -n lv_www vg_data       # 创建100G逻辑卷
sudo lvcreate -l 100%FREE -n lv_backup vg_data # 使用剩余空间
sudo lvextend -L +50G /dev/vg_data/lv_www     # 扩展50G
sudo lvreduce -L 50G /dev/vg_data/lv_www      # 缩减至50G(谨慎)
sudo lvremove /dev/vg_data/lv_www             # 删除逻辑卷
sudo lvdisplay                                # 显示逻辑卷
sudo lvs                                      # 简要状态
​
# 扩展文件系统(在线)
sudo lvextend -r -L +10G /dev/vg_data/lv_www  # -r自动扩展文件系统
# 或手动
sudo lvextend -L +10G /dev/vg_data/lv_www
sudo resize2fs /dev/vg_data/lv_www            # ext4
sudo xfs_growfs /dev/vg_data/lv_www           # XFS

6.5 磁盘加密 (LUKS)

sudo apt install cryptsetup                   # 安装加密工具
​
# 创建加密卷
sudo cryptsetup luksFormat /dev/sdb1          # 初始化LUKS
sudo cryptsetup open /dev/sdb1 secret_disk    # 打开(映射)
sudo mkfs.ext4 /dev/mapper/secret_disk        # 创建文件系统
sudo mount /dev/mapper/secret_disk /mnt/secret
​
# 关闭
sudo umount /mnt/secret
sudo cryptsetup close secret_disk
​
# 自动挂载(/etc/crypttab)
echo "secret_disk UUID=xxxxx none luks" | sudo tee -a /etc/crypttab
# 然后在fstab中添加 /dev/mapper/secret_disk

7. 进程与性能监控

7.1 进程管理

# 查看进程
ps aux                                        # 详细进程列表
ps aux | grep process                         # 搜索进程
ps -ef --forest                               # 树状显示
pgrep -a process_name                         # 按名称查找PID
pidof process_name                            # 查找PID
​
# 实时查看
top                                           # 基础top
htop                                          # 增强版(需安装)
atop                                          # 高级系统监控(需安装)
​
# 进程控制
kill PID                                      # 终止进程
kill -9 PID                                   # 强制终止
killall process_name                          # 按名称终止
pkill process_name                            # 按模式终止
sudo kill -HUP PID                            # 重载配置
​
# 后台与前台
command &                                     # 后台运行
Ctrl+Z                                        # 暂停到后台
bg                                            # 后台继续运行
fg                                            # 前台继续
jobs                                          # 查看后台任务
nohup command &                               # 脱离终端运行
disown                                        # 从shell分离作业

7.2 系统监控

# CPU与内存
free -h                                       # 内存使用
vmstat 1 10                                   # 虚拟内存统计
iostat -x 1 10                                # IO统计(需安装sysstat)
mpstat -P ALL 1                               # CPU详细统计
​
# 磁盘IO
iotop                                         # IO进程监控(需root)
iostat -xz 1                                  # 扩展IO统计
​
# 网络监控
ss -tulnp                                     # 显示监听端口
ss -s                                         # 套接字统计
netstat -tulnp                                # 传统工具
lsof -i :80                                   # 查看端口占用
nethogs eth0                                  # 按进程网络流量(需安装)
​
# 综合监控
dstat -y --top-io --top-cpu                   # 全能系统监控
sar -u 1 10                                   # 系统活动报告
glances                                       # 高级监控工具(需安装)

7.3 资源限制

# 查看限制
ulimit -a                                     # 当前shell限制
ulimit -n                                     # 文件描述符限制
cat /proc/PID/limits                          # 查看进程限制
​
# 临时修改
ulimit -n 65535                               # 临时修改当前shell
​
# 永久修改 /etc/security/limits.conf
*    soft    nofile    65535
*    hard    nofile    65535
root soft    nofile    65535
root hard    nofile    65535
​
# systemd服务限制 /etc/systemd/system.conf
DefaultLimitNOFILE=65535

8. 日志管理

8.1 journalctl (systemd日志)

# 基础查看
journalctl                                    # 查看所有日志
journalctl -r                                 # 反向(最新在前)
journalctl -n 50                              # 最后50行
journalctl -f                                 # 实时跟踪
​
# 按服务查看
journalctl -u nginx.service                   # 查看nginx日志
journalctl -u nginx -f                        # 实时跟踪nginx
journalctl -u nginx --since "1 hour ago"      # 最近1小时
journalctl -u nginx --since today --until "2 hours ago"
​
# 按时间查看
journalctl --since "2024-01-01 00:00:00"
journalctl --since yesterday
journalctl --since "30 min ago"
​
# 按优先级
journalctl -p err                             # 错误及以上
# emerg(0), alert(1), crit(2), err(3), warning(4), notice(5), info(6), debug(7)
​
# 其他选项
journalctl -k                                 # 内核日志
journalctl --disk-usage                       # 查看日志占用空间
sudo journalctl --vacuum-time=7d              # 保留7天日志
sudo journalctl --vacuum-size=500M            # 限制日志大小
journalctl _PID=1                             # 查看特定PID日志
journalctl /usr/bin/bash                      # 查看特定可执行文件

8.2 传统日志文件

# 主要日志文件
/var/log/syslog                               # 系统日志(Debian默认)
/var/log/auth.log                             # 认证日志
/var/log/kern.log                             # 内核日志
/var/log/dmesg                                # 启动信息
/var/log/mail.log                             # 邮件日志
/var/log/nginx/                               # nginx日志目录
/var/log/apache2/                             # apache日志
​
# 日志轮转
sudo logrotate -d /etc/logrotate.conf         # 调试模式
sudo logrotate -f /etc/logrotate.conf         # 强制轮转
sudo nano /etc/logrotate.d/custom             # 自定义轮转配置
​
# 示例自定义配置
/var/log/myapp/*.log {
    daily
    missingok
    rotate 14
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/myapp.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

9. 安全与防火墙

9.1 SSH安全配置

# 编辑SSH配置
sudo nano /etc/ssh/sshd_config
​
# 推荐安全配置
Port 2222                                     # 修改默认端口
PermitRootLogin no                            # 禁止root登录
PasswordAuthentication no                     # 禁用密码(仅密钥)
PubkeyAuthentication yes                      # 启用密钥认证
MaxAuthTries 3                                # 最大尝试次数
ClientAliveInterval 300                       # 心跳检测
ClientAliveCountMax 2
AllowUsers user1 user2                        # 允许特定用户
DenyUsers baduser                             # 拒绝特定用户
​
# 重启SSH
sudo systemctl restart sshd
​
# 密钥管理
ssh-keygen -t ed25519 -C "comment"            # 生成Ed25519密钥
ssh-keygen -t rsa -b 4096 -C "comment"        # 生成RSA密钥
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@host # 复制公钥
ssh-add ~/.ssh/id_ed25519                     # 添加密钥到agent

9.2 SELinux/AppArmor

# AppArmor(Debian默认)
sudo aa-status                                # 查看状态
sudo aa-enforce /etc/apparmor.d/profile       # 强制模式
sudo aa-complain /etc/apparmor.d/profile      # 投诉模式
sudo aa-disable /etc/apparmor.d/profile       # 禁用配置
​
# SELinux(如安装)
sudo apt install selinux-basics selinux-policy-default
sudo selinux-activate                         # 激活
getenforce                                    # 查看模式
sestatus                                      # 详细状态
sudo setenforce 0                             # 临时设为Permissive
sudo setenforce 1                             # 临时设为Enforcing

9.3 安全工具

# 安装安全工具
sudo apt install fail2ban                     # 防暴力破解
sudo apt install rkhunter chkrootkit          # Rootkit检测
sudo apt install lynis                        # 安全审计
sudo apt install aide                         # 文件完整性检查
​
# fail2ban基础配置
sudo systemctl enable fail2ban
sudo nano /etc/fail2ban/jail.local
​
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
​
sudo systemctl restart fail2ban
sudo fail2ban-client status                   # 查看状态
sudo fail2ban-client status sshd              # 查看SSH监狱状态

10. 容器与虚拟化

10.1 Docker/Podman

# 安装Docker
sudo apt install docker.io docker-compose-plugin
​
# 基础命令
sudo docker ps                                # 运行中的容器
sudo docker ps -a                             # 所有容器
sudo docker images                            # 镜像列表
sudo docker pull image:tag                    # 拉取镜像
sudo docker build -t myimage .                # 构建镜像
sudo docker run -d --name web -p 80:80 nginx  # 运行容器
sudo docker exec -it container bash           # 进入容器
sudo docker logs -f container                 # 查看日志
sudo docker stop container                    # 停止容器
sudo docker rm container                      # 删除容器
sudo docker rmi image                         # 删除镜像
sudo docker system prune -a                   # 清理所有未使用资源
​
# Docker Compose
sudo docker compose up -d                     # 后台启动
sudo docker compose down                      # 停止并删除
sudo docker compose logs -f                   # 查看日志
sudo docker compose pull                      # 更新镜像
sudo docker compose exec service bash         # 进入服务容器

10.2 LXC/LXD

sudo apt install lxd                          # 安装LXD
sudo lxd init                                 # 初始化
​
# 容器管理
lxc list                                      # 列出容器
lxc launch ubuntu:24.04 mycontainer           # 创建并启动
lxc start mycontainer                         # 启动
lxc stop mycontainer                          # 停止
lxc delete mycontainer                        # 删除
lxc exec mycontainer -- bash                  # 执行命令
lxc file push local.txt mycontainer/tmp/      # 复制文件
lxc snapshot mycontainer snap1                # 创建快照
lxc restore mycontainer snap1                 # 恢复快照

附录:常用快捷键与技巧

终端快捷键

快捷键

功能

Ctrl+A

光标移到行首

Ctrl+E

光标移到行尾

Ctrl+U

删除光标前所有字符

Ctrl+K

删除光标后所有字符

Ctrl+W

删除前一个单词

Ctrl+R

历史命令搜索

Ctrl+L

清屏(同clear)

Ctrl+C

终止当前进程

Ctrl+Z

暂停当前进程

Ctrl+D

退出/EOF

Alt+.

插入上一个命令的最后一个参数

!!

执行上一条命令

!$

上一条命令的最后一个参数

!*

上一条命令的所有参数

实用技巧

# 历史记录
history | grep command                        # 搜索历史
!number                                       # 执行历史第N条
Ctrl+R 然后输入关键词                          # 交互式搜索历史
​
# 快速目录切换
pushd /path                                   # 压入目录栈
popd                                          # 弹出并切换
dirs -v                                       # 显示目录栈
cd -                                          # 返回上次目录
​
# 多命令执行
command1 && command2                          # 成功才执行2
command1 || command2                          # 失败才执行2
command1 ; command2                           # 顺序执行
​
# 输出重定向
command > file                                # 覆盖输出
command >> file                               # 追加输出
command 2>&1                                  # 标准错误重定向到标准输出
command &> file                               # 所有输出到文件
command | tee file                            # 输出到屏幕和文件

重要文件路径速查

用途

路径

软件源配置

/etc/apt/sources.list

网络配置

/etc/network/interfaces/etc/netplan/

DNS配置

/etc/resolv.conf

主机名

/etc/hostname

主机解析

/etc/hosts

用户密码

/etc/passwd, /etc/shadow

Sudo配置

/etc/sudoers, /etc/sudoers.d/

SSH配置

/etc/ssh/sshd_config

系统服务

/etc/systemd/system/

定时任务

/etc/crontab, /etc/cron.d/

日志目录

/var/log/

网站目录

/var/www/

备份目录

/var/backups/


这份手册涵盖了Debian 12服务器管理的核心命令。建议根据实际使用场景创建别名(alias)和脚本以提高效率。对于生产环境,请务必在测试后谨慎操作,特别是涉及磁盘分区、权限修改和网络配置的命令。


Debian 12 (Bookworm) 完整命令手册
https://fxln.top/archives/1772546602707
作者
Administrator
发布于
2026年03月03日
许可协议