你不知道的shell用法和脚本,简单强大
?本文摘自:碼農(nóng)增刊 Linus與Linux?
在閱讀以下部分前, 強烈建議讀者打開一個 shell 實驗,這些都不是 shell 教科書里的大路貨哦:)
1. sudo !!
以root的身份執(zhí)行上一條命令 。
場景舉例:比如Ubuntu里用apt-get安裝軟件包的時候是需要root身份的,我們經(jīng)常會忘記在apt-get前加sudo。 每次不得不加上sudo再重新鍵入這行命令, 這時可以很方便的用sudo !!完事。
2. cd –
回到上一次的目錄 。
場景舉例: 當(dāng)前目錄為/home/a, 用cd ../b切換到/home/b。 這時可以通過反復(fù)執(zhí)行cd –命令在/home/a和/home/b之間來回方便的切換。
3. ^old^new
替換前一條命令里的部分字符串。
場 景: echo "wanderful", 其實是想輸 出echo "wonderful"。 只需要^a^o就行了,對很長的命令的錯誤拼寫有很大的幫助。
4. man ascii
顯示ascii碼表。
場景: 忘記ascii碼表的時候還需要google么?尤其在天朝網(wǎng)絡(luò)如此“ 順暢”的情況下, 就更麻煩在GWF多應(yīng)用一次規(guī)則了, 直接用本地的man ascii吧。
5. ctrl-x e
快速啟動你的默認(rèn)編輯器(由變量$EDITOR設(shè)置)。
6. netstat –tlnp
列出本機進程監(jiān)聽的端口號。
7. tail -f /path/to/file.log | sed '/^Finished: SUCCESS$/ q'
當(dāng)file.log里出現(xiàn)Finished: SUCCESS時候就退出tail, 這個命令用于實時監(jiān)控并過濾log是否出現(xiàn)了某條記錄。
8. ssh user@server bash < /path/to/local/script.sh
在遠程機器上運行一段腳本。 這條命令最大的好處就是不用把腳本拷到遠程機器上。
9. screen -d -m -S some_name ping my_router
后臺運行一段不終止的程序, 并可以隨時查看它的狀態(tài)。-d -m參數(shù)啟動 “ 分離” 模式, -S指定了一個session的標(biāo)識。 可以通過-R命令來重新“ 掛載”一個標(biāo)識的session。 更多細節(jié)請參考screen用法 man screen。
10. wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
下載整個www.example.com網(wǎng)站。
11. curl ifconfig.me
當(dāng)你的機器在內(nèi)網(wǎng)的時候, 可以通過這個命令查看外網(wǎng)的IP。
12. lsof –i
實時查看本機網(wǎng)絡(luò)服務(wù)的活動狀態(tài)。
13. python -m SimpleHTTPServer
一句話實現(xiàn)一個HTTP server, 把當(dāng)前目錄設(shè)為HTTP服務(wù)目錄, 可以通過http://localhost:8000訪問 這也許是這個星球上最簡單的HTTP服務(wù)器的實現(xiàn)了。
最后來個復(fù)雜的,這行腳本能輸出你最常用的十條命令, 由此甚至可以洞察你是一個什么類型的程序員。
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看不懂行代碼? 沒關(guān)系, 系統(tǒng)的學(xué)習(xí)一下 *nix shell 腳本吧,力薦《Linux命令行與Shell腳本編程大全》 。
最后還是那句 Shell 的至理名言:“ Where there is a shell, there is a way!”
PS:歡迎追加
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的你不知道的shell用法和脚本,简单强大的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专访《Haskell函数式编程入门》作者
- 下一篇: 控件开发