Linux 服务器运维基础:常用命令、权限管理与日志查看
管理云服务器时,绝大多数操作都发生在命令行里。无论你是后端开发还是专职运维,Linux 都是绕不开的日常环境。刚接手一台服务器时,第一件事通常就是 SSH 登录、查看系统信息、确认磁盘和内存状况——本文把这几类最常用的操作串成一份可照着做的清单,并对每个命令给出使用场景,帮你建立自己的命令库。
一、SSH 连接
1.1 基本连接
SSH 是登录远程服务器的标准方式。第一次登录建议用密码,之后尽快切换为密钥登录,密码登录在暴力破解面前太脆弱。
# 使用密码登录
ssh user@server_ip
# 使用密钥登录(推荐)
ssh -i ~/.ssh/id_rsa user@server_ip
# 指定端口
ssh -p 2222 user@server_ip
1.2 SSH 配置优化
把经常登录的服务器写进 ~/.ssh/config,之后一条 ssh myserver 就能连上,还能顺带指定密钥、端口和跳板机。
# ~/.ssh/config
Host myserver
HostName 123.456.789.0
User root
Port 22
IdentityFile ~/.ssh/id_rsa
# 之后可以直接用 ssh myserver 连接
如果想进一步加固 SSH(禁用密码登录、限制 IP),可以参考SSH 加固指南。
二、文件管理
2.1 文件和目录操作
文件操作是使用频率最高的部分。ls -la 会列出包括隐藏文件在内的所有内容,du -sh 用来查目录占用,配合 sort -hr 可以快速找到“哪个目录最占磁盘”。
# 目录操作
ls -la # 列出所有文件(包括隐藏文件)
pwd # 显示当前路径
cd /var/www # 切换目录
mkdir -p a/b/c # 递归创建目录
rm -rf dir/ # 强制删除目录
# 文件操作
cp file1 file2 # 复制文件
cp -r dir1 dir2 # 复制目录
mv file1 dir/ # 移动文件
rm file.txt # 删除文件
touch newfile.txt # 创建空文件
# 查看文件
cat file.txt # 显示全部内容
less file.txt # 分页查看(按 q 退出)
head -20 file.txt # 查看前 20 行
tail -f file.txt # 实时查看尾部(跟踪日志)
tail -f 是排查问题的高频命令——部署完一个服务,tail -f /var/log/nginx/error.log 挂在那里,报错会实时刷出来。
2.2 文件权限
权限用数字表示:读 r=4、写 w=2、执行 x=1,三者相加得到一组的权限值。chmod 755 表示所有者可读可写可执行(7=4+2+1),组和其他人只读可执行(5=4+1),这是脚本和可执行文件的常见权限。
# 权限数字表示法
chmod 755 file.sh # rwxr-xr-x
chmod 644 config # rw-r--r--
# 修改所有者
chown user:group file.txt
chown -R www-data:www-data /var/www/
Web 部署最常见的权限问题是“nginx 读不了文件”。通常把站点目录所有者设为 www-data,文件 644、目录 755 就能解决。记住一个原则:能不给写权限就不给,目录可执行权限(x)是进入目录的前提。
三、进程管理
# 查看进程
ps aux # 所有进程
top # 实时进程监控
htop # 更友好的 top(需安装)
# 管理进程
kill 1234 # 结束进程
kill -9 1234 # 强制结束
pkill nginx # 根据名称结束
# 后台运行
nohup command & # 后台持续运行
screen # 虚拟终端(适合长时间任务)
tmux # 终端复用器
kill -9 是“最后手段”:它直接终止进程、不给清理资源的机会,正常情况先用 kill(默认 SIGTERM)。长时间运行的脚本(比如凌晨的备份任务)建议用 tmux 或 screen 包一层,这样 SSH 断开后任务不会跟着死掉。
四、磁盘和内存
# 磁盘使用
df -h # 查看磁盘空间
du -sh /var/www/ # 查看目录大小
du -sh * | sort -hr # 按大小排序
# 内存使用
free -h # 查看内存
vmstat 5 # 系统资源统计
磁盘告警是站长最常遇到的告警之一。df -h 看到 / 使用率超过 85%,就先 du -sh * 找出占用大户,再决定清理还是扩容。free -h 里的 available 比 free 更能反映真实可用内存——它把可回收的缓存也算进去了。
五、日志查看
# 常见日志位置
/var/log/nginx/access.log # Nginx 访问日志
/var/log/nginx/error.log # Nginx 错误日志
/var/log/mysql/error.log # MySQL 错误日志
/var/log/syslog # 系统日志
# 日志查看技巧
tail -f /var/log/nginx/access.log # 实时追踪
grep "ERROR" /var/log/app.log # 搜索错误
journalctl -u nginx --since "1 hour ago" # systemd 日志
日志是排障的第一现场。网站 502 了先看 nginx 错误日志;接口报错先 grep 应用日志里的 ERROR;想了解“过去一小时 nginx 干了什么”,journalctl -u nginx --since "1 hour ago" 一行搞定。生产环境的日志建议配合集中采集工具长期留存,而不是只在出事时翻本机文件,可参考ELK 日志分析平台搭建。
六、常用系统命令
# 网络工具
curl -I https://example.com # HTTP 请求
ping -c 4 example.com # 网络连通性
ss -tlnp # 查看监听端口
netstat -tulpn # 网络连接状态
# 系统信息
uname -a # 系统版本
cat /etc/os-release # OS 信息
lscpu # CPU 信息
lsblk # 磁盘信息
# 包管理
apt update && apt upgrade -y # 更新系统
apt install nginx # 安装软件
apt remove nginx # 卸载软件
ss -tlnp 是排查“端口被谁占用”的首选命令。服务起不来时,先确认端口是不是被别的进程占了;lscpu 和 lsblk 则是买完服务器核对配置的快捷方式。
七、常用快捷键
Ctrl + C # 中断当前命令
Ctrl + D # 退出登录
Ctrl + R # 搜索历史命令
Ctrl + L # 清屏
Ctrl + A # 移动到行首
Ctrl + E # 移动到行尾
Ctrl + W # 删除前一个词
!! # 执行上一条命令
!nginx # 执行最近以 nginx 开头的命令
Ctrl + R 反向搜索历史是最能提升效率的一个:输入几个字母,就能把以前敲过的长命令捞回来,不用重新打。
八、一个典型排障场景
假设你的网站突然 502。完整链路是:curl -I https://你的域名 确认确实报错 → ss -tlnp | grep 80 看 80 端口是否在监听 → tail -f /var/log/nginx/error.log 看后端是否拒绝连接 → systemctl status php-fpm 或 ps aux | grep php 确认 PHP 进程是否存活。整个排查几乎都是上面命令的组合,没有一条是“高级命令”。
九、总结
掌握以上命令可以覆盖日常服务器管理 80% 以上的需求。建议在实际操作中多使用 man 命令查看帮助文档(如 man ls),这是学习和记忆命令的最佳方式。对于重要的操作(格式化、删除、覆盖配置),养成“先备份、再执行”的习惯;不确定的命令先在测试机上验证,避免误操作造成数据丢失。