shell--鸟哥私房菜(1)
shell
-
检查shell
/etc/shells目录下- /bin/sh (已經被 /bin/bash 所取代)
- /bin/bash (就是 Linux 預設的 shell)
- /bin/tcsh (整合 C Shell ,提供更多的功能)
- /bin/csh (已經被 /bin/tcsh 所取代)
-
為什麼我們系統上合法的 shell 要寫入 /etc/shells
系統某些服務在運作過程中,會去檢查使用者能夠使用的 shells ,而這些 shell 的查詢就是藉由 /etc/shells
登入的時候,系統就會給我一個 shell 讓我來工作了。 而這個登入取得的 shell 就記錄在 /etc/passwd 。讓使用者無法以其他服務登入主機,就得將那些怪怪的 shell 寫到 /etc/shells 當中了。
-
记忆使用过的指令
在~/.bash_history 可找到,注意.bash_history记录的是前一次登入所执行的指令,这一次的指令存在记忆体中,当你退出系统后才会保存到.bash_history中!
-
命令别名的设定 –alias
alias lm=’ls -al’
查询指令是否为bash shell的内建命令:
『 \ [Enter] 』
-
删除长指令
[ctrl]+u 從游標處向前刪除指令串
[ctrl]+k 向後刪除指令串 -
echo变量
echo $HOME 或者是 echo ${HOME}
echo $MAIL 或者是 echo ${MAIL}变量与变量内容用‘=’连接;
myname=VBird
等号两边不能直接接空白字符;
myname = VBird或myname=VBird Tsai
变量内容若有空白可用“ 或者‘ 将内容结合起来;双引号内的$ 可保持原有特性,单引号内$ 为纯文字;
”\“将特殊符号转义;
myname=VBird\ Tsai
一串指令中还需额外指令提供资讯,使用反单引号`或$();
version=$(uname -r) 再 echo $version
可用 “$变量名” 或 ${变量} 累加內容;
PATH="$PATH":/home/bin 或 PATH=${PATH}:/home/bin
一个变量要在其他程序中使用需要export,来变为环境变量;
export PATH
取消變數的方法為使用 unset;
unset myname
-
若你有一個常去的工作目錄名稱為:/cluster/server/work/*_2015/003/,如何進行該目錄的簡化?
[[email protected] ~]$ work=”/cluster/server/work/*_2015/003/”
[[email protected] ~]$ cd $work\注:可以在 bash 的設定檔(~/.bashrc)中直接指定,那我每次登入只要執行
cd $work
就可以了 env
RANDOM – 随机数(介於 0~32767 之間)
-
set
-
PS1 – 提示符
\d :可顯示出『星期 月 日』的日期格式,如:”Mon Feb 2”
\H :完整的主機名稱。舉例來說,鳥哥的練習機為『study.centos.vbird』
\h :僅取主機名稱在第一個小數點之前的名字,如鳥哥主機則為『study』後面省略
\t :顯示時間,為 24 小時格式的『HH:MM:SS』
\T :顯示時間,為 12 小時格式的『HH:MM:SS』
\A :顯示時間,為 24 小時格式的『HH:MM』
\@ :顯示時間,為 12 小時格式的『am/pm』樣式
\u :目前使用者的帳號名稱,如『dmtsai』;
\v :BASH 的版本資訊,如鳥哥的測試主機版本為 4.2.46(1)-release,僅取『4.2』顯示
\w :完整的工作目錄名稱,由根目錄寫起的目錄名稱。但家目錄會以 ~ 取代;
\W :利用 basename 函數取得工作目錄名稱,所以僅會列出最後一個目錄名。
# :下達的第幾個指令。
$ :提示字元,如果是 root 時,提示字元為 # ,否則就是 $ 囉~
$ (shell的PID)
- ?:(關於上個執行指令的回傳值)
-