Linux系列之文本操作命令
前言
Linux 有八个常用的文本操作命令: cat
、 head
、 tail
、 nl
、 grep
、 sed
、 more
、 less
。本文介绍它们的区别和简单用法。
cat命令
显示文本的最基本命令。
cat file
cat /usr/share/metasploit-framework/data/wordlists/passwd.lst
cat
命令不是最方便的命令,但却十分快捷。
head命令
该命令将显示文件的前10行(默认情况下)。
head filename
如果你想显示指定的行数,请在 head
命令后使用 -
来指定。
head -20 passwd.lst
tail命令
该命令与 head
命令相反,将显示文件的最后10行(默认情况下)。
tail filename
如果你想显示指定的行数,请在 tail
命令后使用 -
来指定。
tail -20 passwd.lst
nl命令
显示带有行号的文件。
nl file
如果你用管道输出到它,它使参考变得更容易。
head -35 passwd.lst | nl
grep命令
可能是使用最广泛的文本处理命令。关于这个命令,有好几本书。
cat file | grep keyword
它可以让你过滤显示文件的内容。
cat passwd.list | grep output
结合前面的命令,让我们查看passwd.lst第20至50行中所有含有23的字词。
head -50 passwd.lst | tail -30 | grep 23 | nl
-
head -50 passwd.lst
表示我们想要显示前50行。 -
tail -30
表示想要从head
命令得到的前50行里的最后30行,也就是20-50行。 -
grep 23
将只显示包含23的行。 -
nl
将显示行数。
sed命令
这个命令可以让你搜索出现的单词或测试模式,然后对它执行一些操作。类似于Windows中的查找和替换。 sed
中的命令以单个字母开头。
s
是替换命令:
echo "gwyn" | sed 's/gwyn/gps'
让我们使用 sed
在 snort.conf
文件中找到 mysl
的所有实例,并将其替换为 MySQL
,并将该文件保存为当前目录中的 snorttest.conf
。
sed s/searchterm/replacementterm/occurence
这里的 g
代表全局,意味着替换发生的所有实例。
sed s/mysql/MySQL/g /etc/snort/snort.conf > snorttest.conf
你可以通过在末尾使用 /1
、 /2
等来指定你要替换的行的哪一次出现。
我们假设我们有一个 textfile.txt
文件:
gwyn gps gwyn gps gps gwyn gps gps gps
我们如何才能在每一行中只将第二次出现的 gps
替换为 gwyneth
?
sed s/gps/gwyneth/2 textfile.txt > sample.txt
现在,如果我们想只在第三行中替换第二个出现的内容,该怎么办?我们可以在 s
命令的前面加上一个数字来表示。
sed 3s/gps/gwyneth/2 textfile.txt > sample2.txt
让我们看看在 snort.conf
中, mysql
每次出现的地方:
并将第二行中出现的每一个 mysql
替换为 dogs
,并将其保存到 sample2.txt
。
more命令
每次显示文件的一页,并允许分页。
more file
more snort.conf
less命令
与 more
命令类似,只不过更加实用。毕竟少即是多。
less file
如果你按下 /
键, less
将允许你在文件中搜索术语。
less snort.conf
在这里,我按下 /
键,并键入选项:
less
带我到第一个发生的地方,按 n
键是下一个。
总结
就这样吧,我终于开始理解把这些命令连在一起的强大力量了。
- 线程池底层原理详解与源码分析
- 30分钟掌握 Webpack
- 线性回归大结局(岭(Ridge)、 Lasso回归原理、公式推导),你想要的这里都有
- 【前端必会】webpack loader 到底是什么
- 中心化决议管理——云端分析
- HashMap底层原理及jdk1.8源码解读
- 详解JS中 call 方法的实现
- 打印 Logger 日志时,需不需要再封装一下工具类?
- 初识设计模式 - 代理模式
- 密码学奇妙之旅、01 CFB密文反馈模式、AES标准、Golang代码
- Springboot之 Mybatis 多数据源实现
- CAS核心思想、底层实现
- 面试突击86:SpringBoot 事务不回滚?怎么解决?
- 基于electron vue element构建项目模板之【打包篇】
- MiniWord .NET Word模板引擎,藉由Word模板和数据简单、快速生成文件。
- 认识线程,初始并发
- 1-VSCode搭建GD32开发环境
- 初识设计模式 - 原型模式
- 线程安全问题的产生条件、解决方式
- 2>&1到底是什么意思?