今日内容
vim编辑器
故障恢复:vim会提前创建一个临时文件.文件名.swp,在编辑文件时断电或遇到其他问题后,再次打开文件会提示你是否用提前创建的临时文件恢复文件,恢复文件后要记得删除.文件名.swp这个临时文件。
vim -O 文件1 文件2
左右显示两个文件,可以同时编写,ctrl+两个w可以在两个文件内来回切换。
vim -o 文件1 文件2
上下显示两个文件,可以同时编写,ctrl+两个w可以在两个文件内来回切换。
vimdiff 文件1 文件2
高亮标记两个文件中不一样的地方
1.命令模式中
/root # 在文件中寻找root
ctrl+v # 进入可视块模式
可视块模式可以批量选择内容进行增删改
批量增加内容:选择好需要修改的地方,按ctrl+i、a、o进行编辑,之后按两下esc退出
批量删除内容:选择想删除的地方,按一下d进行删除
2.末行模式中
# 查找替换
:范围 s/旧内容/新内容/选项
$ # 表示最后一行
% # 表示全文
g # 选项,表示全局
在需要修改的内容中有/时,将格式内的/改成#即可正常输入
:1,5 s/Note/yyy/ # 从1-5行的Note替换为yyy
:5,$ s/Note/yyy/ # 从5-最后一行的note替换为yyy
:1,$ s/to/xxx/g == :% s/to/xxx/g # 从1-最后一行的to替换为xxx
文本处理三剑客
sed(流式编辑器,主要擅长对文件的编辑操作)
格式:sed -r '定位+命令' 文件路径
-r # 带有扩展,直接输出到屏幕,不修改源文件
-ri # 带有扩展,直接编辑源文件
行定位:
直接写数字
1,3d # 删除第1行到第3行
3d:5d # 删除第3行和第5行
正则表达式定位:
/egon/d # 删除带有egon的行
/^egon/d # 删除以egon开头的行
/egon$/d # 删除以egon结尾的行
命令:
p # 打印
d # 删除
c xxxx # 一整行修改成xxxx
s/旧内容/新内容/ # 定位行内的旧内容替换成新内容
grep(擅长过滤内容)
格式:grep -选项 '正则表达式' 文件路径 # 选项可跟可不跟
假设情景,你忘了ip这个东西放在了哪个文件夹的文件内,但是你记得是在conf这个大文件夹内
grep -rl '/ip/' /conf/
选项:
-n # 显示对应行号
-i # 无视大小写
-r # 递归着找,将这个文件夹内符合条件的的子子子文件全部找出来
-l # 如果匹配条件,只打印文件名,不匹配则不打印,通常-rl一起用
正则表达式:
/egon/ # 选择带有egon的行
/^egon/ # 选择以egon开头的行
/egon$/ # 选择以egon结尾的行
grep搭配管道使用:
ps aux # 查看当前进程
ps aux /grep bash # 在当前进程中找到带有bash的进程
ps:如何杀掉进程
python中:taskkill /F /PIN
Linux中:kill -9 PIN
awk(主要用于处理有格式的文件)
格式:awk 选项 '内置变量{命令}' 文件路径
先把文件按选项分割,然后一行一行进入内存,查看是否是指定的变量,再执行命令
awk -F: 'NR>=1 && NR <=3{print $1$3}' 3.TXT
-F: # 按照:进行分割
内置变量:
$0 # 一整行内容
NR # 记录号,等同于行号
NF # 以-F分隔符分隔的段数
&& # 同时满足
|| # 或者,满足其中一项
命令:
print # 打印
$1 # 第一列
$1$3中间可以加分隔符,逗号代表空格,或者直接""内输入想要的分隔符
awk -F: '/^egon/{print $1,$3}' 3.txt
正则定位: # 用作内置变量
/egon/ # 选择带有egon的行
/^egon/ # 选择以egon开头的行
/egon$/ # 选择以egon结尾的行