Tag: Shell Script

Shell Script 自動登入 FTP 上下傳檔案

在 Linux Server 上要用 ftp 傳送檔案,可以用 ftp 指令手動完成,但如果需要經常對特定檔案用 ftp 上傳及下傳,可以用 Shell Script 自動連接到 ftp 伺服器並傳送檔案。以下是用 Shell Script 登入 ftp 伺服器的例子: 以上 Shell Script 會自動登入 ftp.yourftp.server,並會上傳 filename.txt 到 ftp 伺服器。上面的 Shell …

rsync 透過 SSH 傳送及備份檔案

rsync 是很常用的檔案傳送工具,以下會介紹用 rsync + SSH 傳送檔案,並以 CentOS 7 作為測試環境。第一步先在 Server 產生一組 public SSH keys, 該 Client 端可以不用輸入密碼登入 SSH:現在可以將 public.key 的內容複制起來,可以用 cat 指令:將以上 public.key 內容複製後,登入到 Client 端,並儲到到 ~/.ssh/authorized_keys, 如果 .ssh/ 目錄不存在,需要手動建立並建立正確權限: …

解決 sudo: sorry, you must have a tty to run sudo

在 Linux 很多時都會用 sudo 以 root 身份執行指令,一般情況下執行 sudo 後需要輸入使用者密碼確認,但有些情況不能輸入密碼,例如 Shell Script, 在這種情況下系統記錄檔會出現以下錯誤:sudo: sorry, you must have a tty to run sudo出現問題的原因,是多數 Linux 發行版,預設使用 sudo 開啟了 requiretty,要解決很容易,只要用 visudo 重新設定 sudo 的設定便可以。首先以 …

ShellCheck — Shell Script 語法檢查工具

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

Python 詢問使用者 yes / no

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

vim 把 Tab 轉換為 4 Space

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

Python 寫入檔案的 4 個方法

在 Python 寫入檔案內容跟讀取檔案差不多, 也很簡單方便,以下會介紹用 Python 逐行讀取檔案內容的 4 種方法。在看例子前先要了解開啟檔案的參數, 一般上讀取檔案會用 “r”, 即唯讀的意思, 如果要寫入檔案, 分別可以用 “w” (即 write 的意思) 或 “a” (即 append 附加的意思), 兩者的分別在於: 如果檔案原本已經存在, “w” 會將寫入的內容直接覆蓋原來的檔案內容; 而 “a” 則會在原來的內容後面加入新內容。兩者不可以混淆, 如果原本要用 …

Python 在 CLI 輸出顏色文字

在 CLI 下執行的小工具,將輸出結果以不同顏色呈現,對可讀性有很大幫助,在 Python 要控制輸出文字的顏色,做法與 html 相似,只是使用 ANSI escape codes 控制顏色輸出。顯示顏色文字的顏色編號及格式如下:以下是樣式、顏色及背景顏色的可供選項:文字樣式: 0 一般樣式 1 粗體 4 加底線 5 灰底 7 文字及背景顏色對調文字顏色: 30 黑色 31 紅色 32 綠色 33 黃色 34 …

uniq 指令 – 去除重複資料

uniq 指令可以作用去除重複資料,對象可以是檔案或者 pipe 管線輸入。uniq 去除重複資料時,只會對連續重複的行進行過濾處理,所以很多時 uniq 會配合 sort 指令一同使用,或者用 “sort -u” 實現。uniq 使用例子:例如有一個檔案,裡面的內容如下:This is a testing. This is a testing. This is a testing. This is also a testing. This …