shell 十三问-1) 为何叫做shell

在介�B shell 是甚�N�|西之前,不妨�我��重新�z�使用者�c��X系�y的�P�S:
        �D(FIXME)

我��知道��X的�\作不能�x�_硬�w,但使用者�s�o法直接�τ搀w作��樱�
硬�w的��又荒芡高^一���Q��"作�I系�y(Operating System)"的��w�砜毓埽�
事��上,我��每天所�的 linux ,�栏�碚f只是一��作�I系�y,我���Q之��"核心(kernel)"。
然而,�氖褂谜叩慕嵌�碚f,使用者也�]�k法直接操作 kernel ,
而是透�^ kernel 的"外��"程式,也就是所�^的 shell ,�砼c kernel �贤ā�
�@也正是 kernel 跟 shell 的形像命名�P�S。如�D:
                �D(FIXME)

�募夹g角度�碚f,shell 是一��使用者�c系�y的互�咏缑�(interface),
主要是�使用者透�^命令行(command line)�硎褂孟到y以完成工作。
因此,shell 的最��蔚亩��x就是---命令解�g器(Command Interpreter):
        * �⑹褂谜叩拿�令翻�g�o核心�理,
        * 同�r,�⒑诵奶�理�Y果翻�g�o使用者。

每次��我��完成系�y登入(log in),我��就取得一��互�幽J降� shell ,也�Q�� login shell 或 primary shell。
若�男谐�(process)角度�碚f,我��在 shell 所下�_的命令,均是 shell 所�a生的子行程。�@�F像,我���嚎煞Q之�� fork 。
如果是�绦心_本(shell script)的�,�_本中的命令�t是由另外一��非互�幽J降淖� shell (sub shell)��绦械摹�
也就是 primary shell �a生 sub shell 的行程,sub shell 再�a生 script 中所有命令的行程。
(�P於行程,我��日後有�C��再�a充。)

�@�e,我��必�知道:kernel �c shell 是不同的�商总��w,而且都是可以被替�Q的:
        * 不同的作�I系�y使用不同的 kernel ,
        * 而在同一�� kernel 之上,也可使用不同的 shell 。
在 linux 的�A�O系�y中,通常都可以找到好�追N不同的 shell ,且通常��被列於如下�n案�e:
        /etc/shells
不同的 shell 有著不同的功能,且也彼此各��、或�f"大同小��"。
常�的 shell 主要分��纱笾髁鳎�
        sh:
                burne shell (sh)
                burne again shell (bash)
        csh:
                c shell (csh)
                tc shell (tcsh)
                korn shell (ksh)
        (FIXME)

大部份的 Linux 系�y的�A�O shell 都是 bash ,其原因大致如下�牲c:
        * 自由��w
        * 功能��大
bash 是 gnu project 最成功的�a品之一,自推出以�砩钍�V大 Unix 用�粝�郏�
且也逐�u成�椴簧俳M�的系�y��省�

你可能感兴趣的:(shell,十三问)