vim

今日内容

1.vim编辑器

2.文本处理三剑客

vim编辑器

cp -r  递归持续复制,用于目录的复制行为
man 命令  ---可以查看帮助信息
ls -l 文件名 仅看的是文件的修改信息
Linux文件有三种时间,用stat查看
stat /etc/passwd 
访问时间:atime,查看内容,用cat检测
修改时间:mtime,修改内容
改变时间:ctime,查看内容,修改权限等属性,凡是有改动都会变

cat / vim 不能打开太大的文件,cat/vim都是一下子全部打开


vim 三种模式 
编辑模式  命令模式  末行模式

补充末行模式 :
: % (所有行的意思) s /需要换的值/目标值/g(全局)
:10 进入第10行   
:w      保存   
:q      退出    
:wq     保存并退出      
:w!     强制保存    
:q!     不保存并退出       
:wq!    强制保存退出
:x      保存并退出
:set nu 每行显示行号(临时配置)

补充命令模式下
可视块
在命令模式下CTRL+v
移动上下光标键选择多行,可以对其进行批量操作
按住shift+i(在开头加内容) 输入内容,再连续按esc(2下)
按住shift+a(在末尾加内容) 输入内容,再连续按esc(2下)

vim -o(小写) 文件1 文件2  # 水平分隔
vim -O (大写)文件1 文件2   # 垂直分隔
使用ctrl + ww切换

vim -p /etc/hosts /etc/grub.conf      
使用 ^PgUp, ^PgDn切换

文件对比
diff # 文件对比
vimdiff # 以vim的方式打开两个文件对比,高亮显示不同的内容

diff 1.txt 2.txt > test.diff (test为补丁文件) (将两者不同的地方丢掉test.diff里)
path 1.txt test.diff (更新文件)



vim故障恢复
当vim遇到非正常退出时,vim会将文件临时保存在swp里,我们需要重新打开时,需注意到直接编辑E的话,以前的内容都不会别保存,选择恢复R,原内容还在
恢复之后再将临时文件删除 .xx.swp

文本处理三剑客

sed awk grep


sed 选项 '定位+命令' 文件路径
# 选项
-n 取消默认输出
-r 支持扩展正则元字符(由于尚未学习正则,所以此处暂作了解)
-i 立即编辑文件
# 定位
行定位:
    1定位到第一行
    1,3代表从第1行到第3行
    不写定位代表定位所有行
正则表达式定位:
    /egon/ 包含egon的行
    /^egon/ 以egon开头的行 
    /egon$/以egon结尾的行
数字+正则表达式定位
    "1,8p"代表打印1到8行,
    "1,/egon/p"则代表取从第1行到首次匹配到/egon/的行
    
# 命令
d # 删除命令
p # 打印命令
c # 改变
s///gi  # 筛选并替换 g是全局 i可选,i代表不区分大小写
命令可以用;号连接多多条,如1d;3d;5d代表删除1,3,5行

sed -ri改完写入硬盘
sed又称流水编辑,需要加命令才会写入到硬盘,sed它是显示在屏幕上


awk 
awk主要用于处理有格式的文本,例如/etc/passwd这种
格式化输出

# 用法
awk 选项 'pattern{action}' 文件路径
# 选项
-F 指定行分隔符
# 工作流程
awk -F: '{print $1,$3}' /etc/passwd
1、awk会读取文件的一行内容然后赋值给$0
2、然后awk会以-F指定的分隔符将该行切分成n段,最多可以达到100段,第一段给$1,第二段给$2,依次次类推
3、print输出该行的第一段和第三段,逗号代表输出分隔符,默认与-F保持一致
4、重复步骤1,2,3直到文件内容读完
# 内置变量
$0 一整行内容
NR 记录号,等同于行号
NF 以-F分隔符分隔的段数
&& 而且
|| 或者
, 代表空格
"xxx" 双引号内可以指定输出内容
i 不区分大小写
$ 
# pattern可以是
/正则/
    /正则/       # 该行内容匹配成功正则
    $1 ~ /正则/  # 第一段内容匹配成功正则
    $1 !~ /正则/  # 第一段内容没有匹配成功正则
比较运算:
    NR >= 3 && NR <=5  # 3到5行
    $1 == "root"      # 第一段内容等于root
# action可以是
print $1,$3

grep 

grep擅长过滤内容

# 用法
grep 选项 '正则' 文件路径
# 选项
-n, --line-number           在过滤出的每一行前面加上它在文件中的相对行号
-i, --ignore-case           忽略大小写
--color                     颜色
-l, --files-with-matches    如果匹配成功,则只将文件名打印出来,失败则不打印
                            通常-rl一起用,grep -rl 'root' /etc 
-R, -r, --recursive         递归
# 示例
[root@loc## 今日内容

1.vim编辑器

2.文本处理三剑客

## vim编辑器

```shell
cp -r  递归持续复制,用于目录的复制行为
man 命令  ---可以查看帮助信息
ls -l 文件名 仅看的是文件的修改信息
Linux文件有三种时间,用stat查看
stat /etc/passwd 
访问时间:atime,查看内容,用cat检测
修改时间:mtime,修改内容
改变时间:ctime,查看内容,修改权限等属性,凡是有改动都会变

cat / vim 不能打开太大的文件,cat/vim都是一下子全部打开


vim 三种模式 
编辑模式  命令模式  末行模式

补充末行模式 :
: % (所有行的意思) s /需要换的值/目标值/g(全局)
:10 进入第10行   
:w      保存   
:q      退出    
:wq     保存并退出      
:w!     强制保存    
:q!     不保存并退出       
:wq!    强制保存退出
:x      保存并退出
:set nu 每行显示行号(临时配置)

补充命令模式下
可视块
在命令模式下CTRL+v
移动上下光标键选择多行,可以对其进行批量操作
按住shift+i(在开头加内容) 输入内容,再连续按esc(2下)
按住shift+a(在末尾加内容) 输入内容,再连续按esc(2下)

vim -o(小写) 文件1 文件2  # 水平分隔
vim -O (大写)文件1 文件2   # 垂直分隔
使用ctrl + ww切换

vim -p /etc/hosts /etc/grub.conf      
使用 ^PgUp, ^PgDn切换

文件对比
diff # 文件对比
vimdiff # 以vim的方式打开两个文件对比,高亮显示不同的内容

diff 1.txt 2.txt > test.diff (test为补丁文件) (将两者不同的地方丢掉test.diff里)
path 1.txt test.diff (更新文件)



vim故障恢复
当vim遇到非正常退出时,vim会将文件临时保存在swp里,我们需要重新打开时,需注意到直接编辑E的话,以前的内容都不会别保存,选择恢复R,原内容还在
恢复之后再将临时文件删除 .xx.swp

文本处理三剑客

sed awk grep


sed 选项 '定位+命令' 文件路径
# 选项
-n 取消默认输出
-r 支持扩展正则元字符(由于尚未学习正则,所以此处暂作了解)
-i 立即编辑文件
# 定位
行定位:
    1定位到第一行
    1,3代表从第1行到第3行
    不写定位代表定位所有行
正则表达式定位:
    /egon/ 包含egon的行
    /^egon/ 以egon开头的行 
    /egon$/以egon结尾的行
数字+正则表达式定位
    "1,8p"代表打印1到8行,
    "1,/egon/p"则代表取从第1行到首次匹配到/egon/的行
    
# 命令
d # 删除命令
p # 打印命令
c # 改变
s///gi  # 筛选并替换 g是全局 i可选,i代表不区分大小写
命令可以用;号连接多多条,如1d;3d;5d代表删除1,3,5行

sed -ri改完写入硬盘
sed又称流水编辑,需要加命令才会写入到硬盘,sed它是显示在屏幕上


awk 
awk主要用于处理有格式的文本,例如/etc/passwd这种
格式化输出

# 用法
awk 选项 'pattern{action}' 文件路径
# 选项
-F 指定行分隔符
# 工作流程
awk -F: '{print $1,$3}' /etc/passwd
1、awk会读取文件的一行内容然后赋值给$0
2、然后awk会以-F指定的分隔符将该行切分成n段,最多可以达到100段,第一段给$1,第二段给$2,依次次类推
3、print输出该行的第一段和第三段,逗号代表输出分隔符,默认与-F保持一致
4、重复步骤1,2,3直到文件内容读完
# 内置变量
$0 一整行内容
NR 记录号,等同于行号
NF 以-F分隔符分隔的段数
&& 而且
|| 或者
, 代表空格
"xxx" 双引号内可以指定输出内容
i 不区分大小写
$ 
# pattern可以是
/正则/
    /正则/       # 该行内容匹配成功正则
    $1 ~ /正则/  # 第一段内容匹配成功正则
    $1 !~ /正则/  # 第一段内容没有匹配成功正则
比较运算:
    NR >= 3 && NR <=5  # 3到5行
    $1 == "root"      # 第一段内容等于root
# action可以是
print $1,$3

grep 

grep擅长过滤内容

# 用法
grep 选项 '正则' 文件路径
# 选项
-n, --line-number           在过滤出的每一行前面加上它在文件中的相对行号
-i, --ignore-case           忽略大小写
--color                     颜色
-l, --files-with-matches    如果匹配成功,则只将文件名打印出来,失败则不打印
                            通常-rl一起用,grep -rl 'root' /etc 
-R, -r, --recursive         递归
# 示例
[root@localhost ~]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
                        
[root@localhost ~]# grep -n 'bash$' /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
44:egon:x:1000:1000:egon:/home/egon:/bin/bash
                            
[root@localhost ~]# grep -rl 'root' /etc    
# grep也支持管道,我们可以发现三剑客命令都支持管道
[root@localhost ~]# ps aux |grep ssh




alhost ~]# grep '^root' /etc/passwd
root❌0:0:root:/root:/bin/bash

[root@localhost ~]# grep -n 'bash$' /etc/passwd
1:root❌0:0:root:/root:/bin/bash
44:egon❌1000:1000:egon:/home/egon:/bin/bash

[root@localhost ~]# grep -rl 'root' /etc

grep也支持管道,我们可以发现三剑客命令都支持管道

[root@localhost ~]# ps aux |grep ssh

posted on   zhifwu  阅读(76)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示