大家好,欢迎回到RHCE9学习笔记系列。在上一篇中,我们熟悉了Linux的基础概念、目录结构和常用命令。今天,我们将深入Linux文件管理,掌握如何创建、查看、复制、移动、删除文件,以及如何使用强大的Vim编辑器进行文本编辑。文件操作是日常运维中最频繁的任务,熟练运用这些命令和工具,是成为合格Linux工程师的必修课。1. 文件管理概述
Linux中的文件操作可以归纳为四个字:增、删、改、查。
增:创建文件或目录
删:删除文件或目录
改:修改文件内容或属性(如权限、所有者)
查:查看文件内容或属性
在学习具体命令之前,我们先明确两个重要的路径概念。
2. 绝对路径与相对路径
技巧:在脚本或配置文件中,建议使用绝对路径,避免因当前目录不同导致的错误。
3. 文件查看命令(回顾与扩展)
虽然上一篇已经介绍了一些查看命令,但这里我们再系统地梳理一下,并补充几个实用选项。
3.1 cd – 切换目录
bash
cd /etc # 进入/etc目录cd ..# 返回上级目录cd ~ # 回到当前用户家目录cd - # 在上次所在目录和当前目录间切换
3.2 ls – 列出目录内容
bash
ls# 列出当前目录文件名ls -l# 详细信息(权限、链接数、所有者、大小、时间)ls -a# 显示所有文件,包括隐藏文件(以.开头)ls -lh# 以人类可读方式显示大小(KB、MB)ls -d */ # 只显示当前目录下的子目录
3.3 cat – 连接并显示文件
bash
cat file1 file2 # 同时显示多个文件内容
3.4 head / tail – 查看文件开头/结尾
bash head -n 20 file# 显示前20行,默认10行tail -f logfile # 实时跟踪日志文件的新增内容(常用)
3.5 more / less – 分页查看
bash
more longfile # 分页显示,空格翻页,q退出less longfile # 更强大,支持上下翻页、搜索
3.6 file – 查看文件类型
bash
file script.sh # 输出如 "Bourne-Again shell script, ASCII text executable"
4. 创建文件与目录
4.1 touch – 创建空文件或更新时间戳
bash
touch newfile.txt # 创建一个空文件touch file{1..10}.txt # 批量创建 file1.txt 到 file10.txttouch -t 202503201200 file# 将文件的时间戳修改为指定时间
如果文件已存在,touch 仅更新其访问和修改时间。
4.2 mkdir – 创建目录
bash
mkdir mydir # 创建单级目录mkdir -p a/b/c # 递归创建多级目录(父目录不存在时自动创建)mkdir -m 755 newdir # 创建目录并指定权限
5. 删除文件与目录
5.1 rmdir – 删除空目录
bash
5.2 rm – 删除文件或目录(慎用!)
bash
rm file.txt # 删除文件,root用户会提示确认rm -f file.txt # 强制删除,不提示rm -r mydir # 递归删除目录及其内容rm -rf mydir # 最常用组合:强制递归删除,无提示
危险命令警示:rm -rf / 会删除根目录下所有文件,导致系统崩溃,切勿尝试!安全技巧:可以用 rm -i 让每次删除都提示确认。
6. 复制与移动文件
6.1 cp – 复制文件或目录
bash
cp source dest # 复制文件cp file1 file2 dir/ # 将多个文件复制到目录cp -r sourcedir destdir # 递归复制目录cp -a source dest # 归档复制,保留文件属性(权限、时间戳等)cp -p source dest # 保留部分属性(权限、时间)
注意:如果目标文件已存在,cp 默认会覆盖(可用 -i 选项提示确认)。
6.2 mv – 移动(重命名)文件或目录
bash
mv oldname newname # 重命名文件或目录mv file dir/ # 移动文件到目录mv -i source dest # 交互式,覆盖前提示
mv 在同一文件系统内移动速度极快,仅修改目录项;跨文件系统则相当于 cp + rm。
7. 链接文件 – ln
Linux中的链接类似于Windows的快捷方式,但有两种类型:
bash
ln source hardlink # 创建硬链接ln -s source softlink # 创建软链接
示例:
bash
echo "Hello"> original ln original hard # 创建硬链接 hardln -s original soft # 创建软链接 softrm original # 删除原文件cat hard # 硬链接仍可访问内容cat soft # 软链接失效(文件不存在)
查看软链接:
bash
ls -l soft # 显示 lrwxrwxrwx ... soft -> original
8. 文件隐藏属性 – chattr 与 lsattr
除了常规的rwx权限,Linux文件还可以设置隐藏属性,这些属性由 chattr 命令管理,用 lsattr 查看。
8.1 常用隐藏属性
8.2 命令示例
bash
chattr +i important.conf # 锁定文件,无法修改或删除lsattr important.conf # 查看属性,输出如 ----i--------chattr -i important.conf # 解锁chattr +a logfile # 设置只能追加
应用场景:保护关键配置文件、防止日志被篡改。
9. Vim编辑器详解
Vim是Linux中最强大的文本编辑器之一,熟练掌握Vim能极大提高工作效率。Vim有四大模式:命令模式、编辑模式、末行模式、可视化模式。
9.1 进入与退出
bash
vim filename # 打开文件,如果不存在则创建
进入后默认处于命令模式。退出方法(在末行模式下):
:q:退出(未修改时)
:q!:强制退出,不保存修改
:w:保存
:wq 或 :x:保存并退出
9.2 命令模式(Normal Mode)
刚打开文件时即处于命令模式。常用操作:
光标移动
h(左)、j(下)、k(上)、l(右)
gg:跳转到文件第一行
G:跳转到文件最后一行
nG:跳转到第 n 行,例如 5G
0:行首
$:行尾
删除
x:删除光标所在字符
X:删除光标前一个字符
dd:删除光标所在行
ndd:删除从当前行开始的 n 行
dw:删除一个单词
复制与粘贴
yy:复制当前行
nyy:复制 n 行
p:在光标后粘贴
P:在光标前粘贴
撤销与重做
u:撤销上一步操作(可多次)
Ctrl + r:重做(撤销的撤销)
9.3 编辑模式(Insert Mode)
在命令模式下按以下键进入编辑模式:
i:在光标前插入
I:在行首插入
a:在光标后插入
A:在行尾插入
o:在当前行下方新建一行并插入
O:在当前行上方新建一行并插入
进入编辑模式后,底部会显示 -- INSERT --。按 Esc 返回命令模式。
9.4 末行模式(Last Line Mode)
在命令模式下按 : 进入末行模式,底部会出现冒号,可以执行各种命令。
查找与替换
:s/old/new # 替换当前行第一个匹配:s/old/new/g # 替换当前行所有匹配:%s/old/new/g # 替换全文所有匹配:5,10s/old/new/g # 替换第5到10行所有匹配
显示行号
vim
:set number # 显示行号:set nonumber # 取消行号
其他操作
:!命令:执行外部命令,如 :!ls
:r file:将另一个文件的内容插入到光标处
9.5 可视化模式(Visual Mode)
v:字符可视化模式,选中字符
V:行可视化模式,选中整行
Ctrl + v:块可视化模式,选中矩形区域
选中后可以进行复制(y)、删除(d)、替换等操作。
9.6 实用技巧
总结
本篇我们系统学习了Linux文件操作的核心命令,包括创建、查看、复制、移动、删除,以及隐藏属性的设置。同时,我们深入探讨了Vim编辑器的四大模式及其常用操作。熟练掌握这些工具,你将能够高效地管理Linux系统中的文件,为后续学习权限管理、服务配置打下坚实基础。
下一篇文章,我们将介绍输入输出重定向、管道以及正则表达式,这些是构建命令行工作流的关键技术。敬请期待!
练习建议:
在 /tmp 下创建目录 test,并在其中创建多个文件,练习 cp、mv、rm 操作。
使用 chattr +i 保护一个文件,尝试删除它,再解锁。
打开Vim,练习光标移动、复制粘贴、查找替换等操作。
如果你有任何疑问或建议,欢迎在评论区留言。我们下期见!