Author: Sam Tang

RHEL / CentOS 解決 man: command not found

如果在 RHEL 或 CentOS 用 man 指令查看指令說明文件時,如果沒有安裝 man 的套件,會出現以下錯誤:man: command not found要解決這個問題需要安裝 man-pages 套件,只要用 yum 直接安裝便可以了,以下是 CentOS 6 及 CentOS 7 的安裝方法: RHEL 7 / CentOS 7: $ sudo yum …

ShellCheck — Shell Script 語法檢查工具

如果在使用一些指令 (例如 rm) 不小心, ShellCheck 是一個 Shell Script 分析及除錯工具, 之後要花很多時間修復, 可以在嘗試執行 Shell Script 前先找出 Warning 及一些建議。以下會紀錄安裝及使用 ShellCheck 的步驟。安裝 ShellCheck安裝 ShellCheck 可以用 yum 或 apt-get 直接安裝:RHEL, CentOS, Fedora:先要啟用 EPEL Repo 才可以用 …

Apache 安裝 mod_cband 限制 Virtual Host 連結速度

當 Apache 其中一個 Virtual Host 佔用資源過多時,會拖慢整台伺服器所有網站的速度,這時可以安裝 mod_cband 模組,限制個別虛擬主機可以儲用的連線數量及速度,以下會示範在 CentOS 7 安裝 mod_cband 模組:要安裝 mod_cband,需要先安裝 httpd-devel: # yum install httpd-devel 然後可以下載 mod_cband 及編譯安裝: # cd /usr/local/src # wget https://github.com/maiha/mod_cband/archive/master.zip # unzip …

PHP mail() 設定 Return-Path

在 PHP 上使用 mail() 發送電郵,如果沒有正確設定 Return-Path, 發出的郵件會使用系統的主機名稱,例如 [email protected], 以下是程式碼:在收到的郵件會看到寄件者是 [email protected], 但當按下回覆時,會使用系統的主機名稱,除了回覆地址名,也會有部郵 email server 拒收,會在 email server 的紀錄檔出現 “invalid sender MX”。原因是郵件的 Return-Path 並沒有使用 PHP 的 Return-Path 設定,郵件的 source 可以看到:Return-Path: Delivered-To: 要解決只要在 …

Python 詢問使用者 yes / no

編寫在 CLI 執行的程式, 很多時都會用到詢問使用者 yes / no 是否執行, 以下記錄一下在 Python 的寫法:例如:上面程式很簡單詢問是否繼續, 如果輸入 “yes” 則會輸出 “Hello World!”.上面程式必須輸入 “yes” 才會輸出 “Hello World!”, 如果輸入 “Yes” 則不會繼續, 其中一個方法是將 if 判斷式加入多一個選項, 例如改成這樣:上面程式碼對輸入 “yes” 及 “Yes” …

胎壓偵測器很重要

幾個月前換輪胎時加裝了胎壓偵測器, 幾個月以來的作就是看到實時胎壓, 加油時不會忘記打氣, 以及在駕駛室裝帥罷了。今天早上開實沒多久, 就聽到 “咇咇” 響, 起初以為是孩子沒關好車門, 細看原來是胎壓偵測器發出的提示聲, 胎壓偵測器顯示左前胎不斷閃爍, 由前一晚 2.3 BAR 胎壓降到 1.6 BAR.下車稍微檢查一下發現輪胎中釘了, 車子放了一晚在慢慢洩氣, 還好附近有輸胎店很早開門, 送完孩子上學後立即補胎。當初安裝胎壓偵測器的錢沒有白花。

vim 把 Tab 轉換為 4 Space

以前習慣用 Tab 來做縮排,在用 Sublime Text 沒什麼關係,Tab 跟 4 個空格的長度一致,但近年經常用 vim 直接在 CLI 寫程式,當程式需要多層判斷式或迴圈時,很多時在終端機會看得很辛苦,因為在 vim 顯示 Tab 會比 4 個空格的距離還長。所以還是用 4 個空格取代 Tab 較方便,以下是在 vim 及 Sublime Text 按下 Tab 鍵時,自動用 …

Python for 用法

Python 的 for 迴圈十分好用,除了以下像其他程式語言的用法外:for( i=10; ifor 語法:for iterating_var in sequence: statements(s)使用例子: 上面第一個例子會將字串 “Linux” 逐個字母印出,第二個例子會將陣列內所有內容逐一印出,以上程式碼執行的結果是: Letter: L Letter: i Letter: n Letter: u Letter: x Language: Python Language: PHP Language: Perl …