Linux 指令完全制霸
指令會用是會用,但是細節參數永遠都記不起來,每次都要上網查很煩,網路上也沒有什麼系統性或是實務的教學,甚至連讓人方便查找的文檔都沒有(一股腦全部寫的不算),那就乾脆自己寫好了。
指令會用是會用,但是細節參數永遠都記不起來,每次都要上網查很煩,網路上也沒有什麼系統性或是實務的教學,甚至連讓人方便查找的文檔都沒有(一股腦全部寫的不算),那就乾脆自己寫好了。
要寫 awk 教學時其實我也是邊寫邊學,但是發現這個指令已經發展的太過龐大不是一篇簡單的文章就能清楚表達,於是求助 AI。比較網路文章和 AI 生成的文章,我個人認為內容比網路上九成的教學都更清晰,所以毫不客氣的給 AI 寫並且人工潤飾+校稿,本文使用此 prompt 給 Claude 3.7 生成:
本文是 awk 指令教學的下篇,範例 log.txt 請見上篇。
cURL 用來發送 HTTP 請求,學他就好不用學 wget,因為 curl 更多參數用法,輸出控制更方便,兩者空間也差不多,除此之外再請語言模型列出其他優點
cut 顧名思義就是剪去指定文字,最常用的方式還是在管道符後面使用,不過為了方便介紹還是使用和 awk 教學 一樣的範例文本。
fd 和 rg 一樣是用 rust 寫的多線程工具,一個要替代 find,另一個替代 grep,一樣都會自動忽略隱藏檔案和套用 .gitignore 規則。
find 用於找檔案,和 grep 並列我最愛的 linux 指令沒有之一,再搭配正則表達式可以找到所有你想找的資料。
grep (global regular expression print) 的用途是找到符合 regex 的文字,是初學者比較容易搞混的指令,因為太多範例都是搭配管道符使用,其實他的語法是這樣:
read 用於從標準輸入或檔案中讀取資料。
為何要用 ripgrep?
sed 和 awk 都是 Linux 中常用的字串處理,awk 注重於欄位分割處理,sed 則是注重在文字的替換。可以理解為搜尋功能比較弱且著重於字串修改的 grep。
sort 是 Linux 中用來排序輸入資料的工具,能根據字母、數字、欄位等多種條件排序,處理純文字表格特別實用。
tr(translate)用來轉換或刪除文字資料中指定字元,是精簡的文字處理工具,特別是不需要完整的 regex 或 awk 功能時。
uniq 以行為單位找出相鄰的重複行,因為只比較相鄰行所以常搭配 sort 使用。
xargs (extended arguments) 用途是把文本依照空隔分開,通常會再搭配指令執行。