Как сделать так, чтобы /bin/sh указывал на /bin/bash?

Вопрос или проблема

В 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

chsh изменяет оболочку только для пользователя, он не изменяет символическую ссылку /bin/sh -> /bin/dash, поэтому мне интересно, какой правильный способ удалить dash по умолчанию в Ubuntu 24.04?

Ответ или решение

Чтобы изменить символическую ссылку /bin/sh на /bin/bash в Ubuntu, вам нужно будет внести соответствующие изменения вручную, так как утилита dpkg-reconfigure dash больше не работает для изменения этой настройки в версиях Ubuntu, начиная с dash 0.5.

Вот пошаговая инструкция для выполнения данной задачи:

  1. Проверьте текущую символическую ссылку:

    В первую очередь, вы можете проверить, на что указывает /bin/sh, выполнив команду:

    ls -l /bin/sh

    Это покажет вам, что /bin/sh ссылается на /bin/dash.

  2. Создайте резервную копию текущей символической ссылки (по желанию):

    Если вам нужно сохранить текущую настройки, можно создать резервную копию:

    sudo mv /bin/sh /bin/sh.bak
  3. Создайте новую символическую ссылку на /bin/bash:

    Теперь создайте новую ссылку, указывающую на bash:

    sudo ln -s /bin/bash /bin/sh
  4. Проверьте изменения:

    Убедитесь, что ссылка теперь указывает на bash:

    ls -l /bin/sh

    Вы должны увидеть, что /bin/sh теперь указывает на /bin/bash.

  5. Обновите систему:

    После внесения изменений могут потребоваться обновления для некоторых системных параметров. Запустите следующие команды, чтобы убедиться, что все работает корректно:

    sudo apt-get update
    sudo apt-get upgrade
  6. Обратите внимание на последствия:

    Имейте в виду, что использование bash в качестве основной оболочки для /bin/sh может повлиять на производительность и совместимость некоторых скриптов, так как dash обычно быстрее и эффективнее для выполнения оболочных сценариев. Убедитесь, что ваши скрипты совместимы с bash.

Таким образом, теперь вы настроили вашу систему так, чтобы /bin/sh указывал на /bin/bash. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!

Оцените материал
Добавить комментарий

Капча загружается...