Administrator
Administrator
发布于 2026-10-29 / 1 阅读
0
0

Linux 基础常用命令:从登录服务器到排查问题的入门速查

面向刚开始接触服务器的读者。本文不追求“背完所有命令”,而是建立一条从查看环境、操作文件,到排查服务的基本路线。示例主要适用于 Ubuntu、Debian、CentOS、Rocky Linux、AlmaLinux 等常见发行版。

Linux 常用命令学习与排查路线图

一、先理解命令长什么样

Linux 命令通常由三部分组成:

命令  选项  参数
ls   -lah  /var/log
  • ls:要执行的命令;
  • -lah:控制命令行为的选项,多个短选项可以写在一起;
  • /var/log:要操作的对象,也就是参数。

Linux 区分大小写,File.txt 和 file.txt 是两个不同的文件。命令中的空格、斜杠和引号也有意义,复制命令前要看清楚。

遇到不熟悉的命令,先看帮助:

ls --help
man ls

在 man 手册里按 / 可以搜索,按 n 跳到下一个结果,按 q 退出。

二、确认“我是谁、我在哪、这是什么系统”

登录服务器后,不要急着修改配置。先确认当前身份和环境:

whoami
pwd
hostname
date
cat /etc/os-release
uname -r
命令 作用 常见用途
whoami 查看当前用户 防止误以为自己是 root
pwd 显示当前目录的绝对路径 操作文件前确认位置
hostname 查看主机名 多台服务器之间避免登错机器
date 查看系统时间 排查日志时间是否对应
cat /etc/os-release 查看发行版与版本 判断应该使用 apt 还是 dnf
uname -r 查看内核版本 排查驱动、容器和内核功能问题

如果刚登录一台陌生服务器,建议至少执行 whoami、hostname 和 pwd。

三、目录切换与文件操作

1. 查看和切换目录

ls
ls -lah
cd /var/log
cd ..
cd -
cd ~
  • ls -l:显示权限、所有者、大小和修改时间;
  • ls -a:显示以 . 开头的隐藏文件;
  • ls -h:把字节显示成 KB、MB、GB 等易读单位;
  • cd ..:进入上一级目录;
  • cd -:返回刚才所在的目录;
  • cd ~:回到当前用户的家目录。

2. 创建、复制、移动和删除

mkdir -p ~/linux-lab/logs
touch ~/linux-lab/app.conf
cp ~/linux-lab/app.conf ~/linux-lab/app.conf.bak
mv ~/linux-lab/app.conf.bak ~/linux-lab/logs/
rm -i ~/linux-lab/logs/app.conf.bak

几个重要习惯:

  • mkdir -p 可以一次创建多层目录;
  • 修改配置前先用 cp -a 备份,-a 会尽量保留原有属性;
  • mv 既能移动文件,也能重命名文件;
  • 新手删除文件时使用 rm -i,系统会先询问;
  • 不要在不理解路径和通配符时使用 rm -rf。

备份配置文件的常见写法:

sudo cp -a /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

四、查看文本和跟踪日志

服务器上的配置、日志大多是文本文件。应根据文件大小选择查看方式。

cat /etc/hostname
less /var/log/syslog
head -n 20 /var/log/syslog
tail -n 50 /var/log/syslog
tail -f /var/log/syslog
wc -l /var/log/syslog
file /var/log/syslog
  • cat 适合内容很短的文件;大文件不要直接 cat;
  • less 可以上下翻页和搜索,按 q 退出;
  • head 看开头,tail 看结尾;
  • tail -f 会持续等待新日志,按 Ctrl+C 停止;
  • wc -l 统计行数;
  • file 判断文件类型,遇到“乱码”或二进制文件时很有用。

例如,只看 Nginx 最近 100 行错误日志:

sudo tail -n 100 /var/log/nginx/error.log

五、搜索文件与过滤内容

1. 用 find 找文件

find /etc -type f -name '*.conf' 2>/dev/null
find /var/log -type f -mtime -1 2>/dev/null
find . -type f -size +100M

含义分别是:

  • 在 /etc 中查找扩展名为 .conf 的普通文件;
  • 查找 /var/log 下最近一天修改过的文件;
  • 在当前目录查找大于 100 MB 的文件。

2>/dev/null 会隐藏无权访问产生的错误信息。它只适合让结果更清爽,不代表问题已经解决。

2. 用 grep 找内容

grep -n 'error' app.log
grep -ni 'error' app.log
grep -Rni --include='*.conf' 'listen' /etc/nginx
  • -n 显示行号;
  • -i 忽略大小写;
  • -R 递归搜索子目录;
  • --include 限制文件类型。

3. 用管道组合命令

管道符 | 会把左侧命令的输出交给右侧继续处理:

ps aux | grep '[n]ginx'
grep -i 'failed' auth.log | tail -n 20
cut -d: -f1 /etc/passwd | sort | head

它是 Linux 命令行最重要的思想之一:每个命令只做一件事,再把它们组合起来。

六、理解文件权限

执行 ls -l 可能看到:

-rw-r----- 1 app app 1280 Oct 29 10:20 app.conf

开头的权限可以分为三组:文件所有者、所属组、其他用户。r 表示读取,w 表示写入,x 表示执行。

chmod u+x deploy.sh
chmod 640 app.conf
sudo chown app:app app.conf
  • chmod u+x deploy.sh:给文件所有者增加执行权限;
  • chmod 640 app.conf:所有者可读写,所属组只读,其他人无权限;
  • chown app:app app.conf:把所有者和所属组都改为 app。

常见数字权限:

权限 常见用途
644 普通配置文件:所有者可写,其他人只读
600 私钥、密码文件:只有所有者可读写
755 目录或公开脚本:所有者可写,其他人可读和执行
750 只允许所有者和同组用户访问的目录

不要把 chmod 777 当作通用修复方案。它会让所有用户都能修改文件,经常只是掩盖“用户、用户组或路径设置错误”的真正原因。

七、检查磁盘、内存和负载

df -h
df -i
du -sh /var/log
du -xh --max-depth=1 /var | sort -h
free -h
uptime

这些命令回答的是不同问题:

  • df -h:文件系统还剩多少空间;
  • df -i:inode 是否耗尽。小文件过多时,空间没满也可能无法创建文件;
  • du -sh:某个目录实际占了多少空间;
  • free -h:内存与 Swap 使用情况;
  • uptime:运行时间和平均负载。

排查磁盘满时,先定位大目录,不要直接删除不认识的文件:

sudo du -xh --max-depth=1 /var | sort -h
sudo du -xh --max-depth=1 /var/log | sort -h

八、查看进程和管理服务

1. 进程命令

ps aux
ps aux --sort=-%mem | head
pgrep -af nginx
top
  • ps aux 查看进程快照;
  • --sort=-%mem 按内存使用率从高到低排序;
  • pgrep -af 按名称查找,并显示完整启动命令;
  • top 动态观察 CPU、内存和进程。

停止进程时,先发送正常退出信号:

kill -TERM 1234

等待并确认进程无法正常退出后,才考虑:

kill -KILL 1234

KILL 不给程序清理文件、连接和临时数据的机会,不应作为第一选择。

2. systemd 服务命令

多数现代 Linux 发行版使用 systemd:

systemctl status nginx --no-pager
sudo systemctl restart nginx
sudo systemctl enable nginx
journalctl -u nginx -n 100 --no-pager
journalctl -u nginx -f

推荐顺序是:先看 status 和日志,确认原因后再改配置或重启。反复重启可能让关键错误信息滚出日志,也不能解决配置错误。

修改 Nginx 配置后的安全做法:

sudo nginx -t
sudo systemctl reload nginx

先验证配置,再平滑加载,比直接重启更稳妥。

九、检查网络和端口

ip -br address
ip route
ss -lntp
ping -c 4 192.0.2.10
curl -I http://127.0.0.1:8080
curl -v http://127.0.0.1:8080
  • ip -br address:简洁显示网卡和 IP;
  • ip route:查看路由和默认网关;
  • ss -lntp:查看正在监听的 TCP 端口及进程;
  • ping:检查 ICMP 是否可达,但禁 Ping 不代表业务一定不可达;
  • curl -I:只查看 HTTP 响应头;
  • curl -v:显示连接和请求细节。

检查域名解析可以使用:

getent hosts example.com

如果安装了 dig,还可以查看更详细的 DNS 响应:

dig example.com

十、压缩与解压

tar -czf app-backup.tar.gz app/
tar -tzf app-backup.tar.gz
mkdir -p restore
tar -xzf app-backup.tar.gz -C restore/
  • -c 创建归档;
  • -t 只查看归档内容;
  • -x 解压;
  • -z 使用 gzip;
  • -f 后面紧跟归档文件名;
  • -C 指定解压目录。

解压来源不明的归档前,先用 tar -tzf 查看内部路径,避免文件覆盖到意外位置。

十一、安装软件包

Debian、Ubuntu 常用:

sudo apt update
sudo apt install curl

RHEL、Rocky Linux、AlmaLinux 常用:

sudo dnf install curl

安装前先确认操作系统版本,不要把不同发行版的包管理命令混用。生产服务器安装新软件还应遵守变更流程。

十二、一个完整排查示例:网站访问不了

假设用户反馈“网页打不开”,不要上来就重启服务器,可以按下面的顺序缩小范围。

第 1 步:确认主机和时间

hostname
date

先排除登错服务器、日志时间不对应的问题。

第 2 步:确认服务状态

systemctl status nginx --no-pager

重点看 Active 状态和最近几行错误。

第 3 步:查看服务日志

journalctl -u nginx -n 100 --no-pager

如果日志指出配置错误,先检查配置,不要连续重启。

第 4 步:检查端口是否监听

sudo ss -lntp | grep ':80 '

没有结果通常说明服务没有监听 80 端口,或监听了其他地址、端口。

第 5 步:在服务器本机测试

curl -I http://127.0.0.1

本机成功、外部失败,排查重点应转向监听地址、防火墙、安全组、负载均衡或网络路径。

第 6 步:检查资源

df -h
free -h

确认磁盘没有写满、系统没有明显内存压力。这样得到的是证据链,而不是“重启后似乎好了”。

十三、效率快捷键

操作 作用
Tab 自动补全命令或路径
↑ / ↓ 浏览历史命令
Ctrl+R 反向搜索历史命令
Ctrl+C 中止当前前台命令
Ctrl+L 清理终端显示,效果类似 clear
Ctrl+A / Ctrl+E 跳到命令行开头 / 结尾

可以用 history 查看历史命令,但不要在命令行直接输入明文密码、令牌等敏感信息,因为它们可能被记录。

十四、新手最需要记住的安全原则

  1. 执行前先确认服务器、用户和当前目录。
  2. 修改配置前备份,并记录改了什么。
  3. 删除前先用 ls 或 find 确认目标范围。
  4. 能用普通用户完成,就不要一直使用 root。
  5. 先查看状态和日志,再决定是否重启。
  6. 不用 chmod 777、关闭防火墙等方式掩盖真实问题。
  7. 命令执行后要验证结果,不能只看“没有报错”。

总结

Linux 命令不需要一次背完。初学阶段先掌握四条主线:

  • 用 pwd、ls、cd 管理位置;
  • 用 less、tail、grep 获取信息;
  • 用 df、free、ps、systemctl 判断系统和服务状态;
  • 用 ip、ss、curl 缩小网络问题范围。

真正重要的不是命令数量,而是形成“确认环境 → 收集证据 → 缩小范围 → 谨慎修改 → 验证结果”的习惯。掌握这条路线,面对陌生服务器时就不会只剩下重启这一种办法。


评论