Linux egrep命令用于在文件内查找指定的字符串。
egrep执行效果与"grep-E"相似,使用的语法及参数可参照grep指令,与grep的不同点在于解读字符串的方法。
egrep是用extended regular expression语法来解读的,而grep则用basic regular expression 语法解读,extended regular expression比basic regular expression的表达更规范。
egrep [范本模式] [文件或目录]
参数说明:
显示文件中符合条件的字符。例如,查找当前目录下所有文件中包含字符串"Linux"的文件,可以使用如下命令:
egrep Linux *
结果如下所示:
$ egrep Linux * #查找当前目录下包含字符串“Linux”的文件 testfile:hello Linux! #以下五行为testfile 中包含Linux字符的行 testfile:Linux is a free Unix-type operating system. testfile:This is a Linux testfile! testfile:Linux testfile:Linux testfile1:helLinux! #以下两行为testfile1中含Linux字符的行 testfile1:This a Linux testfile! #以下两行为testfile_2 中包含Linux字符的行 testfile_2:Linux is a free unix-type opterating system. testfile_2:Linux test xx00:hello Linux! #xx00包含Linux字符的行 xx01:Linux is a free Unix-type operating system. #以下三行为xx01包含Linux字符的行 xx01:This is a Linux testfile! xx01:Linux
Linux ed命令是文本编辑器,用于文本编辑。
ed是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。
ed命令并不是一个常用的命令,一般使用比较多的是vi 指令。但ed文本编辑器对于编辑大文件或对于在shell脚本程序中进行文本编辑很有用。
ed [-][-Gs][-p<字符串>][--help][--version][文件]
参数:
以下是一个 Linux ed 完整实例解析:
$ ed <- 激活 ed 命令 a <- 告诉 ed 我要编辑新文件 My name is Titan. <- 输入第一行内容 And I love Perl very much. <- 输入第二行内容 . <- 返回 ed 的命令行状态 i <- 告诉 ed 我要在最后一行之前插入内容 I am 24. <- 将“I am 24.”插入“My name is Titan.”和“And I love Perl very much.”之间 . <- 返回 ed 的命令行状态 c <- 告诉 ed 我要替换最后一行输入内容 I am 24 years old. <- 将“I am 24.”替换成“I am 24 years old.”(注意:这里替换的是最后输的内容) . <- 返回 ed 的命令行状态 w readme.text <- 将文件命名为“readme.text”并保存(注意:如果是编辑已经存在的文件,只需要敲入 w 即可) q <- 完全退出 ed 编辑器
这是文件的内容是:
$ cat readme.text My name is Titan. I am 24 years old. And I love Perl vrey much.
Linux csplit命令用于分割文件。
将文件依照指定的范本样式予以切割后,分别保存成名称为xx00,xx01,xx02...的文件。若给予的文件名称为"-",则csplit指令会从标准输入设备读取数据。
csplit [-kqsz][-b<输出格式>][-f<输出字首字符串>] [-n<输出文件名位数>][--help][--version][文件][范本样式...]
参数:
将文本文件testfile以第 2 行为分界点切割成两份,使用如下命令:
csplit testfile 2
testfile文件中的内容如下:
$ cat testfile #查看testfile 文件内容 hello Linux! Linux is a free Unix-type operating system. This is a Linux testfile! Linux
使用csplit命令,输出结果如下:
$ csplit testfile 2 13 #xx00文件字符个数 76 #xx01文件字符个数
其中第1 行是第一个文件xx00的字符个数,同样,第2 行为第二个文件xx01的字符个数。同时,在testfile 的同目录下将生成两个文件,文件名分别为xx00、xx01,xx00 中的内容为:
$ cat xx00 #查看分割后的xx00文件内容 hello Linux! #testfile文件第1行的内容
xx01 中的内容为:
$ cat xx01 #查看分割后的xx01文件内容 Linux is a free Unix-type operating system. #testfile文件第2行以后的内容 This is a Linux testfile! Linux
Linux comm 命令用于比较两个已排过序的文件。
这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成 3 列显示:第 1 列仅是在第 1 个文件中出现过的列,第 2 列是仅在第 2 个文件中出现过的列,第 3 列则是在第 1 与第 2 个文件里都出现过的列。若给予的文件名称为 - ,则 comm 指令会从标准输入设备读取数据。
comm [-123][--help][--version][第1个文件][第2个文件]
参数:
aaa.txt 与 bbb.txt 的文件内容如下:
[root@localhost text]# cat aaa.txt aaa bbb ccc ddd eee 111 222 [root@localhost text]# cat bbb.txt bbb ccc aaa hhh ttt jjj
执行 comm 命令输出结果如下:
[root@localhost text]# comm aaa.txt bbb.txt aaa bbb ccc aaa ddd eee 111 222 hhh ttt jjj 第一列 第二列 第三列
输出的第一列只包含在 aaa.txt 中出现的列,第二列包含在 bbb.txt 中出现的列,第三列包含在 aaa.txt 和 bbb.txt 中都包含的列。各列是以制表符 \t 作为定界符。
Linux colrm命令用于滤掉指定的行。
colrm指令从标准输入设备读取书记,转而输出到标准输出设备。如果不加任何参数,则该指令不会过滤任何一行。
colrm [开始行数编号<结束行数编号>]
参数说明:
不带任何参数时该命令不会删除任何列:
colrm
按回车键后,光标将在第一行闪烁,等待标准输入,此时输入字符,如"Hello Linux!",再按回车键后第二行将出现与第一行相同内容,此时按Ctrl+C组合键可以退出。终端中显示的内容如下所示:
cmd@hdd-desktop:~$ colrm Hello Linux! #输入Hello Linux!字符串 Hello Linux! #输出刚才输入的字符串Hello Linux!
如想要删除第4 列之后的所有内容,可以使用如下命令:
colrm 4
类似于上例,此时标准输入等待输入,用户输入字符串按回车键后,将输出如下结果:
cmd@hdd-desktop:~$ colrm 4 Hello Linux! #输入Hello Linux!字符串 Hel #输出删除了第4列以后所有内容的字符串
删除指定列的内容。如删除第4列到第6列的内容,可使用如下命令:
colrm 4 6
输出的结果如下:
cmd@hdd-desktop:~$ colrm 4 6 Hello Linux! #输入Hello Linux!字符串 HelLinux! #输出删除了从第4列到第6列字符的字符串
Linux col命令用于过滤控制字符。
在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符">"和">>",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。
col [-bfx][-l<缓冲区列数>]
参数:
下面以 man 命令帮助文档为例,讲解col 命令的使用。
将man 命令的帮助文档保存为man_help,使用-b 参数过滤所有控制字符。在终端中使用如下命令:
man man | col-b > man_help
注:其中"|"用于建立管道,把man命令的输出结果转为col命令的输入数据。
Linux quotaon 命令用于开启磁盘空间限制。
执行 quotaon 指令可开启用户和群组的磁盘空间限制,各分区的文件系统根目录必须有 quota.user 和 quota.group 配置文件。
quotaon [-aguv][文件系统...]
参数说明:
针对整个文件系统:
quotaon -auvg
quotaon -auvg 命令只需要在第一次启动 Quota 服务时才需要进行,下次启动时, /etc/rc.d/rc.sysinit 初始化脚本会自动执行该命令。
只针对一个分区:
quotaon -uvg /mnt/sdb
启用与禁用文件系统上的磁盘配额功能:
quotaon /home # 启用 quotaoff /home # 禁用
Linux repquota命令用于检查磁盘空间限制的状态。
执行repquota指令,可报告磁盘空间限制的状况,清楚得知每位用户或每个群组已使用多少空间。
repquota [-aguv][文件系统...]
参数说明:
Linux lndir命令用于连接目录内容。
执行lndir指令,可一口气把源目录底下的文件和子目录统统建立起相互对应的符号连接。
lndir [-ignorelinks][-silent][源目录][目的目录]
参数:
给目录下所有的文件或者子文件目录建立链接:
lndir /home/uptech abc
Linux quotaoff 命令关闭磁盘空间限制。
执行 quotaoff 指令可关闭用户和群组的磁盘空间限制。
quotaoff [-aguv][文件系统...]
参数说明:
关闭配额限制:
# quotaoff -a