Nushell
結構化資料 Shell
軟體分類 生產力 / 系統工具
軟體標籤
rated-1CMSAutomation tools
開發廠商 The Nushell Project
產品說明
Nushell (簡稱 nu) 是一款用 Rust 編寫的新型 Shell。它與傳統 Shell(如 Bash、Zsh)最大的不同點在於:它不把指令的輸出視為「一串純文字」,而是將其視為**「結構化資料(Structured Data)」**。
在 Nushell 中,當你輸入 ls,得到的不是一段文字,而是一個可以被篩選、排序、查詢的表格。這意味著你不再需要背誦複雜的 sed、awk 或 grep 正規表示式來擷取特定的欄位,只需要使用直覺的 where 或 get 指令即可完成。它結合了傳統 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:檢查磁碟使用空間並排序。
操作介面


