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

Опубликовано: 2022-01-29
Стилизованная командная строка на ноутбуке Linux в стиле Ubuntu.
Фатмавати Ахмад Заэнури/Shutterstock

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

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

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

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

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

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

СВЯЗАННЫЕ С: Что такое ZSH и почему вы должны использовать его вместо Bash?

Ведро ракушек

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

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

СВЯЗАННЫЕ: В чем разница между Bash, Zsh и другими оболочками Linux?

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

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

 кот /etc/shells 

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

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

 #!/бин/ш

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

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

 какой ш

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

 ls -l /bin/sh 

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

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

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

 sudo apt-get установить рыбу 

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

 sudo pacman -Sy рыба 

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

 sudo dnf установить рыбу 

Реклама

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

 кот /etc/shells 

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

Переменная окружения $SHELL

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

 эхо $SHELL

Приступаем к fish оболочке:

 рыбы

Теперь давайте еще раз проверим, что говорит переменная окружения $SHELL :

 эхо $SHELL 

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

Реклама

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

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

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

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

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

Команда chsh

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

Реклама

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

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

 чш 

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

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

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

 chsh -s /usr/bin/рыба 

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

Реклама

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

 эхо $SHELL 

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

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

 sudo chsh -s /usr/bin/fish mary 

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

У каждого есть любимый

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

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

СВЯЗАННЫЕ С: Лучшие ноутбуки с Linux для разработчиков и энтузиастов