BASH — Bourne-Again SHell (что может переводиться, как «перерожденный шэл», или «Снова шэл Борна(создатель sh)»), самый популярный командный интерпретатор в UNIX-подобных системах, в особенности, в GNU/Linux.
Некоторые считают, что в FreeBSD Bash, как таковой отсутствует, а следовательно, запуска скриптов такого типа нет. Это заблуждение, в «голой» системе баш действительно отсутствует, но его можно установить из пакетов или портов.
Для начала, создадим в домашней директории тестовый Bash-скрипт myscript.sh с содержанием
#!/bin/bash
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami
Предоставляем ему права на выполнение, пробуем запустить и получаем ошибку
chmod 777 myscript.sh
./myscript.sh
./myscript.sh: Command not found.
Устанавливаем Bash
cd /usr/ports/shells/bash
make install clean
ln -s /usr/local/bin/bash /bin/bash
Возвращаемся в нашу домашнюю директорию и пробуем запустить скрипт еще раз. Вы должны получить результат выполнения, в моем случае, результат следующий:
./myscript.sh
The current directory is:
/home/user
The user logged in is:
user
После этого Вы можете выполнять Bash-скрипты или установить bash, как оболочку по умолчанию, для этого нужно выполнить
chsh -s bash user
Где user – имя пользователя, если его не указывать, будет установлено для всей системы.
Если Вы планируете использовать Bash, как командную оболочку, рекомендую установить пакет bash-completion, он позволит по нажатию TAB видеть возможные окончания команд
cd /usr/ports/shells/bash-completion/
make install clean
Обратите внимание на сообщение в конце установки
To enable the bash completion library, add the following to
your .bashrc file:
[[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] &&
source /usr/local/share/bash-completion/bash_completion.sh
See /usr/local/share/doc/bash-completion/README.md for more information.
Оно означает, что в папке пользователя нужно создать файл .bashrc с содержанием
[[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] && source /usr/local/share/bash-completion/bash_completion.sh
Послесловие.
В целом, без Bash можно жить долго или он может никогда Вам не понадобиться, так как для ряда задач будет достаточно и sh, но за время работы я встречался с тем, что ряд решений легче написать или найти написанными для Bash. Также встречался ряд программных продуктов, которые прекрасно работали на FreeBSD, но во время установки, настройки или работы выполняли ряд Bash-скриптов (например, Sync-сервера или плагины для Nagios)
Комментариев нет:
Отправить комментарий