Day08 — 一些常用 Linux 指令 — 3–7 (cat、tac、head、tail、vi、sed)

被端走的小菜
4 min readSep 12, 2020

--

此為 Linux 相關的 3–7 篇,都是很常用的指令,每天學一點,並常使用,便會記下成為反射動作之一

cat

將該檔案內容印在終端機上

command | cat
cat -n file
cat file
cat file1 file2
cat file1 > target_file
cat file1 >> target_file
# 範例
git log | cat
cat -n 001.log
cat 001.log > 002.log
cat 001.log >> 002.log
cat 001.log 002.log > 003.log

幾個常用參數說明:

將輸入指令執行結果顯示在終端機上: | cat
顯示行數: -n
將多個文件覆蓋到目標文件中: >
將多個文件追加到目標文件中: >>
備註: 目標文件若原本不存在,則直接建立新檔案

tac

tac file
command | tac
tac file1 file2 > target_file
# 範例
git log --oneline --all --graph | tac
tac 001.log

幾個常用參數說明:

將輸入指令執行結果顯示在終端機上: | tac
將多個文件覆蓋到目標文件中: >
將多個文件追加到目標文件中: >>
備註: 目標文件若原本不存在,則直接建立新檔案

head

看該檔案頭部 (預設為 10 行)

head file
head -n 30 file
head -c 25 file
# 範例
head 001.log
head -n 30 001.log
head -c 25 001.log

幾個常用參數說明:

顯示前 N 行的訊息 (N 為數字): -n 30
顯示前 N bytes 的字元 (N 為數字): -c 25

tail

看該檔案尾部 (預設為 10 行)

tail file
tail -n 15 file
tail -f file
# 範例
tail 001.log
tail -n 001.log
tail -f 001.log

幾個常用參數說明:

顯示最後 N 行的訊息 (N 為數字): -n 30
持續讀取檔案,直到按 Ctrl + c 為止 (可觀察檔案持續更新的內容): -f

vi

vi 編輯器,可新增、修改檔案、搜尋並取代文字等

vi 001.log

幾個常用指令說明:

新增、編輯檔案: vi file_name
編輯模式: 進入 vi 後,鍵盤 i
離開編輯模式 (並非離開 vi 編輯器喔): ESC
不儲存離開 vi: :q
不儲存強制離開 vi: :q!
儲存且離開 vi : :wq
將檔案還原到最初狀態(進入 vi 後一開始的樣貌) : :e!
針對特定行數,搜尋並取代: :s/string/new_string/g
針對整份文件,搜尋並取代: :%s/string/new_string/g

示範如何針對特定行數及整份文件進行搜尋並取代文字

備註: 除了 vi 編輯器外,Linux 上知名編輯器還有 vim、nano

sed

檔案處理工具,是一個管道命令,以行為單位處理,能做到字串取代、複製、刪除等
在寫這段時,發現網路上已經有許多不錯的文章及詳細說明,故省略撰寫 XD
挑了幾篇覺得不錯的,放下方參考文件,跟著練習,會更有感覺及上手喔 :)

參考資料

  1. 鳥哥的 Linux 私房菜 — 第十一章、正規表示法與文件格式化處理
  2. Linux中 sed 和 awk的用法詳解
  3. Linux 指令 SED 用法教學、取代範例、詳解

總整理

小結

在搜尋取代整份文件時,習慣以 vi 進行操作,sed 反而比較少用,
之前在批次改 SQL 資料庫的某字串時,覺得蠻方便的,與使用習慣有關

鐵人賽文章連結:https://ithelp.ithome.com.tw/articles/10236105
medium 文章連結:https://link.medium.com/4hDsZdhXI9
本文同步發布於 小菜的 Blog https://riverye.com/

備註:之後文章修改更新,以個人部落格為主

--

--

被端走的小菜
被端走的小菜

Written by 被端走的小菜

大家好,我是被端走的小菜。以個人部落格更新為主:https://riverye.com/

No responses yet