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

При работе в терминале именно командная оболочка обрабатывает вводимые команды. Более того, оболочки Linux поддерживают написание программ на языке оболочки.

Оболочки Linux

Одна из самых популярных командных оболочек — это оболочка Bash (Bourne Again Shell). Она используется по умолчанию в большинстве дистрибутивов Linux.

Существуют разные оболочки Linux:

  • bash
  • dash
  • csh
  • ksh
  • pdksh
  • rbash
  • sh
  • tcsh
  • zsh
  • fish

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

Как определить текущую командую оболочку

Есть несколько способов определить оболочку, используемую по умолчанию в вашей системе Linux. Рассмотрим несколько из них, так как в разных системах (и оболочках) какие-то способы могут не сработать.

У разных пользователей системы могут использоваться разные оболочки.

Способ #1

echo $SHELL

Способ #2

Можно воспользоваться командой echo $0. Данная команда выведет на экран имя текущего работающего процесса, внутри которого она выполнена. Так как мы выполняем команду внутри оболочки, то будет выведено имя оболочки.

echo $0

Способ #3

Определим, работающий процесс оболочки командой ps:

ps -p $$

Способ #4

grep ваш_пользователь /etc/passwd

Как посмотреть список оболочек, доступных в системе

Список оболочек, которые в данный момент установлены и доступны в системе Linux, хранится в файле /etc/shells

Выведем содержимое файла /etc/shells, для этого воспользуемся командой cat:

cat /etc/shells

Результат примерно такой:

/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/bin/zsh
/usr/bin/zsh
/usr/bin/fish

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

type -a bash
type -a zsh
type -a ksh

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

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

Например, переключимся на оболочку sh. Выполняем команду:

sh

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

Для изменения командной оболочки на постоянной основе служит команда chsh (от слов change shell).

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

chsh -s путь_до_новой_оболочки

chsh -s {shell-name-here}
chsh -s {shell-name-here} {user-name-here}
chsh -s /bin/bash
chsh -s /bin/bash vanay

Например, изменим оболочку на sh. Для этого выполняем команду (при выполнении команды нужно будет ввести пароль):

chsh -s /bin/sh

Затем нужно перелогинится:

su - $USER
su - [имя пользователя]