Linux 有八个常用的文本操作命令:cat、head、tail、nl、grep、sed、more、less。本文介绍它们的区别和简单用法。
显示文本的最基本命令。
cat filecat /usr/share/metasploit-framework/data/wordlists/passwd.lstcat命令不是最方便的命令,但却十分快捷。
该命令将显示文件的前10行(默认情况下)。
head filename如果你想显示指定的行数,请在head命令后使用-来指定。
head -20 passwd.lst该命令与head命令相反,将显示文件的最后10行(默认情况下)。
tail filename如果你想显示指定的行数,请在tail命令后使用-来指定。
tail -20 passwd.lst显示带有行号的文件。
nl file如果你用管道输出到它,它使参考变得更容易。
head -35 passwd.lst | nl可能是使用最广泛的文本处理命令。关于这个命令,有好几本书。
cat file | grep keyword它可以让你过滤显示文件的内容。
cat passwd.list | grep output结合前面的命令,让我们查看passwd.lst第20至50行中所有含有23的字词。
head -50 passwd.lst | tail -30 | grep 23 | nlhead -50 passwd.lst 表示我们想要显示前50行。tail -30 表示想要从head命令得到的前50行里的最后30行,也就是20-50行。grep 23 将只显示包含23的行。nl将显示行数。这个命令可以让你搜索出现的单词或测试模式,然后对它执行一些操作。类似于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 gpsgwyn gps gpsgwyn 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 filemore snort.conf与more命令类似,只不过更加实用。毕竟少即是多。
less file如果你按下/键,less将允许你在文件中搜索术语。
less snort.conf在这里,我按下/键,并键入选项:
less带我到第一个发生的地方,按n键是下一个。
就这样吧,我终于开始理解把这些命令连在一起的强大力量了。