你不知道的shell用法和脚本,简单强大
?本文摘自:碼農增刊 Linus與Linux?
在閱讀以下部分前, 強烈建議讀者打開一個 shell 實驗,這些都不是 shell 教科書里的大路貨哦:)
1. sudo !!
以root的身份執行上一條命令 。
場景舉例:比如Ubuntu里用apt-get安裝軟件包的時候是需要root身份的,我們經常會忘記在apt-get前加sudo。 每次不得不加上sudo再重新鍵入這行命令, 這時可以很方便的用sudo !!完事。
2. cd –
回到上一次的目錄 。
場景舉例: 當前目錄為/home/a, 用cd ../b切換到/home/b。 這時可以通過反復執行cd –命令在/home/a和/home/b之間來回方便的切換。
3. ^old^new
替換前一條命令里的部分字符串。
場 景: 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:歡迎追加
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的你不知道的shell用法和脚本,简单强大的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专访《Haskell函数式编程入门》作者
- 下一篇: 控件开发