今天要给大家介绍一个生产力工具Shell,它叫Nushell,它是用Rust写的,安全性提高的同时,Bug率也降低了,NuShell 专注于实现以下目标:
创建具有现代感的灵活的跨平台Shell
允许你将命令行应用程序与可理解数据结构的Shell进行混合和匹配
具有现代命令行应用程序提供的用户体验优化
在 Linux / macOS 系统上运行 NuShell 的最简单快捷的方法是从 crates.io 安装 ,或从我们的 Github 发布页面下载预构建的二进制文件 。
对于任何 Linux 发行版来说,最理想的安装方法是二进制方法。我们将使用 curl 工具获取最新版本,下载然后解压缩文件以获得 Nushell 二进制文件。
Git地址:https://github.com/nushell/nushell
官方文档:https://www.nushell.sh/zh-cn/book/installation.html
Demo地址:https://www.nushell.sh/demo/
MacOS 安装
$ brew install nushell
安装过程需要几分钟,有50M+
示例
了解 Nu 可以做什么的最简单方式就是通过一些例子,所以让我们沉浸进去吧。
当你运行一个类似 ls 的命令时,第一个注意到的是所得到的不是一个文本块,而是一个结构化的表。
➜ ~ ls Applications Documents Movies Pictures logs Desktop Downloads Music Public node_modules Docker Library MyLibrary WorkSpace package-lock.json
使用 nu
➜ ~ nu Welcome to Nushell 0.33.0 (type 'help' for more info) /Users/tingfeng> ls ────┬───────────────────┬──────┬────────┬────────────── # │ name │ type │ size │ modified ────┼───────────────────┼──────┼────────┼────────────── 0 │ Applications │ Dir │ 96 B │ 1 month ago 1 │ Desktop │ Dir │ 256 B │ 1 min ago 2 │ Docker │ Dir │ 128 B │ 6 months ago 3 │ Documents │ Dir │ 1.3 KB │ 2 weeks ago 4 │ Downloads │ Dir │ 512 B │ 1 min ago 5 │ Library │ Dir │ 2.4 KB │ 1 day ago 6 │ Movies │ Dir │ 192 B │ 2 weeks ago 7 │ Music │ Dir │ 192 B │ 3 weeks ago 8 │ MyLibrary │ Dir │ 320 B │ 2 weeks ago 9 │ Pictures │ Dir │ 544 B │ 1 month ago 10 │ Public │ Dir │ 128 B │ 1 month ago 11 │ WorkSpace │ Dir │ 192 B │ 1 month ago 12 │ logs │ Dir │ 160 B │ 1 week ago 13 │ node_modules │ Dir │ 96 B │ 5 days ago 14 │ package-lock.json │ File │ 299 B │ 5 days ago ────┴───────────────────┴──────┴────────┴────────────── /Users/tingfeng>
这个表不仅仅是用另一种方式显示了当前目录。就像电子表格中的表一样,我们可以更加交互性地处理数据。
我们做的第一件事是将表格通过尺寸来排序。为了做到这点,我们将会把 ls 的输出喂给一个可以根据列的内容来排序表格的命令。
常用命令如下
ls | sort-by size(正序排列)
ls | sort-by size | reverse(倒叙排列)
ls | where size > 1kb(大小超过1Kb)
ps | where cpu > 1(Cpu 使用率超过1)
ls *.md(查找文件)
ls **/*.md(递归查找文件)
ls | get name(name列数据)
ls | select name size(name、size列数据)
ls | sort-by name(name排序)
ls | sort-by size | first 5(size排序后的前5条记录)
ls | sort-by size | first 5 | skip 2(size排序后的前5条记录跳过前2条)
/Users/tingfeng> ls | sort-by size ────┬───────────────────┬──────┬────────┬────────────── # │ name │ type │ size │ modified ────┼───────────────────┼──────┼────────┼────────────── 0 │ Applications │ Dir │ 96 B │ 1 month ago 1 │ node_modules │ Dir │ 96 B │ 5 days ago 2 │ Docker │ Dir │ 128 B │ 6 months ago 3 │ Public │ Dir │ 128 B │ 1 month ago 4 │ logs │ Dir │ 160 B │ 1 week ago 5 │ Movies │ Dir │ 192 B │ 2 weeks ago 6 │ Music │ Dir │ 192 B │ 3 weeks ago 7 │ WorkSpace │ Dir │ 192 B │ 1 month ago 8 │ Desktop │ Dir │ 256 B │ 4 mins ago 9 │ package-lock.json │ File │ 299 B │ 5 days ago 10 │ MyLibrary │ Dir │ 320 B │ 2 weeks ago 11 │ Downloads │ Dir │ 512 B │ 4 mins ago 12 │ Pictures │ Dir │ 544 B │ 1 month ago 13 │ Documents │ Dir │ 1.3 KB │ 2 weeks ago 14 │ Library │ Dir │ 2.4 KB │ 1 day ago ────┴───────────────────┴──────┴────────┴────────────── /Users/tingfeng> ps | where cpu > 1 ───┬──────┬────────────────────────────┬────────┬────────┬──────────┬───────── # │ pid │ name │ status │ cpu │ mem │ virtual ───┼──────┼────────────────────────────┼────────┼────────┼──────────┼───────── 0 │ 2099 │ DingTalk Helper │ Run │ 3.6740 │ 220.5 MB │ 5.7 GB 1 │ 967 │ pycharm │ Run │ 3.0096 │ 1.8 GB │ 12.4 GB 2 │ 468 │ Google Chrome │ Run │ 2.6975 │ 283.0 MB │ 6.0 GB 3 │ 521 │ WeChat │ Run │ 1.8022 │ 456.0 MB │ 7.4 GB 4 │ 922 │ iTerm2 │ Run │ 1.0784 │ 156.1 MB │ 5.8 GB 5 │ 2093 │ DingTalk │ Run │ 5.2958 │ 258.5 MB │ 7.4 GB 6 │ 572 │ Google Chrome Helper (GPU) │ Run │ 8.8588 │ 231.6 MB │ 5.4 GB ───┴──────┴────────────────────────────┴────────┴────────┴──────────┴─────────
date 日期操作
/Users/tingfeng> date now 2021-07-24 17:04:32.795659 +08:00 /Users/tingfeng> date to-table ───┬──────┬───────┬─────┬──────┬────────┬────────┬────────── # │ year │ month │ day │ hour │ minute │ second │ timezone ───┼──────┼───────┼─────┼──────┼────────┼────────┼────────── 0 │ 2021 │ 7 │ 24 │ 17 │ 4 │ 42 │ +08:00 ───┴──────┴───────┴─────┴──────┴────────┴────────┴──────────
sys 系统信息
sys 命令给出的表在单元格内包含了另一些结构化的表格,而非简单的数值。为了查看到这些数据,我们需要选择要看的列:
/Users/tingfeng> sys ───┬─────────────────────────────┬─────────────────┬────────────────┬─────────────────────────────────┬────────────────┬───────────────── # │ host │ cpu │ disks │ mem │ temp │ net ───┼─────────────────────────────┼─────────────────┼────────────────┼─────────────────────────────────┼────────────────┼───────────────── 0 │ [row name os version kernel │ [table 12 rows] │ [table 2 rows] │ [row total free swap total swap │ [table 4 rows] │ [table 20 rows] │ version hostname uptime │ │ │ free] │ │ │ sessions] │ │ │ │ │ ───┴─────────────────────────────┴─────────────────┴────────────────┴─────────────────────────────────┴────────────────┴───────────────── /Users/tingfeng> sys | get host ───┬────────┬────────────┬────────────────┬─────────────────────────────┬─────────────────┬──────────────── # │ name │ os version │ kernel version │ hostname │ uptime │ sessions ───┼────────┼────────────┼────────────────┼─────────────────────────────┼─────────────────┼──────────────── 0 │ Darwin │ 11.5 │ 20.6.0 │ tingfengdeMacBook-Pro.local │ 2hr 10min 34sec │ [table 3 rows] ───┴────────┴────────────┴────────────────┴─────────────────────────────┴─────────────────┴────────────────
未经允许请勿转载:程序喵 » 终端神器 NuShell