認識BASH這個Shell
阿新 • • 發佈:2020-11-22
20.11.22
合法shell
- /bin/sh (已經被 /bin/bash 所取代)
- /bin/bash (就是 Linux 預設的 shell)
- /bin/ksh (Kornshell 由 AT&T Bell lab. 發展出來的,兼容於 bash)
- /bin/tcsh (整合 C Shell ,提供更多的功能)
- /bin/csh (已經被 /bin/tcsh 所取代)
- /bin/zsh (基於 ksh 發展出來的,功能更強大的 shell)
Bash shell
-
命令編修能力 (history)
- 記錄命令
- ~/.bash_history 記錄的是前一次登陸以前所執行過的命令
- 當前這次登陸所執行的命令都被快取在記憶體中,登出後才會記錄到 ~/.bash_history
-
與檔案補全功能 ([tab] 按鍵的好處)
- [Tab] 接在一串命令的第一個字的後面,則為命令補全;
- [Tab] 接在一串命令的第二個字以後時,則為『檔案補齊』!
-
命令別名配置功能 (alias)
- alias 就可以知道目前的命令別名有哪些
- 例:alias lm='ls -al'
-
任務管理、前臺、後臺控制 (job control, foreground, background)
-
程式化指令碼 (shell scripts)
-
萬用字元 (Wildcard)
- 想要知道 /usr/bin 底下有多少以 X 為開頭的檔案嗎?使用:『 ls -l /usr/bin/X* 』
Bash shell 的內建命令: type
type [-tpa] name
:檢視是否為內建命令
選項與引數:
:不加任何選項與引數時,type 會顯示出 name 是外部命令還是 bash 內建命令
-t :當加入 -t 引數時,type 會將 name 以底下這些字眼顯示出他的意義:
file :表示為外部命令;
alias :表示該命令為命令別名所配置的名稱;
builtin :表示該命令為 bash 內建的命令功能;
-p :如果後面接的 name 為外部命令時,才會顯示完整檔名;
-a :會由 PATH 變數定義的路徑中,將所有含 name 的命令都列出來,包含 alias
命令的下達
範例:如果命令串太長的話,如何使用兩行來輸出?
[vbird@www ~]# cp /var/spool/mail/root /etc/crontab \
> /etc/fstab /root
需要特別留意, [Enter] 按鍵是緊接著反斜槓 () 的,兩者中間沒有其他字元。 因為 \ 僅跳脫『緊接著的下一個字元』而已!