红联Linux门户
Linux帮助

什么是shell?

发布时间:2007-05-05 01:43:26来源:红联作者:血族使天
shell是不是相当于DOS中的命令?
再就是cat命令里的参数-v或--show-nonprinting是什么作用?
文章评论

共有 4 条评论

  1. karon_fedora 于 2007-05-05 11:55:00发表:

    类似这样古怪的命令参数10年8年也用不了一次。
    用的时候读man就可以了

  2. 血族使天 于 2007-05-05 11:53:03发表:

    哦,原来是这样。谢谢了!!

  3. exchanged 于 2007-05-05 09:31:59发表:

      Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。

      shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。   shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

      有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。

      shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。

      shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。

  4. karon_fedora 于 2007-05-05 01:50:59发表:

    和 dos命令你有一点不同
    shell不是纯粹的命令行解释器,同时还可支持命令编程

    -v 的意思是说 输出的内容如果包含tab和lab,会用^代替