iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
Security

從0基礎開始起飛,一起一步步踏入資安系列 第 6

[ Day 6 ] 你還只會用cat file嗎? 不懂cat還能怎麼用嗎? (Linux指令-cat)

  • 分享至 

  • xImage
  •  

第六天早安,雖然我都晚上發文但不妨礙
平台發文處的上方每天都寫著「今天挑戰第X天,加油!」,情緒價值給滿呢

回到正題,你還只會用cat file嗎? 來教你其他更電的用法吧。

今天要介紹的是Linux常用指令之一,cat。
cat 全名為 concatenate,主要用於串接或輸出檔案內容。
不管是平常在整理資料、工作用途、打CTF比賽時都很常用到,以下會介紹詳細使用方式。

基本用法 :

  1. cat file
    單純只在後面接檔名,沒有參數的話,會輸出此檔案內的內容。
  2. cat file1 file2
    可同時輸出多個檔案內容

覆蓋、串接

  1. cat > file
    輸入指令後可開始輸入內容,結束後按下 Ctrl + D,它會將你輸入的內容覆蓋到file裡。
  2. cat >> file
    用法同上,但不是覆蓋,而是將內容接到原本的檔案內容最後。
  3. cat file1 file2 > file3
    將 file1 和 file2 的內容合併到 file3 裡,如果 file3 裡原本有內容的話會被覆蓋,不想覆蓋而是接在後方的話可以改用 >>

搭配另一個指令

  1. cat file | command
    在 cat 後加上管道(pipe)的話,輸出就會被傳遞給下一個命令的標準輸入。大概就是把前面指令的輸出,交給後面指令處理這樣的 pipe 操作。
    例如 :
    cat file.txt | grep "flag" ( 只顯示含有flag的行)
    cat file | tail -n 10 ( 輸出檔案的最後十行 ,下一篇會講到tail )

加上參數 :

cat [參數] [file]

  • -n : number,對每一行的輸出從一開始編號。
  • -b : number-nonblank,僅顯示內容內非空行的行,同樣會編號。
  • -s : squeeze-blank,將連續的空行合併成一行。
  • -v : show-nonprinting,用控制字元變為可見的符號形式輸出,但不會顯示 tab。
  • -T : show-tabs,以^I取代內容裡的 tab 空格。
  • -t:等於-vT
  • -E : show-ends,在每一行末端加入$
  • -e : 等於 -vE
    也可以合用 : cat -vet file

易混淆的參數

關於 -t-T-e-E-v :

-v :

控制字元 → 顯示為 ^ 加字母,例如 : ^M 表示回車 (enter),但不顯示 tab。
並在結尾加上 $
範例 :
原本內容

Hello(tab)World(\n)Line2(enter)Line3

顯示

Hello    World$
Line2^MLine3$

-t :

-v + 額外把 Tab (\t) 顯示為 ^I
因此等於 -vT

-T :

只把 Tab (\t) 顯示為 ^I,不會改其他控制字元。
-e-E 也是一樣的概念。

那今天就到這裡~
夏天真的太熱吧,希望冬天快點來呢
https://ithelp.ithome.com.tw/upload/images/20250906/20177897gpv6sVhFiF.jpg


上一篇
[ Day 5 ] cd? 家目錄? 根目錄? 絕對相對路徑? 來這幫你搞定! (Linux指令-cd)
下一篇
[ Day 7 ] Linux指令 - echo / touch / mkdir
系列文
從0基礎開始起飛,一起一步步踏入資安7
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言