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)。长时间运行的脚本(比如凌晨的备份任务)建议用 tmuxscreen 包一层,这样 SSH 断开后任务不会跟着死掉。

四、磁盘和内存

# 磁盘使用
df -h               # 查看磁盘空间
du -sh /var/www/    # 查看目录大小
du -sh * | sort -hr # 按大小排序

# 内存使用
free -h             # 查看内存
vmstat 5            # 系统资源统计

磁盘告警是站长最常遇到的告警之一。df -h 看到 / 使用率超过 85%,就先 du -sh * 找出占用大户,再决定清理还是扩容。free -h 里的 availablefree 更能反映真实可用内存——它把可回收的缓存也算进去了。

五、日志查看

# 常见日志位置
/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 是排查“端口被谁占用”的首选命令。服务起不来时,先确认端口是不是被别的进程占了;lscpulsblk 则是买完服务器核对配置的快捷方式。

七、常用快捷键

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-fpmps aux | grep php 确认 PHP 进程是否存活。整个排查几乎都是上面命令的组合,没有一条是“高级命令”。

九、总结

掌握以上命令可以覆盖日常服务器管理 80% 以上的需求。建议在实际操作中多使用 man 命令查看帮助文档(如 man ls),这是学习和记忆命令的最佳方式。对于重要的操作(格式化、删除、覆盖配置),养成“先备份、再执行”的习惯;不确定的命令先在测试机上验证,避免误操作造成数据丢失。