Linux常用命令详解:目录、文件、压缩、编辑与查找

前言

学习 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,因为会一次性刷满终端,阅读体验很差。查看大文件时更推荐 morelessheadtail

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 gzipgunzip:压缩单个文件

压缩文件:

bash 复制代码
gzip app.log

压缩后会生成:

bash 复制代码
app.log.gz

解压:

bash 复制代码
gunzip app.log.gz

注意:gzip 更常用于压缩单个文件。如果要压缩整个目录,通常先用 tar 打包,再配合 gzip 压缩,也就是 .tar.gz

六、文本编辑命令

6.1 vivim 简介

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
  • 查看文件:catmoreheadtail
  • 复制移动:cpmv
  • 打包压缩:targzip
  • 编辑文件:vivim
  • 查找文件:find
  • 查找内容:grep

同时要养成两个习惯:

  1. 执行删除、覆盖、批量操作前,先用 lsfindgrep 确认范围。
  2. 修改重要配置前,先用 cp 备份一份。

例如:

bash 复制代码
cp -iv nginx.conf nginx.conf.bak
vim nginx.conf

这样即使配置改错了,也可以快速回退。

总结

这篇文章主要整理了 Linux 中最常用的一批基础命令:目录操作、文件查看、复制移动、压缩打包、文本编辑和查找搜索。

这些命令本身并不复杂,真正重要的是理解它们在实际场景中的作用。比如 tail -f 常用于查看实时日志,cp -iv 适合修改配置前备份,findgrep 可以配合完成文件与内容搜索,vim 则是服务器上修改文件时绕不开的基础工具。

最后再强调一点:Linux 命令很强大,但越强大的命令越要注意执行范围。尤其是 rmmvfind -delete 这类可能删除或覆盖数据的命令,执行前一定要确认路径、确认权限、确认是否需要备份。

参考资料

  • GNU Coreutils Manual:https://www.gnu.org/software/coreutils/manual/
  • GNU Findutils Manual:https://www.gnu.org/software/findutils/manual/
相关推荐
ACP广源盛139246256731 小时前
GSV2231@ACP#三屏扩展旗舰芯片,TRAE SOLO 多任务并行开发核心引擎
运维·网络·人工智能·嵌入式硬件·gpt·电脑·音视频
Shadow(⊙o⊙)1 小时前
库的制作与原理1.0,库打包,协作,目标文件.o、ELF格式。
linux·运维·服务器·开发语言
文青小兵1 小时前
Linux云计算——docker 网络和部分挂载(二)
linux·docker·云计算
AOwhisky1 小时前
Ceph系列第五期:Ceph 对象存储(RADOS Gateway)精讲
linux·运维·笔记·ceph·gateway·对象存储
xhaxy1 小时前
pgsql集群搭建(Patroni + etcd )
linux·postgresql·etcd
梦奇不是胖猫1 小时前
[ 计算机网络 | 第四章 ] 网络层 02 网际协议IP
运维·服务器·网络·网络协议·tcp/ip·计算机网络
Wonderful U1 小时前
基于Python+Django+psutil的轻量化服务器自动化监控平台实战
服务器·python·django
蜀道山老天师1 小时前
Docker安装配置全教程(含银河麒麟服务器部署+镜像加速)
运维·docker·容器
愿天垂怜1 小时前
【C++脚手架】etcd 的介绍与使用
java·linux·服务器·c语言·c++·中间件·etcd