Shell 是 Unix-like 作業系統的命令解譯器。它接收使用者輸入的指令,呼叫核心執行。簡單說,Shell 是作業系統的包裝層,提供人機介面。
$ ls
config data pam test
$ 是 Shell 提示符,表示等待輸入。輸入 ls 並按 Enter,Shell 解析指令並執行。
$:一般使用者#:root 使用者PS1 環境變數修改提示符外觀| Shell | 路徑 | 特色 | 預設環境 |
|---|---|---|---|
| Bourne Shell (sh) | /bin/sh | 原始 Unix Shell,功能最基本 | 所有 Unix-like |
| C Shell (csh) | /bin/csh | 語法類 C 語言,支援歷史指令回顧 | BSD 系統 |
| Korn Shell (ksh) | /bin/ksh | 兼容 sh,加入陣列、函數等進階功能 | AIX, HP-UX |
| Bash (Bourne Again Shell) | /bin/bash | 整合 ksh、csh 優點,功能最豐富 | Linux, macOS |
| Tcsh | /bin/tcsh | csh 增強版,支援命令列編輯、Tab 自動完成 | 部分 Linux |
包含一或多條指令的文字檔案。Shell 逐行讀取並執行,如同在終端機手動輸入。
#!/bin/bash
# Written by LinuxTechi
pwd
date
#!/bin/bash:Shebang,指定解譯器#:註解chmod +x myscript.sh
./myscript.sh
# 或
bash myscript.sh
#!/bin/bash
echo 'What is Your Name?'
read name
echo "My Name is, $name"
$ ./myscript.sh
What is Your Name?
Linuxtechi
My Name is, Linuxtechi
read 讀取使用者輸入,echo 輸出結果$var 或 ${var}if/case) 與迴圈 (for/while)set -x, bash -x)awk, sed, grepShell Scripting 是 Linux 系統管理與 DevOps 的核心技能,從基礎開始扎實練習,將獲得極高的投資報酬率。