在上《Linux中的Shell(一)》中大体上让你明白了什么是Shell,它有何好处。接下来就要讲讲如何在具体应用中体现Shell的强大了。
“如何得到当前工作目录中的所有文件名呢?”
“当然用dir、ls!”
没错,可是想过用ECHO吗?好象echo能做到的,还记得课本上是怎么说的吗?echo返回它的参数,那么echo *会是什么样子的呢?正是当前目录的所有文件名,而且还是按首字母顺序,很紧凑的!
你自己整理文件名并存档备用吗?
也许有用户有这个需要,可以用Shell很好的完成这项工作!
假如你要保存dir1下的所有文件的文件名,而且你已经用ls命令知道了它们的名字,下一步是$ vi吗?其实这里可以用$ ls >filenames,一份完整的文件信息现在就存储在filenames中了,你可以编辑或只是看看它是否如我所言存在。这里涉及到输入输出的重定向问题,首先申明这绝非什么秘技,DOS时它就是这个样子,只是我不习惯看到身旁有些人不去用它而倔强的坚持照打一份,所以写出来大家看看。其中“>”就是重定向符,你可以把它读作“重定向到”。
默认的输出端是终端,也就是为什么你的命令行执行后结果是在屏幕上显示。我们可以更改至任意文件,这样输出就追加到文件内了。你甚至可以用$ pr file1>file2完成对文件的拷贝,只是不那么完美罢了。
同样的默认的输入端也是终端,我们也可以更改到任意文件,它用“<”符号,意即“从...输入”,典型的是计算注册用户的数目,请结合使用下面两个命令:
$ who >temp
$ wc -l