По-умолчанию во FreeBSD используется sh для обычных пользователей, и csh для пользователя root.
Что бы изменить shell для пользователя, можно воспользоваться несколькими вариантами.
Убедитесь, что нужный shell присутствует в файле /etc/shells:
# cat /etc/shells ... /bin/sh /bin/csh /bin/tcsh /usr/local/bin/bash /usr/local/bin/rbash
Проверьте текущее окружение:
# echo $shell /bin/csh
Теперь можно отредактировать файл /etc/passwd и указать новый shell для пользователя вручную:
# vim /etc/passwd ... root:*:0:0:Charlie &:/root:/bin/csh ...
Достаточно заменить /bin/csh на /usr/local/bin/bash, и выполнить повторный вход в систему.
Что бы изменить shell без повторного входа — достаточно запустить:
# exec /usr/local/bin/bash
Проверяем:
# echo $0 /usr/local/bin/bash
Ещё один вариант — с помощью команды chsh. Если выполнить её без опций — она откроет текстовый редактор, в котором надо изменить строку Shell:.
Другой вариант — выполнить chsh с ключём -s:
# chsh -s /bin/sh setevoy chsh: user information updated
После ключа -s указывается новый shell и пользователь, для которого необходимо его изменить. Если пользователь не указан — информация будет изменена для пользователя, запустившего команду.
Проверим:
# cat /etc/passwd | grep setevoy setevoy:*:1001:1001:User &:/home/setevoy:/bin/sh
Альтернатива — с помощью утилиты chpass, которая работает аналогично chsh:
# chpass -s /usr/local/bin/bash setevoy chpass: user information updated # cat /etc/passwd | grep setevoy setevoy:*:1001:1001:User &:/home/setevoy:/usr/local/bin/bash