2.Linux命令(文档编辑)

Linux命令(文档编辑)

1.col

​ col命令用于过滤控制字符。

在许多UNIX说明文件里,都有RLF控制字符。当我们运用shell特殊字符”>”和”>>”,把说明文件的内容输出成纯文本文件时,控制字符会变成乱码,col指令则能有效滤除这些控制字符。

语法

col [-bfx][-l<缓冲区列数>] 

参数

  • -b 过滤掉所有的控制字符,包括RLF和HRLF。
  • -f 滤除RLF字符,但允许将HRLF字符呈现出来。
  • -x 以多个空格字符来表示跳格字符。
  • -l<缓冲区列数> 预设的内存缓冲区有128列,您可以自行指定缓冲区的大小。

实例

下面以 man 命令帮助文档为例,讲解col 命令的使用。

将man 命令的帮助文档保存为man_help,使用-b 参数过滤所有控制字符。在终端中使用如下命令:

man man | col-b > man_help  

注:其中”|”用于建立管道,把man命令的输出结果转为col命令的输入数据。

2.colrm

​ colrm命令用于滤掉指定的行。

colrm指令从标准输入设备读取书记,转而输出到标准输出设备。如果不加任何参数,则该指令不会过滤任何一行。

语法

colrm [开始行数编号<结束行数编号>]</p>

<p><b>参数说明:</b></p>
<ul>
<li>开始行数编号: 指定要删除的列的起始编号。</li>
<li>结束行数编号: 指定要删除的列的结束编号,有时候这个参数可以省略。</li>
</ul>
<h3>实例</h3>
<p>不带任何参数时该命令不会删除任何列:</p>
<pre>
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

​ comm命令用于比较两个已排过序的文件。

这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来,如果没有指定任何参数,则会把结果分成3行显示:第1行仅是在第1个文件中出现过的列,第2行是仅在第2个文件中出现过的列,第3行则是在第1与第2个文件里都出现过的列。若给予的文件名称为”-“,则comm指令会从标准输入设备读取数据。

语法

comm [-123][--help][--version][第1个文件][第2个文件]

参数

  • -1 不显示只在第1个文件里出现过的列。
  • -2 不显示只在第2个文件里出现过的列。
  • -3 不显示只在第1和第2个文件里出现过的列。
  • –help 在线帮助。
  • –version 显示版本信息。

实例

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
<p>执行 comm 命令输出结果如下:</p>
[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

​ csplit命令用于分割文件。

将文件依照指定的范本样式予以切割后,分别保存成名称为xx00,xx01,xx02…的文件。若给予的文件名称为”-“,则csplit指令会从标准输入设备读取数据。

语法

csplit [-kqsz][-b<输出格式>][-f<输出字首字符串>]
[-n<输出文件名位数>][--help][--version][文件][范本样式...] 

参数

  • -b<输出格式>或–suffix-format=<输出格式> 预设的输出格式其文件名称为xx00,xx01…等,您可以通过改变<输出格式>来改变输出的文件名。
  • -f<输出字首字符串>或–prefix=<输出字首字符串> 预设的输出字首字符串其文件名为xx00,xx01…等,如果你指定输出字首字符串为”hello”,则输出的文件名称会变成hello00,hello01…等。
  • -k或–keep-files 保留文件,就算发生错误或中断执行,也不能删除已经输出保存的文件。
  • -n<输出文件名位数>或–digits=<输出文件名位数> 预设的输出文件名位数其文件名称为xx00,xx01…等,如果你指定输出文件名位数为”3”,则输出的文件名称会变成xx000,xx001…等。
  • -q或-s或–quiet或–silent 不显示指令执行过程。
  • -z或–elide-empty-files 删除长度为0 Byte文件。
  • –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

​ ed命令是文本编辑器,用于文本编辑。

ed是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。

ed命令并不是一个常用的命令,一般使用比较多的是vi 指令。但ed文本编辑器对于编辑大文件或对于在shell脚本程序中进行文本编辑很有用。

语法

ed [-][-Gs][-p<字符串>][--help][--version][文件] 

参数

  • -G或–traditional 提供回兼容的功能。
  • -p<字符串> 指定ed在command mode的提示字符。
  • -s,-,–quiet或–silent 不执行开启文件时的检查功能。
  • –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

​ 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

​ 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命令说明。

fgrep命令用于查找文件里符合条件的字符串。

语法

fgrep [范本样式][文件或目录...]

实例

具体使用实例请参考grep命令

9.fmt

​ fmt命令用于编排文本文件。

fmt指令会从指定的文件里读取内容,将其依照指定格式重新编排后,输出到标准输出设备。若指定的文件名为”-“,则fmt指令会从标准输入设备读取数据。

语法

fmt [-cstu][-p<列起始字符串>][-w<每列字符数>][--help][--version][文件...]

参数说明

  • -c或–crown-margin 每段前两列缩排。
  • -p<列起始字符串>或-prefix=<列起始字符串> 仅合并含有指定字符串的列,通常运用在程序语言的注解方面。
  • -s或–split-only 只拆开字数超出每列字符数的列,但不合并字数不足每列字符数的列。
  • -t或–tagged-paragraph 每列前两列缩排,但第1列和第2列的缩排格式不同。
  • -u或–uniform-spacing 每个字符之间都以一个空格字符间隔,每个句子之间则两个空格字符分隔。
  • -w<每列字符数>或–width=<每列字符数>或-<每列字符数> 设置每列的最大字符数。
  • –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

​ fold命令用于限制文件列宽。
折叠指令会从指定的文件里读取内容,将超过限定列宽的列加入增列字符后,输出到标准输出设备若不指定任何文件名称,或是所给予的文件名为 “ - ”,则折叠指令会从标准输入设备读取数据。

语法

fold [-bs] [ -  w <每列行数>] [ - 帮助] [ - 版本] [文件...]

参数

  • -b或–bytes以字节为单位计算列宽,而非采用行数编号为单位。
  • -s或–spaces以空格字符作为换列点。
  • -w <每列行数>或–width <每列行数>设置每列的最大行数。
  • –help在线帮助。
  • –version显示版本信息。

实例

将一个名为testfile的文件的行折叠成宽度为30,可使用如下命令:

fold -w 30 testfile

为了对比,先将testfile的文件输出如下:

$ cat testfile#查看testfile中的内容  
Linux网络正变得越来越普遍,但是 
安全性往往被忽视  
问题。不幸的是,在今天的环境中所有的网络
是潜在的黑客攻击目标,  
从绝密的军事研究网络到小型家庭局域网。  
Linux Network Security专注于在Linux中保护Linux 
网络环境,在哪里  
需要考虑整个网络的安全性 
而不仅仅是孤立的机器。  
它结合了理论和实践技术 
教管理员如何安装和  
使用安全应用程序,以及如何使用 
应用程序工作以及为什么它们是必要 

然后使用折叠命令折叠显示:

$ fold -w 30 testfile#行折叠成宽度为30,显示testfile文件  
Linux网络正在变得越来越多  
重新和更常见,但securi  
ty往往是一个被忽视的问题  
即 不幸的是,在今天  
环境所有网络都是  
潜在的黑客攻击目标  
绝密军事研究  
网络到小型家庭局域网。  
Linux Network Security重点关注  
在网络中保护Linux  
凯德环境,其中秒  
整个网络的urity ne  
编辑被认为是相当的  
一个刚刚孤立的机器。它  
使用理论和实践的混合  
教授管理员的技巧  
istrators如何安装和你  
安全应用程序,如同  
如何应用程序如何  
rk以及为什么它们是必要的 

11.grep

​ grep 命令用于查找文件里符合条件的字符串。

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

语法

grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

参数

  • -a 或 –text : 不要忽略二进制的数据。
  • -A<显示行数> 或 –after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
  • -b 或 –byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
  • -B<显示行数> 或 –before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
  • -c 或 –count : 计算符合样式的列数。
  • -C<显示行数> 或 –context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
  • -d <动作> 或 –directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
  • -e<范本样式> 或 –regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
  • -E 或 –extended-regexp : 将样式为延伸的普通表示法来使用。
  • -f<规则文件> 或 –file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
  • -F 或 –fixed-regexp : 将样式视为固定字符串的列表。
  • -G 或 –basic-regexp : 将样式视为普通的表示法来使用。
  • -h 或 –no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
  • -H 或 –with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
  • -i 或 –ignore-case : 忽略字符大小写的差别。
  • -l 或 –file-with-matches : 列出文件内容符合指定的样式的文件名称。
  • -L 或 –files-without-match : 列出文件内容不符合指定的样式的文件名称。
  • -n 或 –line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
  • -o 或 –only-matching : 只显示匹配PATTERN 部分。
  • -q 或 –quiet或–silent : 不显示任何信息。
  • -r 或 –recursive : 此参数的效果和指定”-d recurse”参数相同。
  • -s 或 –no-messages : 不显示错误信息。
  • -v 或 –revert-match : 显示不包含匹配文本的所有行。
  • -V 或 –version : 显示版本信息。
  • -w 或 –word-regexp : 只显示全字符合的列。
  • -x –line-regexp : 只显示全列符合的列。
  • -y : 此参数的效果和指定”-i”参数相同。

实例

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

​ ispell命令用于拼写检查程序。

ispell的预设会使用/usr/lib/ispell/english.hash字典文件来检查文本文件。若在检查的文件中找到字典没有的词汇,ispell的会建议使用的词汇,或是让你将新的词汇加入个人字典。

语法

ispell [-aAbBClmMnNPStVx] [ -  d <字典文件>] [ -  L <行数>] [ -  p <字典文件>] [ -  w <非字母字符>] [ -  W <字符串长度>] [要检查的文件]

参数

  • -a当其他程序输出送到ispell时,必须使用此参数。
  • -A读取到“&Include File&”字符串时,就去检查字符串后所指定文件的内容。
  • -b产生备份文件,文件名为.bak。
  • -B检查连字错误。
  • -C不检查连字错误。
  • -d <字典文件>指定字典文件。
  • -l从标准输入设备读取字符串,结束后显示拼错的词汇。
  • -L <行数>指定内文显示的行数。
  • -m自动考虑字尾的变化。
  • -M进入ispell后,在画面下方显示指令的按键。
  • -n检查的文件为noff或troff的格式。
  • -N进入ispell后,在画面下方不显示指令的按键。
  • -p <字典文件>指定个人字典文件。
  • -P不考虑字尾变化的情形。
  • -S不排序建议取代的词汇。
  • -t检查的文件为TeX或LaTeX的格式。
  • -V非ANSI标准的字符会以“M- ^”的方式来显示。
  • -w <非字母字符>检查时,特别挑出含有指定的字符。
  • -W <字符串长度>不检查指定长度的词汇。
  • -x不要产生备份文件。

实例

检查文件的拼写例如,检查testfile的文件,可使用如下命令:

ispell testfile 

如果文件中出现可疑词汇,则第一个出现的可疑词汇以高亮显示,并在屏幕下方给出词汇的修改意见,以及ispell的的操作命令如下所示:

netwrks文件:testfile  
Linux网络变得越来越普遍,但安全性往往被忽视  
问题。不幸  
0:网络  
[SP] <number> R)epl A)c)I)nsert L)ookup U)ncap Q)uit e(X)it or?求助

本例中,检查出网络错误,并提示纠正信息,此时输入“0”,即使用网络来纠正错误,同时继续显示下一个错误,直到所有的错误显示完毕。

。通过以上实例我们可以发现,文件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

​ jed命令用于编辑文本文件。

杰德是以俚语所写成的程序,适合用来编辑程序原始代码。

语法

jed [-2n] [ -  batch] [ -  f <函数>] [ -  g <行数>] [ -  i <文件>] [ - 我<文件>] [ -  s <字符串>] [文件]

参数

  • -2显示上下两个编辑区。
  • -batch以批处理模式来执行。
  • -f <函数>执行Slang函数。
  • -g <行数>移到缓冲区中指定的行数。
  • -i <文件>将指定的文件载入缓冲区。
  • -n不要载入jed.rc配置文件。
  • -s <字符串>查找并移到指定的字符串。

实例

。JED主要用于编辑程序的源码,编辑源码时将以彩色高亮的方式显示程序的语法例如使用JED编辑一个Ç语言的源代码文件,可使用如下命令:

jed main.c#用jed编辑器打开main.c文件 

输出结果如下:

F10键==>文件编辑模式搜索缓冲区Windows系统帮助#编辑器菜单  
/ *  -  *  -  linux-c  -  *  -  * /#编辑区  
#include <linux / mm.h> 
#include <linux / sysctl.h> 
#include <linux / nsproxy.h> 
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);  
返回0;  
}  
----- +(Jed 0.99.18U)Emacs:main.c(C)所有下午6:06 -------------------------- ---  
#从左到右分别为JED版本编号,当前是模拟的Emacs编辑器,打开的文件名,现在的时间  
加载/usr/share/jed/lib/modeinfo.slc 

14.joe

​ joe命令用于编辑文本文件。

joe是一个功能强大的全屏幕文本编辑程序。操作的复杂度要比微微高一点,但是功能较为齐全.Joe一次可开启多个文件,每个文件各放在一个编辑区内,并可在文件之间执行剪贴的动作。

语法

joe [-asis] [ -  beep] [ -  csmode] [ -  dopadding] [ -  exask] [ -  force] [ -  help] [ -  keepup] [ -  lightoff] [ -  arking] [ -  mid] [ -  nobackups] [ -nonotice] [ -  NOSTA] [ -  NOXON] [ - 孤儿] [ -  backpath <目录>] [ - 列<栏位>] [ - 线<行数>] [ - 皮克<行数>] [ -  skiptop <行数>] [ -  autoindent crlf linums overwrite rdonly wordwrap] [+ <行数>] [ -  indentc <缩排字符>] [ -  istep <缩排字符数>] [ -  keymap <按键配置文件>] [ - lmargin <栏数>] [ -  rmargin <栏数>] [ - 标签<栏数>] [要编辑的文件] </ p>

参数

以下为程序参数

-asis字符码超过127的字符不做任何处理。

-backpath <目录>指定备份文件的目录。

-beep编辑时,若有错误即发出哗声。

  • -columns <栏位>设置栏数。
  • -csmode可执行连续查找模式。
  • -dopadding是程序跟tty间存在缓冲区。
  • -exask在程序中,执行“Ctrl + k + x”时,会先确认是否要保存文件。
  • -force强制在最后一行的结尾处加上换行符号。
  • -help执行程序时一并显示帮助。
  • -keepup在进入程序后,画面上方为状态列。
  • -lightoff选取的区块在执行完区块命令后,就会回复成原来的状态。
  • -lines <行数>设置行数。
  • -marking在选取区块时,反白区块会随着光标移动。
  • -mid当光标移出画面时,即自动卷页,使光标回到中央。
  • -nobackups不建立备份文件。
  • -nonotice程序执行时,不显示版权信息。
  • -nosta程序执行时,不显示状态列。
  • -noxon尝试取消“Ctrl + s”与“Ctrl + q”键的功能。
  • -orphan若同时开启一个以上的文件,则其他文件会置于独立的缓冲区,而不会另外开启编辑区。
  • -pg <行数>按“PageUp”或“PageDown”换页时,所要保留前一页的行数。
  • -skiptop <行数>不使用屏幕上方指定的行数。
  • 以下为文件参数
  • + <行数>指定开启文件时,光标所在的行数。
  • -autoindent自动缩排。
  • -crlf在换行时,使用CR-LF字符。
  • -indentc <缩排字符>执行缩排时,实际插入的字符。
  • -istep <缩排字符数>每次执行缩排时,所移动的缩排字符数。
  • -keymap <按键配置文件>使用不同的按键配置文件。
  • -linums在每行前面加上行号。
  • -lmargin <栏数>设置左侧边界。
  • -overwrite设置覆盖模式。
  • -rmargin <栏数>设置右侧边界。
  • -tab <栏数>设置tab的宽度。
  • -rdonly以只读的方式开启文件-wordwrap编辑时若超过右侧边界,则自动换行。

实例

利用joe命令编辑文本文件。例如利用joe编辑C语言源代码main.c,使用如下命令:

joe main.c

与JED类似,乔编辑器中Ç语言的语法也以彩色的方式显示效果如下:

IA main.c(c)第1行Col 1 12:28 Ctrl-K H寻求帮助  
#上排从左至右分别为打开的文件名,光标所在行列数,现在时间,显示操作说明  
/ *  -  *  -  linux-c  -  *  -  * /#编辑区  
#include <linux / mm.h> 
#include <linux / sysctl.h> 
#include <linux / nsproxy.h> 
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);  
返回0;  
}  
** Joe自己的编辑v3.5 **(utf-8)**版权所有。2006 ** #joe编辑区的版本及版权信息

joe编辑器有一些常用的组合键,例如可以通过Ctrl + K + H寻求联机帮助,首先按Ctrl + K组合键,再输入字母H,即可调出帮助菜单,通过该帮助信息可以方便地获知如何对joe编辑器进行操作。

15.join

​ join命令用于将两个文件中,指定栏位内容相同的行连接起来。

找出两个文件中,指定栏位内容相同的行,并加以合并,再输出到标准输出设备。

语法

join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]

参数

  • -a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
  • -e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
  • -i或–igore-case 比较栏位内容时,忽略大小写的差异。
  • -o<格式> 按照指定的格式来显示结果。
  • -t<字符> 使用栏位的分隔字符。
  • -v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
  • -1<栏位> 连接[文件1]指定的栏位。
  • -2<栏位> 连接[文件2]指定的栏位。
  • –help 显示帮助。
  • –version 显示版本信息。

实例

连接两个文件。

为了清楚地了解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

look命令用于查询单词。

look指令用于英文单字的查询。您仅需给予它欲查询的字首字符串,它会显示所有开头字符串符合该条件的单字。

语法

look [-adf][-t<字尾字符串>][字首字符串][字典文件]

参数说明

  • -a 使用另一个字典文件web2,该文件也位于/usr/dict目录下。
  • -d 只对比英文字母和数字,其余一慨忽略不予比对。
  • -f 忽略字符大小写差别。
  • -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的类型指令,可显示MS-DOS文件的内容。

语法

mtype [-st] [文件]

参数说明

  • -s去除8位字符码集的第一个位,使它兼容于7位的ASCII。
  • -t将MS-DOS文本文件中的“换行+光标移至行首”字符转换成Linux的换行字符。

实例

打开名为dos.txt的MS-DOS文件可使用如下命令:

mtype dos.txt#打开MS-DOS文件 

显示结果如下:

$ mtype dos.txt#打开MS-DOS文件  
Linux网络变得越来越普遍,但安全性往往被忽视  
问题。不幸的是,在今天的环境中,所有网络都是潜在的黑客目标,  
从绝密的军事研究网络到小型家庭局域网。  
Linux Network Securty专注于在网络环境中保护Linux,其中  
需要考虑整个网络的安全性而不仅仅是孤立的机器。  
它使用理论和实践技术的组合来教授管理员如何安装和  
使用安全应用程序,以及应用程序的工作方式以及必要的原因。  

18.pico

     pico命令用于编辑文字文件。

pico是个简单易用,以显示导向为主的文字编辑程序,它伴随着处理电子邮件和新闻组的程序松而来。

语法

pico [-bdefghjkmqtvwxz] [ -  n <间隔秒数>] [ -  o <工作目录>] [ -  r <编辑页宽>] [ -  s <拼字检查器>] [+ <列数编号>] [文件]

参数说明

  • -b开启置换的功能。
  • -d开启删除的功能。
  • -e使用完整的文件名称。
  • -f支持键盘上的F1,F2 …等功能键。
  • -g显示光标。
  • -h在线帮助。
  • -j开启切换的功能。
  • -k预设pico在使用剪下命令时,会把光标所在的列的内容全部删除。
  • -m开启鼠标支持的功能,您可用鼠标点选命令列表。
  • -n <间隔秒数>设置多久检查一次新邮件。
  • -o <工作目录>设置工作目录。
  • -q忽略预设值。
  • -r <编辑页宽>设置编辑文件的页宽。
  • -s <拼字检查器>另外指定拼字检查器。
  • -t启动工具模式。
  • -v启动阅读模式,用户只能观看,无法编辑文件的内容。
  • -w关闭自动换行,通过这个参数可以编辑内容很长的列。
  • -x关闭换面下方的命令列表。
  • -z let pico可被Ctrl + z中断,暂存在后台作业里。
  • + <列数编号>执行pico指令进入编辑模式时,从指定的列数开始编辑。

实例

使用微微命令来编辑testfile的文件,在终端中输入如下命令:

pico testfile 

输出结果如下:

GNU nano 2.0.9文件:testfile#从左到右分别为编辑器版本号,文件名  
#编辑区  
Linux网络变得越来越普遍,但安全性通常超过$  
Linux Network Securty专注于在网络环境中保护Linux  
[已读取3行]#以下为菜单栏  
^ G求助^ O写入^ R读档^ Y上页^ K剪切文字^ C在标位置  
^ X离开^ J对齐^ W搜寻^ V下页^ U还原剪切^ T拼写检查 

19.rgrep

​ rgrep命令用于递归查找文件里符合条件的字符串。

rgrep指令的功能和grep指令类似,可查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设rgrep指令会把含有范本样式的那一列显示出来。

语法

rgrep [-?BcDFhHilnNrv][-R<范本样式>][-W<列长度>][-x<扩展名>][--help][--version][范本样式][文件或目录...]

参说明数

  • -? 显示范本样式与范例的说明。
  • -B 忽略二进制的数据。
  • -c 计算符合范本样式的列数。
  • -D 排错模式,只列出指令搜寻的目录清单,而不会读取文件内容。
  • -F 当遇到符号连接时,rgrep预设是忽略不予处理,加上本参数后,rgrep指令就会读取该连接所指向的原始文件的内容。
  • -h 特别将符合范本样式的字符串标示出来。
  • -H 只列出符合范本样式的字符串,而非显示整列的内容。
  • -i 忽略字符大小写的差别。
  • -l 列出文件内容符合指定的范本样式的文件名称。
  • -n 在显示符合坊本样式的那一列之前,标示出该列的列数编号。
  • -N 不要递归处理。
  • -r 递归处理,将指定目录下的所有文件及子目录一并处理。
  • -R<范本样式> 此参数的效果和指定”-r”参数类似,但只主力符合范本样式文件名称的文件。
  • -v 反转查找。
  • -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

​ sed 命令是利用脚本来处理文本文件。

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明

  • -e

  转载请注明: yoyo 2.Linux命令(文档编辑)

 上一篇
4.Linux命令(磁盘管理) 4.Linux命令(磁盘管理)
Linux命令(磁盘管理)1.cd​ cd命令用于切换当前工作目录至 dirName(目录参数)。 其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login
2019-08-18
下一篇 
1.Linux命令(文件管理) 1.Linux命令(文件管理)
1.文件管理1.catcat 命令用于连接文件并打印到标准输出设备上。 使用权限所有使用者 语法格式cat [-AbeEnstTuv] [--help] [--version] fileName参数说明:-n 或 –number:由 1 开
2019-08-18
  目录