**** PS1[prompt[提示] string 1] 符號正則表達式
\$ | 若是以root身份運行的話,就顯示爲#,不然就是$ |
\w | 工做目錄的路徑名 |
\W | 工做目錄的基名 |
\! | 當前事件(歷史)編號 |
\d | 按照「工做日/月/日期」格式顯示的日期 |
\h | 計算機的主機名,不包括域名 |
\H | 計算機全名,包括域名 |
\u | 當前用戶的用戶名 |
\@ | 按照12小時制,AM/PM格式顯示的當前時間值 |
\T | 按照12小時制,HH:MM:SS格式顯示當前時間 |
\A | 按照24小時制,HH:MM格式顯示當前時間 |
\t | 按照24小時制,HH:MM:SS格式顯示當前時間 |
*** bash關鍵字變量shell
BASH_ENV | 用於非交互式shell的初始化文件的路徑名 |
CDPATH | cd命令的搜索路徑 |
COLUMNS | select命令使用的顯示寬度 |
FCEDIT | fc默認使用的編輯器名稱 |
HISTFILE | 保存歷史列表文件的路徑名(默認爲~/.bash_history) |
HISTFILESIZE | 保存在HISTFILE中的最大項數 |
HOME | 用戶主目錄的路徑名,用做cd命令的默認參數或用在代字符(~)表達式中 |
IFS(internal field separator) | 內部字段分隔符,用於分詞 |
INPUTRC | readline 初始化文件的路徑名(默認爲~/.inputrc) |
LANG | 沒有用LC_*變量特別設置時的區域目錄 |
LC_* | 指定了區域目錄,包括LC_COLLATE、LC_CTYPE、LC_MESSAGES和LC_NUMBERIC的一組變量,使用內置命令locale能夠顯示值的列表 |
LINES | select使用的顯示高度 |
保存用戶郵件的文件的路徑名 | |
MAILCHECK | 以秒爲單位定義了bash檢查郵件的頻率 |
MAILPATH | bash檢查郵件文件的路徑名列表,名字之間用冒號隔開 |
PATH | bash查找命令的目錄路徑名列表,名字之間用冒號隔開 |
PROMPT_COMMAND | bash在顯示主提示符以前要執行的命令 |
PS1(prompt string 1) | 提示符1,主提示符(默認爲 "\s-\v\$ ") |
PS2(prompt string 2) | 提示符2,主提示符(默認爲 "> ") |
PS3 | select 發出的提示符 |
PS4 | bash調試符 |
REPLY | 保存read接受的行,還用於select |
**** shell特殊字符vim
換行符 | 啓動命令執行 |
; | 分隔字符 |
() | 經過子shell,或者標示函數執行命令分組 |
& | 在後臺執行命令 |
| | 將前一個命令的輸出發送給其後面的命令(管道) |
> | 重定向標準輸出 |
>> | 重定向標準輸出(在後面追加) |
< | 重定向標準輸入 |
<< | Here文檔 |
* | 模糊文件引用中的0個或多個字符組成的串 |
? | 模糊文件引用中任何單個字符 |
\ | 引用後面的字符 |
' | 引用字符串,阻止全部替換 |
" | 引用字符串,只容許變量替換和命令替換 |
`...` | 執行命令替換 |
[] | 字符範圍。用做正則表達式的一部分,描述一個匹配的字符範圍。做爲test用途的中括號內不能使用正則。好比:[0-9]、[a-z]等 |
$ | 引用某個變量 |
.(內置句點 source) | 執行命令(只在行首) |
# | 開始一行註釋 |
{} | 用來封裝函數體 |
:() | 返回true |
&& | 與 |
|| | 或 |
! | 非 |
$()【tcsh中沒有】 | 執行命令替換(優先形式) |
[] | 計算算術表達式的值 |
Here文檔是一種具備特殊功能的代碼塊,是I/O重定向的一種特例。Here文檔採用I/O重定向的方法,把一系列須要從鍵盤輸入的命令,模擬人工輸入的方式,一行一行地交給交互式應用程序或命令。其具體的語法格式以下:bash
program<<limitstring編輯器
command1函數
command2.net
command3調試
.......blog
commandN事件
limitString
其中,特殊的I/O重定向符號「<<」與「LimitString 」是here文檔的開始,單獨另起一行的第二個Limitstring 表示here文檔的結束。
下面的例子說明怎樣利用here文檔運行vim編輯器,模擬vim編輯器的交互過程,輸入「i」命令和ESC鍵,插入兩行數據,最後把編輯器的數據內容寫入特定的文件。
#!/bin/bash // emnvim
if [ -z "$1" ]
then
echo "Usage :`basename $0` filename"
exit 1
fi
vim $1<<EOF
i
I cannot choose the best.
the best choosr me.
^[
zz
EOF
exit 0
使用下列命令運行shell 腳本時,便可獲得一個自動編輯的文本文件
$emnvim fname
$cat fname
I cannot choose the best.
the best choose me.
注意:here文檔要求其中的輸入數據,尤爲是做爲結束標誌的字符串分界符"LimitString"必須位於單獨另起一行的起始位置。