掌握这些命令,搞定日常服务器操作与故障排查。
作为运维工程师,我们每天打交道最多的就是命令行。无论你是刚入行的新人,还是希望夯实基础的开发者,熟练使用以下命令都能让你在工作中更加得心应手。
本文我将常用的运维命令分为七大板块,结合真实使用场景,帮你快速理解并上手。
一、 文件与目录管理(日常操作)
1.ls— 列出目录内容
最常用的命令,没有之一。
bash # 显示详细信息(权限、大小、修改时间)并人性化显示大小 ls -lh # 显示所有文件(包含隐藏文件)并按时间排序 ls -alt2.cd— 切换目录
cd /var/log # 进入绝对路径 cd .. # 返回上级目录 cd ~ # 回到当前用户的家目录 cd - # 返回上一次所在的目录(很实用)3.cp/mv/rm— 复制、移动、删除
bash # 递归复制目录(保留权限属性) cp -rp /source /dest # 移动文件(重命名) mv old_name.txt new_name.txt # 强制递归删除(危险!请务必确认路径正确) rm -rf /tmp/cache/*安全提示:建议将rm替换为mv移动到临时目录,或者使用trash-cli等工具防止误删。
4.find— 文件查找神器
# 查找 /var 下大于 100M 的文件 find /var -type f -size +100M # 查找 7 天前修改的 .log 文件并删除 find /var/log -name "*.log" -mtime +7 -exec rm -f {} \;二、 文件内容查看与处理
5.cat/less/more— 查看文件
cat file.txt # 一次性显示全部(适合小文件) less file.txt # 分页查看(按 q 退出,按 / 搜索)——我最常用 tail -f app.log # 实时滚动查看日志(调试必备)6.grep— 文本过滤(日志分析核心)
bash # 在日志中查找 ERROR,并显示前后 3 行 grep -C 3 "ERROR" application.log # 递归搜索当前目录下所有包含 "timeout" 的配置文件 grep -r "timeout" /etc/nginx/7.awk/sed— 文本处理双雄
# awk: 打印进程列表中第二列(PID)和最后一列(命令名) ps -ef | awk '{print $2, $NF}' # sed: 将配置文件中的旧IP替换为新IP(不修改原文件,仅输出) sed 's/192.168.1.1/10.0.0.1/g' config.conf三、 系统状态监控(运维核心)
8.top/htop— 实时进程管理
查看CPU、内存占用率最高的进程。
按P键按CPU排序,按M键按内存排序。
9.free— 查看内存使用
free -h # 以人类可读格式显示(-h 参数很重要)10.df/du— 磁盘空间分析
df -h # 查看磁盘分区使用率 du -sh * # 查看当前目录下各文件夹大小 du -sh /var/log/ # 查看日志目录总大小11.netstat/ss— 网络连接与端口(排查端口冲突)
# 查看所有监听端口及对应的进程 netstat -tunlp # 新版推荐使用 ss(更快) ss -tunlp四、 服务与进程管理
12.ps— 进程快照
# 查看所有进程,显示完整命令 ps -ef # 查找特定Java进程 ps -ef | grep java13.kill— 终止进程
kill -9 PID # 强制杀死(慎用,可能导致数据丢失) kill -15 PID # 优雅关闭(推荐)14.systemctl/service— 系统服务控制
systemctl status nginx # 查看状态 systemctl restart nginx # 重启 systemctl enable nginx # 设置开机自启五、 网络通信与排查
15.ping— 网络连通测试
ping -c 4 baidu.com # 只发4个包,避免一直刷屏16.curl— HTTP请求工具(API调试)
# 测试接口连通性,显示响应头 curl -I https://api.example.com/health # 模拟POST请求 curl -X POST -d "name=test" http://localhost:8080/api17.scp/rsync— 远程文件传输
# 将本地文件上传到远程服务器 scp ./backup.tar.gz root@192.168.1.100:/backup/ # rsync 增量同步(支持断点续传,更高效) rsync -avz --progress ./local_dir/ user@ip:/remote_dir/六、 权限与用户管理
18.chmod/chown— 修改权限与属主
chmod 755 script.sh # 赋予执行权限 chown -R www:www /var/www/html # 修改目录属主为www用户19.useradd/passwd— 用户管理
useradd -m dev_user # 创建用户并自动生成家目录 passwd dev_user # 设置密码七、 进阶实用技巧
20. 管道符|与重定向>>>
# 管道:将前一个命令的输出作为后一个的输入 dmesg | grep error # 重定向:覆盖写入文件(注意 > 会清空原文件) echo "Server started" > /var/log/startup.log # 追加写入 echo "Another line" >> /var/log/startup.log21.crontab— 定时任务(自动化运维)
crontab -e # 编辑定时任务 # 每天凌晨3点清理日志 0 3 * * * /bin/bash /scripts/clean_logs.sh22.nohup— 后台运行程序(防止退出中断)
nohup java -jar app.jar > app.out 2>&1 &总结:运维命令心法
多用
--help和man:不记得参数时,man ls是你最好的老师。谨慎使用
rm -rf:执行前先ls确认当前路径。日志分析三板斧:
tail+grep+awk解决 90% 的问题。安全第一:不要在生产环境执行未经测试的命令。
希望这份命令清单能成为你工作中的速查手册。如果你有什么常用的“冷门”神奇命令,欢迎在评论区补充交流!