RHCE培训笔记-6
Grep
grep是linux中的文本过滤工具,以行为单位输出
同时还有一个工具叫做egrep,和grep本质上没啥区别
grep -E = egrep
常用的正则表达式:
- . : 一个任意字符,一定要有一个
- * : 0个或者一个,匹配多个在它之前的字符
- [] : []中的任意一个字符,[]内为一个范围 例如 [0-9]
- ? : 0个或者1个它前面的字符
- + : 匹配至少1次在它前面的字符
- {m} : m表示次数,m次出现在它前面的字符 例如 {2}
- $ : 结尾
- ^ : 开头
用法:
grep -i : 忽略大小写
grep -v : 取反
grep -v ^$ : 去掉空行
grep -A <num> : 只显示匹配内容和后面指定行数的内容(行数包括匹配的那一行)
演示
不匹配配置文件中#开头的无效配置
啥都匹配
VIM编辑器
vim编辑器是vi编辑器的增强版本
用法: vim<filename>
进入vim时的模式为命令行模式,在此模式中可以通过按键的一些操作来选择进入编辑模式或者末行模式
按i
或者 按o
的等可以进入编辑模式,按esc退回命令行模式
按 : 进入末行模式,按esc退回命令行模式
不同模式的作用
- 编辑模式:按a,在当前光标处后面开始编辑,按i,在当前位置编辑,按o,新建一个空行插入(大写的O为上一行插入)
- 末行模式:能保存、退出、查找、替换
定位:
为了更直观的演示,这里用GIF,但是因为我懒,所以只演示几个
定位:在命令行模式中,直接按按键操作,不需要输入
定位这个文件的第一行:(直接按g)
定位到这个文件的最后一行:(G,可以按住shift再按g,或者直接开大写然后按g)
屏幕定位:
- H : 屏幕内显示的内容的第一行
- M : 屏幕内显示的内容的中间行
- L : 屏幕内的最后一行
快速换行:(通过行号定位,需要再末行模式下)
- :10 #指第十行
行内定位: (需要在命令行模式下)
- ^ : 定位到行首
- $ : 定位到行尾
- w : 定位到下一个词
命令行模式操作
文本复制:yy(复制当前行)
复制指定行数: yy 例如:6yy 指复制6行
p(小写):在光标下一行粘贴
P(大写):在光标上一行粘贴
删除当前行:dd
删除光标所在向下的n行:ndd (n为数字)
删除光标所在位置的字符: x 和 del按键功能一样,区别在于一个是命令行模式,一个是编辑模式
在一行中,删除从光标开始到行尾的内容: d$
乱七八糟懒得分类的操作
查找内容:
/<需要查找的内容>
当结果有多个时,按n查找下一个,按N回到上一个
以选出字符为单位的内容,按y复制:v(小写
以行为单位选出内容 按y复制 :V (大写
批量添加内容
ctrl +v :区块选择 选择要添加的行,然后按大写i,输入要添加的字符,按ESC
末行模式
按 :
保存退出 :wq
强制放弃修改退出 :q!
强制保存退出 :x!
强制保存退出 :wq!
替换匹配到的内容
:s/<需要替换的内容>/<替换的内容>
替换所有匹配到的内容
:s/<需要替换的内容>/<替换的内容>/g
查找全文
:%s/<需要替换的内容>/<替换的内容>
指定行的范围替换
:110,180/<需要替换的内容>/<替换的内容>
- 厚土Go学习笔记 | 16. go语言有指针 没有指针运算
- 嗤!给你来点fiyocms漏洞喷雾
- 厚土Go学习笔记 | 15. defer语句延迟函数的执行
- Nodejs学习笔记(九)--- 与Redis的交互(mranney/node_redis)入门
- Nodejs学习笔记(十)--- 与MongoDB的交互(mongodb/node-mongodb-native)、MongoDB入门
- Golang泛型编程初体验
- 工具| 手把手教你制作信息收集器之端口扫描
- 厚土Go学习笔记 | 14. switch 的条件写的有点灵活,不过风格还是go的一贯风格
- Nodejs学习笔记(十四)— Mongoose介绍和入门
- 厚土Go学习笔记 | 13. 用循环和函数 实现Sqrt(x)
- 代码审计| 这是一款适合练手的漏洞
- 工具| NSE漏洞审计和渗透脚本的demo
- Windows Server 2008 R2 配置Exchange 2010邮件服务器并使用EWS发送邮件
- 厚土Go学习笔记 | 12. if 语句
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux用户和组命令实例分析【切换、添加用户、权限控制等】
- Linux中Bash环境变量的配置方法
- Linux 中的防火墙 ufw 简介
- linux下如何实现快速拷贝大文件
- Linux硬链接与软链接原理及用法解析
- Linux通用java程序启动脚本代码实例
- 如何解决Ubuntu18.04循环登录/卡在开机界面/无法进入图形界面的问题
- CentOS7连接XShell与网络配置的方法
- 如何监控 Linux 服务器状态的方法
- Linux 文件系统的操作实现
- win10系统下安装superset的步骤
- Ubuntu下使用python3中的venv创建虚拟环境
- vsftpd配置虚拟用户登录的方法
- Linux 删除特殊字符文件名或目录的方法
- 详解Linux环境变量配置全攻略