需要说明的是,本文所列命令均基于主流发行版(如CentOS、Ubuntu、Debian等)的通用工具,适用于大多数生产环境。建议读者在实际操作前先在测试环境中练习,避免误操作影响线上服务。
首先,我们从最基本的文件与目录操作开始。Linux一切皆文件,因此熟练掌握文件管理命令是运维工作的基石。ls 命令用于列出目录内容,配合 -l(长格式)、-a(显示隐藏文件)、-h(人类可读大小)等参数,能快速获取文件详情。例如,执行 ls -lah /var/log 可以清晰查看日志目录下的所有文件及其权限、大小和修改时间。cd 命令用于切换目录,而 pwd 则显示当前所在路径,这两个命令虽简单,却是日常导航不可或缺的工具。
文件创建与编辑方面,touch 命令可快速生成空文件或更新文件时间戳;而 vim 或 nano 则是常用的文本编辑器。对于批量操作,cp(复制)、mv(移动/重命名)、rm(删除)三大命令必须谨慎使用——尤其是 rm -rf,一旦误删关键目录可能导致系统崩溃。建议在删除前先用 ls 确认目标路径,或使用 -i 参数启用交互确认模式。
接下来是用户与权限管理。Linux采用严格的权限模型,每个文件和目录都关联着所有者(user)、所属组(group)和其他用户(others)三类身份,并分别拥有读(r)、写(w)、执行(x)权限。通过 chmod 命令可以修改权限,例如 chmod 755 script.sh 赋予所有者完全权限,组和其他用户仅可读和执行。chown 用于更改文件所有者,如 chown nginx:nginx /var/www/html,常用于Web服务配置。
用户管理方面,useradd 和 userdel 分别用于创建和删除用户,而 passwd 用于设置密码。groupadd 可创建用户组,便于权限批量分配。值得注意的是,在生产环境中应遵循最小权限原则,避免为普通用户赋予 root 权限。若需临时提权,推荐使用 sudo 而非直接切换 root,这样既能完成任务,又能保留操作审计日志。
系统信息查询是日常排查问题的重要环节。uname -a 可快速查看内核版本和系统架构;hostnamectl 显示主机名及操作系统详细信息;而 lsb_release -a(在Debian系中)或 cat /etc/redhat-release(在RHEL系中)则能识别具体发行版。此外,df -h 查看磁盘使用情况,du -sh /path 估算目录占用空间,free -m 显示内存使用状态,这些命令组合起来能快速评估系统资源健康状况。
进程管理同样关键。ps aux 是查看当前运行进程的经典命令,结合 grep 可过滤特定服务,如 ps aux | grep nginx。更直观的 top 或 htop(需安装)能实时监控CPU、内存占用及进程动态。若需终止异常进程,可使用 kill -9 PID 强制结束,但应先尝试 kill -15(SIGTERM)给予程序优雅退出的机会。systemctl 是现代Linux系统服务管理的核心工具,例如 systemctl status nginx 查看服务状态,systemctl restart nginx 重启服务,systemctl enable nginx 设置开机自启。
网络配置与诊断是运维高频操作。ip addr show(或简写 ip a)取代了老旧的 ifconfig,用于查看网卡IP地址;ss -tuln 可列出监听端口,比 netstat 更高效。ping 和 traceroute 用于测试连通性与路由路径;telnet 或 nc(netcat)则可验证远程端口是否开放。若需临时修改DNS,可编辑 /etc/resolv.conf 文件;而 /etc/hosts 则用于本地域名解析,常用于测试环境。
日志分析是故障排查的“眼睛”。Linux系统日志通常集中于 /var/log 目录下,其中 messages(或 syslog)记录系统级事件,auth.log(或 secure)保存认证相关日志。使用 tail -f /var/log/nginx/access.log 可实时跟踪Web访问日志;journalctl -u nginx.service 则能查看由 systemd 管理的服务日志。grep、awk、sed 等文本处理工具在此大显身手,例如 grep 'ERROR' /var/log/app.log | wc -l 快速统计错误日志数量。
定时任务自动化也是运维必备技能。crontab -e 可编辑当前用户的定时任务,格式为“分 时 日 月 周 命令”。例如,0 2 * * * /backup.sh 表示每天凌晨2点执行备份脚本。系统级任务可直接写入 /etc/crontab,但需指定执行用户。务必注意:脚本路径应使用绝对路径,环境变量可能与交互式shell不同,建议在脚本开头显式设置 PATH。
安全加固不可忽视。定期更新系统是首要措施,yum update(RHEL系)或 apt upgrade(Debian系)可安装安全补丁。防火墙方面,firewalld(CentOS 7+)或 ufw(Ubuntu)提供简便的规则管理。例如,ufw allow 22/tcp 开放SSH端口,firewall-cmd --permanent --add-port=80/tcp 添加HTTP端口。此外,应禁用 root 远程登录,改用密钥认证,并限制 SSH 登录用户,这些均可在 /etc/ssh/sshd_config 中配置。
最后,善用 Shell 脚本可大幅提升效率。一个简单的备份脚本可能包含 tar 打包、rsync 同步、日志记录和错误判断等逻辑。例如:
#!/bin/bash
DATE=$(date +%Y%m%d)
tar -czf /backup/site_$DATE.tar.gz /var/www/html
if [ $? -eq 0 ]; then
echo "Backup successful" >> /var/log/backup.log
else
echo "Backup failed" >> /var/log/backup.log
fi
此类脚本配合 cron,即可实现无人值守的自动化运维。
总结而言,掌握这些基础命令并非一蹴而就,而是需要在真实环境中不断实践与积累。建议初学者建立自己的命令速查笔记,逐步理解每个参数背后的原理。同时,养成良好的操作习惯——如操作前备份、关键命令二次确认、日志及时归档——将大大降低运维风险。Linux的世界浩瀚而深邃,但只要打好基础,你就能在这片开源沃土上构建稳定、高效的服务器环境。
