本文摘自:碼農增刊 Linus與Linux python
在閱讀如下部分前, 強烈建議讀者打開一個 shell 實驗,這些都不是 shell 教科書裏的大路貨哦:)
程序員
1. sudo !!shell
以root的身份執行上一條命令 。編程
場景舉例:好比Ubuntu裏用apt-get安裝軟件包的時候是須要root身份的,咱們常常會忘記在apt-get前加sudo。 每次不得不加上sudo再從新鍵入這行命令, 這時能夠很方便的用sudo !!完事。bash
2. cd –服務器
回到上一次的目錄 。網絡
場景舉例: 當前目錄爲/home/a, 用cd ../b切換到/home/b。 這時能夠經過反覆執行cd –命令在/home/a和/home/b之間來回方便的切換。session
3. ^old^newdom
替換前一條命令裏的部分字符串。ssh
場 景: echo "wanderful", 實際上是想輸 出echo "wonderful"。 只須要^a^o就好了,對很長的命令的錯誤拼寫有很大的幫助。
4. man ascii
顯示ascii碼錶。
場景: 忘記ascii碼錶的時候還須要google麼?尤爲在天朝網絡如此「 順暢」的狀況下, 就更麻煩在GWF多應用一次規則了, 直接用本地的man ascii吧。
5. ctrl-x e
快速啓動你的默認編輯器(由變量$EDITOR設置)。
6. netstat –tlnp
列出本機進程監聽的端口號。
7. tail -f /path/to/file.log | sed '/^Finished: SUCCESS$/ q'
當file.log裏出現Finished: SUCCESS時候就退出tail, 這個命令用於實時監控並過濾log是否出現了某條記錄。
8. ssh user@server bash < /path/to/local/script.sh
在遠程機器上運行一段腳本。 這條命令最大的好處就是不用把腳本拷到遠程機器上。
9. screen -d -m -S some_name ping my_router
後臺運行一段不終止的程序, 並能夠隨時查看它的狀態。-d -m參數啓動 「 分離」 模式, -S指定了一個session的標識。 能夠經過-R命令來從新「 掛載」一個標識的session。 更多細節請參考screen用法 man screen。
10. wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
下載整個www.example.com網站。
11. curl ifconfig.me
當你的機器在內網的時候, 能夠經過這個命令查看外網的IP。
12. lsof –i
實時查看本機網絡服務的活動狀態。
13. python -m SimpleHTTPServer
一句話實現一個HTTP server, 把當前目錄設爲HTTP服務目錄, 能夠經過http://localhost:8000訪問 這也許是這個星球上最簡單的HTTP服務器的實現了。
最後來個複雜的,這行腳本能輸出你最經常使用的十條命令, 由此甚至能夠洞察你是一個什麼類型的程序員。
history | awk '{CMD[$2]++;count++;} END { for (a in CMD )print CMD[a] " " CMD[a]/count*100 "% " a }' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
看不懂行代碼? 不要緊, 系統的學習一下 *nix shell 腳本吧,力薦《Linux命令行與Shell腳本編程大全》 。
最後仍是那句 Shell 的至理名言:「 Where there is a shell, there is a way!」
PS:歡迎追加