文件操作命令
命令 | 作用 | 语法格式 | 参数 | 案例 |
---|---|---|---|---|
touch | 创建文件 | touch 文件名 | -t 时间:手动指定时间戳(格式:YYMMDDhhmm [.ss]) | touch file1.txt : 在当前目录下创建 file1.txt touch file1.txt file2.txt file3.txt: 创建多个文件 touch -t 202501011230.45 file.txt: 指定时间戳(设为 2025 年 1 月 1 日 12:30:45) |
cp(copy) | 文件或者目录的复制 | cp [-r] 源文件位置... 目标路径 | -r : 递归,复制文件夹必须添加 | cp a.txt/usr/local : 复制当前 a.txt 文件到 /usr/local 下 cp -r local /root : 复制 local 目录到 /root 下 |
mv(move) | 文件、目录的移动和重命名 | mv 源文件路径... 目标路径 | 无 | mv aa-ks.cfg/export/data : 将某文件移动到某路径下 mv export ~ : 将 export 目录移动到家目录下 mv a.txt test.txt : 将 a.txt 移动到当前目录的 text.txt 中 (重命名) mv test.txt/a.txt : 将 text.txt 移动到 / 根目录下,重命名为 a.txt |
rm | 删除文件 | rm [选项] 文件 / 目录路径 | -r: 是否启动递归删除方案(适用于删除目录的时候) -f: 是否需要强制删除,如果不添加, 会有一个询问的操作 |
rm -rf /export: 不提示强制删除 /export 目录 |
文件查找命令
find 命令:文件查找命令
格式: find 路径范围 选项 1 选项 1 的值 [选项 2 选项 2 的值...]
选项说明:
选项 | 说明 | 选项 | 说明 |
---|---|---|---|
-name | 按照文档名称进行搜索(支持模糊搜索)* : 通配符,匹配任意个任意字符 | -size | 用于根据文件大小查找文件。格式为 [+/-] n [单位] |
-type | 按照文档的类型进行搜索,文档类型的值,f(file) 表示文件,d (directory) 表示文件夹 | + 和 - 前缀: +n:查找大于 n 的文件。 -n:查找小于 n 的文件。 |
|
-mtime | 用于根据文件的修改时间(modification time)来筛选文件,参数值是一个整数,表示天数 -mtime +n:查找修改时间超过 n 天前的文件 -mtime -n:查找修改时间在 n 天以内的文件 -mtime n:查找修改时间正好是 n 天前的文件 |
单位说明: c:字节(默认单位) k:千字节(kB) M:兆字节(MB) G:吉字节(GB) b:512 字节块(不常用) |
|
-exec | 用于对 find 查找到的文件执行指定的命令。它的语法比较特殊,需要用 {} 表示查找到的文件,并用;结束命令 例如:查找所有 .log 文件并删除 find /var/log -name "*.log" -exec rm -f {} ; |
文件编辑命令
vi: 经典的文本编辑器,功能较基础,适用于简单编辑任务。
vim (Vi IMproved): vi 的升级版,支持更多高级功能,如:
语法高亮,多级撤销 (vi 仅支持单步撤销),代码折叠,插件支持,更好的跨平台兼容性
在 RHEL 9 中,vi 通常是 vim 的符号链接,即运行 vi 实际启动的是 vim 的兼容模式。
安装 vim: dnf install -y vim
打开文件
vi a.txt # 直接打开文件
vim a.txt # vim是vi的增强版
vim +10 a.txt # 直接打开文件,并定位到第10行
vi/vim 三种工作模式:
命令模式:复制、粘贴、移动光标、撤销与恢复
插入模式(编辑模式):只能编辑文件内容(写字)
底行模式(末行模式):保存文件、退出文件、显示行号、搜索关键词
命令模式
当我们通过 vi/vim 命令打开文件时,默认就处于命令模式
小技巧:进入 vim 编辑器,先查看左下角有没有提示信息,如果没有任何信息,代表你当前位于命令模式!
命令 | 功能 | 命令 | 功能 |
---|---|---|---|
o | 在当前行后面插入一空行 | p | 粘贴 |
O | 在当前行前面插入一空行 | u | 撤销上一次命令,相当于 Windows 中的 Ctrl + Z |
dd | 剪切或删除光标所在行 | gg | 回到文件顶部 |
ndd | 从光标位置向下连续剪切或删除 n 行 | G | 回到文件末尾 |
yy | 复制光标所在行 | ||
nyy | 从光标位置向下连续复制 n 行 | ||
Ctrl + R | 恢复,与 u 相对应 |
编辑模式
如何进入编辑模式呢?
答:
i: 在当前光标的前面插入内容
a: 在当前光标的后面插入内容
o: 在光标的后一行插入内容
O: 在光标的前一行插入内容
问题:如何从编辑模式回到命令模式
答:按 Esc 键
底行模式
在 Linux 操作系统中,文件必须先保存后退出!
!叹号代表强制,强制保存、强制退出、强制保存并退出!
命令 | 功能 | 命令 | 功能 |
---|---|---|---|
:w 文件 | 另存为 | :x | 保存并退出【建议运维选择】 |
:w | 保存 (ctrl + s) | :set nu | 设置行号,取消行号使用 :set nonu |
:q | 退出,如果没有保存,不允许退出 | :% s / 旧关键词 / 新关键词 /g | 文本替换 |
:q! | 强行退出,不保存退出 | :noh | 取消高亮 |
:wq | 保存并退出 | / 关键词 | 搜索某一关键词 |
:X | 设置密码,需要保存并退出,:X回车回车取消密码,需要保存并退出 |
:wq 和:x 区别?
答:如果文件内容有改变,两者的效果是一样的。如果文件内容没有改变,:x 不会改变文件的最后修改时间,但是:wq 会更新文件的最后修改时间。运维工程师,强烈推荐使用:x
Vim 的备份机制
如果在打开某个文件时,弹出以上提示,那代表你这个文件之前没有保存就强制退出了,触发了 Vim 的备份机制,产生了一个。文件名称.swp 交换文件。
以后每次打开之前的文件就会产生上面的提示,解决方案:
① 之前的修改不重要,可以直接删除的情况:rm . 源文件名称.swp
② 之前的修改很重要,需要先恢复内容,然后再解决报错问题
第一步:直接回车,切换到错误的底部,找到回复菜单,一般是 R,恢复文件内容
第二步:针对找回的内容进行:x 保存并退出
第三步:删除刚才产生的交换文件
文件查看命令
命令 | 作用 | 格式与参数 | 案例 |
---|---|---|---|
cat | 从上往下查看文件内容,一次性加载所有数据,适合小文件查看 | 格式: cat 文件 | 查看家目录中 anaconda-ks.cfg 文件 cat anaconda-ks.cfg |
more | 用于分页查看文件内容的命令 | 格式: more filename 进入文件后,可使用的相关操作: 空格键:向下滚动一页 Enter 键:向下滚动一行 b: 向上翻页 (可能不支持所有系统) q: 退出查看 |
more anaconda-ks.cfg |
less | less 命令与 more 类似,但功能更强大,它允许用户向前和向后滚动文件,同时提供了更多的操作选项 | 语法: less filename 进入文件后,可使用的相关操作: 空格键:向下翻页 b: 向上翻页 Page Up/Page Down: 向上 / 向下滚动。【方向键】 q: 退出查看 / 搜索词:搜索某个关键词,并跳转到该词的位置 n: 跳到下一个匹配的搜索结果 h: 查看帮助信息 |
less anaconda-ks.cfg |
命令 | 作用 | 格式与参数 | 案例 |
---|---|---|---|
head | 查看文件的前 N 行内容,默认显示前 10 行 | 格式: head -N 文件 N: 表示从前往后看 N 行 默认为前 10 行 |
查看家目录中 anaconda-ks.cfg 文件的前 20 行 head -20 anaconda-ks.cfg |
tail | 用于从后往前看文件,并支持监控文件变化 | 格式: tail -[N][f] 文件 N: 表示从后往前看 N 行 f: 是否持续显示文件末尾内容,监控文件变化 |
查看某个文件最后 100 行的内容 tail -100 xx.log 查看最后 100 行,并实时查看输出内容 tail -100f xx.log |
wc | 用于统计文件或输入中的行数、单词数和字节数 | 语法: wc [选项] [文件] -l : 统计行数(lines) -w : 统计单词数(words) -c : 统计字节数(bytes) -m : 统计字符数(characters) -L : 统计最长行的长度(length) |
统计文件有多少行? wc -l xx.txt 统计文件中有多少个单词? wc -w xx.txt 统计有多少个字节和字符数量? wc -cm xx.txt |
grep | 在文件中直接找到包含指定信息的那些行,并把这些信息显示出来 | 语法: grep 要查找的内容 文件名 | 在 boot.log 文件中,查找包含 network 的行 grep network boot.log |
| | 管道符号,将上一个命令的执行结果,作为下一个命令的输入 | 格式:命令 1 | 命令 2 | 命令 3 .... 注意:并不是所有的命令都支持管道符 |
对 cat 执行结果,通过 grep 查询包含 linux 的行内容 cat a.txt b.txt | grep linux |
文件解压缩
tar(tape archive)是一个用于打包和压缩文件的命令行工具。它可以将多个文件和目录打包成一个文件,也可以对这些文件进行压缩,减少存储空间。tar 命令广泛用于 Unix 和类 Unix 系统,包括 Linux 和 macOS。
tar 命令:
格式: tar [选项] 文件 ...
选项 | 说明 | 选项 | 说明 |
---|---|---|---|
-c | 创建一个新的归档文件;这个选项表示将指定的文件或目录打包成一个新的归档文件。 | -v | 在创建或解压归档时显示详细过程信息(列出文件名); 这个选项会显示每个文件在归档过程中的详细信息,通常用于调试或跟踪进度。 |
-x | 解压缩归档文件;使用该选项从归档文件中提取文件。 | -j | 使用 bzip2 压缩或解压归档文件;该选项表示将归档文件压缩成 .tar.bz2 格式,或者解压 .tar.bz2 格式的归档文件。 |
-f | 指定归档文件的名称;该选项必须紧跟着归档文件名,指定要创建或提取的归档文件。 | -J | -J (xz) 使用 xz 压缩或解压归档文件;该选项表示将归档文件压缩成 .tar.xz 格式,或者解压 .tar.xz 格式的归档文件。 |
-z | 使用 gzip 压缩或解压归档文件;该选项表示将归档文件压缩成 .tar.gz 格式,或者解压 .tar.gz 格式的归档文件。 | -C | 用于指向新的解压的目录 C 是大写的 C |
参数组合 | 说明 |
---|---|
-cvf | 创建归档文件,俗称 "打包", 打包后的文件后缀名为.tar |
-xvf | 解压归档文件,俗称 "拆包" |
-czvf | 创建归档文件,并采用 gzip 进行压缩,压缩后的文件后缀名为.tar.gz |
-xzvf | 解压被 gzip 压缩的归档文件 |
-cjvf | 创建归档文件,并采用 bzip2 进行压缩,压缩后的文件后缀名为.tar.bz2 |
-xjvf | 解压被 bzip2 压缩的归档文件 |
zip 和 unzip 命令
作用: zip 用于压缩,unzip 进行解压 针对是 zip 压缩包
格式:zip [-r] 归档文件名
.zip 需要归档的文件列表
-r : 递归压缩
unzip 归档文件名
.zip [-d 解压目录]
-d: 如果不指定,表示解压到当前路径