Что делают корпуса?
Когда вы входите в командную строку или запускаете окно терминала в 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 для нормального использования.
Рождение баша
Bash был улучшен в течение десятилетий с момента его первого выпуска в 1989 году, но он по-прежнему является оболочкой по умолчанию для большинства дистрибутивов Linux сегодня. Это также оболочка по умолчанию на MacOS от Apple и доступна для установки в Microsoft Windows 10.
Новые раковины: зола, тире, zsh и рыба
В то время как сообщество Linux заработало на Bash за многие годы, разработчики не прекратили создавать новые оболочки, когда Bash был впервые выпущен 28 лет назад.
Кеннет Альквист создал клон-оболочку Бурна, известную как оболочка Альккиша, «Шелл», «пепел», а иногда просто «ш». он также был совместим с POSIX и стал оболочкой по умолчанию в BSD, другой ветке Unix. Корпус пепла более легкий, чем bash, что делает его популярным во встроенных системах Linux. Если у вас установлен корневой телефон Android с установленным BusyBox или любым другим устройством с пакетом программного обеспечения BusyBox - он использует код из золы.
Что выбрать? (и почему Zsh популярен)
Вам не нужно выбирать оболочку. Ваша операционная система выбирает вашу оболочку по умолчанию для вас, и этот выбор почти всегда является bash. Сядьте перед дистрибутивом Linux или даже с Mac, и вы почти всегда будете иметь среду оболочки bash. У Bash есть несколько дополнительных функций, но вы, вероятно, не будете их использовать, если не будете программировать сценарии оболочки.
На встроенных системах Linux или BSD вы получите оболочку золы. Но зола - это оболочка на основе Борна и в значительной степени совместима с bash. Любые знания, которые вы получили от использования bash, будут перенесены на использование пепла или панели инструментов, хотя некоторые расширенные функции сценариев недоступны в этой легкой оболочке.
Почти каждая оболочка, с которой вы столкнетесь, базируется на Bourne и работает аналогично - включая zsh.
Вот почему zsh популярен. Эта новая оболочка совместима с bash, но включает в себя больше функций. Оболочка zsh предлагает встроенную коррекцию орфографии, улучшенное завершение командной строки, загружаемые модули, которые действуют как плагины для вашей оболочки, глобальные псевдонимы, которые позволяют вам псевдонимы имен файлов или что-либо еще в командной строке, а не только команды, и больше тематической поддержки. Это похоже на bash, но с большим количеством дополнительных функций, дополнительных функций и настраиваемых параметров, которые вы можете оценить, если потратить много времени в командной строке.
Если вы знакомы с bash, вы можете переключиться на zsh, не изучая другой синтаксис - вы просто получите дополнительные функции. если вы знакомы с zsh, вы можете переключиться на bash, не изучая другой синтаксис - у вас просто не будет доступа к этим функциям.
Есть и другие снаряды. Например, оболочка 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
и изменил его.