Вопрос или проблема
В Ubuntu /bin/sh
по умолчанию указывает на /bin/dash
по умолчанию.
Я хочу использовать /bin/bash
в качестве оболочки по умолчанию для /bin/sh
. Как лучше всего это сделать?
Как показано на этой странице в вики Ubuntu, вам следует выполнить
sudo dpkg-reconfigure dash
и выбрать опцию не использовать /bin/dash
в качестве оболочки по умолчанию. Такой способ изменения не только исправит символическую ссылку /bin/sh
, но и настроит другие части вашей системы на корректную работу, такие как обеспечение правильного указания man sh
на man-страницу bash вместо dash.
Небольшое обновление на 2024 год
sudo dpkg-reconfigure dash
больше не работает. Эта опция была удалена с версии dash 0.5
Прекратите использование debconf для выбора /bin/sh по умолчанию.
Вместо этого вы можете сделать это с помощью
chsh изменяет оболочку только для пользователя, он не изменяет символическую ссылку /bin/sh -> /bin/dash, поэтому мне интересно, какой правильный способ удалить dash по умолчанию в Ubuntu 24.04?
Ответ или решение
Чтобы изменить символическую ссылку /bin/sh
на /bin/bash
в Ubuntu, вам нужно будет внести соответствующие изменения вручную, так как утилита dpkg-reconfigure dash
больше не работает для изменения этой настройки в версиях Ubuntu, начиная с dash 0.5.
Вот пошаговая инструкция для выполнения данной задачи:
-
Проверьте текущую символическую ссылку:
В первую очередь, вы можете проверить, на что указывает
/bin/sh
, выполнив команду:ls -l /bin/sh
Это покажет вам, что
/bin/sh
ссылается на/bin/dash
. -
Создайте резервную копию текущей символической ссылки (по желанию):
Если вам нужно сохранить текущую настройки, можно создать резервную копию:
sudo mv /bin/sh /bin/sh.bak
-
Создайте новую символическую ссылку на
/bin/bash
:Теперь создайте новую ссылку, указывающую на bash:
sudo ln -s /bin/bash /bin/sh
-
Проверьте изменения:
Убедитесь, что ссылка теперь указывает на bash:
ls -l /bin/sh
Вы должны увидеть, что
/bin/sh
теперь указывает на/bin/bash
. -
Обновите систему:
После внесения изменений могут потребоваться обновления для некоторых системных параметров. Запустите следующие команды, чтобы убедиться, что все работает корректно:
sudo apt-get update sudo apt-get upgrade
-
Обратите внимание на последствия:
Имейте в виду, что использование bash в качестве основной оболочки для
/bin/sh
может повлиять на производительность и совместимость некоторых скриптов, так как dash обычно быстрее и эффективнее для выполнения оболочных сценариев. Убедитесь, что ваши скрипты совместимы с bash.
Таким образом, теперь вы настроили вашу систему так, чтобы /bin/sh
указывал на /bin/bash
. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!