这次我们不看花哨的框架,也不讲复杂的源码,就解决一个最现实的问题:很多人在 Windows 上操作熟练,一打开 Linux 终端就发懵,不知道先敲什么命令。热词搜索里大量出现“linux删除文件夹命令”“linux常用命令大全”“vim命令”“linux find用法”“history命令详解”,说明不少人卡在了同一个地方——不是 Linux 学不会,而是没有一条清晰的命令主线。
这篇文章把 Linux 入门路线压缩成 15 个命令。它们覆盖目录切换、文件操作、日志查看、权限判断、进程排查、压缩解压、服务启动和端口检测。跟着敲一遍,就能覆盖日常开发和运维中 80% 以上的场景。重点是每个命令都给出适用场景和最容易踩的坑,而不是像命令大全那样只贴参数。
文章会按“环境准备 → 文件操作 → 文本处理 → 用户权限 → 系统查看 → 网络服务 → 高频排错 → 最佳实践”的顺序展开。每个命令都配了可复制的示例,最后还给出一套验收练习和生产环境建议。
1. 核心能力速览
| 能力项 | 说明 |
|---|---|
| 适用范围 | Linux 服务器、云主机、虚拟机、WSL、嵌入式 Linux 开发板 |
| 命令数量 | 15 个核心命令,覆盖文件、文本、权限、进程、网络、服务管理 |
| 技能门槛 | 零基础可学,不需要编程经验 |
| 硬件要求 | 本地虚拟机 2 核 4G 内存即可,云服务器 1 核 2G 也能跑 |
| 系统支持 | Ubuntu / Debian / CentOS / Rocky Linux / openEuler 等主流发行版 |
| 核心能力 | 目录操作、文件操作、日志查看、权限判断、进程排查、压缩解压、服务启动、端口检测 |
| 扩展能力 | 命令组合后可完成批量部署、日志分析、环境初始化、服务排错 |
| 本文演示内容 | 安装环境、命令实操、验收流程、常见问题排查、生产环境最佳实践 |
先说明一点:Linux 命令不需要背参数表。你只需要记住“这个命令是干什么的”以及“遇到什么场景先用哪条命令”,参数用多了自然记住。这篇文章的目标就是帮你建立这条主线。
2. 适用场景与使用边界
2.1 适合谁用
- 刚接触 Linux 服务器的新人,需要快速掌握日常操作。
- 开发人员需要在 Linux 服务器上部署项目、查看日志、重启服务。
- 运维人员需要排查进程、端口、磁盘和服务状态。
- 准备 Linux 面试的读者,需要掌握命令的实际含义和组合用法。
- 做嵌入式 Linux、边缘设备调试的工程师,需要通过命令查看系统资源。
2.2 能解决什么问题
- 发布项目时,不知道把文件放在哪里,不知道如何解压包、如何启动服务。
- 程序启动失败,不知道看什么日志、不知道进程是否还活着。
- 端口被占用,不知道如何找到占用进程并释放端口。
- 磁盘空间不足,不知道如何定位大文件和高占用目录。
- 批量操作多个服务器,不会用命令组合快速处理。
2.3 使用边界与合规提醒
需要注意几点:
- 涉及敏感数据的场景,需要先确认数据归属,不要越权访问其他用户的目录。
- 生产环境执行
rm、kill、修改配置文件等操作,需要在测试环境验证后执行。 - 出于安全考虑,不要随意关闭系统服务或修改系统核心配置。
- 在合法获得授权的服务器、虚拟机、开发板上进行学习和测试,禁止对未授权的设备扫描或操作。
- 使用
sudo执行管理员权限命令时,需要确认操作授权和影响范围。 - 不要在公共教程中公开真实服务器 IP、密钥、账号口令。
3. 15 个命令全景图
先把 15 个命令按用途分组,方便从整体上建立框架:
| 分组 | 命令 | 核心作用 |
|---|---|---|
| 目录与文件 | pwd | 查看当前所在目录 |
| 目录与文件 | cd | 切换目录 |
| 目录与文件 | ls | 查看目录内容 |
| 目录与文件 | mkdir | 创建目录 |
| 目录与文件 | touch | 创建空文件 |
| 目录与文件 | cp | 复制文件或目录 |
| 目录与文件 | mv | 移动或重命名 |
| 目录与文件 | rm | 删除文件或目录 |
| 目录与文件 | find | 查找文件 |
| 文本处理 | cat | 查看文件内容 |
| 文本处理 | grep | 按关键词过滤文件内容 |
| 文本处理 | tail/head | 查看文件尾部或头部 |
| 文本编辑 | vim | 编辑文件 |
| 压缩打包 | tar | 打包和解压 |
| 系统进程 | ps | 查看进程 |
| 系统进程 | kill | 结束进程 |
| 系统资源 | free | 查看内存使用 |
| 系统资源 | df | 查看磁盘使用 |
| 服务管理 | systemctl | 启动、停止、查看服务 |
| 网络排查 | ping/telnet/ss | 测试连通性、端口监听 |
| 用户权限 | whoami/sudo | 查看当前用户、提权执行 |
| 软件安装 | apt/yum | 安装和卸载软件 |
| 历史记录 | history | 查看历史命令 |
严格来说,15 个命令的说法是一个“起手式”。你完全可以按上面的分组,把每一组当作一个单元来练。下面从环境准备开始。
4. 环境准备与前置条件
4.1 三种最快得到 Linux 环境的方式
方式一:云服务器
这是最接近生产环境的方式。云服务器通常自带公网 IP,可以直接用 SSH 登录。第一次购买建议选带 Ubuntu 或 CentOS 镜像的机型,1 核 2G 内存足够学习。
方式二:本地虚拟机
在 Windows 上安装 VMware Workstation Player 或 VirtualBox,再选择一个 Linux 镜像安装。虚拟机的好处是本地测试,不产生额外费用,可以随便折腾命令。缺点是占用本机内存和磁盘。
方式三:WSL(Windows Subsystem for Linux)
如果只是想在 Windows 里快速体验 Linux 命令,WSL 是最快的方式。在 Windows PowerShell 中执行:
wsl --install安装后默认会得到一个 Ubuntu 环境。WSL 比较适合做命令练习,和真实 Linux 服务器还是有一些差异,但如果只是学命令,它足够用。
不管是哪条路径,学习命令的思路完全一致:登录后先用pwd确认位置,再用ls看目录,然后用cd切换路径。这套流程就是 Linux 操作的基本动作。
4.2 用 SSH 远程登录
如果用的是云服务器,登录命令一般是:
ssh root@服务器IP这里包含两层信息:root是登录用户名,服务器IP是目标主机地址。输入回车后,终端会提示输入密码。
判断是否连接成功:
Welcome to Ubuntu 22.04.4 LTS看到欢迎信息或命令提示符,就说明已经进入 Linux 终端了。
4.3 本地登录终端
如果是虚拟机或 WSL,直接打开终端即可。这句话的意思是:你的命令提示符通常是$(普通用户)或#(管理员用户)。
ubuntu@test:~$这里ubuntu是用户名,test是主机名,~表示当前位于当前用户的家目录。Linux 终端不会显示太多废话,所有信息都通过提示符本身传递。
4.4 环境安全检查
进入系统后,先确认三件事:当前用户、当前目录、系统类型。
whoami- 当前登录用户。
pwd- 当前所在目录完整路径。
cat /etc/os-release- 查看系统发行版信息。常见的有 Ubuntu、CentOS、Debian、Rocky Linux、openEuler 等。
uname -a- 查看内核版本。如果需要在特定内核版本上测试命令,先看这里。
第二步是执行第一个完整流程:用pwd确认位置,用ls查看目录内容,用cd进入目标目录,用mkdir创建新目录,用touch创建文件。这一套流程跑通,Linux 基本操作就算入门了。
4.5 通过 Xshell / MobaXterm / VS Code 连接
很多读者是在 Windows 上学习 Linux。热词里提到“xshell命令回退目录”“企业微信linux”,说明这类需求很常见。这里推荐几类终端工具:
- Xshell:Windows 下常用,支持 SSH 和 SFTP,操作习惯和资源管理器接近。
- MobaXterm:自带文件管理、端口转发,适合做批量运维。
- VS Code Remote-SSH:适合开发场景,也支持直接
ssh 用户名@IP连接。 - Windows 11 自带 OpenSSH 客户端,可在 PowerShell 里直接执行 SSH 命令。
连接后,依然用pwd、ls、cd这套命令操作。配置好 SSH 密钥后可以免密登录,后续执行命令效率更高。
5. 15 个命令实操:文件与目录操作
5.1 ls:查看目录内容
ls是 Linux 里使用频率最高的命令。它用来列出目录下的文件和子目录。
基本用法:
ls- 列出当前目录下可见文件。
ls -l- 长格式显示:权限、链接数、属主、属组、大小、修改时间、文件名。
ls -a- 显示隐藏文件,包括以
.开头的文件,例如.bashrc、.ssh。
ls -lh- 以人类可读格式显示文件大小,例如 1.2K、34M。
ls -lt- 按修改时间倒序排列,适合查找最近刚修改的文件。
面试或工作中,ls -l的字段含义是高频考点:
-rw-r--r-- 1 root root 1024 Jan 10 10:30 test.txt- 第 1 位
-表示普通文件,d表示目录,l表示软链接。 - 后 9 位是权限位,前三组分别对应属主、属组、其他用户。
r读取,w写入,x执行。- 后面的数字是硬链接数,目录一般显示 2 或 3。
- 再后面是属主、属组、文件大小、最后修改时间和文件名。
想快速记忆权限,记住r=4、w=2、x=1,所以755表示属主可读写执行,属组和其他用户只读和执行。
5.2 cd:切换目录
cd用于切换当前工作目录。
cd /tmp- 直接进入绝对路径。
cd ..- 返回上一级目录。
cd ~- 回到当前用户家目录。
cd -- 切换到上次所在目录。
cd -会在终端里打印上一次的目录路径,适合在两个目录之间来回操作。
常见疑问:cd后面没有路径时,默认回到家目录。热词里提到“xshell命令回退目录”,其实就是cd ..和cd -的组合使用。每次进入深层路径后,先cd ~回位,再重新进入,不容易迷路。
5.3 pwd:显示当前目录
pwd是 Print Working Directory 的缩写。当命令提示符没有显示完整路径,或者脚本里需要判断当前位置时,用它确认。
pwd输出示例:
/root/projects/test在写脚本、执行相对路径命令时,先pwd确认目录,能避免误删文件或生成到错误位置。
5.4 mkdir:创建目录
mkdir用来创建目录。
mkdir logs- 创建单级目录。
mkdir -p logs/2025/01- 递归创建多级目录。
-p的作用是:如果父目录不存在,会一并创建。这个参数在部署项目中非常常用,因为目标目录可能还没建好。
创建目录后,用ls -ld验证:
ls -ld logs如果看到d开头的权限串,说明目录创建成功。
5.5 rm:删除文件或目录
rm是风险最高的命令之一。热词里“linux删除文件夹命令”属于高频搜索。
rm test.txt- 删除单个文件。
rm -r logs- 递归删除目录。
rm -rf logs- 递归强制删除目录,不提示确认。
-f会忽略不存在的文件,也不会逐个确认。
安全建议:
- 生产环境尽量先
ls确认路径,再执行rm -rf。 - 写脚本时避免把
/、~、*等通配符直接拼在rm -rf后面。 - 重要目录可以设置为只读或做备份快照。
- 如果不确定目标路径,先用
find查看再删除。 - 删除前给自己一个“先
pwd再rm”的固定习惯。
5.6 cp:复制文件或目录
cp用于复制文件,复制目录要加-r。
cp test.txt /tmp/- 复制文件到 /tmp 目录。
cp -r projects /tmp/projects_backup- 递归复制整个目录。
cp -a /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak- 归档复制,保留权限、属主、时间戳等属性。改配置前备份文件,推荐用
cp -a或cp -p。
5.7 mv:移动或重命名
mv用来移动文件,也可以在同一个目录下实现重命名。
mv test.txt /tmp/- 移动文件到 /tmp。
mv test.txt demo.txt- 将 test.txt 重命名为 demo.txt。
mv nginx.conf nginx.conf.bak- 这是运维中修改配置前常见的快速备份方式,适合临时改名。
5.8 touch:创建空文件
touch用于创建空文件,也用于更新时间戳。
touch /tmp/empty.txt- 如果文件不存在,创建空文件。
touch oldfile.log- 如果文件已存在,更新它的修改时间为当前时间。
调试时可以用touch快速制造测试文件,再配合ls -l查看。
6. 15 个命令实操:文件内容查看与文本处理
6.1 cat:查看与拼接文件
cat直接输出文件内容。
cat /etc/hostname- 查看主机名。
cat -n /etc/passwd- 显示行号。
cat file1.txt file2.txt > merge.txt- 将两个文件内容拼接到一个新文件。
cat适合查看小文件。需要看核心配置文件全部内容时,用cat最快捷。
6.2 grep:按关键词过滤
grep是文本过滤命令。日志排查的第一步,几乎都是用它。
grep "error" app.log- 在 app.log 中查找包含 error 的行。
grep -i "error" app.log- 忽略大小写。
grep -r "nginx.conf" /etc/nginx/- 递归搜索目录下所有文件。
grep -v "#" /etc/nginx/nginx.conf- 过滤掉注释行,适合快速查看有效配置。
grep -E "2025-01-10|2025-01-11" access.log- 使用正则写法,一次匹配多个日期。
grep 是“日志排错、配置检查、面试题目”里出现频率最高的命令。建议重点掌握-i、-v、-r、-E、-c这几个参数。
6.3 tail:查看文件尾部
tail常用于查看日志最后几行。
tail -n 50 app.log- 查看最后 50 行。
tail -f app.log- 实时追踪文件末尾内容,日志新增一行就输出一行。
tail -f -n 100 /var/log/syslog- 先显示最后 100 行,再持续跟踪。
排错时,新开一个终端窗口,执行tail -f,再另开一个终端执行服务重启命令,就能实时看到日志输出。
6.4 head:查看文件头部
head用于查看文件头部内容。
head -n 20 app.log- 查看前 20 行。
head -n 5 /etc/passwd- 快速查看系统用户文件前 5 行。
日志量很大时,先用head看格式,再用tail看最新内容,避免一次读出几万行。
6.5 vim:文本编辑器
vim 在热词中出现频率很高。它是 Linux 终端里最常用的文本编辑器。
vim /etc/nginx/nginx.conf- 打开文件进行编辑。
vim 有三种模式,记不住其他命令,先记这三个:
- 普通模式:打开文件后默认处于普通模式,可以移动光标、删除、复制。
- 插入模式:按
i进入插入模式,此时可以输入文字。 - 命令行模式:按
Esc返回普通模式,再输入:进入命令行模式。
必备操作:
i 进入插入模式 Esc 返回普通模式 :wq 保存并退出 :q! 不保存退出 dd 删除当前行 yy 复制当前行 p 粘贴 G 跳到最后一行 gg 跳到第一行高频坑:不知道当前在哪个模式,或者按了Esc后不确定是否退出插入模式。解决办法是连续按两次Esc,再输入:wq或:q!。如果按了Ctrl+S导致终端冻结,可以按Ctrl+Q恢复。
修改系统配置文件后,如果不确定改动是否正确,先用cat或grep预览,再重启服务。
6.6 find:查找文件
热词里“linux find用法”“linux find”都被提到。find 是定位文件最可靠的方式。
find /etc -name "nginx.conf"- 在 /etc 目录下按名称查找。
find /var/log -mtime -7- 查找 7 天内修改过的文件。
find /tmp -type f -size +100M- 查找大于 100MB 的文件。
find /root -name "*.log" -exec rm -rf {} \;- 找到以 .log 结尾的文件并删除。
和grep搭配:grep在文件内容里搜关键词,find在文件系统里搜文件名。
6.7 tar:压缩与解压
热词里tar命令出现次数不少。tar 在 Linux 中打包压缩是标准操作。
tar -czvf backup.tar.gz /data/logs- 打包并压缩为 tar.gz 格式。参数含义:c 创建归档,z 使用 gzip 压缩,v 显示过程,f 指定归档文件名。
tar -xzvf backup.tar.gz- 解压。参数含义:x 解压。
tar -tzvf backup.tar.gz- 只查看压缩包内容,不实际解压。
tar -xzvf backup.tar.gz -C /opt/restore- 解压到指定目录,
-C指定目标路径。
在 Linux 服务器上发布程序,常见做法是把 jar 包、配置文件、日志打成 tar.gz,再传到目标服务器解压。掌握tar -czvf和tar -xzvf这一对,就能覆盖多数场景。
7. 15 个命令实操:用户权限与系统查看
7.1 sudo:提权执行
Linux 中普通用户权限有限,某些系统操作需要管理员权限。
sudo apt update- 使用管理员权限执行包管理更新命令。Ubuntu/Debian 系统适用。
sudo systemctl restart nginx- 使用管理员权限重启服务。
在环境上执行依赖安装等操作,建议先确认当前用户和当前目录。把权限范围控制在本人负责的目录,也便于平时排查命令运行时留下的结果和历史记录。
7.2 whoami:查看当前用户
whoami输出例子:root或ubuntu。如果是普通用户,很多系统目录没有写权限,需要加sudo。
7.3 uname:查看系统信息
uname -a输出包括内核名称、主机名、内核版本、硬件架构。部署应用前需要确认系统是 x86_64 还是 arm64,这决定了软件包下载版本,执行uname -m即可。
7.4 free:查看内存
free -h- 以人类可读方式显示内存总量、已用、可用、缓存。
输出示例:
total used free shared buff/cache available Mem: 7.6G 2.1G 3.2G 128M 2.3G 5.0Gavailable是真正可以分配给新进程的内存量。内存吃紧时,优先看available,而不是只看free。
7.5 df:查看磁盘
df -h- 显示各分区的磁盘使用情况。
df -h /data- 只显示指定路径所在分区。
排查磁盘满问题,先看df -h确认哪个分区满,再用du或find定位大文件。
7.6 ps:查看进程
ps -ef- 显示所有进程的详细信息。
ps -ef | grep nginx- 过滤出 nginx 相关进程。
ps aux --sort=-%mem- 按内存占用降序排列进程,适合排查内存占用高的应用。
启动服务后,用ps -ef | grep 进程名验证进程是否存在,是排错的基本操作。
7.7 kill:结束进程
kill -9 12345- 强制结束进程号为 12345 的进程。
kill 12345- 正常结束进程。
先ps -ef | grep 进程名拿到 PID,再kill -9 PID。注意,如果进程是服务进程,先看有没有启动脚本,尽量使用systemctl stop正常停止服务,只有服务卡死时才考虑kill -9。
8. 网络、软件安装与杂项命令
8.1 网络排查命令
热词中“telnet命令怎么用”“linux scp命令”“redis命令”都被提到。网络基础命令里,ip和ping最常用,telnet 适合测试端口连通性。
ip addr- 查看 IP 地址。
ping -c 4 10.0.0.1- 发送 4 个 ICMP 包测试网络连通性。
telnet 127.0.0.1 6379- 测试本地 6379 端口是否连通。telnet 不一定会默认安装,如果没有,需要先安装 telnet 客户端。不同发行版安装方式不同,在 Debian/Ubuntu 系使用
sudo apt install telnet,在 CentOS/RHEL 系使用sudo yum install telnet或sudo dnf install telnet。
ss -tlnp- 查看端口监听状态和对应进程。代替旧版
netstat -tlnp。
scp test.txt root@192.168.1.10:/root/- 通过 SSH 将本地文件传到远程服务器。
排错顺序建议:先ping测网络通不通,再telnet测端口通不通,最后用ss -tlnp看服务有没有监听。
8.2 systemctl:服务管理
systemctl 是 systemd 服务管理命令,也是运维场景中出现频率最高的命令之一。
systemctl status nginx- 查看服务状态。
systemctl start nginx- 启动服务。
systemctl restart nginx- 重启服务。
systemctl enable nginx- 设置开机自启。
systemctl disable nginx- 取消开机自启。
修改配置文件后,执行systemctl restart或systemctl reload。先status确认服务状态,再tail日志检查启动结果,是标准流程。
8.3 apt / yum:软件安装
Linux 发行版不同,包管理命令不同。
Debian/Ubuntu 系:
sudo apt update- 更新软件源索引。
sudo apt install git- 安装 git。
sudo apt remove git- 卸载 git。
CentOS/RHEL 系:
sudo yum install git- 使用 yum 安装 git。
sudo dnf install git- 较新版本使用 dnf。
热词中“linux安装docker”“linux安装nginx”“linux安装python”“linux镜像”都涉及包管理。安装软件前建议先apt search或访问官方文档确认源里有没有对应软件包。
8.4 history:查看历史命令
热词里“history命令详解”出现频率很高。history 能显示当前用户在此终端下输入过的命令记录。
history- 显示全部历史命令。
history 20- 显示最后 20 条。
!100- 重新执行编号为 100 的命令。
!!- 执行上一条命令。
终端里想快速重跑上一条命令,输入!!即可。关注命令历史,也能排查关键操作是不是自己做的。
8.5 type / which:查找命令位置
热词“type命令”同样值得展开。
type cd- 显示 cd 是 shell 内置命令。
which python3- 显示 python3 可执行文件的路径。
type -a python3- 显示所有同名命令路径。
排查“命令找不到”时,先which 命令看有没有安装,再看 PATH 环境变量有没有包含可执行文件目录。如果不熟悉系统类型,再使用uname、cat /etc/os-release确认。
9. 快速上手与验收练习
把最常用的命令整理成一张速查表。每一条都建议先在一个测试目录里执行一遍,再进入真实项目目录。
| 分类 | 命令 | 说明 |
|---|---|---|
| 目录操作 | ls | 查看目录内容 |
| 目录操作 | cd | 切换目录 |
| 目录操作 | pwd | 查看当前目录 |
| 文件操作 | mkdir | 创建目录 |
| 文件操作 | touch | 创建空文件 |
| 文件操作 | cp | 复制 |
| 文件操作 | mv | 移动或重命名 |
| 文件操作 | rm | 删除 |
| 文件操作 | find | 查找文件 |
| 文本处理 | cat | 查看文件 |
| 文本处理 | grep | 过滤关键词 |
| 文本处理 | tail/head | 查看文件尾部或头部 |
| 编辑器 | vim | 编辑文件 |
| 压缩打包 | tar | 压缩解压 |
| 系统进程 | ps | 查看进程 |
| 系统进程 | kill | 结束进程 |
| 服务运行 | systemctl | 服务管理 |
| 软件安装 | apt/yum | 安装软件 |
| 网络 | ping | 测试连通性 |
| 网络 | ss | 查看端口监听 |
| 历史记录 | history | 查看历史命令 |
建议的第一套练习流程:
mkdir ~/linux_practice cd ~/linux_practice touch test.txt echo "hello linux" > test.txt cat test.txt grep "linux" test.txt tar -czvf test.tar.gz test.txt tar -xzvf test.tar.gz -C /tmp rm -rf ~/linux_practice这一套流程涵盖了创建目录、切换目录、创建文件、写入内容、查看文件、过滤关键词、压缩、解压、删除目录。全程跑通,Linux 命令基本就算上手了。
再做一个验收练习:查看 nginx 状态。如果系统没有 nginx,可以先安装。
systemctl status nginx ps -ef | grep nginx ss -tlnp | grep 80如果能看到 nginx 进程和 80 端口监听,说明服务管理、进程查看、端口排查三类命令已经能组合使用。这里建议在恰当授权的测试环境上执行,先确认测试环境是否安装并放通端口,再按实际情况调整。
10. 高频错误与排查方法
初学者除了记不住命令,还容易在路径和权限上踩坑。下面把常见问题整理成排查表。
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 提示 command not found | 软件未安装或 PATH 不对 | which 命令,echo $PATH | 安装软件,或修正 PATH |
| Permission denied | 当前用户无权操作该文件 | ls -l查看权限 | 换用户或加sudo,确认是否允许执行 |
| 文件不存在 | 目录路径写错 | pwd、ls | 先用find定位,再复制正确路径 |
| 删除失败 | 目录非空或权限不足 | ls -ld 目录 | 使用rm -r,必要时sudo |
| tar 解压报错 | 压缩包损坏或格式不对 | file 包名查看格式 | 用正确命令解压对应格式 |
| vim 卡住 | 按了 Ctrl+S 或进入错误模式 | 查看终端状态 | 按 Ctrl+Q 恢复,按 Esc 返回普通模式 |
| 端口被占用 | 服务重复启动或进程残留 | ss -tlnp | grep 端口 | kill 旧进程或更换端口 |
| systemctl 命令不存在 | 系统使用非 systemd 初始化 | ps -p 1检查 PID 1 | 改用 service 命令或检查发行版文档 |
| 命令执行后报错但看不到原因 | 日志级别或位置不对 | journalctl、tail -f日志 | 根据日志信息定位具体错误 |
| 安装软件失败 | 软件源或网络问题 | apt update或检查 DNS | 更换软件源镜像,确认网络 |
如果一条命令执行报错,建议依次做三步:先看完整报错信息,再检查当前目录和用户,最后用history回看刚才执行的命令。
11. 最佳实践与工程化建议
掌握命令本身只是第一步,真正把这些命令用好,要靠习惯。以下几点在实际服务器环境中会被反复验证。
第一,为每个项目建立清晰的目录结构。建议统一使用:
/projects/应用名/ ├── conf/ # 配置文件 ├── logs/ # 日志文件 ├── scripts/ # 部署脚本 └── data/ # 数据文件这样日志清理、权限控制、备份策略都更容易管理。批量操作时,先在一两台上验证命令,再推广到其他机器,避免把测试命令误用到生产环境。
第二,重要配置文件修改前先备份。cp或mv都可以,但要注意命令不会污染生产配置。
cp nginx.conf nginx.conf.bak.20250110第三,批量任务要有日志和失败重试。如果给多台服务器批量执行systemctl restart,建议把每台机器的执行状态记录到文件。
for host in server01 server02 server03; do echo "===== $host =====" | tee -a restart.log ssh "$host" "systemctl restart nginx" >> restart.log 2>&1 echo "exit code: $?" >> restart.log done这样一旦失败,grep "exit code: [^0]" restart.log就能快速定位。
第四,命令写进脚本前一定要做人工预演。可以先在测试目录里执行一遍,确认不影响目标服务的状态。
第五,注意遵循安全合规要求。在实验设备上进行本地测试时,需要确认自己拥有实验环境授权,不越权访问其他设备或数据。云服务器上执行系统命令可能涉及账号授权和权限边界,要遵守服务商安全规范。
12. 总结
这 15 个命令只是一个切入点,真正的能力来自组合使用。比如排查一次服务无法访问,很可能是systemctl status、tail -f、ss -tlnp、grep四条命令的组合。写脚本时,pwd、find、grep、tar又是最常用的基础组件。
如果现在是刚开始接触 Linux,建议先把本文的速查表收藏到浏览器,每天花 10 分钟在虚拟机里练一遍。遇到“命令找不到”或“权限不够”的错误,能自己通过which、ls -l、history找到原因,就已经超过大多数初学者了。
下一阶段可以往三个方向扩展:学 shell 脚本语法,把多条命令串成自动化任务;学 ssh 密钥登录和免密批量操作;学 systemd 服务单元文件的编写。这三个方向任选一个,都能把当前掌握的 15 个命令真正变成生产能力。