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 status1.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.timer4. 用户与权限管理
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) ALL5. 网络配置与管理
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.05.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 eth05.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 nftables6. 存储与文件系统
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) quit6.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 # 生成新UUID6.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 # 验证fstab6.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 # XFS6.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_disk7. 进程与性能监控
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=655358. 日志管理
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 # 添加密钥到agent9.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 # 临时设为Enforcing9.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 # 恢复快照附录:常用快捷键与技巧
终端快捷键
实用技巧
# 历史记录
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 # 输出到屏幕和文件重要文件路径速查
这份手册涵盖了Debian 12服务器管理的核心命令。建议根据实际使用场景创建别名(alias)和脚本以提高效率。对于生产环境,请务必在测试后谨慎操作,特别是涉及磁盘分区、权限修改和网络配置的命令。
Debian 12 (Bookworm) 完整命令手册
https://fxln.top/archives/1772546602707