Skip to content

Nushell

結構化資料 Shell

軟體分類 生產力 / 系統工具
軟體標籤
rated-1CMSAutomation tools
開發廠商 The Nushell Project
Stars
38.7k
Forks
2.1k
License
MIT
Version
v0.101.0
Update
2026-03-10
OS

產品說明

Nushell (簡稱 nu) 是一款用 Rust 編寫的新型 Shell。它與傳統 Shell(如 Bash、Zsh)最大的不同點在於:它不把指令的輸出視為「一串純文字」,而是將其視為**「結構化資料(Structured Data)」**。

在 Nushell 中,當你輸入 ls,得到的不是一段文字,而是一個可以被篩選、排序、查詢的表格。這意味著你不再需要背誦複雜的 sedawkgrep 正規表示式來擷取特定的欄位,只需要使用直覺的 whereget 指令即可完成。它結合了傳統 Unix 哲學與現代程式語言的特性,極大地提升了開發者在終端機操作資料的效率。

核心特色:

  • 一切皆資料:所有指令輸出都是表格或清單,支援直接匯出為 JSON、YAML、CSV 等格式。
  • 強大的管線(Pipelines):支援類型檢查的管線操作,讓指令組合更加穩健。
  • 跨平台一致性:無論是在 Windows、macOS 還是 Linux,Nushell 提供的指令語法完全一致。
  • 現代化體驗:內建語法高亮、智慧補全(Autocompletion)與詳盡的錯誤提示系統。

常用指令

Nushell 的語法非常接近 SQL 或現代函數式程式語言,以下是基礎操作範例:

結構化資料操作

# 列出檔案並依照大小排序,僅顯示大於 10KB 的檔案
ls | where size > 10kb | sort-by size

# 讀取 JSON 檔案並提取特定欄位
open config.json | get database.port

# 將目前目錄的檔案列表直接轉換成 Markdown 表格
ls | to md
常用指令功能說明傳統 Shell 對比
ls以表格形式列出目錄內容取代原本的文字式 ls
where過濾表格資料取代 grep 的部分過濾功能
sort-by依據欄位排序內容取代 sort
get選取特定欄位/屬性取代 awk '{print $n}'
upsert新增或更新資料欄位傳統 Shell 較難原生達成
explore開啟互動式資料瀏覽器Nushell 特有的 TUI 工具

系統管理與轉換

  • ps | where cpu > 10:快速找出 CPU 佔用超過 10% 的程序。
  • fetch https://api.github.com/repos/nushell/nushell:直接從 API 獲取資料並轉為表格。
  • du | sort-by apparent:檢查磁碟使用空間並排序。

操作介面