1

Я перезапустил свой компьютер Kubuntu - из меню leave->restart если это имеет значение. Обычно мои терминальные окна открываются автоматически после перезагрузки, но на этот раз мое приглашение было неверным и куча других странных вещей.

Теперь /bin /sh - это ссылка на /bin /dash, и dash, похоже, загружен, но внезапно становится намного тупее, чем до перезагрузки. Теперь он не узнает, что shopt . Когда я пытаюсь расставить все точки, мой профиль (. ~/.bash_profile) Я получаю сообщение об ошибке, например /bin/sh: 28: /etc/bash_completion: [[: not found . В командной строке завершение команды не работает, ни клавиши вверх и вниз для истории команд.

Я сознательно не скачал ни одного пакета, который должен был с этим связываться. Есть ли веская причина, почему это должно внезапно начаться?

Теперь я выполнил /bin/bash из командной строки моего терминала, и все вроде бы хорошо, но это не объясняет, что не так с dash . Кроме того, bash предположительно тяжелее, чем dash, и, поскольку я открываю около 20 терминалов, я бы хотел избежать этих издержек, если это правда.

Спасибо за любые идеи в этом.

1 ответ1

2

Вы не могли использовать тире все это время:

  • Dash не может понять [[ , так как это одна из внутренних команд Bash.

  • Тире не поддерживает завершение табуляции.

  • Тире не поддерживает клавиши со стрелками (редактирование, история).

(Источник)

Единственное возможное объяснение - то, что ваша оболочка по умолчанию изменилась как-то. Я, очевидно, не могу знать, как это произошло, но я могу думать только о двух путях:

  • Что-то отредактировало /etc/passwd и заменило вашу оболочку по умолчанию. Это очень маловероятно.

  • Вы обращались к Bash через символьную ссылку (скорее всего, /bin/sh), а недавнее обновление установило символическую ссылку в качестве цели по умолчанию.

Хотя это правда , что Bash тяжелее Dash, это не должно быть проблемой с терминалами (то , что Bash предназначен для).

Однако неинтерактивные оболочки по-прежнему должны использовать Dash по умолчанию (поэтому /bin/sh должен указывать на Dash).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .