Linux изменить оболочку пользователя

Обновлено: 21.11.2024

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

Найти текущее имя оболочки

В системах Linux есть один файл /etc/passwd. В файле /etc/passwd хранится важная информация об учетных записях пользователей, необходимая при входе в систему. Используя этот файл, мы можем определить текущую оболочку входа пользователя.

Мы собираемся увидеть информацию о текущем пользователе в /etc/file с помощью следующей команды:

На изображении выше мы видим, что у пользователя nishant (текущий пользователь) есть домашний каталог /home/nishant, а оболочка — /bin/sh

Список ваших оболочек в Linux

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

Это покажет все оболочки следующим образом:

  • Пользователи могут изменить оболочку на любую другую оболочку, указанную в /etc/shells/.
  • Учетная запись root может использоваться для изменения оболочки входа любого другого пользователя.
  • Если учетная запись имеет ограниченную оболочку входа, только root может изменить оболочку этого пользователя.

Изменение оболочки sh по умолчанию на bash

Использование команды usermod

usermod — это команда, которая изменяет файлы системной учетной записи. usemod может изменить оболочку пользователей, изменив файл /etc/passwd. Команда usermod предоставляет параметр -s или –shell для изменения оболочки входа пользователя.

В этом примере мы собираемся изменить оболочку пользователя с именем nishant. Мы собираемся изменить оболочку с /bin/sh на /bin/bash пользователя nishant с помощью команды usermod.

В команде usermod укажите оболочку и имя пользователя после опции –shell.

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

Использование утилиты chsh

chsh — это утилита для изменения оболочки входа пользователя. chsh предоставляет опцию -s для изменения оболочки пользователя. Этот метод также изменяет файл /etc/passwd. Используйте следующую команду для изменения оболочки с помощью chsh:

Изменить оболочку пользователя на файл /etc/passwd

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

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

Как узнать, какую оболочку я сейчас использую

При первом входе в систему вы можете проверить, какую оболочку вы используете в данный момент. Самый эффективный способ найти текущую запущенную оболочку — использовать команду ps с несколькими параметрами.

В приведенном выше примере мы использовали параметр -p или --pid, за которым следует $$. Двойные знаки доллара передают идентификатор процесса вашей оболочки команде ps, которая, в свою очередь, выводит нужную информацию.

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

Как найти мою оболочку по умолчанию

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

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

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

Вы также можете использовать grep для поиска вашего имени пользователя в /etc/passwd, чтобы узнать, какая оболочка настроена как ваша оболочка по умолчанию.

Список всех доступных оболочек в вашей системе Linux

Далее вам нужно будет узнать, какие оболочки доступны вам в системе. К счастью, в большинстве систем Linux список установленных оболочек всегда под рукой. Просто введите код файла /etc/shells, чтобы просмотреть список установленных оболочек.

Как пользователь, вы можете изменить свою оболочку на любую из перечисленных в этом файле. Вам понадобятся привилегии суперпользователя, чтобы использовать оболочку, не указанную в этом файле. Вам также потребуются привилегии root (или sudo), если вы хотите изменить свою оболочку с ограниченной оболочки (rbash, rksh и т. д.).

Изменение оболочки в Linux

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

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

Изменить текущую оболочку

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

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

Использование usermod для изменения оболочки по умолчанию

Утилита usermod используется для изменения учетных записей пользователей. Использование опции -s или --shell позволяет легко изменить оболочку по умолчанию для указанного пользователя. Для использования команды usermod необходим root-доступ (или sudo).

ПРИМЕЧАНИЕ. Использование usermod не изменяет текущую оболочку, а просто устанавливает оболочку по умолчанию, которая будет использоваться при следующем входе в систему.

Изменение оболочки с помощью команды chsh

Если у вас нет доступа root/sudo, вы все равно можете изменить оболочку по умолчанию. Обычно утилита chsh не требует наличия привилегированной учетной записи. Синтаксис очень похож на команду usermod, просто укажите параметр -s, а затем желаемую оболочку.

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

Вы должны быть знакомы с оболочкой bash, которую мы обычно используем в системе Linux. В большинстве операционных систем Linux оболочкой по умолчанию является bash, но знаете ли вы, что мы можем изменить оболочку bash по умолчанию на любую другую оболочку, например sh, fish, zsh, csh и т. д. В этой статье мы узнаем, как изменить пользователя по умолчанию. оболочка в ОС Linux.

Найти имя текущей оболочки

Чтобы изменить пользовательскую оболочку по умолчанию, прежде всего найдите текущую оболочку, которую вы используете. В системе Linux пользовательской оболочкой по умолчанию является bash. Существует один файл с именем passwd в каталоге /etc, в котором хранится важная информация об учетной записи пользователя, необходимая при входе пользователя в систему. С помощью этого файла мы можем определить текущую оболочку пользователя.

Выполните следующую команду, чтобы проверить текущую информацию о пользователе, хранящуюся в файле /etc/passwd.

В приведенном выше примере aayush — это имя пользователя, а bash — текущая оболочка.

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

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

Чтобы изменить оболочку пользователя по умолчанию, нам нужно узнать доступные списки оболочек в системе Linux.

Установленные оболочки можно просмотреть с помощью следующей команды.

В системе доступны различные типы оболочек, такие как bash, rbash и dash.

Прежде чем менять оболочку, помните следующее.

  • Пользователь root может использоваться для изменения оболочки входа других пользователей.
  • Если какая-либо учетная запись пользователя имеет ограниченную оболочку входа в систему, только пользователь root может изменить оболочку пользователя.
  • Пользователи смогут изменить только оболочку, указанную в /etc/shells.

Изменение оболочки sh по умолчанию на оболочку bash

В операционной системе Linux существует множество способов изменить оболочку входа по умолчанию. В этой статье мы расскажем о некоторых часто используемых методах.

Использование утилиты chsh

Если вы хотите изменить пользовательскую оболочку по умолчанию, утилита chsh может оказаться очень полезной. Запустите команду chsh с параметром -s, чтобы изменить оболочку пользователя. Он также изменяет файл /etc/passwd.

Где , aayush — это имя пользователя, а sh — оболочка, которую мы собираемся изменить.

В этом примере пользовательская оболочка по умолчанию была изменена с bash на sh.

Использование команды usermod

Утилита usermod — это еще один способ изменить учетную запись пользователя. Вам просто нужно указать опцию -s или -shell, чтобы изменить оболочку по умолчанию для пользователя. Помните, что для внесения изменений вам необходимо иметь привилегированную учетную запись root. Использование usermod не изменяет текущую оболочку пользователя, но устанавливает оболочку по умолчанию, которая будет использоваться при следующем входе в систему.

В приведенном выше примере оболочка пользователя по умолчанию была изменена с bash на sh.

Редактируя файл passwd

В системе Linux основная информация о пользователе хранится в файле /etc/passwd, который необходим для входа в систему. Пользовательскую оболочку по умолчанию также можно изменить, отредактировав этот файл вручную. Для этого отредактируйте файл /etc/passwd с помощью любого текстового редактора и измените оболочку после имени пользователя и домашнего каталога пользователя и сохраните файл.

Изменить текущую оболочку пользователя

Изменить текущую оболочку пользователя легко и просто. Просто введите оболочку, которую хотите использовать, в терминале. Но это не меняет оболочку по умолчанию для следующего входа в систему.

Заключение

В этой статье мы узнали о различных способах изменения пользовательской оболочки по умолчанию в ОС Linux

Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора, включая CCNA RS, SCP и ACE. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов.

В этой статье объясняется, как изменить оболочку по умолчанию в Linux. Используя это, вы можете установить Bash, sh, Zsh, Csh, Fish и т. д. в качестве оболочки.

Статья содержит инструкции по изменению оболочки входа из командной строки с помощью chsh или изменению оболочки только для определенного терминального приложения. Хотя статья предназначена для пользователей Linux, она также должна работать на других Unix-подобных системах.

Как изменить оболочку входа по умолчанию с помощью chsh (из командной строки)

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

Эта программа изменяет оболочку входа в систему, изменяя файл /etc/passwd и устанавливая переменную среды $SHELL. Вы можете переопределить оболочку по умолчанию в терминальном приложении, установив оболочку в настройках терминала — подробности см. во второй части этой статьи.

Примечание для пользователей Fedora. В Fedora по умолчанию не установлен chsh, и чтобы использовать его, вы должны установить пакет с именем util-linux-user. Если вы хотите пропустить установку этого пакета, вы можете вместо этого использовать lchsh для изменения оболочки входа в систему, которая доступна по умолчанию:

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

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

Пример с выводом:

Если оболочка, которую вы хотите использовать, не указана здесь, возможно, она не установлена ​​в вашей системе. Поэтому установите его (например, установите Zsh на Debian / Ubuntu / Linux Mint / Pop!_OS, используя: sudo apt install zsh ) и проверьте еще раз.

Чтобы изменить оболочку для вашего пользователя, запустите:

Это запускает chsh в интерактивном режиме, запрашивая у вас пароль, затем перечисляя вашу текущую оболочку (большинство дистрибутивов Linux использует Bash в качестве оболочки по умолчанию) и предлагая вам ввести значение для вашей новой оболочки. Вот команда с ее выводом:

Чтобы изменить оболочку, введите путь к новой оболочке (которая существует в /etc/shells ) и нажмите клавишу Enter.

Например, чтобы изменить оболочку текущего пользователя с Bash на Zsh:

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

Например. изменить оболочку на Zsh:

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

Чтобы изменить оболочку входа для другого пользователя или привилегированного пользователя, войдите в командную оболочку как root, используя su - , sudo -i , sudo su и т. д., и выполните:

  • Чтобы изменить оболочку для учетной записи root (и при появлении запроса введите оболочку входа, которую вы хотите использовать, с ее полным путем):
  • Чтобы изменить оболочку другого пользователя (это также работает для пользователя root, используя root в качестве имени пользователя):

На этот раз мы использовали chsh с параметром -s, который напрямую изменяет оболочку входа в систему (не работает в интерактивном режиме). Здесь SHELL — это новая оболочка (например, /bin/zsh), а USERNAME — пользователь, для которого вы меняете оболочку; например, чтобы изменить оболочку на /bin/zsh для пользователя Logix, вы должны использовать: chsh -s /bin/zsh Logix).

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

Вы можете использовать оболочку, отличную от оболочки входа в систему ( $SHELL ), для определенного терминального приложения, если это приложение позволяет установить пользовательскую оболочку или запустить пользовательскую команду вместо оболочки по умолчанию.

Кроме того, вы также можете изменить текущую оболочку (непостоянное изменение), введя команду оболочки, которую вы хотите использовать в терминале (например, если вы наберете «zsh», вы переключитесь на использование Zsh для этого сеанса; выйдите, набрав "exit".).

Возьмите, к примеру, терминал GNOME (используется в рабочих столах GNOME и Cinnamon в качестве терминала по умолчанию). Откройте его настройки , нажмите на текущий активный профиль (обычно он называется «По умолчанию» или «Безымянный», если вы не изменили его или не добавили новые профили) на левой боковой панели, затем нажмите на вкладку «Команда»:

Здесь вы можете настроить пользовательскую оболочку для использования только с этим приложением. Включите параметр «Выполнить пользовательскую команду вместо моей оболочки», затем в поле «Пользовательская команда» введите полный путь к оболочке, которую вы хотите использовать, например. /bin/zsh , /bin/bash и т. д.

В терминале Xfce4 откройте «Настройки» и на вкладке «Общие» вам нужно включить параметр «Выполнить пользовательскую команду вместо моей оболочки», затем введите пользовательскую команду под ней (это оболочка, которую вы хотите использовать с этот терминал, например /bin/zsh , /usr/bin/fish и т. д.).

Используя Konsole KDE Plasma, перейдите в «Настройки» -> «Редактировать текущий профиль» и на вкладке «Общие» измените поле «Команда» на полный путь к оболочке, которую вы хотите использовать (еще раз, что-то вроде: /bin/zsh, /bin/bash , /usr/bin/fish и т. д.).

Используя Guake, вы можете изменить пользовательскую оболочку в ее настройках на вкладке «Оболочка», где вы найдете параметр «Интерпретатор по умолчанию», который позволяет выбрать любую оболочку, указанную в /etc/shells .

Для терминалов, которые позволяют запускать пользовательскую оболочку, вы также должны найти параметр, который позволяет запускать команду как оболочку входа (обычно называется так: «Выполнить команду как оболочку входа»). Чтобы узнать о различиях между оболочкой входа в систему и интерактивной оболочкой, см. эту страницу.

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

Читайте также: