📦 软件包管理 (APT & DPKG)

apt update
更新本地软件包列表数据库,同步远程仓库信息。
apt upgrade
将系统中所有已安装的软件包升级到最新版本。
apt install [包名]
安装指定的软件包。
sudo apt install vim
  • -y 自动确认安装
  • --reinstall 重新安装软件包
  • --no-install-recommends 不安装推荐依赖
dpkg -i [文件名.deb]
安装本地的 .deb 格式安装包。
apt remove [包名]
卸载指定软件包,但保留配置文件。
apt purge [包名]
彻底删除软件包及其配置文件。
apt autoremove
自动清理无用依赖包。
apt search [关键词]
搜索软件仓库中的软件包。
nano /etc/apt/sources.list
编辑 APT 软件源配置文件。
apt list --installed
查看已安装软件包列表。
dpkg -S /usr/bin/ssh
查询文件属于哪个软件包。
apt full-upgrade
智能升级系统,可自动处理依赖变化与内核更新。
⚠️ 执行前建议确认重要服务兼容性。
apt-cache policy [包名]
查看软件包版本与软件源优先级。
apt-cache policy nginx
dpkg --configure -a
修复中断的软件包安装状态。

🌍 Nginx 与 HTTPS(完整运维)

apt install nginx -y
安装 Nginx。
nginx -v
查看 Nginx 版本。
nginx -V
查看版本、编译参数与模块。
systemctl enable nginx --now
开机自启并立即启动。
systemctl status nginx
查看运行状态。
systemctl restart nginx
重启服务。
systemctl reload nginx
平滑重载配置。
nginx -t
检查配置语法。
nginx -T
输出全部配置并检测语法。
nginx -s reload
向主进程发送重载信号。
nginx -s stop
快速停止 Nginx。
nginx -s quit
优雅关闭 Nginx。
ls /etc/nginx/sites-available
查看站点配置。
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
启用虚拟主机。
tail -f /var/log/nginx/access.log
实时查看访问日志。
tail -f /var/log/nginx/error.log
实时查看错误日志。
apt install certbot python3-certbot-nginx -y
安装 Let’s Encrypt 工具。
certbot --nginx -d example.com
自动申请证书并配置 HTTPS。
certbot --nginx -d example.com -d www.example.com
多域名证书申请。
certbot certificates
查看已签发证书。
certbot renew
立即执行续期检查。
certbot renew --dry-run
模拟续期测试。
systemctl list-timers | grep certbot
检查自动续期定时器。
systemctl status certbot.timer
查看续期任务状态。
crontab -e
手工配置续期任务。
0 3 * * * certbot renew --quiet && systemctl reload nginx
tail -f /var/log/letsencrypt/letsencrypt.log
查看证书申请与续期日志。
ufw allow 'Nginx Full'
开放 80/443 端口。
location / { proxy_pass http://127.0.0.1:3000; }
反向代理到本机 3000 端口(Node.js、Java、Go 等应用)。
proxy_set_header Host $host;
向后端传递真实域名。
proxy_set_header X-Real-IP $remote_addr;
向后端传递客户端真实 IP。
upstream backend { server 127.0.0.1:3000; server 127.0.0.1:3001; }
配置负载均衡后端节点。
proxy_pass http://backend;
通过 upstream 实现负载均衡。
return 301 https://$host$request_uri;
HTTP 强制跳转 HTTPS。
server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; }
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
配置 SSL 公钥证书。
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
配置 SSL 私钥文件。
listen 443 ssl http2;
启用 HTTPS 与 HTTP/2。
ssl_protocols TLSv1.2 TLSv1.3;
限制安全 TLS 版本。
ssl_prefer_server_ciphers on;
优先使用服务端加密套件。
add_header Strict-Transport-Security "max-age=31536000" always;
启用 HSTS,强制浏览器使用 HTTPS。
openssl x509 -in fullchain.pem -text -noout
查看证书详细信息。
openssl s_client -connect example.com:443
检测 HTTPS 握手与证书链。
curl -I https://example.com
测试 HTTPS 响应头。

🖥️ 系统信息查询

uname -a
显示系统详细信息,包括内核版本、架构、主机名。
lsb_release -a
显示 Debian 发行版具体版本信息(可能需安装 lsb-release 软件包)。
df -h
查看磁盘使用空间,-h 表示以易读的格式(GB/MB)显示。
free -h
查看系统内存使用情况(物理内存与虚拟内存)。
hostnamectl
查看系统主机名与系统信息。
top
实时查看系统资源与进程状态。
whoami
显示当前登录用户名。
lscpu
查看 CPU 架构与核心信息。
timedatectl
查看和设置系统时间与时区。
env
查看当前环境变量。

📂 文件与目录操作

ls -la
列出当前目录下所有文件,包括隐藏文件及详细权限。
  • -l 长格式显示
  • -a 显示隐藏文件
  • -h 以 KB/MB/GB 显示大小
  • -t 按修改时间排序
cp -r [源] [目标]
复制文件或目录,-r 表示递归复制。
  • -r 递归复制目录
  • -v 显示复制过程
  • -a 保留权限和时间
  • -f 强制覆盖
rm -rf [路径]
强制删除文件或目录。⚠️ 请谨慎使用。
  • -r 递归删除目录
  • -f 强制删除不提示
  • -i 删除前确认
⚠️ 危险命令:请勿随意执行 rm -rf /
mv [源] [目标]
移动或重命名文件。
mkdir -p [目录]
递归创建目录。
find /路径 -name 文件名
查找指定文件。
  • -name 按文件名查找
  • -type f 查找文件
  • -type d 查找目录
  • -size 按大小查找
  • -mtime 按修改时间查找
touch [文件]
创建空文件或更新时间戳。
nano [文件]
使用 nano 编辑文件。
pwd
显示当前工作目录。
cd ~
切换到用户主目录。
ln -s 源文件 链接名
创建软链接。
tree
树状显示目录结构。
stat 文件
查看文件详细属性。
find / -type f -size +1G
查找系统中大于 1GB 的文件。
find /var/log -type f -mtime -7
  • -type f 仅查找文件
  • -size +1G 查找大于 1GB 文件
  • -mtime -7 查找最近 7 天修改文件
locate 文件名
快速搜索文件路径(需先 updatedb 建立索引)。
locate nginx.conf
which 命令
查看命令可执行文件路径。
which python3

👤 用户与权限

chmod 755 [文件]
修改文件权限(755 对应 rwxr-xr-x)。
chown user:group [文件]
修改文件的所有者及所属组。
sudo [命令]
以管理员权限执行命令。
passwd [用户]
修改用户密码。
useradd [用户名]
创建新用户。
usermod -aG sudo [用户]
将用户加入 sudo 管理组。
id [用户]
查看用户 UID、GID 与所属组。
id root
su - 用户名
切换到指定用户环境。
su - root

🌐 网络配置与诊断

ip addr
查看网络接口的 IP 地址。
ping [地址]
测试与远程主机的连通性。
curl [URL]
请求网页或接口内容。
wget [URL]
下载文件。
ss -tulnp
查看监听端口与网络连接。
traceroute [地址]
追踪网络路由路径(可能需先安装 traceroute 软件包)。
dig google.com
DNS 查询工具。
nslookup google.com
查看 DNS 解析结果。
nc -zv 127.0.0.1 80
测试端口连通性。
nmap 192.168.1.1
扫描网络主机与端口。
⚠️ 对非授权目标进行扫描可能违反安全规定。
ip route
查看路由表。
curl ifconfig.me
查看当前公网 IP 地址。
提示:该命令依赖外部网站返回公网 IP。
ip link
查看网络接口状态。
hostname -I
快速查看本机 IP 地址。

⚙️ 系统服务 (Systemd)

systemctl start [服务名]
启动指定的系统服务(如 nginx, ssh)。
systemctl status [服务名]
查看服务的运行状态。
systemctl restart [服务名]
重启指定服务。
systemctl enable [服务名]
设置服务开机自启。
systemctl stop [服务名]
停止指定服务。
journalctl -u [服务名]
查看指定服务日志。
systemctl list-units --type=service
查看 systemd 服务列表(默认显示活动中的服务)。

📊 进程管理

htop
交互式进程监控工具(通常需先安装 htop 软件包)。
kill -9 [PID]
强制结束指定 PID 的进程。
⚠️ SIGKILL 会强制终止进程,可能导致数据未保存。
ps aux
查看所有运行中的进程。
killall [进程名]
结束指定名称的所有进程。
nice -n 10 [命令]
调整进程优先级。
jobs
查看后台任务。
pgrep nginx
按名称查找进程 PID。
pkill nginx
按名称结束进程。
strace -p PID
跟踪进程系统调用。
vmstat 1
实时查看系统性能。
ps aux | grep nginx
通过管道筛选 nginx 相关进程,常用于检查服务是否运行。
ps aux | grep ssh
watch -n 1 'ps aux --sort=-%mem | head'
实时查看内存占用最高的进程。

📝 文本查看与处理

cat [文件]
查看文件完整内容。
less [文件]
分页查看大文件内容,支持上下滚动。
grep '关键词' [文件]
搜索文件中的指定文本内容。
  • -i 忽略大小写
  • -r 递归搜索
  • -n 显示行号
  • -v 反向匹配
tail -f [日志文件]
实时查看日志文件更新内容。
head -n 20 [文件]
查看文件前 20 行。
wc -l [文件]
统计文件行数。
sed -n '1,10p' file.txt
提取文件前 10 行。
awk '{print $1}' file.txt
输出文件第一列。
sort file.txt
对文本进行排序。
uniq file.txt
去除相邻重复行(通常需先配合 sort 使用)。
xargs
将标准输入转换为命令参数。
tail -f /var/log/syslog
实时追踪日志文件更新内容,适合排查系统与服务问题。
tail -f /var/log/nginx/error.log
cut -d ':' -f1 /etc/passwd
按分隔符提取文本字段。
tee 文件名
将输出同时写入终端和文件。
echo test | tee test.txt

🗜️ 压缩与归档

tar -czvf backup.tar.gz 文件夹
将目录压缩为 tar.gz 格式。
tar -xzvf backup.tar.gz
解压 tar.gz 压缩包。
zip -r archive.zip 文件夹
压缩为 zip 文件。
unzip archive.zip
解压 zip 文件。
gzip 文件名
压缩单个文件,默认会删除原文件并生成 .gz 文件。
7z a archive.7z 文件夹
使用 7zip 创建高压缩率归档文件。

💽 磁盘与挂载管理

lsblk
查看磁盘与分区结构。
fdisk -l
列出所有磁盘分区信息。
mount
查看当前挂载的文件系统。
umount [挂载点]
卸载指定挂载点。
du -sh [目录]
统计目录占用空间大小。
watch -n 1 df -h
每秒自动刷新一次磁盘使用情况。
watch -n 2 lsblk
  • -n 1 每 1 秒刷新一次
  • df -h 以易读方式显示磁盘空间
blkid
查看磁盘 UUID 与文件系统类型。
df -i
查看 inode 使用情况,适合排查 inode 耗尽问题。

🔐 SSH 与远程连接

ssh user@host
通过 SSH 连接远程服务器。
scp 文件 user@host:/路径
通过 SCP 复制文件到远程主机。
rsync -av [源] [目标]
高效同步文件与目录。
ssh-keygen
生成 SSH 密钥对。
ssh-copy-id user@host
复制 SSH 公钥到远程主机,实现免密登录。

📜 日志与系统排错

journalctl -xe
查看 systemd 系统日志与错误。
dmesg
查看内核启动与硬件日志。
last
查看最近登录用户记录。
uptime
查看系统运行时间与负载。
journalctl -f
实时跟踪 systemd 日志输出。

💻 开发与运维工具

git status
查看 Git 仓库状态。
docker ps
查看运行中的 Docker 容器。
docker logs [容器]
查看容器日志。
python3 -m venv venv
创建 Python 虚拟环境。
npm install
安装 Node.js 项目依赖。
git log --oneline --graph
简洁查看 Git 提交历史图。
docker exec -it 容器名 bash
进入运行中的 Docker 容器。

🔥 防火墙与安全

ufw status
查看 UFW 防火墙状态。
ufw enable
启用 UFW 防火墙。
ufw allow 22
允许 SSH 22 端口访问。
iptables -L
查看 iptables 防火墙规则。
fail2ban-client status
查看 fail2ban 防护状态。
ufw deny 端口
拒绝指定端口访问。
ufw deny 3306

⏰ 定时任务

crontab -e
编辑当前用户的定时任务。
crontab -l
查看当前用户的定时任务列表。
systemctl status cron
查看 cron 服务状态。
systemctl restart cron
重启 cron 服务。

🧯 系统故障排查

ps aux --sort=-%cpu
查看 CPU 占用最高的进程。
free -h
查看内存使用情况。
df -h
查看磁盘空间使用。
du -sh /*
查看根目录下各目录占用空间。
lsof -i :80
查看 80 端口被哪个程序占用。
journalctl -u nginx
查看 nginx 服务日志。
sar -u 1 5
查看 CPU 历史性能数据(需 sysstat)。
iotop
实时查看磁盘 IO 占用情况。

✏️ 编辑器基础 (Vim & Nano)

vim 文件名
打开 Vim 编辑器。
i
进入插入模式。
:wq
保存并退出。
:q!
强制退出不保存。
dd
删除当前行。
yy
复制当前行。
p
粘贴内容。
nano 文件名
使用 nano 编辑文件,适合快速修改配置文件。
Ctrl+O
保存文件。
Ctrl+X
退出 nano。
Ctrl+K / Ctrl+U
剪切/粘贴当前行内容。

🧩 Debian 特色

cat /etc/debian_version
查看 Debian 系统版本。
apt full-upgrade
完整升级系统。
apt --fix-broken install
修复损坏的软件依赖。
dpkg -l
查看已安装软件包。
apt show nginx
查看软件包详细信息。
apt-mark hold [包名]
锁定软件包版本,防止自动升级。
apt-mark hold nginx
dpkg-reconfigure tzdata
重新配置系统时区。

🚀 Shell 与效率工具

history
查看历史命令记录。
history | grep ssh
alias ll='ls -lah'
创建命令别名,提高效率。
source ~/.bashrc
重新加载 Shell 配置文件。
echo $PATH
查看系统 PATH 环境变量。
nohup 命令 &
让程序后台运行并忽略终端退出。
nohup python3 app.py &