The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

29.08.2019 11:27

Опубликован первый выпуск командной оболочки 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:

Для структурирования данных применяется ряд надстроек, которые разбирают вывод конкретных команд и типов файлов. Подобные надстройки предложены для команд 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     | description                | edition | license | name | version
   -------------+----------------------------+---------+---------+------+---------
    [list List] | A shell for the GitHub era | 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. Для неструктурированных данных (текста) предлагаются инструкции для разбивки на столбцы и строки на основе символов-разделителей.

 
  1. Главная ссылка к новости (http://www.jonathanturner.org/...)
  2. OpenNews: Microsoft открыл исходные тексты PowerShell и портировал для Linux
  3. OpenNews: Выпуск командной оболочки fish 3.0
  4. OpenNews: Xonsh - командная оболочка, сочетающая Python с лучшими возможностями Bash, zsh и fish
  5. OpenNews: Релиз командной оболочки zsh 5.1
  6. OpenNews: Релиз командного интерпретатора Bash 5.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51375-shell
Ключевые слова: shell, nushell
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (194) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 11:30, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +14 +/
    шота я не понял - зачем они написали павершел на хрусте, когда уже есть нормальный?
     

     ....большая нить свёрнута, показать (42)

  • 1.6, Аноним (5), 11:50, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    Не нужно написанное на не нужном.
     
  • 1.7, Аноним (7), 12:01, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +4 +/
    Хотел скачать, а там
    >A modern shell for the GitHub era
     
     
  • 2.46, Аноним84701 (ok), 14:30, 29/08/2019 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +3 +/
    > Хотел скачать, а там
    >>A modern shell for the GitHub era

    Зато самое главное в проекте не забыли:
    https://github.com/nushell/nushell/blob/master/CODE_OF_CONDUCT.md


     
     
  • 3.65, Аноним (65), 15:27, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > our community a harassment-free experience

    В общем, ни ты проект, ни проект тебя уже не затрахаете. Ляпота ж!

     
  • 2.160, Michael Shigorin (ok), 22:02, 30/08/2019 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    > "ls | where size > 10kb"

    ...а потом эта гитхабовая гопота внезапно откроет для себя перенаправление вывода "в баше"...

    Эх.

     
     
  • 3.189, Аноним (189), 11:09, 02/09/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • –1 +/
    У них есть для этих целей save|load. Не то же самое, но задачу решает.
     
     
  • 4.202, annual slayer (?), 01:07, 27/09/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    даже в фише одумались и вернули башевские штуки типа "&&" которые там принципиально отутствовали долгое время
     

  • 1.8, Аноним (8), 12:03, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +14 +/
    >сочетающей возможности Power Shell

    Пожалуйста, не надо!


     
  • 1.9, Аноним (9), 12:10, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +3 +/
    > Например, nushell позволяет использовать такие конструкции, как "ls | where size > 10kb" и "ps | where cpu > 10"

    bash-скрипты позволяют в 10 раз больше. Это для тех тупеньких админов, которые не осилили?

     

     ....большая нить свёрнута, показать (97)

  • 1.13, corvuscor (ok), 12:29, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    Не, ну табличный разбор вывода - это норм тема.
    Кто знает, такое к башу прикрутить можно?
     
     
  • 2.19, Аноним (5), 12:40, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Баш скриптом.
     
  • 2.20, Аноним (9), 12:40, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    awk
     
  • 2.21, aa (?), 12:41, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +8 +/
    Если бы пользователи умели awk, grep и sed, программисты были б не нужны. (с) непомнюкто
     
  • 2.22, Andrey Mitrofanov_N0 (??), 12:43, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +3 +/
    > Не, ну табличный разбор вывода - это норм тема.
    > Кто знает, такое к башу прикрутить можно?

    Я без понятия, какие-такие двоично-древовидные данные эти ваши повершелы таблично представляют, но....


    | column -t


    не Вам подойдёт?

     
  • 2.164, Michael Shigorin (ok), 22:13, 30/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Сходу вижу csvkit (но когда делали такие задачки, его ещё не было).
     

  • 1.27, Аноним (27), 12:56, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    Идея хорошая, но не взлетит исключительно потому, что уже есть де-фактный стандарт в виде bash (sh-фанатики, даю установку триггернуться.)
     
     
  • 2.58, Crazy Alex (??), 15:02, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Идея хорошая (правда, далеко не новая). Реализация - дрянь.
     
  • 2.149, Wilem (?), 18:36, 30/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • –3 +/
    > но не взлетит исключительно потому, что уже есть де-фактный стандарт

    Подобная аргументация никогда не работает. Что-то может не взлететь потому, что оно никому не нужно, а никак не потому, что что-то уже стандарт. Взлетит или нет зависит от того, что они дальше с ним сделают, но сама идея правильная и хорошая и уже видно, что лучше беша (идея, а не шелл).

     

  • 1.29, Vitaliy Blats (?), 13:10, 29/08/2019 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

  • 1.30, Проходил мимо (?), 13:14, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –1 +/
    Rust заточен на обработку строк в utf8. Интересно, как этот шелл будет работать в кириллических раскладках, отличных от юникода?
     
     
  • 2.36, Аноним (36), 13:41, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Тут один такой остался, кому это надо, saahriktu.
     
  • 2.44, Аноним84701 (ok), 14:24, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +2 +/
    > Rust заточен на обработку строк в utf8. Интересно, как этот шелл будет
    > работать в кириллических раскладках, отличных от юникода?

    Cудя по картинкам, в винде оно как-то работает. Или там уже юникод в терминал подвезли?

     
     
  • 3.151, Wilem (?), 18:49, 30/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    Старая консоль поддерживала и поддерживает UCS-2, то есть два байта на символ. Проблема как я понял в том, что UTF-8 это в худшем случае 4 байта, а значит полный UTF-8 отобразить не получится. Но например ввод и вывод русского+английского+чешского в одной строке работает. UTF-8 они пилят, но судя по блог-постам ещё не допилили, потому что пытаются не поломать старое.
     

  • 1.38, Аиксойд (?), 13:53, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • –2 +/
    При чтении различных логов будет удобно довольно )
     
     
  • 2.41, пийшелл (?), 14:01, 29/08/2019 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +/
    Ну не целый шелл же
     
     
  • 3.71, Аноним (25), 16:11, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Вот если они свою обработку вынесут в библиотеку, будет годно. А сам шел уже будет обёрткой над бибилиотекой. А над можно и что-то другое построить.
     
  • 2.69, Vitaliy Blats (?), 15:51, 29/08/2019 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    > При чтении различных логов будет удобно довольно )

    Не будет. Для чтения логов у нас есть бажецтвенный system с постраничным перелистыванием.

     

  • 1.48, анонимус (??), 14:37, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +/
    > В оболочке применяется привычная для пользователей Unix система конвейеров в формате "команда|фильтры|обработчик вывода".

    Для пользователя Unix систем привычно, когда пайп создает неименованный канал между двумя процессами. А тут пайп - это видимо просто такой синтаксический сахар.

     
     
  • 2.54, Аноним (27), 14:56, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    То есть в баше пайп это не синтаксический сахар, а самая что ни на есть низкоуровщина? Ниже только кварки с глюонами?
     
     
  • 3.63, user90 (?), 15:09, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    FIFO
     
  • 3.70, пох. (?), 15:57, 29/08/2019 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • +1 +/
    ну в общем-то да, ниже уже только файловые дескрипторы.
    man 2 pipe (или в "новом стандарте" уже нету?)

     
     
  • 4.105, Аноним (105), 21:53, 29/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • –3 +/
    Фд - это высокоуровневое апи оси. Пайпы - нескучный смузи-синтаксис над фд-шками. Прув ми вронг.

    И в баше, и в нюшеле пайпы не более чем смузи синтаксис. Эген, прув ми вронг

     
  • 3.165, Michael Shigorin (ok), 22:24, 30/08/2019 [^] [^^] [^^^] [ответить]  []     [к модератору]
  • –1 +/
    В шелле pipe -- это одна из основополагающих конструкций.

    Синтаксический сахар, юноша -- это когда берём что-то зубодробительное и делаем его более мягким и пушистым.  При этом есть возможность обращения как с исходным _синтаксисом_, так и с "сахарным".

    А теперь покажите, как Вы собрались делать в posix shell пайп без пайпа.  Нет, не на промежуточных файлах, а именно трубу.  То есть что именно считаете засахаренным.  В шелле, мальчик, в самом шелле.

    Ну или найдите силы признать, что ляпнули глупость.  Умные ведь учатся хотя бы на своих ошибках, совсем не учатся только дураки.

     

  • 1.95, Annoynymous (ok), 21:15, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +2 +/
    Ни тебе снапа, ни тебе флатпака, ни тебе аппимиджа. Недостаточно хипстово!
     
  • 1.108, Аноним (108), 22:55, 29/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +1 +/
    В Unix shell всё есть текст. В PowerShell всё есть объект. А тут что?
     
     
  • 2.126, Аноним (125), 10:40, 30/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    а тут всё есть раст.
     
  • 2.131, пох. (?), 11:17, 30/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    > В Unix shell всё есть текст. В PowerShell всё есть объект.

    э... вы не в курсе, как устроены эти его "объекты"? Тогда не буду огорчать, пребывайте в счастливом заблуждениИ, что хоть powershell написан руками и придуман головой.

    >  А тут что?

    херня тут. Ну и что? Зато на хрусте!


     
     
  • 3.153, Аноним (153), 19:01, 30/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    > вы не в курсе, как устроены эти его "объекты"?

    Нет, конечно. Мне и так пришлось узнать о нём намного больше, чем хотелось.

     

  • 1.145, Аноним (145), 18:23, 30/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    Зачем потребовалось скрещивать shell с json-RPC?
    Поклонникам shell нафиг не уперся json... поклонники json никогда не полезут в shell...
     
     
  • 2.152, Wilem (?), 18:54, 30/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • –2 +/
    :) Реальный мир (где люди работу делают) нет никаких поклонников. Есть задачи и инструменты с помощью которых они решаются.
     
     
  • 3.156, Аноним (156), 20:05, 30/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +1 +/
    Серещивание shell с json - это однозначно не про реальный мир...
     
  • 3.166, Michael Shigorin (ok), 22:25, 30/08/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    А потом поезда с рельс сходят у таких вот самоуверенных.
     
     
  • 4.191, Wilem (?), 14:33, 02/09/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Речь исключительно про поклонников, а не шелл с джейсоном.
     

  • 1.159, user90 (?), 21:52, 30/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  [] []     [к модератору]
  • +1 +/
    Ну ладно, "структурированные данные" и пара_встроенных_модулей. Это просто ниачем. А если отмасштабировать? Тогда получится забавнее: возвращает эта хрень какой-то объект - как ты будешь с ним работать? Да первым делом полезешь смотреть ТЕКСТОВОЕ описание "объекта"! Но позвольте, это же.. ага! Да еще городить какие-то свои стандарты. Короче, лажа!
     
     
  • 2.184, Аноним (189), 04:58, 02/09/2019 [^] [^^] [^^^] [ответить]      [к модератору]
  • +/
    Не так. Добавил разработчик в неструктурированный вывод своей утилиты новое поле - ваши скрипты посыпались, или, что хуже, сломались незаметно. Со структурированным выводом такого не будет.
     

  • 1.169, vitalif (ok), 02:27, 31/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  []     [к модератору]
  • +/
    > [object Object]

    Охренеть разбор, jq как-то лучше парсит

     
  • 1.172, rihad (ok), 09:50, 31/08/2019 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • +/
    Табуляция и фильтр по колонкам - очень симпатично. Но это не Unix way поэтому наврядли в ближайшее время сможет заменить /bin/sh и его производные. Если они сохраняют как-то обратную совместимость и позволяют эти надстройки использовать при желании - то круто. А так... все это можно реализовать на bash или sh алиасами и функциями, вот только нестандартны они, к сожалению.
     
  • 1.201, Аноним (201), 09:09, 08/09/2019 [ответить] [﹢﹢﹢] [ · · · ]      [к модератору]
  • –1 +/
    bolshoe spasibo druzia
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру