1.col命令
Linux col命令用于过滤控制字符。
在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符">"和">>",把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。
col [-bfx][-l<缓冲区列数>]
参数:
下面以 man 命令帮助文档为例,讲解col 命令的使用。
将man 命令的帮助文档保存为man_help,使用-b 参数过滤所有控制字符。在终端中使用如下命令:
man man | col-b > man_help
注:其中"|"用于建立管道,把man命令的输出结果转为col命令的输入数据。
2.colrm命令
Linux colrm命令用于滤掉指定的行。
colrm指令从标准输入设备读取书记,转而输出到标准输出设备。如果不加任何参数,则该指令不会过滤任何一行。
colrm [开始行数编号<结束行数编号>]p>
参数说明:</b>p>
开始行数编号: 指定要删除的列的起始编号。li>
结束行数编号: 指定要删除的列的结束编号,有时候这个参数可以省略。li>
ul>
实例h3>
不带任何参数时该命令不会删除任何列:p>
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列字符的字符串
3.comm命令
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)作为定界符。
4.csplit命令
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
5.ed命令
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.
6.egrep命令
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
7.ex命令
Linux ex命令用于在Ex模式下启动vim文本编辑器。
ex执行效果如同vi -E,使用语法及参数可参照vi指令,如要从Ex模式回到普通模式,则在vim中输入":vi"或":visual"指令即可。
ex [选项][参数]
参数说明:
+数字:从文件指定的数字行开始显示 -b:使用二进制模式编辑文件 -c 指令:编辑完第一个文件后执行指定的指令 -d :编辑多个文件时,显示差异部分 -m :不允许修改文件 -n :不使用缓存 -oN:其中 N 为数字 -r :列出缓存,并显示恢复信息 -R :以只读的方式打开文件 -s :不显示任何错误信息 -V :显示指令的详细执行过程 --help :显示帮助信息 --version :显示版本信息在ex 指令后输入文件名按回车键后,即可进入ex 编辑模式,如编辑testfile文件,使用的命令格式如下:
ex testfile
输出的信息如下:
"testfile" 5L, 95C
"testfile"表示文件名,5L表示5 行,95 表示字节数
进入ex 模式。输入"visual"回到正常模式
它的操作与vim 中是一样的,此时如果在":"后输入"visual"后按回车键,将进入到vi 指令全屏界面;如果输入"q",则退出编辑器。
8.fgrep命令
本指令相当于执行grep指令加上参数"-F",详见grep命令说明。
Linux fgrep命令用于查找文件里符合条件的字符串。
fgrep [范本样式][文件或目录...]
具体使用实例请参考grep命令。
9.fmt命令
Linux fmt命令用于编排文本文件。
fmt指令会从指定的文件里读取内容,将其依照指定格式重新编排后,输出到标准输出设备。若指定的文件名为"-",则fmt指令会从标准输入设备读取数据。
fmt [-cstu][-p<列起始字符串>][-w<每列字符数>][--help][--version][文件...]
参数说明:
重排指定文件。如文件testfile共5 行文字,可以通过命令对该文件格式进行重排,其命令为:
fmt testfile
输出结果如下:
$ fmt testfile #重排testfile 文件
hello Linux! Linux is a free Unix-type operating system. This is a
Linux testfile! Linux Linux
将文件testfile重新排成85 个字符一行,并在标准输出设备上输出,其命令应该为:
fmt -w 85 testfile
为了对比,先使用cat 命令查看文件内容:
$ cat testfile #查看testfile 文件的内容
hello Linux!
Linux is a free Unix-type operating system.
This is a Linux testfile!
Linux
Linux
使用fmt命令重排之后,输出结果如下:
$ fmt -w 85 testfile #指定重排宽度为85个字符
hello Linux! Linux is a free Unix-type operating system. This is a Linux testfile!
Linux Linux
10.fold命令
Linux fold命令用于限制文件列宽。
fold指令会从指定的文件里读取内容,将超过限定列宽的列加入增列字符后,输出到标准输出设备。若不指定任何文件名称,或是所给予的文件名为"-",则fold指令会从标准输入设备读取数据。
fold [-bs][-w<每列行数>][--help][--version][文件...]
参数:
将一个名为testfile 的文件的行折叠成宽度为30,可使用如下命令:
fold -w 30 testfile
为了对比,先将testfile文件输出如下:
$ cat testfile #查看testfile 中的内容
Linux networks are becoming more and more common, but
security is often an overlooked
issue. Unfortunately, in today’s environment all networks
are potential hacker targets,
from top-secret military research networks to small home LANs.
Linux Network Security focuses on securing Linux in a
networked environment, where the
security of the entire network needs to be considered
rather than just isolated machines.
It uses a mix of theory and practical techniques to
teach administrators how to install and
use security applications, as well as how the
applications work and why they are necessary.
然后使用fold命令折叠显示:
$ fold -w 30 testfile #行折叠成宽度为30,显示testfile 文件
Linux networks are becoming mo
re and more common, but securi
ty is often an overlooked issu
e. Unfortunately, in today’s
environment all networks are
potential hacker targets, from
top-secret military research
networks to small home LANs.
Linux Network Security focuses
on securing Linux in a networ
ked environment, where the sec
urity of the entire network ne
eds to be considered rather th
an just isolated machines. It
uses a mix of theory and pract
ical techniques to teach admin
istrators how to install and u
se security applications, as w
ell as how the applications wo
rk and why they are necessary
11.grep命令
Linux grep命令用于查找文件里符合条件的字符串。
grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为"-",则grep指令会从标准输入设备读取数据。
grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
参数:
Linux 命令大全
1、在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令:
grep test *file
结果如下所示:
$ grep test test* #查找前缀有“test”的文件包含“test”字符串的文件
testfile1:This a Linux testfile! #列出testfile1 文件中包含test字符的行
testfile_2:This is a linux testfile! #列出testfile_2 文件中包含test字符的行
testfile_2:Linux test #列出testfile_2 文件中包含test字符的行
2、以递归的方式查找符合条件的文件。例如,查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:
grep -r update /etc/acpi
输出结果如下:
$ grep -r update /etc/acpi #以递归的方式查找“etc/acpi”
#下包含“update”的文件
/etc/acpi/ac.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of IO.)
Rather than
/etc/acpi/resume.d/85-anacron.sh:# (Things like the slocate updatedb cause a lot of
IO.) Rather than
/etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update
3、反向查找。前面各个例子是查找并打印出符合条件的行,通过"-v"参数可以打印出不符合条件行的内容。
查找文件名中包含 test 的文件中不包含test 的行,此时,使用的命令为:
grep -v test *test*
结果如下所示:
$ grep-v test* #查找文件名中包含test 的文件中不包含test 的行
testfile1:helLinux!
testfile1:Linis a free Unix-type operating system.
testfile1:Lin
testfile_1:HELLO LINUX!
testfile_1:LINUX IS A FREE UNIX-TYPE OPTERATING SYSTEM.
testfile_1:THIS IS A LINUX TESTFILE!
testfile_2:HELLO LINUX!
testfile_2:Linux is a free unix-type opterating system.
12.ispell命令
Linux ispell命令用于拼写检查程序。
ispell预设会使用/usr/lib/ispell/english.hash字典文件来检查文本文件。若在检查的文件中找到字典没有的词汇,ispell会建议使用的词汇,或是让你将新的词汇加入个人字典。
ispell [-aAbBClmMnNPStVx][-d<字典文件>][-L<行数>][-p<字典文件>][-w<非字母字符>][-W<字符串长度>][要检查的文件]
参数:
检查文件的拼写。例如,检查testfile文件,可使用如下命令:
ispell testfile
如果文件中出现可疑词汇,则第一个出现的可疑词汇以高亮显示,并在屏幕下方给出词汇的修改意见,以及ispell的操作命令。如下所示:
netwrks File: testfile
Linux netwrks are becoming more and more common, but security is often an overlooked
issue. Unfortunately
0: networks
[SP] R)epl A)ccept I)nsert L)ookup U)ncap Q)uit e(X)it or ? for help
本例中,检查出netwrks 错误,并提示纠正信息,此时输入"0",即使用networks 来纠正错误,同时继续显示下一个错误,直到所有的错误显示完毕。
通过以上实例我们可以发现,文件testfile中有拼写错误,对该文件进行修改后需备份文件。此时使用如下命令:
ispell-b testfile #检查拼写错误的同时,备份文件
如果文件已经无拼写错误,则不显示任何信息,通过ls命令我们也可以查看到当前文件目录下产生了文件testfile的备份文件testfile.bak。查看结果如下所示:
$ ls #以列表的形式查看当前目录下的文件
examples.desktop testfile_1 testfile.bak xx01 模板图片 音乐
testfile testfile1 testfile_2 xx00 公共的视频文档桌面
其中,testfile.bak 文件就是刚才命令生成的备份文件,内容与原来的testfile 文件内容是一样的。
13.jed命令
Linux jed命令用于编辑文本文件。
Jed是以Slang所写成的程序,适合用来编辑程序原始代码。
jed [-2n][-batch][-f<函数>][-g<行数>][-i<文件>][-I<文件>][-s<字符串>][文件]
参数:
jed主要用于编辑程序的源码,编辑源码时将以彩色高亮的方式显示程序的语法。例如使用jed编辑一个C语言的源代码文件,可使用如下命令:
jed main.c #用jed编辑器打开main.c 文件
输出结果如下:
F10 key ==> File Edit Mode Search Buffers Windows System Help #编辑器菜单
/*-*- linux-c-*-*/ #编辑区
#include
#include
#include
static struct list_head *
net_ctl_header_lookup(struct ctl_table_root *root, struct nsproxy *namespaces)
{
return &namespaces->net_ns->sysctl_table_headers;
}
static struct ctl_table_root net_sysctl_root = {
.lookup = net_ctl_header_lookup,
};
static int sysctl_net_init(struct net *net)
{
INIT_LIST_HEAD(&net->sysctl_table_headers);
return 0;
}
-----+(Jed 0.99.18U) Emacs: main.c (C) All 6:06pm-----------------------------
#从左到右分别为jed版本编号、当前是模拟emacs编辑器、打开的文件名、现在的时间
loading /usr/share/jed/lib/modeinfo.slc
14.joe命令
Linux joe命令用于编辑文本文件。
Joe是一个功能强大的全屏幕文本编辑程序。操作的复杂度要比Pico高一点,但是功能较为齐全。Joe一次可开启多个文件,每个文件各放在一个编辑区内,并可在文件之间执行剪贴的动作。
joe [-asis][-beep][-csmode][-dopadding][-exask][-force][-help][-keepup][-lightoff][-arking][-mid][-nobackups][-nonotice][-nosta][-noxon][-orphan][-backpath<目录>][-columns<栏位>][-lines<行数>][-pg<行数>][-skiptop<行数>][-autoindent crlf linums overwrite rdonly wordwrap][+<行数>][-indentc<缩排字符>][-istep<缩排字符数>][-keymap<按键配置文件>][-lmargin<栏数>][-rmargin<栏数>][-tab<栏数>][要编辑的文件]p>
参数:
以下为程序参数 -asis 字符码超过127的字符不做任何处理。 -backpath<目录> 指定备份文件的目录。 -beep 编辑时,若有错误即发出哗声。利用joe命令编辑文本文件。例如利用joe编辑C 语言源代码main.c,使用如下命令:
joe main.c
与jed类似,joe编辑器中C语言的语法也以彩色的方式显示。效果如下:
I A main.c (c) Row 1 Col 1 12:28 Ctrl-K H for help
#上排从左至右分别为打开的文件名、光标所在行列数、现在时间、显示操作说明
/*-*- linux-c-*-*/ #编辑区
#include
#include
#include
static struct list_head *
net_ctl_header_lookup(struct ctl_table_root *root, struct nsproxy *namespaces)
{
return &namespaces->net_ns->sysctl_table_headers;
}
static struct ctl_table_root net_sysctl_root = {
.lookup = net_ctl_header_lookup,
};
static int sysctl_net_init(struct net *net)
{
INIT_LIST_HEAD(&net->sysctl_table_headers);
return 0;
}
** Joe's Own Editor v3.5 ** (utf-8) ** Copyright . 2006 ** #joe编辑区的版本及版权信息
joe编辑器有一些常用的组合键,例如可以通过Ctrl+K+H 寻求联机帮助,首先按Ctrl+K组合键,再输入字母H,即可调出帮助菜单,通过该帮助信息可以方便地获知如何对joe 编辑器进行操作。
15.join命令
Linux join命令用于将两个文件中,指定栏位内容相同的行连接起来。
找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。
join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]
参数:
连接两个文件。
为了清楚地了解join命令,首先通过cat命令显示文件testfile_1和 testfile_2 的内容。
然后以默认的方式比较两个文件,将两个文件中指定字段的内容相同的行连接起来,在终端中输入命令:
join testfile_1 testfile_2
首先查看testfile_1、testfile_2 中的文件内容:
$ cat testfile_1 #testfile_1文件中的内容
Hello 95 #例如,本例中第一列为姓名,第二列为数额
Linux 85
test 30
cmd@hdd-desktop:~$ cat testfile_2 #testfile_2文件中的内容
Hello 2005 #例如,本例中第一列为姓名,第二列为年份
Linux 2009
test 2006
然后使用join命令,将两个文件连接,结果如下:
$ join testfile_1 testfile_2 #连接testfile_1、testfile_2中的内容
Hello 95 2005 #连接后显示的内容
Linux 85 2009
test 30 2006
文件1与文件2的位置对输出到标准输出的结果是有影响的。例如将命令中的两个文件互换,即输入如下命令:
join testfile_2 testfile_1
最终在标准输出的输出结果将发生变化,如下所示:
$ join testfile_2 testfile_1 #改变文件顺序连接两个文件
Hello 2005 95 #连接后显示的内容
Linux 2009 85
test 2006 30
16.look命令
Linux look命令用于查询单词。
look指令用于英文单字的查询。您仅需给予它欲查询的字首字符串,它会显示所有开头字符串符合该条件的单字。
look [-adf][-t<字尾字符串>][字首字符串][字典文件]
参数说明:
为了查找在testfile文件中以字母L开头的所有的行,可以输入如下命令:
look L testfile
原文件testfile中的内容如下:
$ cat testfile #查看testfile 文件内容
HELLO LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
在testfile文件中使用look命令查找以"L"开头的单词,结果如下:
$ look L testfile #查找以“L”开头的单词
Linux is a free unix-type opterating system. #第二行以“L”开头,列出全句
Linux test #第四行以“L”开头,列出全句
17.mtype命令
mtype为mtools工具指令,模拟MS-DOS的type指令,可显示MS-DOS文件的内容。
mtype [-st][文件]
参数说明:
打开名为dos.txt 的MS-DOS文件可使用如下命令:
mtype dos.txt #打开MS-DOS 文件
显示结果如下:
$ mtype dos.txt #打开MS-DOS 文件
Linux networks are becoming more and more common, but security is often an overlooked
issue. Unfortunately, in today’s environment all networks are potential hacker targets,
from top-secret military research networks to small home LANs.
Linux Network Securty focuses on securing Linux in a networked environment, where the
security of the entire network needs to be considered rather than just isolated machines.
It uses a mix of theory and practicl techniques to teach administrators how to install and
use security applications, as well as how the applcations work and why they are necessary.
18.pico命令
Linux pico命令用于编辑文字文件。
pico是个简单易用、以显示导向为主的文字编辑程序,它伴随着处理电子邮件和新闻组的程序pine而来。
pico [-bdefghjkmqtvwxz][-n<间隔秒数>][-o<工作目录>][-r<编辑页宽>][-s<拼字检查器>][+<列数编号>][文件]
参数说明:
使用pico命令来编辑testfile文件,在终端中输入如下命令:
pico testfile
输出结果如下:
GNU nano 2.0.9 文件: testfile #从左到右分别为编辑器版本号、文件名
#编辑区
Linux networks are becoming more and more common, but security is often an over$
Linux Network Securty focuses on securing Linux in a networked environment, whe$
[ 已读取3 行] #以下为菜单栏
^G 求助^O 写入^R 读档^Y 上页^K 剪切文字^C 在标位置
^X 离开^J 对齐^W 搜寻^V 下页^U 还原剪切^T 拼写检查
19.rgrep命令
Linux rgrep命令用于递归查找文件里符合条件的字符串。
rgrep指令的功能和grep指令类似,可查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设rgrep指令会把含有范本样式的那一列显示出来。
rgrep [-?BcDFhHilnNrv][-R<范本样式>][-W<列长度>][-x<扩展名>][--help][--version][范本样式][文件或目录...]
参说明数:
在当前目录下查找句子中包含"Hello"字符串的文件,可使用如下命令:
rgrep Hello *
其搜索结果如下:
$ rgrep Hello * #在当前目录下查找句子中包含“Hello”字符串的文件
testfile_1:Hello 95 #testfile_1中包含“Hello”字符串的句子
testfile_2:Hello 2005 #testfile_2中包含“Hello”字符串的句子
20.sed命令
Linux sed命令是利用script来处理文本文件。
sed可依照script的指令,来处理、编辑文本文件。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed [-hnV][-e][-f<script文件>][文本文件]
参数说明: