iT邦幫忙

2025 iThome 鐵人賽

DAY 28
2

嗨!歡迎回到上班族的命令列生存手冊。很久以前講到基礎的指令,知道有三個命令必學:lscdcat,它們陪伴我們一段時光,雖然基礎但也夠用了。不過網路無奇不有,這三個指令都有打類固醇的版本,用起來更爽,也有更多花招可以,這一個章節就來介紹這些指令。

eza

在 Day04 時請讀者挑選一個字體,其中介紹了 Nerd Font。到了這一章節終於要來揭曉有啥特別之處。有時 $ ls 時就是想知道檔案類型,這時如果有圖示就好了。

eza 就是 ls 打針的版本,請讀者依照自己發行版,或者用 Homebrew 來安裝即可。單純下 $ eza 看不出個所以然,讀者可以改變下法:

https://ithelp.ithome.com.tw/upload/images/20251012/20141615M3s1rtNkd2.png

$ eza --icons

有圖示!我們期待了 24 天的結果終於印出來了!eza 也可以印出 Long Format,並且預設檔案大小就是一般人看得懂的(human readable)。他的參數和 $ ls 很類似,印出 Long Format 的同時,也可以顯示出圖示:

https://ithelp.ithome.com.tw/upload/images/20251012/201416158jM0FWt9la.png

$ eza --icons -l

基本上在 $ ls 討論的章節,都能套用到這個指令上。不過到這裡還不夠,別忘了設定 Alias 讓指令輸入更方便,分享筆者設定的 eza alias,讀者可以自行取用:

### ls series
alias l='eza --icons -a --group-directories-first'

# long format
alias ll='eza --icons -l --color=always --group-directories-first'

# print tree structure
alias lt='eza -aT --icons --group-directories-first'

# filter hidden files
alias l.='eza -a | grep -e "^\."'

# show all files and directories in the previous directory
alias l..='eza --icons -a --color=always --group-directories-first ../'

# show all files and directories in 2 levels up
alias l...='eza --icons -a --color=always --group-directories-first ../../'

首先,筆者設定 $ l 就使用 exa 顯示出:

  • --icons:圖示,一定要的
  • -a:包含隱藏檔案
  • --group-directories-first:把資料夾排在前面

其他的 Alias 基本是依樣畫葫蘆調整,像是:

  • ll:印出 Long Format
  • lt:印出樹形結構,切記檔案很多或很深地方印會很慢
  • l.:只印出隱藏檔案
  • l..:這個和 $ cd .. 很類似,是看上層的檔案列表
  • l...:同上,再更上層

zoxide

介紹完 eza,接下來就是這個過於強大的 $ cd,「蛤?cd 還能怎麼強化?」讀者問,zoxide 可以讓你「瞬間移動」,只要是以前曾經去過的資料夾就可以。

除了用套件管理器安裝以外,別忘了整合 Shell 才能發揮作用,請看 Setup zoxide on your shell 的部份,這裡和「設定你的 Shell」篇教的大同小異,請先看看目前使用的 Shell 是什麼,接著再開啟對應的設定檔,加入相關設定即可。以 fish 為例:

$ vim ~/.config/fish/config.fish

接著重新開啟一個 Session,就可以開始體驗 zoxide。
zoxide 用 $ z 當成指令。假設筆者的 side project 在這個位置:

~/sideProjects/TaiwanEbookSearch

一般來說需要知道整串路徑,或是一個一個進去內層才比較好切換。不過如果有 zoxide 又會是另外一個故事了,無論在任何的地方:

image-003.gif

$ z TaiwanEbookSearch

就能直接切換!但還有更棒的,zoxide 支援模糊比對,甚至不需要把目標資料夾名子全部打出來,像是上面那個例子,筆者這樣輸入也會到正確的資料夾:

$ z ebook

如果有複數的名稱很像怎麼辦?

多下幾次指令即可,zoxide 會在目標資料夾之間循環。像是上面那個例子,如果還有一個資料夾是:

~/Document/hobbyProject/ebookTools

這樣連續下 $ z ebook 就會在 TaiwanEbookSearchebookTools 之間來回切換囉。

搜尋目標模式

image-004.gif

$ zi <目的地> 會跳出選單讓你選擇,還會有 Preview 讓使用者方便判斷是不是想去的地方。

寫到這邊,讀者可能想要用 zoxide 取代 cd,別忘了只要設定 alias 就可以輕鬆的辦到。可以在設定檔裡頭加入:

alias cd="z"

即可。

bat

https://ithelp.ithome.com.tw/upload/images/20251012/20141615uxFsL6dHPi.png

有了貓就要有蝙蝠!在上一篇大補帖提到的 delta 很棒對吧?如果 cat 檔案時也能有光鮮亮麗的樣子就好啦,這個聲音不知道被誰聽到了!bat 就是那個最適合你的新番!

請讀者前往 bat 網站查看自己的發行版或 homebrew 的安裝方法,一起來使用這個指令。Debian 系的系統(還有如 Ubuntu 等使用 apt 作為套件管理器的發行版)使用者安裝後可能會啟動不了。因為某個因素讓 $ bat 在這些系統上需要用 $ batcat 叫出來,讀者自行使用 alias 調整即可。

bat 用法就如同 cat ,請讀取一個文字檔案,例如:

$ bat TwoSum.java

bat 比較接近一般的 pager(也就是 less),操作的方式也和 less 相同:

  • j:向下捲動
  • k:向上捲動
  • /<搜尋目標>:搜尋,n 找下一個,N 找上一個
  • q:退出

調整 theme

bat 本身就內建非常多的 theme 可供選擇,可以這樣子查看內建的 theme:

$ bat --list-themes

記下自己喜歡的主題後,請複製主題的名稱,接著下:

$ export BAT_THEME="<主題名稱>"

再啟動 bat 應該就能立刻看到變化囉。

介紹完這三個指令是不是很讚呢?他們的共通點就是都是 Warp 贊助開發的提昇了原版指令的效率以及功能!接下來的章節要與讀者介紹怎麼在 POSIX 系統設定 Java 的 JDK,有什麼方便的工具呢?請期待囉。


上一篇
Day27 生活品質篇:git 大補帖
系列文
上班族的命令列 (CLI) 生存手冊28
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
adsfaaron
iT邦新手 5 級 ‧ 2025-10-12 16:21:11

感謝大大分享設定好的 alias 非常實用🤩

0
chiaominchang222
iT邦新手 5 級 ‧ 2025-10-12 22:28:19

看不到車尾燈了

我要留言

立即登入留言