二、linux目录编辑
1.指令
1.1echo
基本语法
echo 【选项】 【字符串/变量】
重定向:把默认输出的方向进行修改
>>:重定向追加 >:重定向覆盖
例子:以追加的方式将“abc”写入index.html文件中
echo "abc" >> index.html
进阶案例:
nginx mysql redis
使用一条echo命令把上述的3行内容输入到文本中
[root@localhost ~]# echo -e 'nginx\nmysql\nredis' > /tmp/testconfig/services.txt [root@localhost ~]# cat /tmp/testconfig/services.txt nginx mysql redis
小结:用来在屏幕上「输出文字」的命令
1.2 find
基本语法
find 搜索路径 【条件】 【动作】
【条件】-name -size -type -user
举例:使用find命令查找/boot中所有 以.img结尾,且超过10M的文件
[root@localhost ~]# find /boot -name "*.img" -size +10M /boot/initramfs-0-rescue-5718bc4c75b741b88c2745a0338254be.img /boot/initramfs-3.10.0-957.el7.x86_64.img /boot/initramfs-3.10.0-957.el7.x86_64kdump.img
进阶:-exec
例子:使用find命令查找/boot中所有 以.img结尾,且超过10M的文件,并将找到的文件复制到整理目录/tmp/sorted_files/
[root@localhost ~]# find /boot -name "*.img" -size +10M -exec cp {} /tmp/sorted_files/ \; [root@localhost ~]# ls /tmp/sorted_files initramfs-0-rescue-5718bc4c75b741b88c2745a0338254be.img initramfs-3.10.0-957.el7.x86_64.img initramfs-3.10.0-957.el7.x86_64kdump.img小结:find可以匹配条件精确查看目录或文件的绝对位置
1.3tail
tail:默认查看文件后十行内容
基本语法
tail 【选项】 【文件】
选项:
-n 【数字】文件名 (可以指定查看后n行)
-f:可以实时查看文件后十行
1.4wc
wc 【选项】 【文件】
选项:
-l (统计文件行数)
-w (统计单词个数)
-c (统计字节数)
案例:统计services.txt的行数
[root@localhost ~]# wc -l /tmp/testconfig/services.txt 3 /tmp/testconfig/services.txt
1.5grep
定义:匹配文本中的关键词,并输出关键词所在的行内容。
基本语法
grep 【选项】【关键词】【文本内容】
选项:
-i:查找时忽略大小写
-v:反向匹配
查找条件设置:
查找字符用“”括起来
“^n“:以n为开头
”n$“:以n为结尾
”^$“:取空行
案例:查看access.log文件中除了包含404之外的行。
[root@localhost log_shell]# grep -v "404" access.log 192.168.1.100 - - [29/Oct/2025:15:10:45 +0800] "GET /index.html HTTP/1.1" 200 1234 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" ……省略 192.168.1.100 - - [29/Oct/2025:15:11:05 +0800] "GET /sitemap.xml HTTP/1.1" 200 4567 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
1.6 tar
定义:归档文件/释放文件
基本语法
tar 【选项】归档文件名 源文件或目录
归档:zcvf/jcvf
z:使用gzip压缩工具进行压缩动作
j:使用zbig2压缩工具进行压缩动作
c:创建一个归档文件
v:显示详细信息
f:进行归档操作
释放:zxvf/jxvf
x:使用gizp工具精选解压缩
如果想把压缩文件解压到指定位置
tar【选项】归档文件名 -C 目标文件路径
案例:将log_regex.tar.gz解压到/opt/abc目录里
[root@localhost ~]# tar zxvf /root/log_regex.tar.gz -C /opt/abc log_shell/access.log log_shell/error.log log_shell/readme_doc log_shell/xuqiu
1.7 more
基本语法
more 文件名
案例:查看/opt/message文件
more /opt/message
快捷键:
空格:向下翻一页 回车:向下翻一行 q :退出 more 查看
小结:more 是 Linux 中分页查看文件内容的基础命令,适合查看长文本文件(比直接 cat 更友好,不会一次性刷屏)。
1.8less
基本语法
less 文件名
例子:
less /opt/message
选项:
f:实时刷新跟踪日志
快捷键:
↑ / ↓:上下逐行移动 空格 / PageDown:向下翻一页 PageUp:向上翻一页 G :跳转到文件最后一行 gg :跳转到文件第一行 / 关键词:向下搜索(如 /error) n:搜索后,查找下一个匹配项 N:搜索后,查找上一个匹配项 q:退出 less
小结:less 是 Linux 里比 more 更强大、更常用的分页查看工具,功能完全覆盖 more,是日常查看日志、文件的首选命令。
1.9head
基本语法
head 文件名
实例:
head /opt/message
选项:
n:显示前n行(可省略,直接写要查看的行数)
小结:head 是 Linux 中查看文件开头内容的命令,默认只显示文件前 10 行,专门用来快速预览文件,不用打开全部内容
2.vim编辑器
vim 有三种模式,所有操作都靠模式切换: 命令模式(默认):刚打开文件就是这个模式,只能执行:复制、粘贴、删除、跳转、查找,不能直接输入文字 输入模式(编辑模式):可以打字、修改内容,从命令模式按 i 进入 末行模式:用来保存、退出、设置行号等,从命令模式按 : 进入
基本语法
vi /var/log/meassge
模式切换: 命令模式 → 输入模式:i 任意模式 → 命令模式:Esc 命令模式 → 末行模式::
保存 和 退出(末行模式) :w 保存 :q 退出 :wq 保存并退出 :q! 强制退出不保存 :wq! 强制保存退出
光标移动(命令模式) gg 跳到第一行 G 跳到最后一行 :10或10G 跳到第10行
复制 / 粘贴 / 删除(命令模式) yy 复制当前行 5yy 复制5行 p 粘贴到下一行 dd 删除当前行 8dd 删除8行 u 撤销
搜索(命令模式) /关键词 向下搜索 n 下一个结果 N 上一个结果
显示行号(末行模式) :set nu 显示行号 :set nonu 隐藏行号
简单使用流程 1.打开文件:vim test.txt 2.按 i 进入编辑模式,开始写内容 3.按 Esc 回到命令模式 4.输入 :wq 保存退出
案例:
请使用vi编辑器完成以下任务(写出操作方法):
复制/var/log/message 到/opt目录下
跳转到第 4 行
跳转到最后一行
删除当前整行
一次删除 8 行内容
撤销刚才的删除操作
复制当前行
复制 3 行
将复制的内容粘贴到下一行
在当前行下方新开一行进入输入模式
1. [root@localhost ~]# touch /var/log/message [root@localhost ~]# cp /var/log/message /opt 2. 在命令模式下输入:4,然后按回车,光标会直接跳转到第 4 行。 也可以输入4G实现同样效果。 3. 在命令模式下输入:G,光标会跳转到文件最后一行。 4. 在命令模式下,将光标移动到要删除的行,输入:dd,即可删除当前光标所在的整行。 5. 在命令模式下,将光标移动到要删除的起始行,输入:8dd 表示从当前行开始,向下删除 8 行内容。 6. 在命令模式下输入:u,即可撤销上一步操作(多次按 u 可连续撤销)。 7. 在命令模式下,将光标移动到要复制的行,输入:yy 即可复制当前整行内容到缓冲区。 8. 在命令模式下,将光标移动到要复制的起始行,输入:3yy 表示从当前行开始,向下复制 3 行内容到缓冲区。 9. 复制内容后,在命令模式下输入:p,即可将缓冲区内容粘贴到当前光标所在行的下一行。 10. 在命令模式下输入:o(小写 o) 会在当前光标所在行的下方新开一行,并自动进入输入模式。
小结:vim 是 vi 编辑器的增强版,Linux 系统默认自带,是运维、开发最常用的文本编辑工具。