於 Bash shell echo 輸入換行字元的寫法

要於 Bash shell 的 CLI 界面,echo 某些字元導入檔案中,要怎麼寫?

閱讀全文〈於 Bash shell echo 輸入換行字元的寫法〉

Linux tail 遇到 file rotate 要如何持續追蹤讀取

Linux 很常使用 tail -f /var/log/syslog 等等,要持續看 Log 進來的情況。

不過如果持續追蹤,很常遇到 file rotate 的狀況,遇到的時候,tail -f 就不會繼續更新了... 要怎麼解決這個問題呢?

閱讀全文〈Linux tail 遇到 file rotate 要如何持續追蹤讀取〉

Apache2 砍掉 Gracefully 狀態的程式

Apache2 在 apache2ctl status 看到 G 的狀態,這些 process 都已經無法回應了,可以寫隻 script 來砍掉。

註:砍掉只是治標,建議還是看看這些 pid,研究看看卡在哪裡,治本才是重點。

閱讀全文〈Apache2 砍掉 Gracefully 狀態的程式〉

Facebook PathPicker 於 CLI 的界面操作工具

Bash CLI 界面操作上,沒有 GUI 的操作指標可以用,都需要輸入檔案名稱等等。

在 ls / git status 等等,想要有個指標可以選取檔案名稱,然後直接用 Vim 打開編輯,可以使用 Facebook Open Source 的專案來達成。

閱讀全文〈Facebook PathPicker 於 CLI 的界面操作工具〉

Windows 10 可以跑 Ubuntu Linux Bash shell

Windows 10 宣佈將 Ubuntu Linux Userspace 包進來,可以直接使用 Bash shell,所以這些 apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch 都可以使用,而且 apt-get 安裝的 redis 都可以正常跑。

  • 註:上述是純粹文章寫得,我目前沒有 Windows 10 可以做測試

閱讀全文〈Windows 10 可以跑 Ubuntu Linux Bash shell〉

Bash alias 如何傳入參數($1)

Linux 的 Bash shell 會將常用的命令(或記不起來的命令)設定 alias,但是想要帶入參數,要怎麼做?

註:Bash shell 純 alias 無法帶入參數,在此使用 Bash shell 的 function 來輔助達成。

閱讀全文〈Bash alias 如何傳入參數($1)〉

Linux Bash 監控檔案修改 執行即時合併

JavaScript 常常會需要修改後,執行壓縮等動作,常見的會是用 grunt 做類似下述命令:

不過要做檔案合併、檢查、壓縮..  等等,應該不用這麼費工,Shell 就可以做到,於是簡單的寫了一套。

註:整個程式只有兩個檔案,全部內容只有5行,相信修改應該沒有難度。(程式語言:Linux 的 Bash Shell)

閱讀全文〈Linux Bash 監控檔案修改 執行即時合併〉

Linux Bash 如何查看檔案修改到現在經過幾秒

於 Linux Bash Shell 想要看此檔案上次修改到目前經過幾秒,可以用下述指令:

  • $ expr $(date +%s) - $(date +%s -r /tmp/filename.txt) # 檔案修改到現在過了10秒
    10
  • $ expr `date +%s` - `stat -c %Y /tmp/filename.txt` # 檔案修改到現在過了12秒
    12

參考自:linux - How to get time since file was last modified in seconds with bash?

註:

  • expr:加減乘除
  • date +%s:現在時間的 timestamp
  • date +%s -r filename:檔案修改時間的 timestamp
  • stat -c %Y filename:檔案修改時間的 timestamp