首頁 > 軟體

Shell入門:掌握Linux,OS X,Unix的Shell環境

2020-06-16 18:03:38

在Linux或類Unix系統中,每個使用者和進程都執行在一個特定環境中。這個環境包含了變數、設定、別名、函數以及更多的東西。下面是對Shell環境下一些常用命令的簡單介紹,包括每個命令如何使用的例子,以及在命令列下設定你自己的環境來提高效率。

找出你當前的shell

在終端應用中輸入下面命令中的任意一個:

  1. ps $$
  2. ps -p $$

或者

  1. echo "$0"

輸出範例:

圖1:找出當前的shell

找出所有已安裝的shell

找到已安裝shell的完整路徑:

  1. type -a zsh
  2. type -a ksh
  3. type -a sh
  4. type -a bash

輸出範例:

圖2:找出shell的路徑

檔案/etc/shells里包含了系統所支援的shell列表。每一行代表一個shell,是相對根目錄的完整路徑。用這個cat命令來檢視這些資料:

  1. cat /etc/shells

輸出範例:

  1. # List of acceptable shells for chpass(1).
  2. # Ftpd will not allow users to connect who are not using
  3. # one of these shells.
  4. /bin/bash
  5. /bin/csh
  6. /bin/ksh
  7. /bin/sh
  8. /bin/tcsh
  9. /bin/zsh
  10. /usr/local/bin/fish

臨時改變當前shell

只需要輸入shell的名字。在下面的例子裡,我從bash切換到了zsh:

  1. zsh

這只是臨時改變了系統shell。也叫做子shell。要從子/臨時shell退出,輸入下面的命令或者按下CTRL-D:

  1. exit

找出子shell的層級或臨時shell的巢狀層級

每個bash範例啟動後,變數$SHLVL的值都會加一。輸入下面的命令:

  1. echo "$SHLVL"

範例輸出:

圖3:Bash shell巢狀層級(子shell數目)

通過chsh命令永久變更系統shell

想要把當前系統shell從bash永久換成zsh?試試這個:

  1. chsh -s /bin/zsh

想把其他使用者的shell從bash永久換成ksh?試試這個:

  1. sudo chsh -s /bin/ksh userNameHere

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2015-03/115606p2.htm


IT145.com E-mail:sddin#qq.com