среда, 8 февраля 2017 г.

Использование Bash в FreeBSD 11

По умолчанию bash не установлен в Freebsd 11.

Проверить какой шелл используется можно так:
# echo $shell
/bin/csh

Для установки bash выполняем:
 # cd /usr/ports/shells/bash
 # make install clean

В процессе установки будут заданы вопросы, на которые просто отвечаем «ОК»




Установка заканчивается так:
===================================================================
bash requires fdescfs(5) mounted on /dev/fd
If you have not done it yet, please do the following:
        mount -t fdescfs fdesc /dev/fd
To make it permanent, you need the following lines in /etc/fstab:
        fdesc   /dev/fd         fdescfs         rw      0       0
===================================================================
Это говорит о том, что bash, стандартная оболочка Linux, использует псевдо-файловую систему /dev/fd для сбора информации о системе. В связи с этим некоторые сторонние скрипты, написанные на bash, не будут без этого работать в FreeBSD.

Выполняем рекомендации:
# mount -t fdescfs fdesc /dev/fd
Прописываем дополнительную строчку в fstab
# nano /etc/fstab
Дописываем строку
# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/da0s1a     /               ufs     rw      1       1
/dev/da0s1b     none            swap    sw      0       0
fdesc           /dev/fd         fdescfs rw      0       0

Проверяем какие теперь есть шеллы в системе
# cat /etc/shells
Убеждаемся, что в файле есть строка
/usr/local/bin/bash

Смена шелла пользователя USER выполняется командой
# chsh -s /usr/local/bin/bash USER
Если USER не вводить, то мы сменим шелл для пользователя под которым работаем
# chsh -s /usr/local/bin/bash
chsh: user information updated
Теперь можно перезайти в систему и наслаждаться bash
Что бы изменить shell без повторного входа – достаточно запустить:
# exec /usr/local/bin/bash

Проверить у кого из пользователей используется bash можно так
# cat /etc/passwd | grep bash

Комментариев нет:

Отправить комментарий