「功能筆記」Linux常用Shell命令(終端命令)備忘錄

長期更新,空置、缺漏的部分會逐漸補上。未指明時,均爲GNU版本。

文件命令

基礎操作

ls

默認顯示非隱藏文件、以文件名進行排序、文件名有顏色(藍色文件夾、白色一般文件、綠色可執行文件)。

Cheatsheet:

ls -al ~ # 顯示主文件夾下的所有文件(夾);並顯示它們的屬性與權限。
ls -alF --color=never ~ # 同上,並不顯示顏色,在文件名末顯示該文件名代表的類型。/表示文件夾,*表示可執行文件
ls -al --full-time ~ # 同1,並顯示長時間
ls -si ~ # 顯示主文件夾下的所有文件(夾),以及其所在的i-node號碼;並排序文件

cp

  • -i:若目標文件已經存在,覆蓋時會詢問。
  • -p:複製屬性。
  • -d:若文件爲link file,複製link file的屬性而非源文件本身。
  • -r:遞歸複製。
  • -a:等價於-pdr
  • -s:複製爲symbolic link。
  • -l:複製爲hard link。

Cheatsheet:

cp -r /home/zuiho/ /tmp # 複製主文件夾下的所有內容到/tmp下面
cp -s /path/to/file /new/path/to/dir # 複製文件的symbolic link到新文件夾下。

rm

如果想要不可逆轉的刪除,使用shred。

  • -f忽略不存在的文件,不會出現警告信息。
  • -i刪除前會詢問。
  • -r 遞歸刪除。會刪除目錄。

Cheatsheet:

rm -i /path/to/an/important/file # 會詢問。
rm -r /path/to/a/dir # 不會詢問,刪除目錄。
rm ./-aspecialfile- # 刪除一個帶槓的文件。

mv

這個命令其實往往用來重命名。Linux內還有一個專門的批量重命名的命令,爲rename

  • -f 強制。
  • -i 若存在,會詢問。
  • -u “update”,即源文件比目標文件更新時纔會覆蓋。

Cheatsheet:

mv originfile /path/to/dest
mv of1 of2 of3 /path/to/dest # 最後一個是文件夾,前面的是文件,則可以批量移動。

其他命令

  • basename 取得文件名
  • dirname 取得目錄名

touch

最基礎的用法是用來創造一個空文件。
不過,它是用來修改文件時間的。

  • a 修改訪問時間。
  • c 僅修改時間,若文件不存在不創建新文件。
  • d 自定義修改的日期。 長命令形式爲--date=<DATE>
  • m 修改mtime,即上一次被修改的時間。
  • t 自定義修改的時間,格式爲[YYMMDDhhmm]。

Cheatsheet:

touch -d "2 days ago" .zshrc
touch -t "0805121428" .bashrc #修改時間爲一個悲傷的時刻。

file

查看文件

cat & tac & nl

more & less

head & tail

od

權限管理

umask

chattr/lsattr

查找

which/whereis/locate

find

磁盤管理

管道命令

xargs

綜合應用示例

顯示系統目前支持的文件系統

cat /proc/filesystems

刪除文件夾內所有無後綴名可執行文件並刪除之

find . -type f -perm /u+x -regex "\./[^/.]*" | xargs rm -f

(僞)圖形化克隆磁盤

(pv -n /dev/sda | dd of=/dev/sdb bs=128M conv=notrunc,noerror) 2>&1 | dialog --gauge "Running dd command (cloning), please wait..." 10 70 0

監控所有被進程ID:1551 所使用的文件

pv -d 1551

fork bomb

# DO NOT TRY IT IN THE PRODUCTION ENVIROUMENT!!!
:(){ :|:& };:

有趣的命令

牛力與否

apt moo # And you can try it in openSUSE!!!
zypper moo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章