Linux中学会灵活使用shell下的特殊字符
2009-06-30 04:16:00 来源:WEB开发网三、将程序放在后台运行。
有些时候,系统管理员可能希望某些程序在系统后台运行。如果将Linux操作系统当作服务器来管理的话,讲一些长时间运行的程序放在后台运行是一种很常见的手段。如现在管理员利用while循环来实现一个功能。每5分钟来判断一下某个应用系统是否有产生错误的日志文件。如果有的话要马山将这个错误日志文件发送给系统管理员。写完这个脚本程序之后,最好的方式就是将这个脚本程序放置在后台运行。因为这个程序需要长时间运行,如果在前台运行的话,可能会对其他程序产生干扰。而且也容易被误关闭。所以,放在后台执行反而更加合理。那么在Linux操作系统中是如何将脚本程序防止在后台运行的呢?此时也需要用到另外一个特殊字符&。如这个脚本程序的名字为errorlog.sh。则管理员只需要运行命令errorlog.sh &,系统就会将这个程序放置在后台运行。
四、解释特殊字符的转义字符。
在微软操作系统中,某些字符是不能够用来做文件名的。如*这个米字符号,其是用来做通配符用的,不能够在文件名或者目录名中出现。但是在Linux操作系统中没有这方面的限制。如test*.txt在Linux操作系统中是一个合法的名字。难道*符号在Linux操作系统中不做通配符使用吗?其实,在Linux操作系统中这个*符号也有特殊的含义,其也是代码通配符。如使用ls text*命令,可以列出所有已text开头的文件或者目录的名字。那么为什么在Linux操作系统中还可以利用这个*米字符号来作为文件名呢?这都是转义字符\在其作用。
如现在用户想在文件名字中加入一个*米字符,则可以使用命令vi text\*.txt来实现。在这个通配符*米字符号前面加入一个转移字符\,就告诉系统要将这个*字符当作普通字符来对待。其实这个转义字符的重要作用还是体现在文件的删除上面。如现在某个目录下有如下几个文件,chap*.txt,chap1.txt,chap2.txt。其中chap*表示一本书的目录,而其他的表示这个本书的各章内容。如果现在系统管理员想把目录文件删除了,采用了rm chap*.txt命令,还有什么后果呢?此时系统会把所有的以chap开头的文件删除。也就是说,不光光是目录文件,章节的内容文件也被删除了。因为此时操作系统是将这个*符号当作通配符来对待。如果要删除目录文件在,则正确的命令应该这么写:rm chap\*.txt。这个命令就是告诉系统这个*符号为普通的符号,而不是通配符。此时系统就会将这个目录文件删除了,而不会影响到其他文件。
虽然说在Linux操作系统中通过转义字符的方法允许用户采用一些特殊的字符来为文件命名。但是出于以后管理的方便,笔者还是建议大家不要采用特殊符号来命名。否则一不小心就会发生不可挽回的损失。如上面的案例中,将*通配符当作文件名字的话,那么在删除时就很容易将相关的文件全部删除。
更多精彩
赞助商链接