如何使用chsh在linux上更改預設shell

Bash不是唯一的Linux shell。很容易嘗試其他的shell,比如非常流行的Zsh。找到一個您喜歡的shell後,使用chsh命令將其設定為預設shell。我們會教你怎麼做。...

Bash不是唯一的Linux shell。很容易嘗試其他的shell,比如非常流行的Zsh。找到一個您喜歡的shell後,使用chsh命令將其設定為預設shell。我們會教你怎麼做。

為什麼貝殼很重要

shell位於您和作業系統之間。它在終端視窗內提供環境,允許您鍵入命令和執行程式。shell檢查您的輸入並找出您想要的內容。如果它能執行你的出價本身,它這樣做。如果它需要外部幫助,它會搜尋路徑並找到可以執行您所請求的任何操作的程式。

Linux上有許多不同的shell。它們都允許您執行相同的核心任務:瀏覽檔案系統、處理檔案、啟動程式和執行指令碼。然而,他們每個人都以自己的方式執行這些任務,並有自己的特點和特質。

貝殼往往是由那些希望事物以特定方式執行的人設計的。如果你的想法和設計師的一致,那麼這個外殼很可能很適合你。另外,在Linux上嘗試一個新的shell也很容易。

在包括Ubuntu在內的大多數Linux發行版中,預設shell是bash。它做得很好,很能幹。然而,另一個shell可能會提供一個節省時間的差異,這將對您的工作流產生很大的影響。如果你不看,你永遠不會知道!

相關:什麼是ZSH,為什麼要用它來代替Bash?

一桶貝殼

我們之前已經介紹了不同的Linux shell,但下面簡要介紹一下最常見的:

  • bash:Bourne shell在許多發行版中都是預設的。
  • rbash:這個受限的bashshell為其中執行的人員或指令碼提供了最少的功能。
  • ash:Almquist shell是bash的較輕版本。
  • 破折號:Debian Alquist Shell是Ubuntu中的預設Shell指令碼。bash是預設的登入和互動式shell,dash用於執行系統程序,因為它比bash輕得多。
  • zsh:Z shell是bash shell家族的一個現代版本。它提供了整潔的改進,比如命令拼寫檢查和建議的更正。
  • fish:這個友好的互動式shell是從頭開始編寫的,並不是從任何其他shell家族派生的。它的目的是使用者友好。在它的許多其他特權中,fish根據您的歷史記錄和當前資料夾的內容為命令提供建議,類似於預測文字。
  • ksh:KornShell提供了一種特別強大的指令碼語言。

相關:Bash、Zsh和其他Linux shell之間有什麼區別?

列出已安裝的外殼

要檢視計算機上安裝了哪些shell,請使用以下命令。它只列出/etc/shell檔案的內容:

cat /etc/shells

如何使用chsh在linux上更改預設shell

我們提到了bash、dash和rbash,但是sh是什麼?

sh是湯普森殼,寫於1971年,由貝爾實驗室的Ken Thompson成名。它不再被維護,而且早已被現代貝殼所取代。包含它純粹是為了保持與舊指令碼的相容性,舊指令碼的第一行仍然是以下內容:

#!/bin/sh

這指示系統使用sh shell執行指令碼。你的機器上真的有那個古老的外殼嗎?它是用來執行你的指令碼的嗎?which命令將告訴我們在鍵入命令時實際執行的程式。

讓我們看看鍵入sh時執行什麼:

which sh

這似乎找到了一個二進位制檔案。不過,如果我們再深入一點,就會發現它是一個符號連結,實際上指向dash,一個用於執行指令碼的輕量級shell:

ls -l /bin/sh

如何使用chsh在linux上更改預設shell

這是一種簡潔、輕量級的方法,可以為希望在現代系統上找到sh的指令碼提供一個安全網。

安裝另一個外殼

讓我們安裝fish shell並將其設定為dave的預設值。在Ubuntu上,我們鍵入以下命令:

sudo apt-get install fish

如何使用chsh在linux上更改預設shell

在Manjaro上,使用pacman:

sudo pacman -Sy fish

如何使用chsh在linux上更改預設shell

在Fedora上,鍵入以下內容:

sudo dnf install fish

如何使用chsh在linux上更改預設shell

安裝完成後,可以再次檢查已安裝的shell:

cat /etc/shells

如何使用chsh在linux上更改預設shell

我們的新外殼顯示為/usr/bin/fish。記下你很快就會用到的那條路。

$shell環境變數

$SHELL環境變數儲存當前SHELL的名稱。我們可以用echo檢查它設定為哪一個:

echo $SHELL

讓我們從魚殼開始:

fish

現在,讓我們再次檢查$SHELL環境變數的含義:

echo $SHELL

如何使用chsh在linux上更改預設shell

第一次使用echo$SHELL時,我們使用的是bash SHELL。環境變數儲存bash可執行檔案/bin/bash的路徑。

當我們啟動FishShell時,會收到一條友好的歡迎訊息,並且命令提示符會發生變化。可能令人驚訝的是,$SHELL環境仍然持有bash可執行檔案/bin/bash的路徑。沒關係,這很正常。

啟動新shell(或任何其他程式)時,它將繼承父shell的環境。因此,fish shell從bash shell繼承全域性和匯出的環境變數。因為$SHELL環境變數中的值沒有更改,所以它在fish SHELL中的值與在bash SHELL中的值相同。

我們像其他程式一樣在執行魚。我們也可以使用exit退出魚殼。它像其他程式一樣關閉,我們返回bash shell。

這是偉大的嘗試新的貝殼,看看他們能做什麼,你是否與他們相處。你可以在跳傘前進行探索,然後選擇一個作為你的跳傘。

如果決定將fish或任何其他shell設為預設值,則需要使用chsh命令。

chsh命令

chsh命令允許您更改預設shell。訣竅在於它允許您更改預設登入和預設互動shell。你可能想改變一個或另一個,或兩者兼而有之。

每當您登入以獲得命令提示符時,都會使用配置為登入shell的shell。當您已經登入並開啟終端視窗時,您將使用配置為互動式shell的shell。這些殼可以是相同的,也可以是不同的。

要設定登入shell,請使用不帶引數的chsh:

chsh

如何使用chsh在linux上更改預設shell

系統會提示您輸入密碼。然後,必須鍵入新shell的路徑並按Enter鍵。

如果我們從另一臺遠端連線到這臺測試計算機,一旦登入,我們就會發現自己身陷囹圄。

如何使用chsh在linux上更改預設shell

要更改互動式shell,請使用chsh和-s(shell)選項。在命令列上傳遞新shell的路徑:

chsh -s /usr/bin/fish

如何使用chsh在linux上更改預設shell

系統將提示您輸入密碼並返回到當前shell的命令提示符。您需要登出並重新登入才能使更改生效。當您這樣做時,您將看到問候語和fish shell命令提示符。

$SHELL環境變數現在儲存新預設SHELL的路徑:

echo $SHELL

如何使用chsh在linux上更改預設shell

更改其他使用者帳戶的shell

如果您具有root許可權並且可以使用sudo,則可以更改其他使用者帳戶的shell。命令與之前相同,在命令列中添加了此人的使用者名稱:

sudo chsh -s /usr/bin/fish mary

如何使用chsh在linux上更改預設shell

當mary下次登入時,當她開啟一個終端視窗時,就會看到新的shell。

如何使用chsh在linux上更改預設shell

每個人都有自己的最愛

只要你對你選擇的外殼感到舒適,它對你來說太好了!請記住,它必須能夠執行常見的指令碼,例如安裝例程。對於這裡提到的貝殼,這應該不是問題。

當然,您也可以下載並安裝一個新的shell,並將其作為一個試駕,而無需對您的計算機進行任何配置更改。當你準備結婚時,chsh將為你主持婚禮。

  • 發表於 2021-04-02 06:04
  • 閱讀 ( 65 )
  • 分類:網際網路

你可能感興趣的文章

如何在ubuntu中安裝和更改主題

... 如何在ubuntu中安裝主題 ...

  • 發佈於 2021-03-24 21:26
  • 閲讀 ( 54 )

如何使用pydroid3在android上安裝和編寫python程式碼

... 無論您是Python程式設計新手還是專家,讓我們來看看您如何在Android裝置上充分發揮pydroid3的潛力。 ...

  • 發佈於 2021-03-30 03:41
  • 閲讀 ( 88 )

哪個linux shell最好?比較了5種常見的貝殼

...你的計算機需要一個翻譯層。這介於你告訴它做什麼和它如何理解之間。 ...

  • 發佈於 2021-03-30 18:45
  • 閲讀 ( 50 )

如何使用受限shell來限制linux使用者可以做什麼

...改其目錄,您可以控制他們可以訪問哪些命令。下面介紹如何在Linux上設定受限shell。 受限炮彈 受限shell不是另一個shell。這是標準外殼的另一種模式。Bash、Korn、Fish和其他shell都可以在受限shell模式下啟動。在本文中,我們將...

  • 發佈於 2021-03-31 10:57
  • 閲讀 ( 56 )

如何使用shopt定製bashshell

...shshell的行為,您可以控制超過50個設定。我們將向您展示如何按照您喜歡的方式定製您的Linux系統。 shopt內建 shopt內建是bashshell所有版本的一部分,因此不需要安裝任何東西。多年來,shopt提供的選項數量穩步增加。所以,Bash...

  • 發佈於 2021-04-01 12:30
  • 閲讀 ( 58 )

如何在linux上以彩色顯示手冊頁

...出顯示的文字。 向下滾動,您將看到頁面的不同元素是如何著色的。 多用與少用非常相似,但也有一些不同。在most中按H可檢視鍵繫結及其函式的列表。 用更少的顏色 如果你不想安裝另一個尋呼機或必須學習新的按鍵,有一...

  • 發佈於 2021-04-01 20:53
  • 閲讀 ( 42 )

systemd將改變linux主目錄的工作方式

...一個分支,它的建立完全是為了避免使用systemd。 相關:如何在Linux系統上管理Systemd服務 $home目錄 在Linux目錄結構中,您所做的一切都駐留在“/home”目錄中。您的資料檔案、影象、音樂和整個個人目錄樹都儲存在這個以您的使...

  • 發佈於 2021-04-02 04:05
  • 閲讀 ( 49 )

新的windows終端已經準備好了,這就是為什麼它如此驚人

...uild2020上,微軟宣佈新的Windows終端穩定並且“可以供企業使用”。它最初是在Build2019釋出的,微軟甚至準備了一段炫目的影片來宣傳它有多棒。 新的Windows終端具有許多有用的功能。除了功能之外,控制檯環境的核心已經現代化...

  • 發佈於 2021-04-02 04:44
  • 閲讀 ( 52 )

如何在linux上的bash中設定環境變數

Linux上有多種型別的環境變數。瞭解如何檢視它們,為本地和遠端登入建立它們,並使它們在重新啟動後仍然有效。 環境變數的工作原理 啟動終端視窗及其內部的shell時,會引用一組變數,以確保shell配置正確。這些變數還確...

  • 發佈於 2021-04-02 06:44
  • 閲讀 ( 57 )

如何在linux上使用cd命令

...小又簡單。 在使用Linux計算機的第一個小時內,您將學習如何使用Bash和其他shell附帶的cd命令。也許您以前有在其他作業系統上使用它的經驗,不需要解釋。它會改變當前的工作目錄,對嗎?還有什麼要知道的? 好吧,比你想象...

  • 發佈於 2021-04-02 08:58
  • 閲讀 ( 67 )
fedgulf
fedgulf

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦