In most Linux systems, the default shell is bash but we can change that to any other shell-like zsh, fish, sh, and any other. In this article, we are going to show how to change that default shell to any other shell in Linux systems. To change the user’s shell, first, let’s find the current shell. There are many ways by which we can change the shell of any user on a Linux system. We are going to see three methods of changing the user’s shell.
Find your current shell name
In Linux systems, there is one file which is /etc/passwd. The /etc/passwd file stores essential information of user accounts, which is required during login. By using this file we can identify the current user login shell.
We are going to see the current user information in the /etc/file using the following command:
grep `whoami` /etc/passwd
In the above image we can see that the user nishant (current user) has home directory /home/nishant and the shell is /bin/sh
List your shells in Linux
Now to change the shell, first, we need to see which shells are installed on the system. We can check installed shells using the following command :
cat /etc/shells
This will show all shells as follows:
Before moving further, first understand who can change the user shell
- Users can change shell to any other shell listed in /etc/shells/.
- The root account can be used to change any other user login shell.
- If an account has a restricted login shell, then only the root can change that user’s shell.
Changing default sh shell to bash
Using usermod command
usermod is a command that modifies the system account files. usemod can change the shell of Users by modifying file /etc/passwd. usermod command provides the -s or –shell option to change the user’s login shell.
In this example, we are going to change the shell of a user named nishant. We are going to change the shell from /bin/sh to /bin/bash of user nishant using usermod command.
sudo usermod --shell /bin/bash nishant
With usermod command mention shell and username after –shell option.
Now you can see the shell use changed. In the above commands, replace nishant with the user name whose shell has to change.
Using chsh Utility
chsh is the utility to change a user’s login shell. chsh provides the -s option to change the user’s shell. This method also modifies the file /etc/passwd. Use the following command to change shells using chsh:
chsh -s /bin/bash nishant
Change User Shell to /etc/passwd File
As we see in the above two methods, the usermod command and chsh utility modify the /etc/passwd file and change the user shell. We can do that manually also by editing the /etc/passwd file. Just change the shell after the username and home directory in the /etc/passwd file and save the file.
nano /etc/passwd
In most Linux systems, the default shell is bash but we can change that to any other shell-like zsh, fish, sh, and any other. In this article, we are going to show how to change that default shell to any other shell in Linux systems. To change the user’s shell, first, let’s find the current shell. There are many ways by which we can change the shell of any user on a Linux system. We are going to see three methods of changing the user’s shell.
Find your current shell name
In Linux systems, there is one file which is /etc/passwd. The /etc/passwd file stores essential information of user accounts, which is required during login. By using this file we can identify the current user login shell.
We are going to see the current user information in the /etc/file using the following command:
grep `whoami` /etc/passwd
In the above image we can see that the user nishant (current user) has home directory /home/nishant and the shell is /bin/sh
List your shells in Linux
Now to change the shell, first, we need to see which shells are installed on the system. We can check installed shells using the following command :
cat /etc/shells
This will show all shells as follows:
Before moving further, first understand who can change the user shell
- Users can change shell to any other shell listed in /etc/shells/.
- The root account can be used to change any other user login shell.
- If an account has a restricted login shell, then only the root can change that user’s shell.
Changing default sh shell to bash
Using usermod command
usermod is a command that modifies the system account files. usemod can change the shell of Users by modifying file /etc/passwd. usermod command provides the -s or –shell option to change the user’s login shell.
In this example, we are going to change the shell of a user named nishant. We are going to change the shell from /bin/sh to /bin/bash of user nishant using usermod command.
sudo usermod --shell /bin/bash nishant
With usermod command mention shell and username after –shell option.
Now you can see the shell use changed. In the above commands, replace nishant with the user name whose shell has to change.
Using chsh Utility
chsh is the utility to change a user’s login shell. chsh provides the -s option to change the user’s shell. This method also modifies the file /etc/passwd. Use the following command to change shells using chsh:
chsh -s /bin/bash nishant
Change User Shell to /etc/passwd File
As we see in the above two methods, the usermod command and chsh utility modify the /etc/passwd file and change the user shell. We can do that manually also by editing the /etc/passwd file. Just change the shell after the username and home directory in the /etc/passwd file and save the file.
nano /etc/passwd
Оглавление
- Что такое командная оболочка
- Оболочки Linux
- Как определить текущую командую оболочку
- Способ 1
- Способ 2
- Способ 3
- Как посмотреть список оболочек, доступных в системе
- Как временно переключиться на другую оболочку
- Как изменить оболочку
- Заключение
Что такое командная оболочка
Командная оболочка или командный интерпретатор в Linux — это программа, которая в текстовой среде выступает в качестве интерфейса между пользователем и операционной системой. Она интерпретирует вводимые команды с терминала и вызывает необходимые программы.
Когда вы работаете в терминале, именно командная оболочка обрабатывает вводимые вами команды. Более того, оболочки Linux поддерживают написание программ на языке оболочки.
Оболочки Linux
Одна из самых популярных командных оболочек — это оболочка Bash (Bourne Again Shell). Она используется по умолчанию в большинстве дистрибутивов Linux.
Существуют разные оболочки Linux. Можно отметить:
- bash
- csh
- dash
- fish
- ksh
- pdksh
- rbash
- sh
- tcsh
- zsh
Оболочки могут очень сильно отличаться друг от друга. Они отличаются функциональностью, синтаксисом команд, строкой приветствия, дружелюбностью к пользователю и другими параметрами и возможностями.
Как определить текущую командую оболочку
Есть несколько способов определить оболочку, используемую по умолчанию в вашей системе Linux. Рассмотрим несколько из них, так как в разных системах (и оболочках) какие-то способы могут не сработать.
Также нужно знать, что у разных пользователей системы могут использоваться разные оболочки.
Способ 1
Переменная окружения SHELL хранит путь до исполняемого файла оболочки. Выполним команду:
echo $SHELL
/bin/bash
Из вывода команды, мы видим, что используется оболочка bash.
Способ 2
Также можно воспользоваться командой echo $0. Данная команда выведет на экран имя текущего работающего процесса, внутри которого она выполнена. Так как мы выполняем команду внутри оболочки, то будет выведено имя оболочки.
echo $0
bash
Способ 3
Определим, работающий процесс оболочки командой ps.
ps -p $$
PID TTY TIME CMD
10792 pts/3 00:00:00 bash
Как посмотреть список оболочек, доступных в системе
Список оболочек, которые в данный момент установлены и доступны в системе Linux, хранится в файле /etc/shells
Выведем содержимое файла /etc/shells, для этого выполняем команду:
cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
Как временно переключиться на другую оболочку
Чтобы временно переключиться на другую оболочку, достаточно выполнить в терминале команду, соответствующую ее имени. После этого вы переключитесь на новую оболочку.
Например, переключимся на оболочку sh. Выполняем команду:
sh
Как изменить оболочку
Для изменения командной оболочки на постоянной основе служит команда chsh (от слов change shell).
Чтобы изменить оболочку текущего пользователя нужно выполнить команду:
chsh -s путь_новой_оболочки
В качестве параметра путь_новой_оболочки необходимо указать путь до исполняемого файла оболочки, который вы можете найти в файле /etc/shells (см. выше).
Например, изменим оболочку на sh. Для этого выполняем команду (при выполнении команды нужно будет ввести пароль):
chsh -s /bin/sh
После этого нужно выйти и снова войти в систему.
Чтобы изменить оболочку, используемую по умолчанию, для другого пользователя, то команде chsh необходимо указать имя этого пользователя:
chsh -s /bin/sh yuriy
Заключение
Мы рассмотрели, как определить текущую оболочку Linux, как просмотреть список доступных оболочек, а также как изменить оболочку, используемую по умолчанию.
Чтобы получить информацию о какой-либо оболочке (доступной в системе) можно воспользоваться Man-страницами. Например:
man rbash
Дополнительные оболочки можно устанавливать средствами системы (из репозиториев). Например, для установки оболочки fish в Ubuntu Linux, выполните команду
sudo apt install fish
Возможно, вы уже знаете, что в Linux и других Unix-подобных системах доступно несколько оболочек. Bash является оболочкой по умолчанию почти во всех дистрибутивах Linux, но есть и другие популярные оболочки, такие как:
Некоторые из оболочек предоставляют дополнительные функции для удобства пользователе. Возьмем, к примеру, оболочку Fish. Онf частично начинает показывать вам подсказки команд, основанные на вашей предыдущей набранной команде. Это очень удобно, если вы не хотите постоянно помнить ярлыки на терминале Linux.
Давайте посмотрим некоторые моменты оболочки системы Linux.
Чтобы узнать, какая оболочка по умолчанию установлена в конкретной системе, проверим переменную среды SHELL. Обычно оболочкой по умолчанию является bash, и она отображается так:
$ echo $SHELL /bin/bash
Не существует единого метода, который бы сообщал вам, какая оболочка используется в данный момент со 100%-ой точностью.
Но можно попробовать либо echo $0, который показывает вывод, подобный этому:
$ echo $0 zsh
либо проверить процесс, используя ps -p $$ следующим образом:
$ ps -p $$ PID TTY TIME CMD 9625 pts/0 00:00:00 zsh
Все оболочки, доступные в конкретной системе, перечислены в файле /etc/shells. Можно использовать команды cat или less для просмотра содержимого файла.
$ less /etc/shells
# /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/dash /usr/bin/tmux /usr/bin/fish /bin/zsh /usr/bin/zsh
Если вы хотите использовать другую оболочку, вы можете просто ввести ее имя и войти в новую оболочку. Например, если вы хотите использовать Z Shell (zsh), вы можете использовать:
$ zsh
Чтобы выйти из новой оболочки и вернуться к предыдущей достаточно выполнить команду exit.
Предположим, нам очень понравилась оболочка Fish, и мы хотим использовать ее в качестве оболочки по умолчанию, вместо оболочки bash которая поставляется по умолчанию.
Linux позволяет изменить оболочку по умолчанию с помощью команды chsh. Лучший способ изменить оболочку по умолчанию для вошедшего в систему пользователя — сменить имя оболочки, указанное в файле /etc/shells, с помощью опции -s.
# chsh -s /usr/bin/fish
Для того, чтобы изменения вступили в силу необходимо выйти из системы, иначе создастся ощущение, что запуск chsh не изменил оболочку.
Необходимо указывать полный путь к файлу /etc/shells? Если использовать chsh -s fish, то получим ошибку типа chsh: fish не является допустимой оболочкой.
Источник
Bash — не единственная оболочка Linux. Легко опробовать другие оболочки, например Zsh, который очень популярен. Когда вы найдете тот, который вам нравится, используйте chsh команда, чтобы сделать его вашей оболочкой по умолчанию. Мы покажем вам, как.
Почему Shell важна
Оболочка сидит между вами и операционной системой. Он обеспечивает среду внутри окна терминала, которая позволяет вводить команды и запускать программы. Оболочка проверяет ваш ввод и выясняет, что вы хотите. Если он может выполнять ваши ставки самостоятельно, он делает это. Если ему нужна помощь извне, он ищет путь и находит программы, которые могут делать все, что вам нужно.
В Linux доступно много различных оболочек. Все они позволяют выполнять одни и те же основные задачи: исследовать файловую систему, работать с файлами, запускать программы и запускать сценарии. Однако каждый из них выполняет эти задачи по-своему, и у них есть свои особенности и особенности.
Оболочки, как правило, разрабатываются людьми, которые хотят, чтобы вещи вели себя определенным образом. Если ваше мышление совпадает с мышлением этого дизайнера, эта оболочка вполне подойдет вам. Плюс, пробовать новую оболочку в Linux легко.
В большинстве дистрибутивов Linux, включая Ubuntu, оболочка по умолчанию bash, Это делает большую работу и очень способный. Тем не менее, другая оболочка может сэкономить время, что окажет большое влияние на ваш рабочий процесс. Вы никогда не узнаете, не посмотрите ли вы!
СВЯЗАННЫЕ С: Что такое ZSH, и почему вы должны использовать его вместо Bash?
Ведро снарядов
Ранее мы рассмотрели различные оболочки Linux, но вот краткое введение к наиболее распространенным:
- Баш: Bourne опять оболочка по умолчанию во многих дистрибутивах.
- rbash: Эта Ограниченный
bashОболочка обеспечивает минимальную функциональность для человека или скрипта, работающего в ней. - зола: Оболочка Альмквиста это облегченная версия Bash.
- тире: Оболочка Debian Alquist — это скрипт оболочки по умолчанию в убунту. Пока
bashэто логин по умолчанию и интерактивная оболочка,dashиспользуется для запуска системных процессов, потому что это намного легче, чемbash, - ЗШ: Оболочка Z это современный взгляд на
bashсемейство снарядов. Он предлагает аккуратные улучшения, такие как проверки орфографии команд и предлагаемые исправления. - рыба: Эта дружественная интерактивная оболочка был написан с нуля и не был получен из других семейств оболочек. Он предназначен для удобства пользователей. Среди множества других преимуществ fish предлагает советы для команд, основанные на вашей истории и содержимом текущей папки, аналогично интеллектуального ввода текста,
- КШ: KornShell обеспечивает особенно сильный язык сценариев.
СВЯЗАННЫЕ С: В чем разница между Bash, Zsh и другими оболочками Linux?
Список установленных оболочек
Чтобы увидеть, какие оболочки установлены на вашем компьютере, используйте эту команду. Он просто перечисляет содержимое /etc/shells файл:
cat /etc/shells
Мы упоминали bash, dash, а также rbash, но что sh?
sh это Томпсон оболочка, написанная еще в 1971 году Кен Томпсон из Bell Labs известность. Он больше не поддерживается и давно заменен современными оболочками. Он включен исключительно для обеспечения совместимости со старыми сценариями, в которых в первой строке по-прежнему указывается следующее:
#!/bin/sh
Это инструктирует систему использовать sh оболочка для выполнения скрипта. У вас действительно есть эта древняя оболочка на вашем компьютере, и она используется для запуска ваших скриптов? which Команда скажет нам, какая программа действительно запускается при вводе команды.
Давайте посмотрим, что работает, когда вы печатаете sh:
which sh
Это кажется, чтобы найти двоичный файл. если мы копнем немного глубже, мы увидим, что это символическая ссылка, которая на самом деле указывает на dashоблегченная оболочка, используемая для выполнения скриптов:
ls -l /bin/sh
Это аккуратный и легкий способ обеспечения безопасности для сценариев, которые ожидают найти sh на современных системах.
Установка другой оболочки
Давайте установим fish оболочки и установить его по умолчанию для dave, В Ubuntu мы вводим следующую команду:
sudo apt-get install fish
На Манджаро, используйте 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 выйти из fish ракушка. Он закрывается, как и любая другая программа, и мы возвращаемся к bash ракушка.
Это здорово для того, чтобы опробовать новые оболочки, посмотреть, что они могут сделать, и ладят ли вы с ними. Вы можете исследовать, прежде чем совершить прыжок, и принять его в качестве оболочки для перехода.
Если вы решили сделать fish— или в любой другой оболочке — по умолчанию, вам нужно использовать chsh команда.
chsh Команда позволяет изменить оболочку по умолчанию. Хитрость заключается в том, что вы можете изменить как логин по умолчанию, так и интерактивные оболочки по умолчанию. Вы можете изменить один или другой, или оба.
Всякий раз, когда вы входите в систему для получения командной строки, вы используете оболочку, настроенную для вашей оболочки входа. Когда вы уже вошли в систему и открыли окно терминала, вы используете оболочку, настроенную для вашей интерактивной оболочки. Это могут быть как одинаковые, так и разные оболочки.
Чтобы установить оболочку входа в систему, используйте chsh без параметров:
chsh
Вам будет предложено ввести пароль. Затем вы должны ввести путь к новой оболочке и нажать Enter.
Если мы сделаем удаленное соединение с этим тестовым компьютером с другого, мы окажемся в fish Shell, как только мы вошли в систему.
Для изменения вашей интерактивной оболочки используйте chsh с -s (оболочка) вариант. Передайте путь к новой оболочке в командной строке:
chsh -s /usr/bin/fish
Вам будет предложено ввести пароль и вы вернетесь в командную строку вашей текущей оболочки. Чтобы изменения вступили в силу, вам необходимо выйти из системы и снова войти в нее. Когда вы это сделаете, вы увидите приветствие и fish командная строка оболочки.
$SHELL Переменная окружения теперь содержит путь к вашей новой оболочке по умолчанию:
echo $SHELL
Изменение оболочки другого пользователя
Если у вас есть права root и вы можете использовать sudoВы можете изменить оболочки других учетных записей пользователей. Команда такая же, как и раньше, с добавлением имени пользователя этого человека в командной строке:
sudo chsh -s /usr/bin/fish mary
когда mary при следующем входе в систему она увидит новую оболочку, когда откроет окно терминала.
У каждого есть любимый
Если вам удобен выбор оболочки и она работает для вас, это здорово! Просто помните, что он должен быть в состоянии запускать обычные сценарии, такие как процедуры установки. Для оболочек, упомянутых здесь, это не должно быть проблемой.
Конечно, вы также можете загрузить и установить новую оболочку и взять ее на тест-драйв, не внося никаких изменений в конфигурацию вашего компьютера. Когда вы будете готовы связать себя узами брака, chsh проведет церемонию для вас.
Bash — не единственная оболочка Linux. Легко попробовать другие оболочки, например Zsh, который очень популярен. Когда вы найдете тот, который вам нравится, используйте команду chsh, чтобы сделать его оболочкой по умолчанию. Мы покажем вам, как это сделать.
Почему оболочка важна
Оболочка находится между вами и операционной системой. Он предоставляет среду внутри окна терминала, которая позволяет вводить команды и запускать программы. Оболочка проверяет ваш ввод и определяет, что вы хотите. Если он может сам выполнять ваши ставки, он это делает. Если ему нужна помощь извне, он ищет путь и находит программы, которые могут делать все, что вы просите.
В Linux доступно множество различных оболочек. Все они позволяют выполнять одни и те же основные задачи: исследовать файловую систему, работать с файлами, запускать программы и запускать сценарии. Однако каждый из них выполняет эти задачи по-своему и имеет свои особенности и особенности.
Оболочки, как правило, разрабатываются людьми, которые хотят, чтобы вещи вели себя определенным образом. Если ваше мышление совпадает с мышлением этого дизайнера, эта оболочка вполне может вам подойти. Кроме того, попробовать новую оболочку в Linux очень просто.
В большинстве дистрибутивов Linux, включая Ubuntu, оболочка по умолчанию — bash. Он отлично справляется со своей работой и очень эффективен. Однако другая оболочка может сэкономить время, что окажет большое влияние на ваш рабочий процесс. Вы никогда не узнаете, если не посмотрите!
Ведро снарядов
Раньше мы рассматривали различные оболочки Linux, но вот краткое введение в наиболее распространенные:
bash: The Борн снова оболочка по умолчанию во многих дистрибутивах.
rbash: Это Ограниченный Оболочка bash предоставляет минимальную функциональность человеку или скрипту, выполняющему ее.
ясень: Раковина альмквиста это более легкая версия bash.
тире: Оболочка Debian Alquist — это сценарий оболочки по умолчанию в Ubuntu. В то время как bash является входом и интерактивной оболочкой по умолчанию, тире используется для запуска системных процессов, потому что он намного легче, чем bash.
zsh: Оболочка Z это современный взгляд на семейство оболочек bash. Он предлагает изящные улучшения, такие как проверка орфографии в командах и предлагаемые исправления.
рыба: Это дружественная интерактивная оболочка был написан с нуля и не является производным от других семейств оболочек. Он предназначен для удобства пользователя. Среди множества других преимуществ fish предлагает варианты команд на основе вашей истории и содержимого текущей папки, аналогично предсказуемый текст.
кш: КорнШелл обеспечивает особенно мощный язык сценариев.
Список установленных оболочек
Чтобы узнать, какие оболочки установлены на вашем компьютере, используйте эту команду. Он просто перечисляет содержимое файла / etc / shells:
cat /etc/shells
Мы упомянули bash, dash и rbash, но что такое sh?
ш это Томпсон оболочка, написанная еще в 1971 году Кен Томпсон из Bell Labs слава. Он больше не обслуживается и уже давно заменен современными оболочками. Он включен исключительно для обеспечения совместимости со старыми скриптами, в первой строке которых все еще есть следующая строка:
#!/bin/sh
Это указывает системе использовать оболочку sh для выполнения сценария. У вас действительно есть эта древняя оболочка на вашем компьютере и используется ли она для запуска ваших скриптов? Команда which сообщит нам, какая программа действительно запускается, когда вы вводите команду.
Посмотрим, что запускается при вводе sh:
which sh
Кажется, это двоичный файл. однако если копнуть немного глубже, мы увидим, что это символическая ссылка, которая на самом деле указывает на прочерк, облегченную оболочку, используемую для выполнения сценариев:
ls -l /bin/sh
Это изящный и легкий способ обеспечить безопасность сценариев, которые ожидают найти sh в современных системах.
Установка другой оболочки
Давайте установим рыбный панцирь и установим его по умолчанию для Дэйва. В 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
Теперь давайте еще раз проверим, что говорит переменная окружения $ SHELL:
echo $SHELL
В первый раз, когда мы используем echo $ SHELL, мы находимся в оболочке bash. Переменная среды содержит путь к исполняемому файлу bash, / bin / bash.
Когда мы запускаем оболочку Fish, мы получаем приветственное сообщение, и командная строка меняется. Что может быть удивительно, так это то, что среда $ SHELL по-прежнему хранит путь к исполняемому файлу bash, / bin / bash. Ничего страшного, это нормально.
Когда вы запускаете новую оболочку (или любую другую программу), она наследует среду родительской оболочки. Итак, оболочка fish наследует глобальные и экспортированные переменные среды из оболочки bash. Поскольку значение переменной окружения $ SHELL не было изменено, в оболочке fish она имеет то же значение, что и в оболочке bash.
Мы запускаем рыбу, как и любую другую программу. Мы также можем использовать exit для выхода из раковины рыбы. Он закрывается, как и любая другая программа, и мы возвращаемся в оболочку bash.
Это отлично подходит для того, чтобы опробовать новые оболочки, посмотреть, на что они способны и ладите ли вы с ними. Вы можете исследовать, прежде чем совершить прыжок, и использовать его в качестве своей основной оболочки.
Если вы решите сделать fish — или любую другую оболочку — своей по умолчанию, вам нужно будет использовать команду chsh.
Команда chsh позволяет вам изменить оболочку по умолчанию. Хитрость заключается в том, чтобы знать, что он позволяет вам изменять как логин по умолчанию, так и интерактивные оболочки по умолчанию. Возможно, вы захотите изменить одно или другое, или и то, и другое.
Каждый раз, когда вы входите в систему, чтобы получить командную строку, вы используете оболочку, настроенную в качестве оболочки входа. Когда вы уже вошли в систему и открываете окно терминала, вы используете оболочку, сконфигурированную как вашу интерактивную оболочку. Это могут быть как одинаковые, так и разные оболочки.
Чтобы установить оболочку входа в систему, используйте chsh без параметров:
chsh
Вам будет предложено ввести пароль. Затем вы должны ввести путь к новой оболочке и нажать Enter.
Если мы установим удаленное соединение с этим тестовым компьютером с другого, мы окажемся в оболочке Fish после входа в систему.
Чтобы изменить интерактивную оболочку, используйте chsh с параметром -s (оболочка). Передайте путь к новой оболочке в командной строке:
chsh -s /usr/bin/fish
Вам будет предложено ввести пароль, и вы вернетесь в командную строку вашей текущей оболочки. Вам нужно выйти и снова войти, чтобы изменения вступили в силу. Когда вы это сделаете, вы увидите приветствие и командную строку рыбной оболочки.
Переменная среды $ SHELL теперь содержит путь к вашей новой оболочке по умолчанию:
echo $SHELL
Изменение оболочки другой учетной записи пользователя
Если у вас есть права root и вы можете использовать sudo, вы можете изменить оболочки других учетных записей пользователей. Команда такая же, как и раньше, с добавлением имени пользователя этого человека в командную строку:
sudo chsh -s /usr/bin/fish mary
Когда Мэри в следующий раз войдет в систему, она увидит новую оболочку, когда откроет окно терминала.
Каждые
В этом краткой статье показано, как проверить работающую оболочку, доступную оболочку в системе и как изменить оболочку по умолчанию в Linux.
Возможно, вы уже знаете, что в Linux и других Unix-подобных системах доступно несколько оболочек. Bash является оболочкой по умолчанию почти во всех дистрибутивах Linux, но есть и другие популярные оболочки, такие как:
- ksh
- zsh
- fish
- csh
- dash
Некоторые из оболочек предоставляют дополнительные функции более удобным для пользователя способом. Возьмите, например, оболочку fish. Он частично начинает показывать вам подсказки команд, основанные на вашей предыдущей набранной команде. Это очень удобно, если вы не хотите постоянно помнить ярлыки на терминале Linux.
Давайте посмотрим несколько способов смены оболочки в вашей системе Linux.
Как узнать оболочку по умолчанию?
Чтобы узнать, какая оболочка по умолчанию установлена для вас в вашей системе Linux, вы можете проверить переменную среды SHELL. Обычно оболочкой по умолчанию является bash, и она отображается так:
echo $SHELL /bin/bash
Как узнать, какую оболочку вы сейчас используете?
Не существует единого метода, который бы сообщал вам, какая оболочка используется со 100% точностью.
Вы можете попробовать либо echo $ 0, который показывает вывод, подобный этому:
echo $0 zsh
или проверьте процесс, используя ps -p $$ следующим образом:
ps -p $$ PID TTY TIME CMD 9625 pts/0 00:00:00 zsh
Как увидеть все оболочки, доступные в вашей системе Linux?
Все оболочки, доступные в ваших системах Linux, перечислены в файле /etc/shells. Вы можете использовать команду cat или less для просмотра содержимого файла.
# /etc/shells: valid login shells /bin/sh /bin/bash /bin/rbash /bin/dash /usr/bin/tmux /usr/bin/fish /bin/zsh /usr/bin/zsh
Как сменить оболочку на другую?
Если вы хотите использовать другую оболочку, вы можете просто ввести ее имя и войти в новую оболочку. Например, если вы хотите использовать Z Shell (zsh), вы можете использовать:
zsh
Вы можете ввести exit, чтобы выйти из новой оболочки и вернуться к предыдущей.
Как навсегда изменить оболочку по умолчанию в Linux?
Предположим, вам очень понравилась оболочка Fish, и вы хотите использовать ее в качестве оболочки по умолчанию, чтобы каждый раз, когда вы открываете терминал или используете ssh для входа в систему, вы использовали ее вместо оболочки bash по умолчанию.
Linux позволяет изменить оболочку по умолчанию с помощью команды chsh. Лучший способ изменить оболочку по умолчанию для вашего вошедшего в систему пользователя – указать имя оболочки, указанное в файле /etc/shells, с параметром -s.
chsh -s /usr/bin/fish
Вы должны выйти из системы, чтобы изменения вступили в силу, иначе вы будете думать, что запуск chsh не изменил оболочку.
Вы заметили, что мы должны были указать полный путь, как он был указан в файле /etc/shells? Если бы мы использовали chsh -s fish, это дало бы нам ошибку типа «chsh: fish is an invalid shell».
Какая оболочка нравится вам?
Мы надеемся, что эта небольшая статья помогла вам изменить оболочку в Linux. Если вы подумали об изменении оболочки по умолчанию, возможно, вы используете что-то другое, чем оболочка bash. Какая это оболочка? Почему вы предпочитаете ее другим?
Делитесь своими взглядами в комментариях ниже.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Оболочка – это программа, которая действует как внешний уровень операционной системы, через который вы взаимодействуете с ее различными программами и службами. Большинство дистрибутивов Linux используют bash в качестве оболочки по умолчанию. Однако вы можете выбрать другую оболочку для своей системы, если хотите.
Помимо bash, Linux также поддерживает другие программы оболочки, такие как ksh, zsh, csh и fish. Каждая из этих оболочек имеет некоторые уникальные характеристики, которые отличают их от bash и других оболочек.
Давайте углубимся, чтобы узнать больше о оболочке и о том, как изменить оболочку Linux по умолчанию.
Что такое оболочка и в чем ее значение?
Оболочка – это компьютерная программа, которая позволяет вам управлять различными элементами операционной системы с помощью команд. Когда вы используете терминал в Linux, вы в основном взаимодействуете с оболочкой, находящейся между вами и операционной системой, и инструктируете ее выполнять команды.
Большинство оболочек Linux поставляются с интерфейсом командной строки (CLI) и требуют знания команд (и их синтаксиса). Когда вы вводите команду в оболочку, она ищет программу (в вашей команде) в системном пути, чтобы определить ее. Если он находит совпадение, он успешно выполняет команду, и вы получаете результат.
Короче говоря, оболочка предлагает мощный и эффективный способ взаимодействия с операционной системой.
Почему вы хотите изменить оболочку по умолчанию?
Вообще говоря, большинство оболочек, с которыми вы столкнетесь в Linux или любых других системах на основе Unix, по большей части предлагают примерно те же функции: они позволяют вам удобно взаимодействовать / управлять различными элементами системы.
Bash , который предустановлен в большинстве дистрибутивов Linux, является прекрасным примером этого. Однако в сочетании с некоторыми другими оболочками, такими как, например, zsh, он уступает по функциональности.
Zsh, с другой стороны, предлагает множество дополнительных функций, таких как автозаполнение, автокоррекция, автоматический компакт-диск, рекурсивное расширение пути и поддержка плагинов, что дает ему преимущество перед bash и некоторыми другими оболочками.
Конечно, это лишь некоторые из преимуществ, которые дает zsh. Другие оболочки также содержат свой собственный набор функций и улучшений, что делает работу с ними проще и удобнее.
Есть несколько способов изменить оболочку по умолчанию в Linux. Мы продемонстрируем процесс с помощью утилиты chsh в этом руководстве, поскольку это более надежный и удобный метод лота.
Chsh – это утилита командной строки в операционных системах на базе Unix, которая позволяет вам изменить оболочку по умолчанию. Он предустановлен практически во всех дистрибутивах Linux.
Чтобы использовать его, все, что вам нужно сделать, это указать путь к оболочке, которую вы хотите использовать в терминале, и он позаботится обо всем остальном процессе. Однако вам нужно будет выполнить несколько шагов, прежде чем вы сможете изменить оболочку по умолчанию.
Вот разбивка этих шагов.
Шаг 1. Определение установленных оболочек
Перед установкой новой оболочки важно знать, какие оболочки уже установлены в вашей системе Linux. Для этого откройте терминал и введите:
cat /etc/shells
Если вы не установили новую оболочку, ваш результат должен выглядеть так, как на прилагаемом изображении ниже.
Шаг 2: установка новой оболочки
После того, как вы определили установленные в вашей системе оболочки, следующим шагом будет установка новой оболочки. В связи с этим в Linux доступно множество опций, каждая из которых имеет свои преимущества и недостатки. Поэтому в зависимости от ваших предпочтений и того, чего вы хотите достичь с помощью оболочки, вы можете выбрать ту, которая соответствует вашим требованиям.
Это руководство продемонстрирует установку и настройку оболочки zsh. Не стесняйтесь заменять «zsh» на имя вашей оболочки в следующих командах.
Чтобы установить zsh в дистрибутивы на основе Debian:
sudo apt install zsh
Вы можете установить zsh в Arch Linux с помощью pacman:
sudo pacman -Syu zsh
Также легко установить zsh в Fedora, CentOS и другие дистрибутивы RHEL:
sudo dnf install zsh
После завершения установки выполните следующую команду, чтобы еще раз проверить установленные оболочки в вашей системе:
cat /etc/shells
Затем проверьте, работает ли установленная оболочка. Для этого введите имя вашей оболочки в терминале. Если это zsh, запустите:
zsh
Чтобы вернуться к оболочке по умолчанию, введите exit и нажмите Enter .
Шаг 3. Установка оболочки в качестве оболочки по умолчанию для вашей системы
Если ваша недавно установленная оболочка отображается в списке установленных оболочек и работает нормально, теперь вы готовы установить ее в качестве оболочки по умолчанию для вашей системы. Обратите внимание, что с помощью chsh вы можете изменить как интерактивную оболочку по умолчанию, так и оболочку входа по умолчанию.
Оболочка входа – это оболочка, в которой вы получаете терминал после входа в систему, тогда как интерактивная оболочка доступна все время после входа в систему.
Чтобы установить zsh (или любую другую оболочку) в качестве оболочки входа по умолчанию, откройте терминал и запустите:
chsh
Когда будет предложено ввести пароль, введите пароль своей учетной записи и нажмите Enter .
Затем введите абсолютный путь к установленной оболочке. Это изменит оболочку входа в систему по умолчанию для вашей системы. Чтобы изменить интерактивную оболочку по умолчанию на zsh:
chsh -s /usr/bin/zsh
Система попросит вас ввести пароль, чтобы изменения вступили в силу. Введите свой пароль и нажмите Enter .
После того, как вы установили zsh (или другую оболочку) в качестве оболочки по умолчанию или / или интерактивной оболочки, выйдите из системы и снова войдите в систему, чтобы изменения отразились на вашей системе.
Теперь, когда вы снова войдете в систему и откроете терминал, система встретит вас конфигуратором оболочки. Прежде чем вы сможете начать использовать новую оболочку, вы должны выбрать здесь параметры, которые соответствуют требованиям вашей оболочки.
Когда все настроено, проверьте, установлена ли ваша недавно установленная оболочка в качестве системной оболочки по умолчанию. Для этого выполните следующую команду:
echo $SHELL
Если вы установили для него значение zsh, вы увидите его путь в терминале. В случае другой оболочки он должен соответствующим образом отражать путь.
Обратите внимание: если вы хотите изменить оболочку по умолчанию для других пользователей в вашей системе, вам придется делать это индивидуально для каждого пользователя. Например, если вы хотите изменить оболочку по умолчанию для пользователя sam , вам необходимо выполнить следующую команду:
sudo chsh -s /usr/bin/zsh sam
Изменение оболочки по умолчанию для персонализированного опыта
Многофункциональная оболочка обладает рядом дополнительных преимуществ помимо тех, которые присущи оболочке по умолчанию. А поскольку большинство ваших взаимодействий и операций с Linux происходят из командной строки, изменение оболочки по умолчанию на ту, которая предлагает больше функций, является одним из первых шагов по настройке вашей рабочей среды.
Фактически, вам следует подумать не только об изменении оболочки по умолчанию, но и о ее настройке и настройке так, как вы хотите, чтобы улучшить весь опыт. Хорошее место для начала настройки вашей оболочки – это начать использовать псевдонимы командной строки, которые делают ввод команд в терминале быстрым и удобным.





















