Я думаю, что вы как-то закончили
sh -> bash
bash -> bash
Когда система впервые пытается запустить оболочку, она входит в цикл, разрешающий bash
, который, согласно символической ссылке,
то же самое, что bash
, то же самое, что bash
, то же самое, что bash
, то же самое, что bash
... до тех пор, пока не будет исчерпана память для этого.
Чтобы решить эту проблему, нам нужно знать, что раньше было /bin/sh
, обычно оно указывает на bash
или dash
. Какой дистрибутив Linux вы используете?
Обычно устанавливаются другие оболочки, такие как dash
или zsh
, но поскольку система ищет sh
при запуске, я не вижу способа использовать их без посторонней помощи.
Я думаю, вам нужно будет загрузить работающую систему с компакт-диска или подключить жесткий диск к другому компьютеру;
А оттуда смонтируйте корневой диск и исправьте ссылку.
Если оболочка действительно была удалена командой "force" в ls -sf
, вам нужно откуда-то получить двоичный файл оболочки.
Может также сработать, чтобы связать /bin/sh
с похожей оболочкой, а не с той, на которую она указывала - (но, похоже, это было то, что вы делали в последний раз.)
The
sudo ln -sf bash /bin/bash
мог удалить /bin/bash
- но когда я пытаюсь что-то подобное, я получаю сообщение об ошибке:
ln: bash and /bin/bash are the same file
Вы уверены в командах? В каком каталоге вы их запускали?