Назад | Перейти на главную страницу

Добавлена ​​строка в bashrc, теперь bash не отвечает

Я добавил следующую строку в конец своего ~/.bashrc (Это в коробке Linode) и вышел из моего сеанса ssh.

source ~/.profile

Теперь, когда я вхожу в систему, оболочка не отвечает. Я никогда не попадаю в подсказку, и ввод команд ничего не делает.

Если я Ctrl-c, он закрывает соединение ssh. Ctrl-z тоже ничего не делает. Я не могу получить доступ к ~/.profile чтобы попытаться понять, в чем проблема.

Как мне вернуть подсказку?

Люди уже спрашивали вас, как это исправить. Но почему это случилось с вами?

В Debian / Ubuntu этот фрагмент кода находится в ~/.profile:

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

Итак, по умолчанию ~/.profile включает ~/.bashrc. Если вы скажете ~/.bashrc включать ~/.profile, вы создаете бесконечный цикл.

Чтобы вернуть свою оболочку, просто используйте эту процедуру.

Надеюсь, вы помните содержимое .bashrc, которое там было раньше. Должно получиться примерно так:

# .bashrc

# Source global definitions
    if [ -f /etc/bashrc ]; then
        . /etc/bashrc
    fi

Поместите их в файл с тем же именем, .bashrc, на машине, откуда вы можете получить доступ к своей машине Linode.

Теперь используйте эту команду:

 # scp .bashrc server:.

Это заменит ваш измененный .bashrc на этот по умолчанию, и вы сможете вернуть свою оболочку.

Пожалуйста, дайте мне знать, если у вас возникнут проблемы с этим.