Shell指令碼,簡單& 強大

來源:互聯網
上載者:User

標籤:

 摘自《碼農增刊Linus與Linux》,章節:你可能不知道的Shell。   最近閱讀完這本書,覺得其中有很多不錯的內容,這是其中的一個Shell小甜點,拿來和大家一起分享一下,增加了一些我自己的測試內容。筆者寫這個隨筆,旨在分享和提高大家對Shell的興趣。     閱讀以下部分前,強烈建議讀者開啟一個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 [email protected] 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 伺服器的實現了。
 1 [[email protected] httpTest]$ python -m SimpleHTTPServer 2 Serving HTTP on 0.0.0.0 port 8000 ... 3 192.168.153.128 - - [27/Dec/2014 19:10:46] "GET / HTTP/1.1" 200 - 4 192.168.153.128 - - [27/Dec/2014 19:10:46] code 404, message File not found 5 192.168.153.128 - - [27/Dec/2014 19:10:46] "GET /favicon.ico HTTP/1.1" 404 - 6 192.168.153.128 - - [27/Dec/2014 19:10:46] code 404, message File not found 7 192.168.153.128 - - [27/Dec/2014 19:10:46] "GET /favicon.ico HTTP/1.1" 404 - 8 192.168.153.128 - - [27/Dec/2014 19:12:22] "GET / HTTP/1.1" 200 - 9 192.168.153.128 - - [27/Dec/2014 19:13:03] "GET / HTTP/1.1" 200 -10 [[email protected] httpTest]$ netstat -lnpt11 (Not all processes could be identified, non-owned process info12  will not be shown, you would have to be root to see it all.)13 Active Internet connections (only servers)14 Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   15 tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -                   16 tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      -                   17 tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      -                   18 tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      2574/python         19 tcp        0      0 :::22                       :::*                        LISTEN      -                   20 tcp        0      0 ::1:631                     :::*                        LISTEN      -                   21 tcp        0      0 ::1:25                      :::*                        LISTEN      - 
View Code  在目錄下寫了一個index.html顯示的結果如下,it‘s fun.
1 <html>2     <head> 3     <title>test python web server</title>4     </head>5     <body>6     This is a test python web server,  <b>hello!</b>7     </body>8 </html>
View Code       14. 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!”    這個命令列很有意思,激勵大家去學習一下awk、sed、sort方便快捷的實現日常的工作。

Shell指令碼,簡單& 強大

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.