Как изменить оболочку по умолчанию в Linux с помощью chsh

5 февраля 2021 |

Как изменить оболочку по умолчанию в Linux с помощью chsh

A stylized shell prompt on a Ubuntu-style Linux laptop system. Фатмавати Ахмад Зэнури / Shutterstock

Bash — не единственная оболочка Linux. Легко попробовать другие оболочки, например Zsh, который очень популярен. Когда вы найдете ту, которая вам нравится, используйте команду chsh, чтобы сделать ее оболочкой по умолчанию. Мы покажем вам, как это сделать.

Почему оболочка так важна

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

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

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

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

Мешок оболочек

Мы уже рассказывали о различных оболочках Linux раньше, но вот краткое введение в самые распространенные:

  • bash: оболочка Bourne again используется по умолчанию во многих дистрибутивах.
  • rbash: Эта оболочка с ограниченным доступом bash предоставляет минимальную функциональность для человека или сценария, выполняющего ее.
  • ash: оболочка Almquist — это облегченная версия bash.
  • dash: оболочка Debian Alquist — это сценарий оболочки по умолчанию в Ubuntu. В то время как bash используется по умолчанию и является интерактивной оболочкой, тире используется для запуска системных процессов, потому что он намного легче, чем bash.
  • zsh: оболочка Z — это современный вариант семейства оболочек bash. Он предлагает аккуратные улучшения, такие как проверка орфографии команд и предлагаемые исправления.
  • fish: эта удобная интерактивная оболочка была написана с нуля и не является производной от других семейств оболочек. Он предназначен для удобства использования. Среди множества других преимуществ fish предлагает варианты команд, основанные на вашей истории и содержимом текущей папки, аналогично интеллектуальному тексту.
  • ksh: KornShell предоставляет особенно мощный язык сценариев.

Список установленных оболочек

Чтобы увидеть, какие оболочки установлены на вашем компьютере, используйте эту команду. Он просто перечисляет содержимое файла / etc / shells:

cat / etc / shells

Мы упоминали bash, dash и rbash, но что такое ш?

sh — оболочка Томпсона, написанная еще в 1971 году Кеном Томпсоном из Bell Labs. Он больше не обслуживается, и его давно вытеснили современные оболочки. Он включен исключительно для обеспечения совместимости со старыми сценариями, у которых все еще есть следующая строка в качестве первой строки:

#! / Bin / sh

Это указывает системе использовать оболочку sh для выполнения сценария. У вас действительно есть эта древняя оболочка на вашем компьютере и используется ли она для запуска ваших скриптов? Команда which сообщит нам, какая программа на самом деле запускается, когда вы вводите команду.

Давайте посмотрим, что запускается, когда вы набираете sh:

which sh

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

ls -l / bin / sh

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

Установка другой оболочки

Давайте установим оболочку fish и установим ее по умолчанию для Дэйв. В Ubuntu мы вводим следующую команду:

sudo apt-get install fish

В Manjaro используйте pacman:

sudo pacman -Sy fish

В Fedora введите следующее:

sudo dnf install fish

Когда установка будет завершена, вы можете проверить установленные оболочки еще раз:

cat / etc / shells

Наша новая оболочка отображается как / usr / bin / fish. Запишите этот путь — он вам скоро понадобится.

Переменная среды $ SHELL

Переменная среды $ SHELL содержит имя вашей текущей оболочки. Мы можем проверить, какой из них установлен, с помощью echo:

echo $ SHELL

Давайте запустим оболочку fish:

fish

Теперь давайте снова проверим, что говорит переменная среды $ SHELL:

echo $ SHELL

В первый раз, когда мы используем echo $ SHELL, мы находимся в оболочке bash. Переменная среды содержит путь к исполняемому файлу bash, / bin / bash.

Когда мы запускаем оболочку Fish, мы получаем приветственное сообщение и командная строка меняется. Что может быть удивительно, так это то, что среда $ SHELL по-прежнему хранит путь к исполняемому файлу bash, / bin / bash. Ничего страшного, это нормально.

Когда вы запускаете новую оболочку (или любую другую программу), она наследует среду родительской оболочки. Итак, оболочка fish наследует глобальные и экспортированные переменные среды из оболочки bash. Поскольку значение переменной среды $ SHELL не было изменено, в оболочке fish она имеет то же значение, что и в оболочке bash.

Мы запускаем fish, как и любую другую программу. Мы также можем использовать exit для выхода из раковины рыбы. Он закрывается, как и любая другая программа, и мы возвращаемся к оболочке bash.

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

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

Команда chsh

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

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

Чтобы установить оболочку входа, используйте chsh без параметров:

chsh

Вы запросили пароль. Затем вы должны ввести путь к новой оболочке и нажать Enter.

Если мы установим удаленное соединение с этим тестовым компьютером с другого, мы окажемся в оболочке Fish после входа в систему.

Чтобы изменить интерактивную оболочку, используйте chsh с параметром -s (оболочка). Передайте путь к новой оболочке в командной строке:

chsh -s / usr / bin / fish

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

Переменная среды $ SHELL теперь содержит путь к вашей новой оболочке по умолчанию:

echo $ SHELL

Изменение оболочки другой учетной записи пользователя

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

sudo chsh -s / usr / bin / fish mary

Когда Мэри войдет в систему в следующий раз, она увидит новую оболочку, когда откроет окно терминала.

У всех есть избранное

Если вам удобно ваш выбор оболочки, и она работает на вас, это здорово! Просто помните, что он должен уметь запускать общие сценарии, такие как процедуры установки. Для упомянутых здесь оболочек это не должно быть проблемой.

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

Как изменить оболочку по умолчанию в Linux с помощью chsh


Напишите пару строк: