Bash 如何 Pipe 再透過 sudo 寫入檔案

於 Linux 的 bash shell 很常會 cat 某些資料,處理完後再寫入到某個檔案,但是常常會遇到權限不足,要怎麼做呢?

閱讀全文〈Bash 如何 Pipe 再透過 sudo 寫入檔案〉

AWK 取得欄位的「最後」與「倒數第二個值」的方法

使用 AWK Parse access.log,在某些特定條件會發生抓錯欄位的情況(若使用 空白 切割,沒使用 " 搭配切割,就容易抓錯欄位)

不過經常快速處理,都是使用空白切割即可,那要抓最後的欄位,比較簡單的方式就是一樣「空白切割」或「" 切割」,只是資料抓法是從後面往前抓。

  • AWK 要取得最後一個欄位的值是使用: $NF
  • AWK 要取得倒數第二個欄位的值是使用: $(NF-1)
  • 由後往前取,就繼續 -2、-3... 下去即可
  • 範例:awk '{print $(NF - 2)}' # 從後面數來第二個

所以要抓 access.log 倒數第二欄 和 第二欄,範例如下:

  • cat access.log | awk -F\" '{print $(NF-2),$2}' # 使用 " 切割

想抓超過 500ms 的網址(註:elapsed 並不是預設就有,需要另外加上)

  • cat access.log | awk -F\" '{print $NF,$2}' | awk '{print $1,$3}' | sed 's/elapsed=//' | sed 's/us//' | awk '{if ($1 > 500000) {print $1, $2}}'
  • cat access.log | awk -F\" '{print $(NF-2),$2}' | awk '{print $1,$3}' | sed 's/elapsed=//' | sed 's/us / /' | awk '{if ($1 > 500000) {print $1, $2}}'

Vim 指定 檔案名稱 使用特定的 Syntax

.bashrc 越寫越多,想要將 alias、function 等等拆開,但是遇到 Vim Syntax Highlight 預設不支援的問題,要怎麼解決呢?

  • 註:於檔案最後面加上 # vim: syntax=sh 沒有效用

閱讀全文〈Vim 指定 檔案名稱 使用特定的 Syntax〉

Linux 使用 find、read 對目錄內的指定檔案做處理

Linux 於 Bash shell (CLI) 要把檔案列出來,再來要抓出每個檔名,再分別處理,script 要怎麼寫呢?

閱讀全文〈Linux 使用 find、read 對目錄內的指定檔案做處理〉

Linux 快速查看網路、硬碟、負載、記憶體使用情況的 Shell Script

Linux 做系統監控,最基本的就是網路、CPU、硬碟、Load Average (uptime)、RAM、SWAP 等等,若系統有問題時,這些也是首先查看的點。

此程式就是可以快速將這些資訊整理起來,一次呈現,所以若有問題時,登入系統直接執行,可以省掉不少時間。

閱讀全文〈Linux 快速查看網路、硬碟、負載、記憶體使用情況的 Shell Script〉

Bash shell 使用 CURL urlencode 送參數

Bash shell 想要送中文等需要被 urlencode 過的文字到網址去,要怎麼做呢?

此篇使用 curl 直接傳送,另外在紀錄 Bash 的 urlencode() / urldecode() 寫法

閱讀全文〈Bash shell 使用 CURL urlencode 送參數〉