首先,我们要明白在Linux系统中,系统会将所有资源都抽象成“文件”的形式,通过统一的文件操作接口(如读、写、打开、关闭)来管理这些资源,简化系统设计和使用;所以我们如何熟练使用这些文件管理命令是异常重要的。

一、touch命令

1.基本语法

touch 是 Linux/Unix 系统中一个灵活的命令,主要用于创建空文件和更新文件的时间戳(访问时间、修改时间等),功能看似简单,但在文件管理和脚本编写中非常实用。

touch [选项] 文件名/路径

2.核心功能和用法:

创建单个空文件:

touch test.txt   # 若test.txt不存在,创建空文件;若存在,更新时间戳

创建多个空文件:

同时创建多个文件,用空格分隔文件名:

touch file1.txt file2.txt file3.txt   # 一次性创建3个文件

结合通配符批量创建文件:

通过通配符(如 {} 序列)快速创建有规律的文件:

# 创建 img1.jpg 到 img5.jpg 共5个空图片文件
touch img{1..5}.jpg  # 等价于 touch img1.jpg img2.jpg ... img5.jpg

-t : 用特定格式指定时间(精确到秒)

-t需按固定格式YYYYMMDDhhmm(YYYY为年,MM为月,DD为日,hh为时,mm为分):

touch -t 202510251450 test.txt

二、mkdir命令

1.基本语法:

mkdir 命令(全称 make directory)是 Linux/Unix 系统中用于创建新目录(文件夹) 的基础命令,功能简单但高频使用,常用于初始化项目结构、整理文件分类等场景。

mkdir [选项] 目录名/路径

2.核心功能与基础用法 :                                                                                                        

创建单个目录:

在当前工作目录下创建一个新的目录,直接指定目录名即可:

mkdir docs   # 在当前目录下创建名为“docs”的目录

若要在指定路径下创建目录(而非当前目录),需写明路径(绝对路径或相对路径):

# 用绝对路径在 /tmp 目录下创建“logs”目录
mkdir /tmp/logs

# 用相对路径在当前目录的“docs”子目录下创建“backup”目录(需确保“docs”已存在)
mkdir docs/backup

一次性创建多个目录:

同时创建多个同级目录,用空格分隔目录名:

# 在当前目录下同时创建 dir1\dir2\dir3 三个目录

创建多级目录(-p 选项):

若要创建嵌套的多级目录(如 a/b/c),直接创建会报错(因为父目录 a 或 a/b 可能不存在),需用 -p 选项(parent,递归创建父目录):

# 错误示例:直接创建多级目录(父目录不存在时)
mkdir a/b/c  # 报错:mkdir: cannot create directory ‘a/b/c’: No such file or directory

# 正确用法:用 -p 递归创建所有不存在的父目录
mkdir -p a/b/c
# 结果:创建 a/ → a/b/ → a/b/c/ 三级目录(即使 a 和 a/b 原本不存在)

三、rm命令

1.基本语法:

rm 命令(全称 remove)是 Linux/Unix 系统中用于删除文件或目录的核心命令,功能直接但风险较高(删除后默认无法通过常规方式恢复),使用时需格外谨慎,尤其是批量删除或删除系统文件时。

rm [选项] 目标文件/目录

2.核心功能与基础用法:

删除单个文件:

直接指定文件名即可删除当前目录下的文件:

rm tets.txt   # 删除当前目录的 test.txt 文件

删除指定路径的文件(绝对路径或相对路径):

rm /tmp/logs/error.log   # 删除 /tmp/logs 目录下的 error.log
rm data/old.txt   # 删除当前目录下 data 子目录中的 old.txt

绝对路径:

相对路径:

2.同时删除多个文件,用空格分隔文件名:

rm file1.txt file2.txt image.png   # 一次性删除这3隔文件

3.关键选项与进阶用法(重点)

rm的选项决定了删除的“强度”和“交互方式”,核心选项如下:

(1) -r 或 -R :递归删除目录及其内容

必须掌握的选项!rm默认无法删除目录,-r(recursive)会强制递归删除目录下的所有文件、子目录,直至整个目录被删除。

# 删除名为“data”的目录(包括其下所有文件和子目录)
rm -r data

# 删除指定路径的目录(如 /tmp/old_data)
rm -r /tmp/old_data

(2)-f : 强制删除(不提示、不报错)

-f (force) 会跳过“确认提示”,直接删除文件;若文件不存在或权限不足(如只读文件),也不会报错(静默执行)。

# 强制删除 readme.txt (即使文件是只读的,也不提示直接删)
rm -f readme.txt

四、gedit 、 vim命令

1.gedit命令的基本语法

gedit 是 Linux 系统中默认的图形化文本编辑器(GNOME 桌面环境标配),操作直观、界面友好,类似 Windows 的 “记事本” 但功能更强(支持语法高亮、多标签、插件扩展等),适合新手或需要可视化编辑的场景,无需记忆复杂命令,纯鼠标操作即可。

gedit [选项] [文件名/路径...]

2.gedit命令的核心功能与基础用法

gedit [选项] [文件名/路径...]

若不指定文件名, gedit 会启动一个空白编辑窗口;

若指定文件名,会打开该文件(若文件不存在,保存时会创建)。

1.vim命令的基本作用

vim主要用于在命令行环境下(无图形界面也能运行)编辑文本文件,支持语法高亮、代码补全、多文件编辑等高级功能,既能处理简单的文本笔记,也能应对复杂的程序开发(如C、Python、Shell脚本等)。

2.vim命令的基本语法

vim [选项] [文件名/路径]

若指定1文件名(如 vim test.txt):若文件存在,打开该文件;若文件不存在,保存时会创建。

若不指定文件名(直接输入 vim ):启动一个空白编辑窗口。

3.核心:vim的三种基本模式(必须掌握!)

1.  浏览模式(命令模式) : 可以对文件内容进行浏览 , 也可以对vim的工作方式进行设定; " / "+关键字 : 关键字高亮显示 , 按 n 向下匹配 , 按 N  向上匹配;set noh : 取消关键字的高亮显示

进入到vim的浏览模式,浏览模式不能编辑文件

2.插入模式 : vim的编辑模式 , 只有在插入模式下才能对文件内容进行修改

在浏览模式中按<i>进入插入模式,在vim中鼠标不能控制光标用上下左右移动光标

3.退出模式 : 当文件内容修改完毕可以退出模式来保存或不保存修改内容


        
  

按<ESC>退出插入模式

按 :wq 保存更改
     :q 当vim打开文件后未作任何操作可以直接退出
     :q! 当vim打开文件后修改文件内容但不想保存可以强制退出

vim -o 同时打开多个文件:

vim -o lee1 lee2
# 上下模式打开两个文件
#<ctrl>+<w>   <上|下>来转换控制窗口

vim的异常处理:

当vim编写文件时在未保存更改内容被强制关闭,那么vim进入异常模式,当再次用vim打开文件后文件出现异常例如下图:

处理方法如下 :

#[O]   只读打开文件
#[E]   继续编辑
#[R]   恢复未保存内容编辑 
#[D]   删除.swp文件进入编辑
#[Q]   退出当前文件编辑
#[A]   退出vim程序

五、cat命令 、 head命令 、 tail命令 、 less命令

1.cat命令的基本语法:

cat 命令(全称 concatenate,意为 “连接”)是 Linux/Unix 系统中最基础的文本处理命令之一,核心功能是读取文件内容并输出到终端,还可用于创建文件、合并多个文件等,是查看短文本文件的首选工具。

cat [选项] [文件1] [文件2] ...

2.cat语法的核心功能:

查看文件内容(最常用):直接输出文件的全部内容,适合内容较少的文本文件(如配置文件、脚本、日志片段)。

查看单个文件:

cat test.txt   # 输出 test.txt 的所有内容到终端

查看多个文件(按顺序连接输出):

cat part1.txt part2.txt   # 先输出 part1.txt 内容,再输出 part2.txt 内容

显示文件内容并显示行号:

cat -n part1.txt

显示文件内容并显示非空行行号:

# 仅为非空行添加行号
cat -b notes.txt

1.head命令的基本语法:

head 命令是 Linux 系统中用于查看文件开头内容的工具,与 tail(查看末尾)相对应,默认显示文件的前 10 行,适合快速了解文件的头部信息(如配置文件的注释、日志的起始记录等)。

head [选项] [文件1] [文件2]...

若指定单个文件,head会输出该文件的开头部分:

若指定多个文件,head会按顺序输出每个文件的开头部分,并在每个文件内容前加上文件名作为标识:

2.head命令核心功能:显示文件开头的内容

显示单个文件的前10行(默认行为):

head part1.txt   # 输出 part1.txt 的前10行内容

显示多个文件的前10行(带文件名标识):

head part1.txt part2.txt

head -数字:显示文件前n行

head -5 part1.txt

1.tail命令的基本语法:

tail 命令是 Linux 系统中用于查看文件末尾内容的工具,尤其适合查看动态增长的文件(如日志文件,新内容会不断追加到末尾),是日志监控、调试的高频命令。

tail [选项] [文件路径]

若指定单个文件,head会输出该文件的结尾部分:

若指定多个文件,head会按顺序输出每个文件的结尾部分,并在每个文件内容前加上文件名作为标识:

2.tail命令核心功能:显示文件结尾的内容

显示单个文件的后10行(默认行为):

tail part1.txt   # 输出 part1.txt 的后10行内容

显示多个文件的后10行(带文件名标识):

tail part1.txt

tail -数字:显示文件后n行:

tail -5 part1.txt

1.less命令的基本语法:

分页查看文件内容,避免一次性加载整个文件(适合大文件):

less [选项] 文件名

直接输入 less 文件名 即可进入浏览模式,按q退出(必须记住!):

进入less模式后的核心操作(高频)

1. 浏览控制(翻页 / 滚动)
操作键 功能
上箭头 / k 向上逐行滚动
下箭头 / j 向下逐行滚动
空格键 / Ctrl+F 向前翻一页(最常用)
Ctrl+B 向后翻一页(最常用)
G 跳转到文件末尾
g 跳转到文件开头
数字+G(如 50G 跳转到指定行(第 50 行)
2. 搜索功能(快速定位)
操作键 功能
/关键字(如 /error 从当前位置向下搜索关键字
?关键字(如 ?error 从当前位置向上搜索关键字
n 跳转到下一个匹配结果(同方向)
N 跳转到上一个匹配结果(反方向)
3. 其他实用操作
操作键 功能
v 直接进入 vim 编辑当前文件(保存后 :wq 自动返回 less)
q 退出 less 模式(必记!)
!命令(如 !ls 在 less 中执行 shell 命令(按回车返回)
Ctrl+L 刷新屏幕(解决内容乱码)

六、cp命令、mv命令

1.cp命令的基本语法:

cp是Linux中用于复制文件或目录的核心命令,通过它可以将文件/目录从一个位置复制到另一个位置,是日常文件管理中最常用的命令之一。

cp [选项] 源文件/目录 目标文件/目录

2.cp命令的核心功能:

复制多个文件到目录:

一次复制多个文件到目标目录(目标必须是已存在的目录):

# 复制 a.txt、b.jpg、c.sh 到 data 目录
cp a.txt b.jpg c.sh data/

# 结合通配符批量复制(复制所有 .pdf 文件到 docs 目录)
cp *.pdf docs/

cp -r 源目录 目标目录   :

cp -r 1 2

注意事项:复制目录必须加 -r 或 -R ,否则会报错 cp: omitting directory(忽略目录)。

1.mv命令的基本语法:

mv是Linux中用于移动文件/目录或重命名文件/目录的核心命令,功能类似Windows的“剪切”操作,是文件管理中高频使用的工具。

将文件从当前目录移动到目标目录(目标目录必须存在):

mv [选项] 源文件/目录 目标文件/目录

若目标目录不存在,会报错 No such file or directory,需先创建目录(如 mkdir -p 目标目录)。

移动目录:

移动目录时,mv 会完整转移目录及其所有子内容(无需额外选项,自动处理递归):

# 将当前目录的 pics 目录移动到 /data 目录下
mv pics /data/

# 若 /data/pics 已存在,则 pics 会被移入 /data/pics 内(成为子目录)

核心逻辑;根据 “源” 和 “目标” 的位置关系,实现两种功能:

1.若 “源” 和 “目标” 在不同目录:执行 “移动” 操作(将源转移到目标位置)。

2.若 “源” 和 “目标” 在同一目录:执行 “重命名” 操作(将源改名为目标名称)。

2.mv命令的核心功能:

重命名文件/目录:

当 “源” 和 “目标” 在同一目录时,mv会将 “源” 重命名为 “目标”:

重命名文件:

mv old.txt new.txt   # 将文件 old.txt 改名为 new.txt

重命名目录:

mv old_dir new_dir   #将目录 old_dir 改名为 new_dir

移动文件到目标目录:

将文件从当前目录(或指定路径)移动到另一个目录,文件名不变:

示例:将 new.txt 文件移动到 /root/文档 目录

mv new.txt /root/文档   # 移动后路径为 /root/文档/new.txt

移动目录到目标目录:

将整个目录(包括内部文件)移动到另一个目录下:

示例:将 new_dir 目录移动到 /root/文档 目录

mv new_dir /root/文档

移动多个文件到目标目录:

可以同时移动多个文件到同一目录,用空格分隔源文件:

示例:将 a.txt 、 b.txt 移动到 docs 目录

mv a.txt b.txt docs/

批量移动文件(结合通配符):

通过通配符一次性移动多个符合条件的文件:

# 移动当前目录所有 .pdf 文件到 docs 目录
mv *.pdf docs/

# 移动以 "log_" 开头的文件到 /var/log/backup 目录
mv log_* /var/log/backup/

七、file命令、wc命令、ls命令:

file命令是 Linux 系统中用于识别文件类型的工具,它通过分析文件内容(而非文件名扩展名)来判断文件的真实类型,非常适合解决“文件名与实际类型不符”的问题。

1.file命令的基本语法:

file [选项] 文件名/文件路径

2.file命令的核心功能:

识别文件的类型:

输入:file test
输出:test: empty   # 表示此文件为空文件

识别目录的类型:

输入:file docs/
输出:docs/: directory   (明确是目录)

1.wc命令的基本语法:

wc 命令是 Linux 系统中用于统计文件内容的工具,主要功能是计算文件的行数、单词数、字节数(或字符数),非常适合文本处理和数据分析场景。

wc [选项] 文件名/文件路径

2.wc命令的核心功能:

wc 的常用选项对应三大核心统计维度,默认不指定选项时,会同时输出“行数、单词数、字节数” + 文件名。

选项 功能描述
-l 仅统计行数(lines
-w 仅统计单词数(words
-c 仅统计字节数(bytes
-m 仅统计字符数(characters,支持多字节字符如中文)
-L 显示文件中最长一行的长度(字节数)

默认输出(无选项时):

如果直接执行 wc 文件名,会同时输出 行数、单词数、字节数 和文件名,按顺序排列:

# 假设文件 test.txt 内容为:
# Hello world
# Linux 命令

wc test.txt
# 输出:2  4 26 test.txt
# 解释:2行(-l)、4个单词(-w)、26字节(-c)、文件名 test.txt

单独统计行数(-l):

最常用的选项之一,例如统计代码行数、日志条目数等:

# 统计 test.txt 的行数
wc -l test.txt
# 输出:2 test.txt

# 统计当前目录下所有 .sh 文件的总行数(结合通配符)
wc -l *.sh
# 输出:
# 5 script1.sh
# 8 script2.sh
# 13 总用量  # 最后一行是所有文件的行数总和

单独统计单词数(-w):

统计文本中的单词数量(按空白分隔):

# 统计 test.txt 的单词数
wc -w test.txt
# 输出:4 test.txt (对应内容中的 "Hello" "world" "Linux" "命令")

单独统计字节数(-c):

统计文件的总字节数(可理解为文件大小的另一种表示,与 ls -l 显示的字节数一致):

# 统计 test.txt 的字节数
wc -c test.txt
# 输出:26 test.txt (与 ls -l test.txt 显示的大小一致)

统计最长行长度(-L):

查看文件中最长一行的字节数(常用于检查格式是否符合要求):

# 假设 test.txt 中最长一行为 "Hello world"(含空格和换行符,共12字节)
wc -L test.txt
# 输出:12 test.txt

进阶用法:

组合选项:

可同时使用多个选项,按指定顺序输出结果:

# 同时统计行数和单词数(-l 在前,-w 在后)
wc -lw test.txt
# 输出:2 4 test.txt

# 统计行数、最长行长度、字节数
wc -lLc test.txt
# 输出:2 12 26 test.txt

统计多个文件:

wc 会分别统计每个文件的结果,并在最后显示 “总用量”:

wc file1.txt file2.txt
# 输出:
# 3  5 30 file1.txt
# 2  4 26 file2.txt
# 5  9 56 总用量  # 行数、单词数、字节数的总和

1.ls命令的基本语法:

ls 命令是 Linux 系统中最基础也最常用的命令之一,用于列出目录中的文件和子目录,是日常管理文件系统的核心工具。

ls [选项] [目录路径/文件路径]

若不指定 [目录路径] ,默认列出当前工作目录的内容。

若指定具体文件路径,会直接显示该文件(通常用于确认文件是否存在)。

2.ls命令的核心功能:

以下就是 ls 选项的各种用法:

命令 描述
ls 显示当前目录中文件的名称
ls file 显示指定文件的名称
ls dir 显示指定目录中内容的名称
ls -d dir 显示目录本身的名称
ls -l file 显示文件的属性
ls -l dir 显示目录中内容的属性
ls -ld dir 显示目录本身属性
ls -a dir 显示目录中所有文件名称包括隐藏文件
ls -s 显示文件大小
ls -S dir 在目录中按文件容量从大到小进行显示
ls -R dir 递归显示目录中的内容

八、绝对路径和相对路径

在 Linux 系统中,路径是用于定位文件或目录的字符串,分为绝对路径和相对路径两种,核心区别在于 “起点” 不同。 

1.绝对路径

定义:从系统的根目录(/)开始的完整路径,无论当前处于哪个目录,绝对路径都能唯一、准确地指向目标文件/目录。

特点:路径以 / 开头,包含从根目录到目标的所有层级目录。

2.相对路径

定义:以当前工作目录为起点的路径,依赖于用户当前所在的目录位置。

特点:路径不以 / 开头,可通过特殊符号简化层级表示

.:表示当前目录(可省略)。

..:表示父级目录(上一级目录)。

核心区别对比:

维度 绝对路径 相对路径
起点 根目录(/) 当前工作目录
格式特征 以 / 开头 不以 / 开头,可含 . 或 ..
稳定性 不依赖当前目录,始终有效 依赖当前目录,换目录后可能失效
适用场景 脚本、配置文件(固定路径) 终端手动操作(简洁方便)

九、pwd命令、cd命令

1.pwd命令的基本语法:

pwd 命令是 Linux 系统中用于显示当前工作目录的绝对路径的工具,全称是 “Prnit Working Directory”,是日常终端操作中确认位置的常用命令。

pwd [选项]
# 示例输出(假设当前在用户的文档目录):
# /home/user/Documents

1.cd命令的基本语法:

cd 命令是 Linux 系统中用于切换当前工作目录的核心命令,全称“Change Directory”,几乎所有终端操作都离不开它。

cd [目标目录路径]

若不指定 [目标目录路径],默认切换到当前用户的家目录(/home/用户名 或 ~ 表示)。

2.cd命令的核心功能:

根据目标目录的路径类型,cd 有多种灵活用法,结合绝对路径、相对路径和特殊符号使用更高效。

切换到绝对路径指定的目录:

直接使用从根目录(/)开始的完整路径,无论当前在哪个目录,都能准确切换。

# 切换到 /var/log 目录(绝对路径)
cd /var/log

# 切换到用户家目录下的 docs 子目录(绝对路径)
cd /home/user/docs

切换到相对路径指定的内容:

以当前工作目录为起点,通过 ./(当前目录,可省略)或 ../(父目录)表示层级关系。

# 切换到当前目录下的 docs 子目录(相对路径,等价于 cd ./docs)
cd docs

# 切换到当前目录的父目录(/home)
cd ..

# 切换到父目录的 public 子目录(/home/public)
cd ../public

# 切换到当前目录的子目录 nested 中的 sub 目录(./nested/sub)
cd nested/sub

切换到用户家目录:

家目录是每个用户的默认目录(路径为 /home/用户名,如 /home/zhangsan),有多种快捷方式:

# 方式1:直接 cd(无参数)
cd

# 方式2:使用 ~ 符号(~ 代表家目录)
cd ~

# 方式3:切换到其他用户的家目录(需权限)
cd ~lisi  # 切换到用户 lisi 的家目录(/home/lisi)

切换到上一次工作目录(cd -):

cd - 会切换到 “上一次所在的目录”,类似于 “返回” 功能,适合在两个目录间快速切换。

# 假设当前在 /home/user/docs
cd /var/log  # 切换到 /var/log
cd -         # 切换回上一次的目录 /home/user/docs

切换到当前目录(cd .):

. 代表当前目录,cd . 执行后目录不变(看似无用,但在脚本中可用于标准化路径或强制刷新状态)。

cd .  # 保持当前目录不变

多层目录快速切换:

结合相对路径和特殊符号,快速定位深层目录:

# 假设当前在 /a/b/c/d,切换到 /a/b/x/y
cd ../../x/y  # 先回退两级(../../ → /a/b),再进入 x/y

十、文件批处理

通配符  

是一类类特殊字符,用于模糊匹配文件名或路径,简化对多个组符合特定规则的文件 / 目录的操作。通过通配符,无需逐个输入文件名,就能批量批量处理多个文件(如查看、复制、删除等),是命令行中高效操作文件的重要工具。

*                         #匹配0~任意字符
?                       #匹配单个字符
[[:alpha:]]           #匹配单个字符
[[:lower:]]           #匹配单个小写字符
[[:upper:]]           #匹配单个大写字符
[[:digit:]]             #匹配单个数字
[[:alnum:]]          #匹配单个字母或者字母
[[:punct:]]           #匹配单个符号
[[:space:]]          #匹配单个空格
[[::][::]]               #一个类型或者一个类型

应用案例:备份/etc/目录中所有以".conf"并且名字中含有数字的文件,把文件备份到/tmp/confback 目录中,如果此目录不存在请自行建立 

​cp -r /etc/*[[:digit:]].conf* /tmp/confback

{}                       ##精确指定
{1..5}                 ##查找1到5这5个数
{a..c}                 ##查找a到c这三个字母
{1,3,5}               ##查找1,3,5
应用案例:同时建立a-c三个文件  

touch file{a..c}


[]                       ##模糊匹配,应用场景:要处理已经存在文件的时候
[a-c]                  ##a或者c或者是b
[1-3]                  ##1或者是2或者是3
[!a-c]                 ##不是a并且不是b并且不是c
[^a-c]                ##除了a,b,c之外的
应用案例:已存在file{a..f}{1..5}30个文件,现在将带有3、5的文件移到目录test里 

mv file?[35] test

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐