Linux 有問必答:如何知道當前正在使用的 shell 是哪個?
問題: 我經常在命令列中切換 shell。是否有一個快速簡便的方法來找出我當前正在使用的 shell 呢?此外,我怎麼能找到當前 shell 的版本?
找到你當前正在使用的 Shell 版本
有多種方式可以檢視你目前在使用什麼 shell,最簡單的方法就是通過使用 shell 的特殊引數。
其一,一個名為 "$$" 的特殊引數 表示當前你正在執行的 shell 例項的 PID。此引數是隻讀的,不能被修改。所以,下面的命令也將顯示你正在執行的 shell 的名字:
$ ps -p $$
PID TTY TIME CMD
21666 pts/4 00:00:00 bash
上述命令可在所有可用的 shell 中工作。
如果你不使用 csh,找到當前使用的 shell 的另外一個辦法是使用特殊引數 “$0” ,它表示當前正在執行的 shell 或 shell 指令碼的名稱。這是 Bash 的一個特殊引數,但也可用在其他 shell 中,如 sh、zsh、tcsh 或 dash。使用 echo 命令可以檢視你目前正在使用的 shell 的名稱。
$ echo $0
bash
不要被一個叫做 $SHELL 的單獨的環境變數所迷惑,它被設定為你的預設 shell 的完整路徑。因此,這個變數並不一定指向你當前使用的 shell。例如,即使你在終端中呼叫不同的 shell,$SHELL 也保持不變。
$ echo $SHELL
/bin/shell
因此,找出當前的shell,你應該使用 $$ 或 $0,但不是 $SHELL。
找出當前 Shell 的版本
一旦你知道你使用的是哪個 shell,你可能想知道此 shell 的版本。為此,在命令列中輸入 shell 並在後面加上 “--version” 引數可以檢視版本資訊。例如:
對於 bash shell :
$ bash --version
GNU bash, version 4.3.30(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
對於 zsh shell:
$ zsh --version
zsh 5.0.7 (x86_64-pc-linux-gnu)
對於 tcsh shell: $ tcsh --version
tcsh 6.18.01 (Astron) 2012-02-14 (x86_64-unknown-linux) options wide,nls,dl,al,kan,rh,nd,color,filec
對於某些 shell,你還可以使用 shell 特定的變數(例如,$BASHVERSION 或 $ZSHVERSION)。
$ echo $BASH_VERSION
4.3.8(1)-release
via: http://ask.xmodulo.com/which-shell-am-i-using.html
作者:Dan Nanni 譯者:strugglingyouth 校對:wxy
相關文章
- Linux 有問必答:如何知道程式執行在哪個 CPU 核心上?Linux
- Linux有問必答:如何檢查Linux的記憶體使用狀況Linux記憶體
- Linux有問必答:如何更新過期版本的UbuntuLinuxUbuntu
- Linux有問必答:Linux上如何檢視某個程式的執行緒Linux執行緒
- Linux有問必答:如何在Linux下重新命名多個檔案Linux
- 如何檢視某個Linux, Unix登入使用者使用的哪個shell (k shell, b shell, c shell , /sbiLinux
- Linux有問必答:如何在命令列建立一個MySQL資料庫Linux命令列MySql資料庫
- 如何知道 Git clone 時 GitHub 使用的是哪個 SSH key 呢Github
- Linux有問必答:如何用Perl檢測Linux的發行版本Linux
- 如何檢視某個Linux, Unix登入使用者使用的哪個shell (k shell, b shell, c shell , /sbin/sh)Linux
- Linux有問必答:如何顯示Linux網橋的MAC學習表LinuxMac
- Linux有問必答:如何在Linux中修改環境變數PATHLinux變數
- Linux有問必答:如何在命令列下壓縮JPEG影像Linux命令列
- Linux有問必答:如何檢查MariaDB服務端版本Linux服務端
- 如何檢視Linux 當前訪問ipLinux
- 你知道你自己最經常使用的是哪幾個Linux命令呢?Linux
- Linux有問必答:如何為在Linux中安裝兄弟牌印表機Linux
- Linux有問必答:如何在 Ubuntu 15.04 的 GNOME 終端中開啟多個標籤LinuxUbuntu
- Linux有問必答:如何修復“sshd error: could not load host key”LinuxError
- 檢視當前使用者正在等待事件事件
- Linux 有問必答:如何使用yum來下載RPM包而不進行安裝Linux
- 什麼是shell?Linux常用的shell有哪些?Linux
- Linux 有問必答:如何從VirtualBox中從主機訪問NAT客戶機Linux
- 在Linux中,如何使用shell指令碼判斷某個服務是否正在執行?Linux指令碼
- OB有問必答 | 引數和變數的區別是什麼?變數
- 當前主流瀏覽器核心有哪幾個瀏覽器
- 請問有誰知道哪裡有Optimizeit下載啊?
- 在Linux中,如何利用Shell把10臺主機的當前時間寫到一個檔案裡邊?Linux
- 什麼是shell?Linux中shell有什麼用途?Linux
- 查詢當前正在執行的job的情況
- OB有問必答 | OceanBase如何保證資料可靠性?
- Linux 有問必答:如何在Ubuntu或者Debian中編譯安裝ixgbe驅動LinuxUbuntu編譯
- Linux有問必答:如何在VMware ESXi虛擬機器上設定靜態MAC地址Linux虛擬機Mac
- Linux當前當前程式Linux
- 【Linux】什麼是shell指令碼?shell變數分為哪幾類?Linux指令碼變數
- Python求解錯,不知道哪裡有問題。。。Python
- Linux有問必答:怎麼用CheckInstall從原始碼建立一個RPM或DEB包Linux原始碼
- Linux 有問必答:如何在桌面版 Ubuntu 中用命令列更改系統代理設定LinuxUbuntu命令列