Linux Shell 命令行操作核心知識體系
原文標題為「Java獲得本地的日出日落時光」但內容實為 Linux Shell 基礎教程。本文整理命令行格式、選項參數、通配符、引號、歷史與編輯等核心知識。
命令行基本格式
$ Command [Options] [Arguments]
- 選項:以 `-` 或 `--` 開頭,修改命令行為(如 `ls -l`、`ls --all`)。
- 參數:命令操作的對象(如 `cp src.txt dest.txt`)。
- 空格或 Tab 分隔各詞元。
常用選項範例 (ls)
$ ls
motd passwd
$ ls -l
total 2
-rw-r--r-- 2 wzh book 22 Apr 20 20:37 motd
-rw-r--r-- 2 wzh book 796 Apr 20 20:37 passwd
通配符
| 符號 | 含義 | 範例匹配 |
* | 任意長度字串 (含空) | *.txt、log*、* |
? | 單一字元 | file?.txt 匹配 file1.txt |
[abc] | 括號內任一字元 | [abc]*.log |
[a-z] | 字元範圍 | file[0-9].dat |
[!abc] | 非括號內字元 | [!0-9]* |
注意:通配符由 Shell 展開,命令本身不見通配符;隱藏檔 (以 `.` 開頭) 需顯式 `.*` 匹配。
引號機制
| 引號 | 行為 | 範例 |
單引號 ' | 強引用:所有字元字面意義,變數不展開 | echo '$PATH' → $PATH |
雙引號 " | 弱引用:保留 $ `` \ " 特殊意義 | echo "$PATH" → 變數值 |
反引號 ` | 命令替換:執行命令並以輸出取代 | today=`date`、files=`ls *.txt` |
現代建議用 $() 替代反引號:today=$(date),支援巢狀且可讀性佳。
命令行編輯與歷史
- Backspace/Ctrl+U:刪除字元/整行。
- ↑/↓:瀏覽歷史命令。
- Ctrl+R:反向搜尋歷史 (輸入關鍵字即時過濾)。
- Tab:自動補全路徑/命令/參數。
; 分隔多命令同行執行:ls; pwd。
\ 行尾續行:cp file1.txt \ 新行 file2.txt。
特殊字元速查
# 註解
; 命令分隔
& 背景執行
| 管線
> 輸出重導向
< 輸入重導向
$ 變數引用
` 命令替換 (舊)
() 子 Shell / 命令群組
{} 參數展開 / 命令群組 (無子 Shell)
進階學習資源
- 上一篇文章: Java 比較兩個陣列元素是否相同 (忽略順序)
- 下一篇文章: Java 運算符 >、>>、>>> 詳細差異解析
Copyright ©
程式碼之家 All Rights Reserved