name arg1 arg2
!!會運行最近使用的命令。要運行最近運行的以“foo”開頭命令:
- !foo
- # 以root用戶運行上一次以“service”開頭的命令
- sudo !service
!$用於運行帶上最後一個參數的命令:
- # 編輯 nginx.conf
- sudo vi /etc/nginx/nginx.conf
- # 測試 nginx.conf
- /sbin/nginx -t -c /etc/nginx/nginx.conf
- # 測試完 "/sbin/nginx -t -c /etc/nginx/nginx.conf"你可以用vi再次編輯這個文件了
- sudo vi !$
左右可以滑動
12、在終端上提醒你必須得走了
如果你需要提醒離開你的終端,輸入下面的命令:
- leave +hhmm
這裡:
- hhmm - 時間是以hhmm的形式,hh表示小時(12時制或者24小時制),mm代表分鐘。所有的時間都轉化成12時制,並且假定發生在接下來的12小時。
13、甜蜜的家
想要進入剛才進入的地方?運行:
- cd -
需要快速地回到你的家目錄?輸入:
- cd
變量CDPATH定義了目錄的搜索路徑:
- export CDPATH=/var/www:/nas10
現在,不用輸入cd */var/www/html/ 這樣長了,我可以直接輸入下面的命令進入 /var/www/html:
- cd html
要編輯一個正在用less瀏覽的文件,可以按下v。你就可以用變量$EDITOR所指定的編輯器來編輯了:
- less *.c
- less foo.html
- ## 按下v鍵來編輯文件 ##
- ## 退出編輯器後,你可以繼續用less瀏覽了 ##
15、列出你係統中的所有文件和目錄
要看到你係統中的所有目錄,運行:
- find / -type d | less
- # 列出$HOME 所有目錄
- find $HOME -type d -ls | less
要看到所有的文件,運行:
- find / -type f | less
- # 列出 $HOME 中所有的文件
- find $HOME -type f -ls | less
16、創建目錄樹
你可以用mkdir加上-p選項一次創建一顆目錄樹:
- mkdir -p /jail/{dev,bin,sbin,etc,usr,lib,lib64}
- ls -l /jail/
17、將文件複製到多個目錄中
不必運行:
- cp /path/to/file /usr/dir1
- cp /path/to/file /var/dir2
- cp /path/to/file /nas/dir3
運行下面的命令來複制文件到多個目錄中:
- echo /usr/dir1 /var/dir2 /nas/dir3 | xargs -n 1 cp -v /path/to/file
左右可以滑動
留下創建一個shell函數作為讀者的練習。
18、快速找出兩個目錄的不同
diff命令會按行比較文件。但是它也可以比較兩個目錄:
- ls -l /tmp/r
- ls -l /tmp/s
- # 使用 diff 比較兩個文件夾
- diff /tmp/r/ /tmp/s/
Fig. : Finding differences between folders
19、文本格式化
你可以用fmt命令重新格式化每個段落。在本例中,我要用分割超長的行並且填充短行:
- fmt file.txt
你也可以分割長的行,但是不重新填充,也就是說分割長行,但是不填充短行:
- fmt -s file.txt
20、可以看見輸出並將其寫入到一個文件中
如下使用tee命令在屏幕上看見輸出並同樣寫入到日誌文件my.log中:
- mycoolapp arg1 arg2 input.file | tee my.log
tee可以保證你同時在屏幕上看到mycoolapp的輸出並寫入文件 my.log。
原文:http://www.cyberciti.biz/open-source/command-line-hacks/20-unix-command-line-tricks-part-i/
譯文:LCTT 譯者: geekpi
閱讀更多 程序員之言 的文章