Командная оболочка, она же интерпретатор командной строки – специальная программа, запускаемая при входе в систему и обеспечивающая для пользователя интерфейс командной строки.
Самой распространенной и популярной командной оболочкой в Linux является bash, но существуют и другие оболочки.
Начинающие пользователи редко задумываются над этим, до тех пор, пока не попадут в непонятную ситуацию.
Сегодня за советом обратился молодой коллега, он решил потренироваться в настройке веб-сервера и взял для этих целей бесплатную виртуалку у Cloud.ru о котором мы недавно писали.
Его «проблема» оказалась в том, что Linux там (а он установил Debian 12) какой-то непонятный, выглядит не так, стрелки не работают и вообще странно себя ведет. Он уже и систему переустановил, но ничего не помогает.
Любой опытный администратор Linux сразу же распознает симптомы и спросит какая командная оболочка установлена для пользователя. Проверить это можно командной:
echo $SHELL
В нашем случае ожидаемо получили ответ:
/bin/sh
В Debian и Ubuntu данный файл является символической ссылкой на dash – минималистическую оболочку Debian Almquist shell портированную Almquist shell (ash) из NetBSD. Она очень легковесна, но не может похвастаться функциональностью и не является полностью POSIX-совместимой.
Вполне понятно, что, оказавшись в непривычной командной среде мой коллега растерялся и не сразу понял в чем дело.
Но этому горю легко помочь и установить в качестве командного интерпретатора привычный bash или что угодно другое.
Прежде всего ознакомимся со списком доступных командных оболочек:
cat /etc/shells
В выводе вы получите что-то вроде:
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
Ничего иного в качестве командной оболочки указывать не следует иначе вы просто не сможете войти в систему.
Опытный пользователь заметит, что для многих оболочек присутствует два пути, ничего удивительного в этом нет, так как в современных системах каталог
/bin является символической ссылкой на /usr/bin и обе записи ведут в одно и тоже место.Чтобы изменить командную оболочку используйте команду:
chsh -s /bin/bash
В данном случае мы установили себе оболочку bash. Обычный пользователь может изменить оболочку только себе, суперпользователь может сделать это для любого пользователя, например:
chsh -s /bin/bash user1
В данном случае указанная оболочка будет установлена пользователю user1. Чтобы изменения вступили в силу нужно выйти и войти обратно в систему.
