前言
学习 Linux 时,最先遇到的往往不是复杂的服务部署,而是在终端里完成一些基础操作:查看目录、切换路径、创建文件夹、查看日志、复制移动文件、压缩解压、编辑配置文件、查找文件内容等。
这篇文章主要整理 Linux 初学阶段最常用的一批命令,适合刚接触 Linux、正在学习服务器基础操作,或者需要复习常见命令用法的同学阅读。
本文以常见 Linux 发行版的命令行环境为基础,目录和文件操作主要参考 GNU Coreutils 的常见用法;不同发行版在包管理器、默认编辑器、命令版本上可能略有差异,实际使用时以当前系统环境为准。
一、Linux 命令初体验
Linux 命令通常由三部分组成:
bash
命令 [选项] [参数]
例如:
bash
ls -l /home
这里:
ls是命令,用来查看目录内容。-l是选项,表示以长格式显示。/home是参数,表示要查看的目录路径。
在 Linux 中,路径分为两类:
| 路径类型 | 说明 | 示例 |
|---|---|---|
| 绝对路径 | 从根目录 / 开始写完整路径 |
/home/user/test.txt |
| 相对路径 | 相对于当前所在目录 | ./test.txt、../logs |
常见特殊路径:
| 写法 | 含义 |
|---|---|
. |
当前目录 |
.. |
上一级目录 |
~ |
当前用户的家目录 |
/ |
根目录 |
可以先用下面两个命令熟悉当前位置:
bash
pwd
whoami
pwd 用来查看当前所在目录,whoami 用来查看当前登录用户。
二、目录操作命令
2.1 ls:查看目录内容
ls 用来列出目录中的文件和子目录。如果不指定路径,默认查看当前目录。
bash
ls
常见用法:
bash
ls -l
ls -a
ls -lh
ls /etc
参数说明:
| 参数 | 作用 |
|---|---|
-l |
以长格式显示文件权限、所有者、大小、修改时间等信息 |
-a |
显示隐藏文件,Linux 中以 . 开头的文件默认隐藏 |
-h |
和 -l 搭配使用,让文件大小更易读,例如 KB、MB |
实际开发或运维中,我最常用的是:
bash
ls -lah
这个命令可以同时看到隐藏文件、权限和更直观的文件大小。
2.2 cd:切换目录
cd 用来切换当前所在目录。
bash
cd /usr/local
常见用法:
bash
cd ..
cd ~
cd -
cd /var/log
说明:
| 命令 | 含义 |
|---|---|
cd .. |
回到上一级目录 |
cd ~ |
回到当前用户家目录 |
cd - |
回到上一次所在目录 |
cd /var/log |
切换到指定绝对路径 |
如果路径中包含空格,可以使用引号:
bash
cd "my project"
2.3 mkdir:创建目录
mkdir 用来创建目录。
bash
mkdir logs
如果要一次创建多级目录,可以使用 -p:
bash
mkdir -p app/logs/nginx
-p 的好处是:如果上级目录不存在,会自动一起创建;如果目录已经存在,一般也不会因为这个目录存在而报错。
常见场景:
bash
mkdir backup
mkdir -p /tmp/demo/files
2.4 rm:删除文件或目录
rm 用来删除文件。
bash
rm test.txt
删除目录时,经常会看到:
bash
rm -r logs
参数说明:
| 参数 | 作用 |
|---|---|
-r |
递归删除目录及目录下的内容 |
-f |
强制删除,不提示确认 |
-i |
删除前逐个确认 |
风险提示:
rm 是 Linux 里非常危险的命令之一,删除后通常不会进入回收站。尤其是下面这种命令一定要谨慎:
bash
rm -rf 目录名
建议初学阶段多使用:
bash
rm -i file.txt
或者先用 ls 确认目标路径:
bash
ls /tmp/demo
rm -r /tmp/demo
如果是生产服务器,删除前最好先备份,或者先移动到临时目录,确认没有问题后再真正删除。
三、文件查看命令
3.1 cat:查看文件全部内容
cat 可以直接输出文件内容。
bash
cat application.yml
适合查看内容较少的文件,比如配置片段、小脚本、说明文件。
常见用法:
bash
cat test.txt
cat -n test.txt
-n 可以显示行号。
注意:如果文件非常大,不建议直接用 cat,因为会一次性刷满终端,阅读体验很差。查看大文件时更推荐 more、less、head、tail。
3.2 more:分页查看文件
more 用来分页查看文件内容。
bash
more catalina.out
常用操作:
| 按键 | 作用 |
|---|---|
Space |
向下翻一页 |
Enter |
向下翻一行 |
q |
退出查看 |
more 适合简单分页查看文件。如果系统支持 less,实际工作中 less 会更灵活,因为它支持前后翻动。
3.3 head:查看文件开头
head 用来查看文件开头内容。默认显示前 10 行。
bash
head access.log
指定行数:
bash
head -n 20 access.log
常见场景:
- 查看 CSV 文件前几行,确认字段格式。
- 查看日志文件开头,确认启动时间。
- 查看配置文件头部注释。
3.4 tail:查看文件结尾
tail 用来查看文件末尾内容。默认显示最后 10 行。
bash
tail app.log
指定行数:
bash
tail -n 50 app.log
实时查看日志:
bash
tail -f app.log
tail -f 是排查服务问题时非常常用的命令。比如启动一个 Spring Boot 项目后,可以用它实时观察日志输出:
bash
tail -f logs/app.log
如果日志一直没有新内容,可以按 Ctrl + C 退出。
四、复制和移动命令
4.1 cp:复制文件或目录
cp 用来复制文件。
bash
cp source.txt target.txt
复制到指定目录:
bash
cp app.log backup/
复制目录时需要加 -r:
bash
cp -r project project_backup
常见参数:
| 参数 | 作用 |
|---|---|
-r |
递归复制目录 |
-i |
覆盖前询问 |
-v |
显示复制过程 |
-p |
尽量保留文件属性 |
建议复制重要文件时使用:
bash
cp -iv config.yml config.yml.bak
这样如果目标文件已经存在,会提示确认,避免误覆盖。
4.2 mv:移动或重命名
mv 有两个常见作用:移动文件、重命名文件。
重命名:
bash
mv old.txt new.txt
移动到目录:
bash
mv app.log logs/
移动并改名:
bash
mv app.log logs/app-2026-05-30.log
风险提示:
mv 如果目标文件已存在,可能会覆盖目标文件。为了更安全,可以使用:
bash
mv -i old.txt new.txt
-i 会在覆盖前提示确认。
五、打包和压缩命令
Linux 中打包和压缩经常一起出现,但它们不是一回事:
- 打包:把多个文件合成一个文件,例如
.tar。 - 压缩:减少文件体积,例如
.gz。
5.1 tar:打包和解包
打包目录:
bash
tar -cvf logs.tar logs/
解包:
bash
tar -xvf logs.tar
常见参数:
| 参数 | 作用 |
|---|---|
-c |
创建归档文件 |
-x |
解开归档文件 |
-v |
显示处理过程 |
-f |
指定归档文件名 |
-z |
通过 gzip 压缩或解压 |
打包并压缩为 .tar.gz:
bash
tar -czvf logs.tar.gz logs/
解压 .tar.gz:
bash
tar -xzvf logs.tar.gz
5.2 gzip 和 gunzip:压缩单个文件
压缩文件:
bash
gzip app.log
压缩后会生成:
bash
app.log.gz
解压:
bash
gunzip app.log.gz
注意:gzip 更常用于压缩单个文件。如果要压缩整个目录,通常先用 tar 打包,再配合 gzip 压缩,也就是 .tar.gz。
六、文本编辑命令
6.1 vi 和 vim 简介
vi 是 Unix/Linux 系统中非常经典的文本编辑器,vim 可以理解为增强版的 vi,功能更丰富,使用体验也更好。
在服务器上修改配置文件时,经常会看到:
bash
vi nginx.conf
vim application.yml
如果只是简单编辑配置,掌握几个基础操作就够用了。
6.2 vim 安装
有些最小化安装的 Linux 系统可能没有自带 vim。可以根据发行版使用对应包管理器安装。
Debian / Ubuntu 常见写法:
bash
sudo apt update
sudo apt install -y vim
CentOS / RHEL / Fedora 常见写法:
bash
sudo dnf install -y vim
旧版本 CentOS 也可能使用:
bash
sudo yum install -y vim
如果命令不可用,需要先确认当前系统发行版和包管理器。
6.3 vim 基础使用
打开文件:
bash
vim test.txt
vim 常见模式:
| 模式 | 说明 |
|---|---|
| 普通模式 | 默认模式,用来移动光标、复制、删除、保存退出 |
| 插入模式 | 用来输入文本 |
| 命令模式 | 用来执行保存、退出、查找等命令 |
进入插入模式:
text
i
退出插入模式:
text
Esc
保存退出:
text
:wq
不保存退出:
text
:q!
只保存不退出:
text
:w
查找内容:
text
/keyword
常用操作总结:
| 操作 | 命令 |
|---|---|
| 进入编辑 | i |
| 退出编辑 | Esc |
| 保存退出 | :wq |
| 强制退出不保存 | :q! |
| 删除当前行 | dd |
| 复制当前行 | yy |
| 粘贴 | p |
初学 vim 最容易卡住的地方是"不知道怎么退出"。记住:先按 Esc 回到普通模式,再输入 :wq 或 :q!。
七、查找命令
7.1 find:按条件查找文件
find 用来在目录中按条件查找文件。
基本格式:
bash
find 查找路径 查找条件
按文件名查找:
bash
find /etc -name "*.conf"
在当前目录查找 .log 文件:
bash
find . -name "*.log"
按文件类型查找:
bash
find . -type f
find . -type d
说明:
| 条件 | 作用 |
|---|---|
-name |
按名称查找 |
-type f |
查找普通文件 |
-type d |
查找目录 |
查找并删除要特别谨慎。建议先查出来确认:
bash
find . -name "*.tmp"
确认无误后再考虑删除:
bash
find . -name "*.tmp" -delete
生产环境中不建议直接复制网上的 find ... -delete 命令执行,一定要先确认匹配范围。
7.2 grep:按内容查找
grep 用来在文件内容中搜索关键字。
bash
grep "error" app.log
常见用法:
bash
grep -n "error" app.log
grep -i "error" app.log
grep -r "TODO" src/
参数说明:
| 参数 | 作用 |
|---|---|
-n |
显示匹配内容所在行号 |
-i |
忽略大小写 |
-r |
递归搜索目录 |
-l |
只显示包含匹配内容的文件名 |
查找日志中的错误:
bash
grep -n "Exception" app.log
查找项目中包含某个关键字的文件:
bash
grep -r "TODO" .
如果文件名中可能包含空格或特殊字符,find 配合 xargs 时更推荐使用 -print0 和 -0:
bash
find . -name "*.java" -print0 | xargs -r -0 grep -n "TODO"
这样可以更安全地处理带空格的文件名,避免因为文件名被错误拆分而导致搜索失败。
八、常用命令组合示例
8.1 查看最近日志
bash
tail -n 100 app.log
8.2 实时查看错误日志
bash
tail -f app.log | grep "ERROR"
8.3 备份配置文件
bash
cp -iv application.yml application.yml.bak
8.4 查找配置文件
bash
find /etc -name "*.conf"
8.5 查找项目中的关键字
bash
grep -rn "server.port" .
8.6 打包日志目录
bash
tar -czvf logs.tar.gz logs/
九、学习 Linux 命令的建议
刚开始学习 Linux 命令时,不建议一次性背太多参数。更好的方式是按使用场景记忆:
- 查看当前位置:
pwd - 查看目录:
ls - 切换目录:
cd - 创建目录:
mkdir - 删除文件:
rm - 查看文件:
cat、more、head、tail - 复制移动:
cp、mv - 打包压缩:
tar、gzip - 编辑文件:
vi、vim - 查找文件:
find - 查找内容:
grep
同时要养成两个习惯:
- 执行删除、覆盖、批量操作前,先用
ls、find或grep确认范围。 - 修改重要配置前,先用
cp备份一份。
例如:
bash
cp -iv nginx.conf nginx.conf.bak
vim nginx.conf
这样即使配置改错了,也可以快速回退。
总结
这篇文章主要整理了 Linux 中最常用的一批基础命令:目录操作、文件查看、复制移动、压缩打包、文本编辑和查找搜索。
这些命令本身并不复杂,真正重要的是理解它们在实际场景中的作用。比如 tail -f 常用于查看实时日志,cp -iv 适合修改配置前备份,find 和 grep 可以配合完成文件与内容搜索,vim 则是服务器上修改文件时绕不开的基础工具。
最后再强调一点:Linux 命令很强大,但越强大的命令越要注意执行范围。尤其是 rm、mv、find -delete 这类可能删除或覆盖数据的命令,执行前一定要确认路径、确认权限、确认是否需要备份。

参考资料
- GNU Coreutils Manual:
https://www.gnu.org/software/coreutils/manual/ - GNU Findutils Manual:
https://www.gnu.org/software/findutils/manual/