Featured image of post Из sh в bash

Из sh в bash

Переключаем командую оболочку из sh в bash

Столкнулся с небольшой проблемой в терминале при попытке посмотреть историю команд кнопкой вверх(вниз, лево и право) появляются непонятный набор символов

$ ^[[A^[[B^[[C^[[D

Screenshot1

Оказалось при создании виртуальных машин в cloud.ru во всех (скорее всего) дистрибутивах (я пробовал Debian и CentOS) по умолчанию используется командная оболочка /bin/sh.

Есть несколько способов определить какая командная оболочка работает на данный момент:

  • Способ №1
$ echo $SHELL
/bin/bash
  • Способ №2
$ echo $0
bash
  • Способ №3
$ ps -p $$
PID TTY TIME CMD
10792 pts/3 00:00:00 bash

Для временного переключения на /bin/bash необходимо выполнить команду

$ /bin/bash

Screenshot2

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

Пример команды:

$ sudo chsh -s /bin/bash UserName

Так же есть еще один способ. Необходимо отредактировать файл /etc/passwd

$ sudo nano /etc/passwd

В строке нашего пользователя сменить /bin/sh на /bin/bash

root:x:0:0:root:/root:/bin/bash
...
UserName:x:1000:1002::/home/UserName:/bin/bash
Licensed under CC BY-NC-SA 4.0
Built with Hugo
Theme Stack designed by Jimmy