红联Linux门户
Linux帮助

Linux shell基础题目

发布时间:2007-06-28 14:19:53来源:红联作者:Modegle
  1. Linux中的shell有哪些类型?Linux操作系统的缺省shell是什么?

  Sh, csh, bash等. linux操作系统缺省的shell是bash?

  2. shell有哪些通配符?各起什么作用?

  *, ? , []
  *表示匹配任意数目的任意字符。
  ?表示匹配任意一个字符
  []匹配再[]中定义的范围的字符,例如[0-9]表示匹配0->9的单个数字,[abc]表示匹配abc中的任意一个字符.[0-9a-z]表示匹配任意单个数字或者任意一个小写字符。[0-9]*表示匹配任意多个数字
  +表示一个或多个

  3. shell中有哪三种引号?它们的作用有什么不同?

  “” 由双引号括起来的字符作为普通字符对待,除非是``,$,‘\’字符,这写字符表示特殊含义,但如果这些字符前加'\'则对这些字符进行转义,表示不要对这些字符进行特殊处理。

  ‘’由单引号阔气来的字符都作为一般字符对待。

  ``反短斜线,命令用反短斜线包括起来,表示将该命令的结果作为整个命令的一个部分。例如,查找某个目录下所有的包含某个字符串s的文件。

  grep s `find dir`
  find dir命令将返回目录下面的所有文件.grep 命令将会所有文件中查找含有字符串s的行。

  如果使用管道 find dir|grep s,则find dir命令得到的所有文件名所组成的串将通过管道传输给grep命令,因此grep命令查找到的是文件名中包含字符串s的文件。

  4. 要统计/usr/bin目录下的文件个数,用重定向和管道分别完成,怎样做?

  管道:
  ls -lR|grep '^-'|wc -l
  ls -lR列出当前目录下所有的文件,包括子目录下的文件
  grep '^-'过滤特殊文件,剩下的都是一般文件,^表示非的意思好像
  wc -l统计行数,得到文件数目。

  也可以使用find命令
  find ./ -type f|wc -l
  不统计子目录:
  find ./ -maxdepth 1 -type f|wc -l
  重定向:

  5. 命令替换与重定向有何区别?举例说明。

  命令替换将命令得到的结果作为命令的一个参数。比如命令得到的结果是文件,那么这个文件将作为整个命令行的参数。重定向将命令结果形成的字符串作为管道另一端命令的一个参数。比如命令得到的结果也是文件,但是管道的另一端的命令得到的只是该文件的字符串作为的参数。

  昨天回去请教了一下,现在我的理解是这样的:命令替换就是把命令执行的结果做为整行命令的参数,有点象宏替换似的。管道则是将一个命令的输出作为另一个命令的输入,另一个命令就好像是从标准输入中得到这些数据似的。
文章评论

共有 0 条评论