RHCE认证考试学习笔记(二):文件操作与Vim编辑器

  |   0 评论   |   0 浏览

大家好,欢迎回到RHCE9学习笔记系列。在上一篇中,我们熟悉了Linux的基础概念、目录结构和常用命令。今天,我们将深入Linux文件管理,掌握如何创建、查看、复制、移动、删除文件,以及如何使用强大的Vim编辑器进行文本编辑。文件操作是日常运维中最频繁的任务,熟练运用这些命令和工具,是成为合格Linux工程师的必修课。

1. 文件管理概述

Linux中的文件操作可以归纳为四个字:增、删、改、查

  • :创建文件或目录
  • :删除文件或目录
  • :修改文件内容或属性(如权限、所有者)
  • :查看文件内容或属性

在学习具体命令之前,我们先明确两个重要的路径概念。

2. 绝对路径与相对路径

  • 绝对路径 :从根目录 / 开始写起的完整路径,例如 /home/user/file.txt
  • 相对路径 :相对于当前工作目录的路径,不以 / 开头,例如 ./file.txt../dir/file.txt

技巧 :在脚本或配置文件中,建议使用绝对路径,避免因当前目录不同导致的错误。

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.txt
touch -t 202503201200 file # 将文件的时间戳修改为指定时间

如果文件已存在,touch 仅更新其访问和修改时间。

4.2 mkdir – 创建目录

bash

mkdir mydir                 # 创建单级目录
mkdir -p a/b/c              # 递归创建多级目录(父目录不存在时自动创建)
mkdir -m 755 newdir         # 创建目录并指定权限

5. 删除文件与目录

5.1 rmdir – 删除空目录

bash

rmdir emptydir              # 只能删除空目录

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的快捷方式,但有两种类型:

  • 硬链接 :多个文件名指向同一个inode,删除一个不影响其他。只能在同一文件系统内创建,不能用于目录。
  • 软链接(符号链接) :一个特殊的文件,内容是指向另一个文件的路径。可以跨文件系统,也可以指向目录。

bash

ln source hardlink          # 创建硬链接
ln -s source softlink       # 创建软链接

示例

bash

echo "Hello" > original
ln original hard            # 创建硬链接 hard
ln -s original soft         # 创建软链接 soft
rm original                 # 删除原文件
cat hard                    # 硬链接仍可访问内容
cat soft                    # 软链接失效(文件不存在)

查看软链接:

bash

ls -l soft                  # 显示 lrwxrwxrwx ... soft -> original

8. 文件隐藏属性 – chattrlsattr

除了常规的rwx权限,Linux文件还可以设置隐藏属性,这些属性由 chattr 命令管理,用 lsattr 查看。

8.1 常用隐藏属性

  • i:不可变(immutable)。文件不能被删除、改名、写入,连root也不行。
  • a:只能追加(append)。文件只能以追加模式写入,适用于日志文件。
  • A:不更新访问时间(atime)。
  • s:安全删除,文件删除后磁盘空间立即归零。
  • u:删除后保留数据,可恢复。

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)

在命令模式下按 : 进入末行模式,底部会出现冒号,可以执行各种命令。

查找与替换

  • 查找 :输入 /关键词 后回车,按 n 向下查找,N 向上查找。

  • 替换
    vim

    :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 实用技巧

  • 重复操作 :在命令模式下按 . 可重复上一次操作。
  • 快速注释多行 :进入块可视化模式,选中行首,按 I 插入 #,然后按 Esc
  • 保存只读文件 :如果忘记用sudo打开,可以使用 :w !sudo tee %

总结

本篇我们系统学习了Linux文件操作的核心命令,包括创建、查看、复制、移动、删除,以及隐藏属性的设置。同时,我们深入探讨了Vim编辑器的四大模式及其常用操作。熟练掌握这些工具,你将能够高效地管理Linux系统中的文件,为后续学习权限管理、服务配置打下坚实基础。

下一篇文章,我们将介绍输入输出重定向、管道以及正则表达式,这些是构建命令行工作流的关键技术。敬请期待!


练习建议

  1. /tmp 下创建目录 test,并在其中创建多个文件,练习 cpmvrm 操作。
  2. 使用 chattr +i 保护一个文件,尝试删除它,再解锁。
  3. 打开Vim,练习光标移动、复制粘贴、查找替换等操作。

如果你有任何疑问或建议,欢迎在评论区留言。我们下期见!


标题:RHCE认证考试学习笔记(二):文件操作与Vim编辑器
作者:shuaiqijun
地址:https://shuaiqijun.com/articles/2026/03/23/1774228906129.html