Linux文档编辑命令大全

1.col命令

Linux 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命令

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个文件]

    参数

    • -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

    执行 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][文件][范本样式...] 

    参数

    • -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命令

    Linux 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命令

    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][文件...]

    参数说明

    • -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命令

    Linux fold命令用于限制文件列宽。

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

    语法

    fold [-bs][-w<每列行数>][--help][--version][文件...]

    参数

    • -b或--bytes 以Byte为单位计算列宽,而非采用行数编号为单位。
    • -s或--spaces 以空格字符作为换列点。
    • -w<每列行数>或--width<每列行数> 设置每列的最大行数。
    • --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 todays 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 todays  
    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][范本样式][文件或目录...]

    参数

    • -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 : 在显示符合样式的那一行之前,标示出该行的列数编号。
    • -q 或 --quiet或--silent : 不显示任何信息。
    • -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
    • -s 或 --no-messages : 不显示错误信息。
    • -v 或 --revert-match : 显示不包含匹配文本的所有行。
    • -V 或 --version : 显示版本信息。
    • -w 或 --word-regexp : 只显示全字符合的列。
    • -x --line-regexp : 只显示全列符合的列。
    • -y : 此参数的效果和指定"-i"参数相同。

    Linux 命令大全 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<字符串长度>][要检查的文件]

    参数

    • -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 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<字符串>][文件]

    参数

    • -2 显示上下两个编辑区。
    • -batch 以批处理模式来执行。
    • -f<函数> 执行Slang函数。
    • -g<行数> 移到缓冲区中指定的行数。
    • -i<文件> 将指定的文件载入缓冲区。
    • -n 不要载入jed.rc配置文件。
    • -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 编辑时,若有错误即发出哗声。
    • -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类似,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<12>][-e<字符串>][-o<格式>][-t<字符>][-v<12>][-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命令

    Linux 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的type指令,可显示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 networks are becoming more and more common, but security is often an overlooked  
    issue. Unfortunately, in todays 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<拼字检查器>][+<列数编号>][文件]

    参数说明

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

    实例

    使用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][范本样式][文件或目录...]

    参说明数

    • -? 显示范本样式与范例的说明。
    • -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命令

    Linux sed命令是利用script来处理文本文件。

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

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

    语法

    sed [-hnV][-e
                        
                        

你可能感兴趣的:(Linux,教程)