linux学习笔记(6)

后台命令:

&命令

当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以使用&命令把作业放到后台执行。该命令的一般形式为:
命令&
为什么要在后台执行命令?因为当在后台执行命令时,可以继续使用你的终端做其他事情。适合在后台运行的命令有f i n d、费时的打印作业、费时的排序及一些s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。
不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:
       command >out.file 2>&1 &
在上面的例子中,所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。

向后台提交命令
现在我们运行一个f i n d命令,查找名为“ s r m . c o n f”的文件,并把所有标准输出和错误输出重定向到一个叫作f i n d . d t的文件中:

        $find /etc -name "srm.conf" -print >find.dt 2>&1 &

        [1] 27015
在上面的例子中,在我们成功提交该命令之后,系统给出了它的进程号2 7 0 1 5。

 

文件名置换:

。S h e l l提供了一套完整的字符串模式匹配规则,或者称之为元字符,这样你就可以按照所要求的模式来匹配文件。

下面就是这些特殊字符:
* 匹配文件名中的任何字符串,包括空字符串。
匹配文件名中的任何单个字符。
[...] 匹配[ ]中所包含的任何字符。
[!...] 匹配[ ]中非感叹号!之后的字符。
当s h e l l遇到上述字符时,就会把它们当作特殊字符,而不是文件名中的普通字符,这样用户就可以用它们来匹配相应的文件名。

使用*
使用星号*可以匹配文件名中的任何字符串。在下面的例子中,我们给出文件名模式a p p *,它的意思是文件名以a p p开头,后面可以跟随任何字符串,包括空字符串:

     $ ls app*

使用?
使用可以匹配文件名中的任何单个字符。在下面的例子中,我们列出文件名以任意两个字符开头,接着是R,后面跟任何字符的文件:

     $ ls ??R*

使用[...]和[!...]
使用[ . . . ]可以用来匹配方括号[ ]中的任何字符。在这一方法中,还可以使用一个横杠-来连接两个字母或数字,以此来表示一个范围。在下面的例子中,列出了以i或o开头的文件名:

     $ ls [io]*

 

posted @ 2008-08-05 10:08  Salesforce  阅读(163)  评论(0编辑  收藏  举报