Tag: Shell Script

sort 指令 – 將欄位資料排序

sort 指令是在 Linux 下的排序指令, 可以將資料以不同欄位以數值及字母排序。sort 預設會用以下條件排序:— 數字會排在字母前面; — 小寫字母會排在大寫字母前面;以一個簡單的例子說明使用方法, 例如用 “ls -l” 列出檔案清單, ls 預設是用檔案名稱排序, 想要用檔案大小排序, 可以這樣: $ ls -l | sort -n -k 5 上面的 “5” 代表是第 5 個欄位的意思, …

cut 指令: 擷取檔案每行指定範圍資料

cut 指令可以將檔案內每行資料, 選擇性地擷取指定的部份, 對於 Log 分析或過濾資料十分好用, 當然除了支援擷取檔案資料外, 也可以用管線 (pipe) 匯入資料, 以下教會是關於 cut 指令的用法。cut 指令的語法:cut … …cut 指令主要有以下參數可以:-b: 輸出指定的範圍, 以 bytes 作為單位. -c: 輸出指定的範圍, 以字元數量作為單位. -d: 指定分隔字元, 預設是用 tab 作為分隔. -f: …

sed 搜尋並刪除整行資料

在 Linux 下如果需要將檔案內指定某一行資料刪除,可以用 sed 指令達成,以下教學會介紹在 Linux 下用 sed 指令,刪除檔案內指定的整行資料。刪除指定行數當知道要刪除的資料在檔案那一行,或者在某一個行數範圍時,可以直接指定刪除的行數,例如:刪除檔案 filename.txt 的第 10 行: 刪除檔案 filename.txt 的第 10 至 15 行: 將包含有 “delete_str” 字串的一整行資料刪除: 將包含有 “delete_str” 字串的一整行資料刪除: 從第 10 行開始,後面的資料全部刪除: 從包含字串 …

把 crontab 執行指令輸出寫入記錄檔

一般上在 crontab 自動執行的指令, 會將所有指令標準輸出及錯誤放到 /dev/null, 這便會略過所有指令的輸出, 例如用 crontab 執行 /root/my-script.sh, 一般上語法是這樣寫: * * * * * /root/my-script.sh > /dev/null 但有時需要將執行指令的輸出儲存下來, 只要將 /dev/null 換成記錄檔的位置即可, 例如想把指令的輸出放到 /var/log/mycrontab.log, 可以這樣寫: * * * * …

nohup 指令 – 背景執行指令

當執行 Linux 指令時, 會在終端機一直執行, 直到指令完成後才會結束, 並給使用者重新輸入指令。而 nohup 指令就可以讓指令在背景執行, 不會影響使用者的正常工作。例如要將一些體積較大的檔案 rsync 到遠端伺服器, 用 nohup 指令便可以一邊 rsync 一邊完成手邊的工作。有關 nohup nohup 的全寫是 “no hangup”, HUP hangup (HUP) 訊號會在使用者登出時, 系統向 process 發出, 通知 process …

wget 將 FTP 伺服器製作鏡像備份

wget 是 Linux 下十分流行的下載工具, 可以下載 HTTP, HTTPS 及 FTP 的檔案。除了下載檔案外, wget 也可以對 FTP 伺服器的內容製作鏡像備份, 即是下次執行時, 只會下載 FTP 伺服器內變更了的內容, 並製作一個跟 FTP 伺服器相同內容的鏡像, 如同 rsync 一樣, 以下是具體語法:例如以下是登入 FTP 伺服器的資料:FTP Server: ftp.ftpserver.com Login: …

加密 Shell Script 原始碼

Shell Script 的好處是簡單方便, 可以直接將 Linux 指令放到 Shell Script, 但 Shell Script 其中一個問題是, 如果 Shell Script 裡面有一些敏感的信息, 例如密碼, 裡面的內容可以被其他使用者看到。shc 是一支將 Shell Script 用 RC4 加密, 並制作成 binary 檔的工具, 本篇文章會示範用 shc 將 …

Linux 日期格式 – Shell Script 自訂格式

Linux 的 date 指令可以輸出目前的日期及時間, 例如直接輸入 date 指令, 會輸出很詳細的日期及時間: $ date Fri Mar 10 09:15:51 HKT 2017 而 date 指令除了預設的格式外, 也可以自訂日期格式, 語法是 date +”FORMAT”, 例如我想顯示 DD-MM-YYYY 格式的日期, 可以這樣做:這樣自訂日期時間格式在 Shell Script 很常用, …

MySQL 管理相關指令

以下是一些常用的 MySQL 管理相關指令匯整, 以下的指令如果以 # 字符開頭, 代表是在 CLI 輸入的指令, 如果是以 “mysql>” 開始, 則表示登入 MySQL 後輸入的指令。登入 MySQL: 建立資料庫: 匯入資料庫: (將 /path/to/backup.sql 匯入到 database_name 資料庫) 匯出資料庫: (將 database_name 資料庫匯出到 /path/to/backup.sql) 刪除資料庫: 新增使用者: …

MySQL 修改使用者密碼

修改 MySQL 密碼可以透過 mysql 指令 (在 Windows 下是 mysql.exe),mysqladmin 指令或 phpMyAdmin 完成,以下是用 mysql 及 mysqladmin 修改 MySQL 使用者密碼的方法。mysql 指令 在指令模式用 root 帳號透過 mysql 登入 MySQL 伺服器: # mysql -u root …