linux commands

basic

command
command arguments
command -options
command -options arguments
command --long_form_options
cd <path>
ls
ls -alh  # -a 顯示隱藏黨 -l 使用長格式 -h 檔案大小使用人類可讀
ls -l --sort=time  # 以時間做排序
ls -l --sort=size  # 以大小做排序
ls -lc  # 顯示修改時間
ls -lu  # 顯示訪問時間
pwd
touch <file>  # 創建檔案/更新檔案時間
file <file>  # 可以查看檔案的實際類型
mkdir <directory>
mkdir -p <directory>  # 多層式創建資料夾
rm <file>  # 移除檔案
rm -d  <dir>  # 刪除空資料夾(或者用rmdir <dir>)
rm -r  <dir>  # 遞迴刪除
rm -i  # 互動式
rm -rf  # 遞迴強制刪除

mv <source> <destination>  # 移動或重命名檔案或資料夾,移動可一次移動多個

cp mv <source> <destination>  #複製文件
cp -r mv <source> <destination>  # 複製整個資料夾
clear  # 清除畫面輸出 (也可以使用 ctrl + L)

histroy  # 列出歷史紀錄命令
!<number>  # 使用 history 的某個指令

快捷(Shortcuts)

ctrl + L  # 相當於執行了 clear
ctrl + A  # 游標移動到最前面
ctrl + E  # 游標移動到最後面
ctrl + T  # 交換前後'字母或單字'的位置 (依游標位置決定)
ctrl + U  # 刪除前面所有字
ctrl + K  # 刪除後面所有字
ctrl + W  # 向前刪除一個單字
alt  + D  # 向後刪除一個單字
ctrl + Y  # 任何上面刪除的字都會被暫時存放到另一個剪貼簿,都可由此指令貼上

查看指令類型(type)

type <arguments>
type clear  # An executable program (is heahed)
type mkdir
type cd  # A built-in shell command
type cow  # An alias

手冊(man)

man arguments  # 查詢某指令的手冊
man -k <arguments>  # 查詢特定關鍵字
man <number> <arguments>  # 查詢特定指令的第一章節

幫助(help)

help arguments  # 如果一個指令是 built-in,則必須使用 help 查看  (例如 cd pwd export)

查詢指令位置(which)

which <arguments>
which clear

顯示日期(data/cal/ncal)

date

cal

ncal
ncal 2024
ncal july 2024
ncal -A 1 -B 2
ncal -A1 -B2

迴響(echo)

echo <arguments>  # 列印

env  # 顯示環境變數 (需要加 $)
prinenv  # 顯示環境變數 (不用加 $)

whoami  # 顯示當前用戶名

環境變數

export PORT=8080 # 新增環境變數(範例: PORT=8080)

排序(sort)

sort <file>
sort -r -u <file>
sort -ru <file>
sort --reverse --unique <file>
sort -n <file>  # 可以對數字大小做排序
sort -n -k <number> <file>  # 針對特定欄位排序

以 GUI 方式開啟目錄(xdg-open)

xdg-open ~

編輯檔案(nano)

nano <file>  # 如果檔案不存在會創建

檢視檔案

cat <file>  # 檢視檔案  # -n 顯示行號
tac <file>  # 反轉 cat
less <file>  # 分頁檢視檔案 F 下一頁, B 上一頁, / 搜尋
head -n 10 <file>  # 顯示頭10行資料 (n預設就是10,也可以直接 -5n 或 -5 顯示前5行)
tail -f <file>  # 除了與 head 類似功能之外,還可即時顯示最新輸出
ls <path> -lh | sort -k5h  # 依照檔案大小排序  # 加上 -r 可以反轉

重導向(redirecting)

command > <filename>  # 新增/覆寫檔案
command >> <filename>  # 覆加到檔案

command < <filename>  # 讀取檔案並傳入到 command

command 2> <filename>  # standard error
command 2>> <filename>  # 附加standard error

command > <filename> 2> <filename2>  # 將 standard output 和 standard error 寫入到不同檔案
command > <filename> 2>&1  # 同時將 standard output 和 standard error 寫入到同一個檔案
command &> <filename>  # 同上

command | less  # 將 command 的輸出傳入到 less 做為輸入

尋找(find)

locate <string>  # 快速搜尋檔案
find <path> -type f  # 搜尋檔案
find <path> -type d  # 搜尋資料夾
find <path> -name <filename>  # 搜尋檔案
find <path> -iname <filename>  # 不區分大小寫
find <path> -size +10M  # 搜尋大於10M的檔案
find <path> -empty -type d  # 搜尋空資料夾

不常用

wc  # 計算行數、字數、字元數
tr  # replace or remove specific characters
rev  # 反轉字元
tee  # 重導向到檔案並且輸出到標準輸出

Wildcards

*(asterisk): 0 or more characters
?(question): 1 character
[ ](Range): range of characters
[^](Negating Range): not in the range