Я случайно сломал /bin/bash

Также стоит отметить пользой полноты, что некоторые маршрутизаторы (определенный пример, являющийся моей Cisco модель с приводом малого бизнеса), предоставляют информацию через свои интерфейсы администрирования о том, сколько данных было передано. Мой может быть настроен для сброса счетчиков в указанном интервале, отчетов электронного письма и пределов реализации в дополнение к простому отображению чисел в его веб-интерфейсе.

Я понятия не имею, имеет ли DI-524 конкретно такие возможности, но это могло бы стоить взглянуть через его интерфейс администрирования на всякий случай. Так как маршрутизатор обычно перезапускается намного более редко, он, вероятно, обеспечил бы относительно полезные данные, и он также не будет ограничен одним конкретным хостом, который может или не может представлять интерес.

5
03.09.2015, 19:17
3 ответа

Вместо этого вы можете попробовать запустить / bin / sh .

После этого переустановите bash:

sudo apt-get install --reinstall /bin/bash

Это должно исправить вашу ошибку.

2
27.01.2020, 20:41

Основной оболочкой, используемой самой системой ubuntu, является /bin/dash.

Поэтому попробуйте запустить ее. В ней нет функций для интерактивного использования, таких как завершение, но это полноценная оболочка с точки зрения основных функций оболочки.

Вы уже отметили, что отсутствует /bin/sh, который является символической ссылкой на /bin/dash.
Либо ссылка, либо двоичный файл dash отсутствует.

Но я ожидал, что Ubuntu не сможет обойтись без dash, а он, похоже, все еще работает - так что мы можем надеяться, что /bin/dash есть.
Возможно, некоторые скрипты в системе сделаны для запуска с dash, но указывают на использование sh, который сейчас отсутствует.

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

sudo ln -s -r /bin/dash /bin/sh

Сама система не нуждается в bash - все скрипты, являющиеся частью системы Ubuntu, должны работать с возможностями dash.

Только интерактивные терминалы запускают bash по умолчанию, и он требуется пользовательским скриптам, когда они начинаются со строки #!/bin/bash.

Другие оболочки, которые можно попробовать:

  • /bin/zsh
  • /bin/csh
  • /bin/tcsh
  • /bin/mksh
  • /bin/lksh
1
27.01.2020, 20:41

Проверьте, есть ли у вас bash в /usr/bin/.

Если да, то, как в моем дистрибутиве, /bin является ссылкой на /usr/bin/; так что, надеюсь, вы только разбили /bin/bash своим mv, и можете восстановить его из /usr/bin/

0
27.01.2020, 20:41

Теги

Похожие вопросы