В чем разница между Bash, Zsh и другими Linux-оболочками?

Оглавление:

В чем разница между Bash, Zsh и другими Linux-оболочками?
В чем разница между Bash, Zsh и другими Linux-оболочками?

Видео: В чем разница между Bash, Zsh и другими Linux-оболочками?

Видео: В чем разница между Bash, Zsh и другими Linux-оболочками?
Видео: Android Wear Oreo 8.0 Beta for LG Watch Sport with Android Wear 2.0 - YouTube 2024, Апрель
Anonim
В большинстве дистрибутивов Linux по умолчанию используется оболочка bash, но вы также можете переключиться на другую среду оболочки. Zsh является особенно популярной альтернативой, и есть другие раковины, такие как зола, тире, рыба и tcsh. Но в чем разница, и почему их так много?
В большинстве дистрибутивов Linux по умолчанию используется оболочка bash, но вы также можете переключиться на другую среду оболочки. Zsh является особенно популярной альтернативой, и есть другие раковины, такие как зола, тире, рыба и tcsh. Но в чем разница, и почему их так много?

Что делают корпуса?

Когда вы входите в командную строку или запускаете окно терминала в Linux, система запускает программу оболочки. Оболочки предлагают стандартный способ расширения среды командной строки. Если хотите, вы можете поменять оболочку по умолчанию на другую.

Первой средой оболочки была Thompson Shell, разработанная в Bell Labs и выпущенная в 1971 году. С тех пор среда Shell строила концепцию, добавляя множество новых функций, функциональных возможностей и улучшений скорости.

Например, Bash предлагает завершение имени команды и файла, расширенные функции сценариев, историю команд, настраиваемые цвета, псевдонимы команд и множество других функций, которые не были доступны еще в 1971 году, когда была выпущена первая оболочка.

Оболочка также используется в фоновом режиме различными системными службами. В дистрибутивы Linux входят многие функции, написанные как скрипты оболочки. Эти скрипты представляют собой команды и другие расширенные функции сценариев оболочки, запускаемые через среду оболочки.

Оболочки, ведущие до Bash: sh, csh, tsh и ksh

Самым выдающимся предшественником современных снарядов является раковина Борна, также известная как «ш», которая была названа в честь ее создателя Стивена Борна, который работал в Bell Labs AT & T. Выпущенный в 1979 году, он стал интерпретатором команд по умолчанию в Unix из-за поддержки подстановки команд, трубопроводов, переменных, тестирования условий и циклов, а также других функций. Он не предлагал много настроек для пользователей и не поддерживал такие современные тонкости, как псевдонимы, завершение команды и функции оболочки (хотя в конечном итоге это последнее было добавлено).

С оболочкой С, или «csh», была разработана в конце 1970-х годов Билл Джой в Калифорнийском университете в Беркли. Он добавил множество интерактивных элементов, с помощью которых пользователи могли управлять своими системами, такими как псевдонимы (ярлыки для длинных команд), возможности управления заданиями, историю команд и многое другое. Он был смоделирован на языке программирования C, на котором была написана сама операционная система Unix. Это также означало, что пользователям оболочки Bourne пришлось изучить C, чтобы они могли вводить в нее команды. Кроме того, в csh было довольно много ошибок, которые должны были быть забиты пользователями и создателями в течение длительного периода времени. Люди закончили использование оболочки Bourne для скриптов, потому что обработали неинтерактивные команды лучше, но застряли с оболочкой C для нормального использования.

Со временем многие люди исправили ошибки и добавили функции в оболочку C, кульминацией которой стала улучшенная версия csh, известная как «tcsh». Но csh по-прежнему оставался дефолтом на компьютерах на базе Unix и добавил некоторые нестандартные функции. Дэвид Корн из Bell Labs работал над KornShell или «ksh», который пытался улучшить ситуацию, совместив ее с языком оболочки Bourne, но добавив много функций из оболочки csh. Он был выпущен в 1983 году, но под собственной лицензией. Это не было бесплатное программное обеспечение до 2000-х годов, когда оно было выпущено под различными лицензиями с открытым исходным кодом.
Со временем многие люди исправили ошибки и добавили функции в оболочку C, кульминацией которой стала улучшенная версия csh, известная как «tcsh». Но csh по-прежнему оставался дефолтом на компьютерах на базе Unix и добавил некоторые нестандартные функции. Дэвид Корн из Bell Labs работал над KornShell или «ksh», который пытался улучшить ситуацию, совместив ее с языком оболочки Bourne, но добавив много функций из оболочки csh. Он был выпущен в 1983 году, но под собственной лицензией. Это не было бесплатное программное обеспечение до 2000-х годов, когда оно было выпущено под различными лицензиями с открытым исходным кодом.

Рождение баша

Портативный интерфейс операционной системы для Unix, или POSIX, был еще одним ответом на суетливые проприетарные реализации csh. Он успешно создал стандарт интерпретации команд (среди прочего) и, в конечном счете, отразил множество функций в KornShell. В то же время проект GNU пытался создать свободную Unix-совместимую операционную систему. Проект GNU разработал бесплатную оболочку программного обеспечения, чтобы быть частью ее свободной операционной системы и назвал ее «Bourne Again Shell» или «bash».
Портативный интерфейс операционной системы для Unix, или POSIX, был еще одним ответом на суетливые проприетарные реализации csh. Он успешно создал стандарт интерпретации команд (среди прочего) и, в конечном счете, отразил множество функций в KornShell. В то же время проект GNU пытался создать свободную Unix-совместимую операционную систему. Проект GNU разработал бесплатную оболочку программного обеспечения, чтобы быть частью ее свободной операционной системы и назвал ее «Bourne Again Shell» или «bash».

Bash был улучшен в течение десятилетий с момента его первого выпуска в 1989 году, но он по-прежнему является оболочкой по умолчанию для большинства дистрибутивов Linux сегодня. Это также оболочка по умолчанию на MacOS от Apple и доступна для установки в Microsoft Windows 10.

Новые раковины: зола, тире, zsh и рыба

В то время как сообщество Linux заработало на Bash за многие годы, разработчики не прекратили создавать новые оболочки, когда Bash был впервые выпущен 28 лет назад.

Кеннет Альквист создал клон-оболочку Бурна, известную как оболочка Альккиша, «Шелл», «пепел», а иногда просто «ш». он также был совместим с POSIX и стал оболочкой по умолчанию в BSD, другой ветке Unix. Корпус пепла более легкий, чем bash, что делает его популярным во встроенных системах Linux. Если у вас установлен корневой телефон Android с установленным BusyBox или любым другим устройством с пакетом программного обеспечения BusyBox - он использует код из золы.

Debian разработал среду оболочки, основанную на золе, и назвал ее «тире». Он разработан, чтобы быть совместимым с POSIX и легким, поэтому он быстрее, чем Bash, но не будет иметь всех его функций. Ubuntu использует оболочку dash в качестве оболочки по умолчанию для неинтерактивных задач, ускоряя сценарии оболочки и другие задачи, выполняемые в фоновом режиме.Однако Ubuntu по-прежнему использует bash для интерактивных оболочек, поэтому пользователи по-прежнему имеют полнофункциональную интерактивную среду.
Debian разработал среду оболочки, основанную на золе, и назвал ее «тире». Он разработан, чтобы быть совместимым с POSIX и легким, поэтому он быстрее, чем Bash, но не будет иметь всех его функций. Ubuntu использует оболочку dash в качестве оболочки по умолчанию для неинтерактивных задач, ускоряя сценарии оболочки и другие задачи, выполняемые в фоновом режиме.Однако Ubuntu по-прежнему использует bash для интерактивных оболочек, поэтому пользователи по-прежнему имеют полнофункциональную интерактивную среду.
Одна из самых популярных новых оболочек - Z-оболочка или «zsh». Созданный Paul Falstad в 1990 году, zsh представляет собой оболочку стиля Bourne, которая содержит функции, которые вы найдете в bash, плюс еще больше. Например, zsh имеет проверку орфографии, возможность наблюдать за входами / выходами, некоторые встроенные функции программирования, такие как байт-код, поддержку научной нотации в синтаксисе, позволяет использовать арифметику с плавающей запятой и другие функции.
Одна из самых популярных новых оболочек - Z-оболочка или «zsh». Созданный Paul Falstad в 1990 году, zsh представляет собой оболочку стиля Bourne, которая содержит функции, которые вы найдете в bash, плюс еще больше. Например, zsh имеет проверку орфографии, возможность наблюдать за входами / выходами, некоторые встроенные функции программирования, такие как байт-код, поддержку научной нотации в синтаксисе, позволяет использовать арифметику с плавающей запятой и другие функции.
Еще одна новая оболочка - это дружественная интерактивная оболочка или «рыба», выпущенная в 2005 году. Она имеет уникальный синтаксис командной строки, который был немного легче освоить, но не был получен ни из оболочки Bourne, ни из оболочки C. Это интересная идея, но то, чему вы научились с помощью рыбы, не обязательно поможет вам использовать bash и другие раковины, полученные из Bourne.
Еще одна новая оболочка - это дружественная интерактивная оболочка или «рыба», выпущенная в 2005 году. Она имеет уникальный синтаксис командной строки, который был немного легче освоить, но не был получен ни из оболочки Bourne, ни из оболочки C. Это интересная идея, но то, чему вы научились с помощью рыбы, не обязательно поможет вам использовать bash и другие раковины, полученные из Bourne.

Что выбрать? (и почему Zsh популярен)

Вам не нужно выбирать оболочку. Ваша операционная система выбирает вашу оболочку по умолчанию для вас, и этот выбор почти всегда является bash. Сядьте перед дистрибутивом Linux или даже с Mac, и вы почти всегда будете иметь среду оболочки bash. У Bash есть несколько дополнительных функций, но вы, вероятно, не будете их использовать, если не будете программировать сценарии оболочки.

На встроенных системах Linux или BSD вы получите оболочку золы. Но зола - это оболочка на основе Борна и в значительной степени совместима с bash. Любые знания, которые вы получили от использования bash, будут перенесены на использование пепла или панели инструментов, хотя некоторые расширенные функции сценариев недоступны в этой легкой оболочке.

Почти каждая оболочка, с которой вы столкнетесь, базируется на Bourne и работает аналогично - включая zsh.

Вот почему zsh популярен. Эта новая оболочка совместима с bash, но включает в себя больше функций. Оболочка zsh предлагает встроенную коррекцию орфографии, улучшенное завершение командной строки, загружаемые модули, которые действуют как плагины для вашей оболочки, глобальные псевдонимы, которые позволяют вам псевдонимы имен файлов или что-либо еще в командной строке, а не только команды, и больше тематической поддержки. Это похоже на bash, но с большим количеством дополнительных функций, дополнительных функций и настраиваемых параметров, которые вы можете оценить, если потратить много времени в командной строке.

Если вы знакомы с bash, вы можете переключиться на zsh, не изучая другой синтаксис - вы просто получите дополнительные функции. если вы знакомы с zsh, вы можете переключиться на bash, не изучая другой синтаксис - у вас просто не будет доступа к этим функциям.

«Oh My ZSH» - это инструмент, который поможет вам более легко включить zsh-плагины и переключиться между готовыми темами, быстро настроить вашу оболочку zsh, не тратя часы на настройку.
«Oh My ZSH» - это инструмент, который поможет вам более легко включить zsh-плагины и переключиться между готовыми темами, быстро настроить вашу оболочку zsh, не тратя часы на настройку.

Есть и другие снаряды. Например, оболочка tcsh все еще существует и по-прежнему является опцией. FreeBSD использует tsch как свою корневую оболочку по умолчанию и золу как свою интерактивную оболочку по умолчанию. Если вы регулярно используете программирование C, tsch может быть лучше подходит вам. Тем не менее, он нигде не приближается, как обычно используется как bash или zsh.

Как переключаться между оболочками

Легко перейти на новую оболочку, чтобы попробовать ее. Просто установите оболочку из диспетчера пакетов дистрибутива Linux и введите команду для запуска оболочки.

Например, допустим, вы хотите попробовать zsh на Ubuntu. Для установки и последующего запуска выполните следующие команды:

sudo apt install zsh zsh

Тогда вы сидите в оболочке zsh. Тип"

exit

«В оболочке оставить ее и вернуться в вашу текущую оболочку.

Это просто временно. Всякий раз, когда вы открываете новое окно терминала или входите в свою систему в командной строке, вы увидите свою оболочку по умолчанию. Чтобы изменить оболочку, которую вы видите при входе в систему, известном как ваша оболочка входа в систему, вы обычно можете использовать
Это просто временно. Всякий раз, когда вы открываете новое окно терминала или входите в свою систему в командной строке, вы увидите свою оболочку по умолчанию. Чтобы изменить оболочку, которую вы видите при входе в систему, известном как ваша оболочка входа в систему, вы обычно можете использовать

chsh

или команду «Изменить оболочку».

Чтобы использовать эту команду, сначала вам нужно найти полный путь к вашей оболочке с помощью какой команды. Например, предположим, что мы хотели перейти на оболочку zsh. Мы выполнили следующую команду:

which zsh

На Ubuntu это говорит нам, что двоичный файл zsh хранится в / usr / bin / zsh.

Выполните следующую команду, введите свой пароль, и вам будет предложено выбрать новую оболочку для входа:

chsh

Согласно приведенной выше команде, мы должны ввести

/usr/bin/zsh

Оболочка zsh тогда была бы нашим дефолтом, пока мы не выполнили

chsh

и изменил его.

Рекомендуемые: