Category: Linux

CentOS 7 關閉防火牆及 SELinux

CentOS 7 的 SELinux 及 Firewalld 防火牆都是安全相關的套件, RHEL 及 CentOS 均預設開啟, 但如果在開發或測試的機器上, 將它們關閉對除錯方便不少。 關閉 SELinux: 開啟檔案 /etc/selinux/config: # vi /etc/selinux/config 找到以下一行: SELINUX=enforce 改成: SELINUX=disabled 另外將 “SELINUXTYPE=targeted” 加上註釋, 改成這樣: # …

RHEL / CentOS 用 yumdownloader 下載 RPM 套件

在 RHEL 或 CentOS 可以用 YUM 安裝套件, 因為 YUM 會解決相依性的問題。如果只想下載 RPM 套件下來, 而不想安裝到系統內, 用 wget 到 RHEL 或 CentOS 下載是一個方法, 但就不能將所有相依性的套件一同下載。 用 yumdownloader 就可以只將有相依性的套件下載, 而不用安裝的工具, 以下教學會示範在 RHEL 7 及 …

Ubuntu 16.04 安裝 PostgreSQL

PostgreSQL 是一套開源的關聯式資料庫系統, 可以透過多種程式語言連接使用, 本文會示範在 Ubuntu 16.04 安裝 PostgreSQL. Ubuntu 預設的 Repository 已經包含了 PostgreSQL, 安裝上就較為簡單。在安裝前, 先一同更新系統: Installation $ sudo apt-get update $ sudo apt-get install postgresql postgresql-contrib 安裝好 PostgreSQL 後, …

Linux 批次修改大量檔案名稱

學 Windows 一同, Linux 跟其他 Unix 環境, 檔案名及目錄名稱都有大小寫的分別, 例如 “img001.jpg” 跟 “IMG001.jpg” 是不同的。 如果只有幾個檔案, 直接用 mv 修改檔案名稱就好, 例如: $ mv IMG001.jpg img001.jpg 但如果檔案有幾百個, 甚至幾千個, 一個一個檔案用 mv 修改, 可能到最後手指頭都會改到痛。還好 Linux …

解決 Nginx 錯誤: 413 Request entity too large

在 Nginx 下如果用 PHP 上傳檔案時, 有時會出現以下報錯: Nginx 413 Request Entity Too Large 出現 Error 413 的原因是訪客瀏覽網頁時, 傳送過多的 HTTP 請求, 一般在上傳檔案時出現, 解決方法是修改 Nginx 的 上傳限制, 這個可以透過 Nginx 的 client_max_body_size 設定。 …

Linux 下刪除檔案空白行

如果要在 Linux 下將現有的檔案, 刪除裡面的所有空白行, 可以用 Linux 內建的工具即可實現。 sed 指令 用 sed 指令即可刪除檔案內的空白行: $ sed -i ‘/^$/d’ input.txt 如果想將刪除空白行後的內容, 匯入到新檔案, 要改成這樣: $ sed ‘/^$/d’ input.txt > output.txt 有些空白行會包含一些空白字元, 例如 SPACE …

解決 WARNING: UNPROTECTED PRIVATE KEY FILE!

登入 SSH 時如果看到 “WARNING: UNPROTECTED PRIVATE KEY FILE!” 報錯, 出現報錯的畫面類似這樣: 這個問題出在 private key (上面例子是 /path/to/key.pem) 的權限設定過於寬鬆, 系統內其他帳號也可以開啟所致。 要解決也很簡單, 只要用 chmod 改變 private key 的權限便可以: # chmod 600 /path/to/key.pem

Linux 安裝 VMware Workstation

VMware Workstation 可以在一台實體主機上, 執行多個不同的 VM, 以下示範在 Linux 下安裝 VMware Workstation 的方法, 並會覆蓋 RHEL, CentOS, Fedora, Debian, Ubuntu 及 Mint. 在開始前, 要確定系統是 64-bit, 因為現在 VMware Workstation 12 只支援 64-bit 系統, …

Shell Script 截取部份字串

寫程式時經常需要截取字串中的一小部份, 很多程式語言都有類似 substr 等函式。在 Shell Script 雖然沒有 substr() 或 substring() 的函式, 但要實現也很方便, 以下會介紹兩種 Shell Script 下截取部份字串的方法。 ${string:S:N} 寫法 在 Shell Script 抽取字串, 最簡單的方法是這樣: 上面 Shell Script 執行結果是 s is …