linux学习day20笔记

今日内容

vim编辑器

linux学习day20笔记

故障恢复: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结尾的行
上一篇:数据类型的内置方法,可变类型与不可变类型


下一篇:模块-正则模块:re