Linux CentOS中的1.gz的文件是什么东西

Linux CentOS中的1.gz的文件是什么东西,第1张

当可能有多个文件的时候,linux通常的命名规则就是在后面加上.1

比如上面的[.1.gz

要知道本身 [ 就是一个命令,这个命令与test命令类似,不过需要参数 ] 作为结尾.

这是用来安装manpage的目录,所以里面有各个命令的manpage的gz格式压缩包,所以这些就这样命名了.

ls -l这个命令,将当前目录下的文件显示出来(类似于DOS下的dir命令)。然后用输出重定向 *** 作符 >来将输出重定向到list.txt文件中。这样,ls的输入就不再输出到屏幕,而是输出到list.txt文件中了。然后用cat list.txt命令查看list.txt文件的内容,得到如上输入。

虽然标准输出和标准报错都是输出到屏幕,但这是两种不同的输出,使用两个不同的流文件。重定向标准报错的时候,就不能用 >这个 *** 作符,而需要使用 2>这个 *** 作符。如

$ myprog >stdout.txt 2>stderr.txt

这样,就将标准输出重定向到了stdout.txt中,而将标准输入重定向到了stderr.txt中。

对于输入重定向和报错的重定向,还有一点需要注意:你将输出或者报错重定向到了一个文件,如果这个文件不存在,则建立这样一个文件。如果这个文件存在,则这个文件中的所有内容都将被清除,而以标准输入中的内容取而代之。如果你想将新的内容输入到文件尾,则需要用 >>这个追加 *** 作符。如上例中,

$ ls -l >>list.txt

则将标准输入的内容追加到了list.txt的文件尾。

同时,还有一个管道 *** 作。管道 *** 作的意思是,有一串命令,利用管道 *** 作符 | ,可以将前一个命令的输出当做后一个命令的输入,以此类推。如:

$ ls /usr/bin | more

[

4odb

4rdf

4xslt

4xupdate

a2p

a2ps

ab

aclocal

……

这个命令的意思是,将/usr/bin下的文件及目录名输出,然后利用more将这个输出分屏显示。就好像将前一个命令的输出,装入了一个管子后传到了下一个命令当做输入来使用。

合理使用重定向及管道 *** 作,可以使Linux命令的威力倍增。

Linux支持通配符。所谓通配符,是指 * 和 ? 这两个字符。* 可以匹配任意多个字符,而 ? 只能匹配单个字符。如: a* 可以代表 ab,abc,ac,acdef等等。而a?则只能代表ab,ac,ad……等等。

除了用*和?来匹配一个或者多个字符外,你也可以指定一个字符清单,用来匹配清单中出现的任意一个字符。字符清单要列在一对[]内,如:

tty?[1234],可以代表tty1,tty2,tty3,tty4这四个词。

tty?[ace],可以代表ttya,ttyc,ttye这三个词。

如果字符清单是单纯的连续的字母或者数字,还可以这样写:

tty?[1-4],与tty?[1234]同样。

tty?[a-e],与tty?[abcde]同样。

另外还有一种写法,即:指定字(不是字符)清单。字(word)清单要包含在一对{}中,用 , 分隔开,其用法举例如下:

$ mkdir /tmp/{bin,tmp,lst}

这个命令,在/tmp/下建立了bin,tmp,lst三个子目录。

除此之外,Linux的各种shell下还提供了丰富的命令 *** 作功能 。下面简要介绍一下:

* 命令补全功能

命令补全功能是指,当你输入一个命令的一部分后,按下<Tab>键,shell会尝试自动补全不完整的功能。如果你的输入太短,以至于 shell无法判定你要输入的命令是什么的时候,会蜂鸣一声以示提示。在这个时候,在某些shell如bash下,如果你再按一次<Tab>,shell则会将所有匹配你输入的命令列出以供你选择。类似地,当你使用一个文件名做为命令的参数的时候,shell也会尝试着去补全这个命令。如下例

$ ls

bin include lib list.txt okdata OkProg src test

$ ls t

输入到这个的时候,按下<Tab>键。由于在当前目录下,只包含test一个以t开头的文件/目录,所以shell自动补全这个文件名,成了这样:

$ ls test/

* 命令历史记录

当你新开了一个shell,进行 *** 作的时候,shell会将你的一部分 *** 作记录下来。保存的 *** 作数目是在$history这个系统变量中保存的。如$ history的值是1000,代表shell将会保存最近的1000次 *** 作。你可以用history命令来查看历史 *** 作。如:

$ history

……

53 22:59 cl

53 22:59 ls -l >list.txt

54 22:59 cat list.txt

……

59 23:10 ls /ur/bin | more

60 23:17 mkdir /tmp/{bin,tmp,lst}

……

上面表示的是输出的一部分。

使用历史命令记录,可以使你省下很多烦琐的输入。在shell提示符下按方向键的上下,就可以选择历史命令。当你输入命令的一部分后按Esc+P,就可以调出最近的一次与你的输入最匹配的 *** 作。如:我现在输入h后按下Esc+P组合键,则显示history,按回车即可执行。

使用!<number>则可调用第<number>次 *** 作。从上面history的输入可以知道第60次 *** 作是mkdir /tmp{bin,tmp,lst},那么如果我输入!60后按回车,则直接再次执行这个 *** 作。

使用!<key>则可以调用与<key>匹配的最近的一次 *** 作。如我输入!ca,则会调用第54次 *** 作的cat list.txt

使用!!可以重复上一次的 *** 作。

此外,还可以对命令中的任何位置(不只局限于开始部分)出现的字符进行搜索。被搜索的字符串应该放在两个?中间。如:

$ !?dir?

会找到 mkdir /tmp/{bin,tmp,lst} 这条历史命令。注意:在这里,?不是通配符,而是一种叫做“正则表达式”的式子。如果第二个字符串后面没有东西,则可以省略。

同样,Linux的shell还允许你对历史命令中的一部分稍加修改后执行,修改用到的方法是:s/old/new/,将old换成new。我们要将mkdir /tmp/{bin,tmp,lst}中的bin改成my后执行,则可以这样:

$ !?kdir?:s/bin/my

实际上,这也是一种正则表达式。正则表达示是Linux下一个强大的工具,可以用来进行复杂的匹配,或者模糊查找,等等。关于正则表达式,我们会在以后涉及到。

当然,我只是为了举个例子,才写这样的命令的。对于简单的命令,这还不如直接写一遍来得迅速。另外,不像DOS只有一个command.com,Linux下有很多的shell,如tcsh,bash等等。在不同的shell中,这些 *** 作方法会有稍许不同。

在Linux下,你还可以编辑shell脚本(类似于MS-DOS下的批处理命令,但功能更为强大)。也可以使用命令函数。这些内容我们暂且搁置。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7648014.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-08
下一篇2023-04-08

发表评论

登录后才能评论

评论列表(0条)

    保存