Прадстаўлена новая камандная абалонка nushell

Апублікаваны першы выпуск каманднай абалонкі нушэль, якая спалучае магчымасці Power Shell і класічных unix shell. Код напісаны на мове Rust і распаўсюджваецца пад ліцэнзіяй MIT. Праект першапачаткова развіваецца як крос-платформавы і падтрымлівае працу ў Windows, macOS і Linux. Для пашырэння функцыянальнасці могуць выкарыстоўвацца убудовы, узаемадзеянне з якімі ажыццяўляецца па пратаколе JSON-RPC.

У абалонцы ўжываецца звыклая для карыстачоў Unix сістэма канвеераў у фармаце "каманда|фільтры|апрацоўшчык высновы". Па змаўчанні выснова афармляецца пры дапамозе каманды autoview, якая выкарыстоўвае таблічны фармат, але магчыма і прымянення каманд для адлюстравання бінарных даных і інфармацыі ў дрэвападобным прадстаўленні. Моцным бокам nushell з'яўляецца магчымасць маніпуляцыі структураваным дадзенымі.

Абалонка дазваляе структураваць выснову розных каманд і змесціва файлаў, і ўжываць адвольныя фільтры, якія афармляюцца з выкарыстаннем уніфікаванага сінтаксісу, які не патрабуе вывучэння опцый каманднага радка кожнай пэўнай каманды. Напрыклад, nushell дазваляе выкарыстоўваць такія канструкцыі, як «ls | where size > 10kb» і «ps | where cpu > 10», якія прывядуць да высновы толькі файлаў памерам больш за 10Kb і працэсаў, якія выдаткавалі больш за 10 секунд рэсурсаў CPU:

Прадстаўлена новая камандная абалонка nushell

Прадстаўлена новая камандная абалонка nushell

Для структуравання дадзеных ужываецца шэраг надбудоў, якія разбіраюць выснову пэўных каманд і тыпаў файлаў. Падобныя надбудовы прапанаваны для каманд cd, ls, ps, cp, mkdir, mv, date, rm (для выкліку родных каманд можа прымяняцца прэфікс "^", напрыклад выклік "^ls" прывядзе да запуску сістэмнай утыліты ls). Маюцца і спецыялізаваныя каманды, такія як open для адлюстравання інфармацыі аб абраным файле ў таблічным выглядзе. Для фарматаў JSON, TOML і YAML падтрымліваецца аўтаматычны разбор.

/home/jonathan/Source/nushell(master)> open Cargo.toml

——————+——————+———————
dependencies | dev-dependencies | package
——————+——————+———————
[object Object] | [object Object] | [object Object] ——————+——————+——————

/home/jonathan/Source/nushell(master)> open Cargo.toml | get package

————-+—————————-+———+———+——+———
authors | апісанне | edition | license | name | version
————-+—————————-+———+———+——+———
[list List] | Shell for the GitHub эра | 2018 | MIT | nu | 0.2.0
————-+—————————-+———+———+——+———

/home/jonathan/Source/nushell(master)> open Cargo.toml | get package.version | echo $it

0.2.0

Прадастаўляецца вялікі набор інструкцый для фільтрацыі структураваных дадзеных, якія дазваляюць адсяваць радкі, сартаваць па слупках, падсумоўваць дадзеныя, вырабляць простыя вылічэнні, выкарыстоўваць лічыльнікі значэнняў, выконваць пераўтварэнне высновы ў фарматы CSV, JSON, TOML і YAML. Для неструктураваных дадзеных (тэксту) прапануюцца інструкцыі для разбіўкі на слупкі і радкі на аснове знакаў-падзельнікаў.

Крыніца: opennet.ru

Дадаць каментар