Shell

互動式 shell、登錄 shell、非登錄 shell 及其案例有什麼區別?

  • March 29, 2021

可能重複:

登錄外殼和非登錄外殼之間的區別?

我一直在看/etc/profile。bash.bashrc 查看它們是如何執行的,並註意有些是由非登錄 shell 執行的,有些是使用互動式 shell 等工作的。

這種類型的shell有什麼區別,即互動式和非互動式,登錄和非登錄等?

這個問題可能很基本,但似乎我首先需要問一下 shell 是什麼。什麼是外殼,它的相關性是什麼,你如何使用它,以及它為什麼存在?

更新:為了更好地理解問題的意圖,除了定義之外,我還需要了解一種外殼類型或另一種外殼的案例。幫助理解的是案例,而不僅僅是字典定義。

外殼是為您提供與電腦互動的文本界面的任何程序的通用名稱。您鍵入命令,輸出將顯示在螢幕上。

許多 shell 具有腳本功能:將多個命令放入腳本中,shell 執行它們,就好像它們是從鍵盤輸入的一樣。大多數 shell 提供額外的程式結構,將腳本功能擴展到程式語言。

在大多數 Unix/Linux 系統上,有多個 shell 可用:bash、csh、ksh、sh、tcsh、zsh 等等。它們在為使用者提供操作命令的各種選項以及腳本語言的複雜性和功能方面有所不同。

**互動:**顧名思義:互動意味著命令通過鍵盤的使用者互動執行。例如,shell 可以提示使用者輸入輸入。

非互動式: shell 可能是從一個自動化程序執行的,因此它不能假設它可以請求輸入或有人會看到輸出。例如,也許最好將輸出寫入日誌文件。

**登錄:**表示 shell 作為使用者登錄系統的一部分執行。通常用於執行使用者需要/想要建立其工作環境的任何配置。

**非登錄:**使用者登錄後執行的任何其他 shell,或者由與登錄使用者不耦合的任何自動化程序執行的任何其他 shell。

引用自:https://unix.stackexchange.com/questions/50665