<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ##shell十三問之1: 何為shell? _______________________________________ `shell`是什么東西之前,不妨讓我們重新審視`使用者`和`計算機系統`的關系: (此處為使用者和計算機系統的關系圖) 我們知道計算機的運作不能離開硬件,但使用者卻無法直接操作硬件, 硬件的驅動只能通過一種稱為“`操作系統`(`OS`,`Opertating System`)”的軟件來管控。 事實上,我們每天所談的“`linux`”,嚴格來說只是一個`操作系統`(`OS`), 我們稱之為“`內核`(`kernel`)”。 然而,從使用者的角度來說,使用者沒有辦法直接操作一個`kernel`, 而是通過`kernel`的“外殼”程序,也就是所謂的`shell`,來與`kernel`溝通。 這也正是`kernel`跟`shell`的形象命名的的關系。如圖: (此處為kernel-->shell關系圖;) 從技術的角度來說,`shell`是一個使用者與系統的`交互界面(interface)`, 只能讓使用者通過`命令行`(`command line`)來使用系統來完成工作。 因此,`shell`最簡單的定義就是----`命令解釋器`( `Command Interpreter`): - 將使用者的命令翻譯給kernel來處理; - 同時,將kernel的處理結果翻譯給使用者。 每次當我們完成`系統登入`(`login`), 我們就取得一個交互模式的shell, 也稱之為`login shell` 或者 `primary shell`。 若從`進程`(`process`)的角度來說,我們在shell所下達的命令,均是shell所產生的`子進程`。 這種現象,我暫可稱之為`fork`。 如果是執行`shell腳本`(`shell script`)的話,腳本中命令則是由另一個非交互模式的 `子shell`(`sub shell`)來執行的。 也就是primary shell產生sub shell的進程,而該sub shell 進程再產生script中所有命令的進程。 (關于進程,我們日后有機會在補充) 這里, 我們必須知道:`kernel` 與 `shell` 是不同的兩套軟件,而且都是可以被替換的: - 不同的`OS`使用不同的`kernel`; - 同一個kernel之上,也可以使用不同的`shell`; 在`Linux`的預設系統中,通常可以找到好幾種不同的`shell`, 且通常會被記錄在如下文件中: ```shell /etc/shells ``` 不同的`shell`有著不同的功能,且彼此各異,或者說“大同小異”。 常見的`shell`主要分為兩大主流: 1. sh: - burne shell (sh) - burne again shell (bash) 2. csh: - c shell (csh) - tc shell (tcsh) - korn shell (ksh) (FIXME) 大部分的Linux操作系統的預設shell都是`bash`,其原因大致如下兩種: - 自由軟件 - 功能強大 bash是gnu project最成功的產品之一,自推出以來深受廣大`Unix`用戶的喜愛, 且也逐漸成為不少組織的系統標準。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看