Category: Linux

Ubuntu 開放 root 登入 ssh

基於保安理由, Ubuntu 預設不能用 root 登入 ssh, 但如果是用作內部測試的主機, 為了方便使用, 可以用以下方法解除限制:首先要重新設定 Ubuntu 的 root 密碼, 輸入以下指令: $ sudo passwd root 修改了 root 密碼後, 開啟 sshd 的設定檔: $ sudo vi /etc/ssh/sshd_config 找到以下一行:PermitRootLogin prohibit-password改為:PermitRootLogin …

CentOS 編譯安裝升級 OpenSSL

CentOS 預設安裝的 OpenSSL 版本很低, 如果需要在 CentOS 安裝較新版本的 OpenSSL, 需要透過編譯原始碼的方法安裝, 以下是 CentOS 7 透過編譯原始碼的方法安裝 OpenSSL 的方法。如果系統內已經安裝了預設的 OpenSSL 版本, 需要先將預設的版本移除, 執行以下指令用 yum 移除: # yum remove openssl openssl-devel -y openssl-1.0.1e-60.el7_3.1.x86_64 openssl-libs-1.0.1e-60.el7_3.1.x86_6下一步是下載 OpenSSL …

Ubuntu 升級/更新新版本 Kernel

升級及更新 Linux kernel, 除了可以增加對新硬體的相容性, 也可以改善的安全性及穩定性, 以下是在 Ubuntu 升級 Linux Kernel 的方法。首先到 Ubuntu 官方的 Kernel 專頁: http://kernel.ubuntu.com/~kernel-ppa/mainline/在那裡選擇要下載的 Kernel 版本, 按下連結後, 會出現 .deb 的連結, 分別下載以下三個檔案, 要註意自己系的位元數:linux-headers-x.x.x-……all.deb linux-headers-x.x.x-generic_……deb linux-image-x.x.x-generic_…….deb以下會以 4.11.3 作為例子: $ wget …

Shell Script 將數值補零

很多時在寫程式時, 需要將一些數值補零, 例如 1 顯示為 001, 以下是 Shell Script 的實現方法:Shell Script 的 printf 函式已經可以做到自動補零, 例如想將 8 顯示為 “008”, 可以這樣寫:除了在數值的前面補零外, 也有一種情況是在小數點補零, 例如數值 “8” 是整數, 但也要強制顯示小數點後一個位, 可以這樣寫:如果想將上面的結果放到變數, 可以這樣寫:上面的程式碼將原來的 $NUM 變數補零, 再放在 $ZERO_NUM …

Shell Script 遇到錯誤時自動退出離開

Shell Script 裡面的指令, 如果沒有用條件控制 (例如 if), 不管之前的指令執行結果如何, 每個指令也會逐一執行, 例如:上面的程式碼很簡單, 只是用 cd 指令轉換到 /path/dir 目錄, 然後執行 rm 指令, 將所有 .txt 結尾的檔案刪除。但如果執行 cd 指令的時出錯, 例如 /path/dir 目錄不存在, 或者沒有權限進入, 那便會在當前目錄刪除所有 .txt 副檔名的檔案。解決方法十分簡單, 只要加上 …

vi / vim 整行複製/剪下/貼上

如果透 SSH 連接到 Linux Server, 用 vi 或 vim 開啟檔案後, 要將裡面的文章複製並貼上, 很多時會用 SSH Client 的複製貼上功能。例如以 Putty 為例, 用滑鼠 Highlight 文字會複製, 按滑鼠右鍵會貼上。但這種方法要在鍵盤跟滑鼠間操作很麻煩, 其實如果要將整行複製, 可以用 vi 內建的複製貼上功能, 全部在鍵盤完成, 方法如下:yy 或 Y : …

CentOS root 刪除檔案報錯: Operation not permitted

root 在 Linux 系統下有最高權限, 但如果用 root 身份執行 rm 指令刪除檔案, 或要修改檔案時, 有些情況可能會出現以下錯誤:rm: cannot unlink ‘filename’: Operation not permitted出現這個問題, 多數是因為 chattr 指令鎖定了該檔案。用 chattr 指令鎖定檔案後, 除了不能刪除外, 也不能修改及改動, 必須要用 chattr 指令解除鎖定才可以: # chattr -i …

解決 Ubuntu Apache 找不到 ServerName

用 Ubuntu 安裝好 Apache 後,啟動 Apache 時會出現以下報錯:apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message出現錯誤的原因是 Apache 不能抓取系統的 …

Linux 定時刪除舊檔案

在 Linux 下有時會有一些暫存檔或日誌檔需要定時刪除, 如果只要在特定目錄下, 刪除檔名包含有指定字串的舊檔案, 可以不用 Shell Script, 而直接在 crontab 用 find 指令完成 。例如我想將 /var/www/html/tmp/ 目錄下, 將所有超過 7 日的檔案, 並以 “delname.log” 作為檔案開頭刪除, 可以在 crontab 加上以一行, 先開啟 crontab : # crontab …

Ubuntu 安裝 Node.js

Node.js 是一個基於 Google V8 引擎的事件驅動 I/O 服務端。目的是為了提供撰寫如 Web 服務的可擴充網絡程序。Node.js 是以 JavaScript 為基礎開發的新架構, 它可以讓 JavaScript 在瀏覽器以外的地方執行。以下會介紹在 Ubuntu 透過源碼安裝及 apt-get 安裝的步驟:Ubuntu Repository 安裝:透過 Ubuntu 預設 Repository 安裝的好處是簡單, 但缺點是安裝的版本會較舊。 $ sudo apt-get install …