👋 我是 Lucifer,一名专注 Oracle、国产数据库与数据库架构的 DBA。更多原创文章和技术资料同步更新:ora100.com
前言
Linux 运维真正高频的工作,主要集中在系统识别、文件处理、进程服务、网络排障、磁盘存储、日志安全和性能定位。下面整理 100 条可直接复用的命令,示例以主流 GNU/Linux 与 systemd 环境为主。
不同发行版的包管理器、网卡名和日志路径可能不同。涉及删除、格式化、挂载、防火墙和账号权限的命令均应先在测试环境确认;文中的主机、设备和路径均为示例。
一、系统与硬件信息
查看内核和架构
uname -a
查看发行版信息
cat /etc/os-release
查看主机名
hostnamectl
查看系统运行时间
uptime
查看 CPU 信息
lscpu
查看内存使用
free -h
查看块设备
lsblk -f
查看 PCI 设备
lspci
查看 USB 设备
lsusb
查看当前时间和时区
timedatectl
二、文件与目录
详细列出文件
ls -lah /var/log
创建多级目录
mkdir -p /data/app/{logs,conf,backup}
复制目录并保留属性
cp -a /etc/nginx /backup/nginx
移动或重命名文件
mv app.log app.log.1
安全查看文件类型
file /usr/bin/bash
查找大于 1 GB 的文件
find / -xdev -type f -size +1G -print 2>/dev/null
按名称查找文件
find /etc -type f -name '*.conf'
统计目录大小
du -sh /var/lib/*
查看文件校验值
sha256sum package.tar.gz
删除前先交互确认
rm -i obsolete.conf
三、文本查看与处理
分页查看文件
less /var/log/messages
查看文件前 20 行
head -n 20 app.log
实时追踪日志
tail -F app.log
搜索错误并显示行号
grep -nEi 'error|failed|panic' app.log
递归搜索配置内容
grep -RIn --exclude-dir=.git 'listen' /etc/nginx
提取指定列
awk '{print $1,$5}' access.log
替换文本并备份原文件
sed -i.bak 's/old.example.com/new.example.com/g' app.conf
排序并去重
sort names.txt | uniq -c | sort -nr
比较两个文件
diff -u old.conf new.conf
查看文件打开者
lsof /var/log/app.log
四、用户与权限
查看当前身份
id
查看最近登录
last -a | head
创建用户
sudo useradd -m -s /bin/bash appuser
设置用户密码
sudo passwd appuser
修改属主
sudo chown -R appuser:appuser /data/app
设置目录权限
chmod 750 /data/app
为脚本添加执行权限
chmod u+x deploy.sh
查看 ACL
getfacl /data/app
添加 ACL 权限
setfacl -m u:ops:r-x /data/app
查看可执行的 sudo 命令
sudo -l
五、进程与服务
查看进程树
ps -ef --forest
按名称查找进程
pgrep -af nginx
动态查看资源
top
查看指定进程线程
top -H -p 1234
优雅终止进程
kill -TERM 1234
调整进程优先级
renice 10 -p 1234
查看服务状态
systemctl status nginx --no-pager
启动并设置开机自启
sudo systemctl enable --now nginx
重新加载服务配置
sudo systemctl reload nginx
查看失败服务
systemctl --failed
六、网络排障
查看 IP 地址
ip -br address
查看路由
ip route
查看邻居表
ip neigh
查看监听端口
ss -lntup
查看指定端口连接
ss -antp '( sport = :443 )'
测试网络连通性
ping -c 4192.0.2.10
跟踪网络路径
traceroute example.com
查询 DNS
dig +short example.com A
测试 TCP 端口
nc -vz -w 3192.0.2.105432
查看 HTTP 响应头
curl -I --connect-timeout 5 https://example.com
七、磁盘与文件系统
查看文件系统空间
df -hT
查看 inode 使用
df -ih
查看挂载信息
findmnt
查看指定设备 UUID
blkid /dev/sdb1
临时挂载文件系统
sudo mount /dev/sdb1 /data
卸载文件系统
sudo umount /data
查看磁盘 I/O
iostat -xz 1
查看进程 I/O
sudo pidstat -d 1
查看 LVM 逻辑卷
sudo lvs -a -o +devices
检查 ext 文件系统
sudo fsck -n /dev/sdb1
-n 只读检查;修复前必须卸载并备份。
八、日志与任务
查看本次启动日志
journalctl -b
查看服务最近日志
journalctl -u nginx -n 100 --no-pager
按时间查询日志
journalctl --since '2026-07-27 09:00' --until'2026-07-27 10:00'
查看内核日志
journalctl -k -p warning
查看定时任务
crontab -l
编辑定时任务
crontab -e
查看 systemd 定时器
systemctl list-timers --all
创建一次性延时任务
echo '/usr/local/bin/backup.sh' | at 23:00
后台运行并保存输出
nohup ./job.sh >job.log 2>&1 &
查看后台作业
jobs -l
九、压缩、传输与包管理
创建 gzip 压缩包
tar -czf app-$(date +%F).tar.gz /data/app
查看压缩包内容
tar -tzf app.tar.gz | head
解压到指定目录
tar -xzf app.tar.gz -C /opt/app
远程复制文件
scp backup.tar.gz ops@192.0.2.20:/backup/
增量同步目录
rsync -aHAX --delete --dry-run /data/ ops@192.0.2.20:/data/
确认预演结果后再移除 --dry-run。
建立 SSH 隧道
ssh -N -L 15432:db.internal:5432 ops@bastion.example.com
Debian 系安装软件
sudo apt install -y jq
RPM 系安装软件
sudo dnf install -y jq
查询命令所属软件包
dpkg -S /usr/bin/curl
查看可升级软件包
apt list --upgradable
十、性能与安全检查
查看整体性能采样
vmstat 110
查看各进程 CPU
pidstat -u 1
查看内存占用前十进程
ps -eo pid,user,%mem,rss,comm --sort=-rss | head
跟踪系统调用
sudo strace -f -p 1234
查看进程限制
cat /proc/1234/limits
查看内核参数
sysctl net.ipv4.ip_forward
临时修改内核参数
sudo sysctl -w vm.swappiness=10
查看防火墙规则
sudo nft list ruleset
查看 SELinux 状态
sestatus
生成系统诊断摘要
{ date; uptime; free -h; df -hT; ss -s; systemctl --failed; } | tee system-check.txt
总结
这 100 条命令覆盖了 Linux 日常巡检、故障定位和基础维护。生产操作建议遵循“先查询、再预演、后变更”,并将关键命令、输出和回退方案保留在变更记录中。
SQL Server DBA 实用的 100 条命令(建议收藏)
Oracle DBA 应该掌握的 100 条命令(建议收藏)
MongoDB DBA 应该掌握的 100 条命令(建议收藏)
OceanBase DBA 应该掌握的 100 条命令(建议收藏)
更多 Oracle、MySQL、PostgreSQL、MongoDB 实战内容,可以访问 DBA 学习平台:ora100.com
感谢阅读。
我会持续分享 Oracle、GoldenGate、RAC、Data Guard、MySQL、PostgreSQL、OceanBase、人大金仓等数据库技术文章。
个人网站:ora100.com