天天看點

學習Shell(一)

檢視 Shell

Shell 是一個程式,一般都是放在

/bin

或者

/user/bin

目錄下,目前 Linux 系統可用的 Shell 都記錄在

/etc/shells

檔案中。

/etc/shells

是一個純文字檔案,你可以在圖形界面下打開它,也可以使用 cat 指令檢視它。

通過 cat 指令來檢視目前 Linux 系統的可用 Shell:

$ cat /etc/shells      
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin      

在現代的 Linux 上,sh 已經被 bash 代替,

/bin/sh

往往是指向

/bin/bash

的符号連結。

如果你希望檢視目前 Linux 的預設 Shell,那麼可以輸出 SHELL 環境變量:

$ echo $SHELL      
/bin/bash      

輸出結果表明預設的 Shell 是 bash。

Shell 提示符

對于普通使用者,Base shell 預設的提示符是美元符号

$

;對于超級使用者(root 使用者),Bash Shell 預設的提示符是井号

#

。該符号表示 Shell 等待輸入指令。

[root@localhost ~]#       

這種格式包含了以下三個方面的資訊:

  • 啟動 Shell 的使用者名,也即 mozhiyan;
  • 本地主機名稱,也即 localhost;
  • 目前目錄,波浪号

    ~

    是主目錄的簡寫表示法。

Shell 通過

PS1

PS2

兩個環境變量來控制提示符格式:

  • PS1 控制最外層指令行的提示符格式。
  • PS2 控制第二層指令行的提示符格式。

要顯示提示符的目前格式,可以使用 echo 輸出 PS1 和 PS2:

[root@localhost ~]# echo $PS1
[\u@\h \W]\$
[root@localhost ~]# echo $PS2
>      

Bash shell 提示符可以包含的要素

字元 描述
\a 鈴聲字元
\d 格式為“日 月 年”的日期
\e ASCII轉義字元
\h 本地主機名
\H 完全合格的限定域主機名
\j shell目前管理的作業數
\1 shell終端裝置名的基本名稱
\n ASCII換行字元
\r ASCII回車
\s shell的名稱
\t 格式為“小時:分鐘:秒”的24小時制的目前時間
\T 格式為“小時:分鐘:秒”的12小時制的目前時間
\@ 格式為am/pm的12小時制的目前時間
\u 目前使用者的使用者名
\v bash shell的版本
\V bash shell的釋出級别
\w 目前工作目錄
\W 目前工作目錄的基本名稱
\! 該指令的bash shell曆史數
\# 該指令的指令數量
\$ 如果是普通使用者,則為美元符号

$

;如果超級使用者(root 使用者),則為井号

#

\nnn 對應于八進制值 nnn 的字元
\\ 斜杠
\[ 控制碼序列的開頭
\] 控制碼序列的結尾
[root@localhost ~]# PS1="[\t][\u]\$ "
[22:12:45][root]$       

原創文章請随便轉載。願和大家分享,并且一起進步。-- 江 coder

繼續閱讀