Терминал не выдает вывод после вмешательства в файл ~/.bashrc

Терминал не выдает вывод после вмешательства в файл ~/.bashrc

Изображение моего терминала:

введите описание изображения здесь

введите описание изображения здесь

Я использую Ubuntu с WSL и не могу получить доступ к графическому интерфейсу.

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

решение1

Рад, что вам удалось выбраться из этого. В будущем, поскольку вы используете WSL, помните, что у вас также есть следующие варианты восстановления.

Из PowerShell, CMD или меню «Пуск»:

wsl -e bash --norc --noprofile

Это запустит WSL и выполнит Bash без обработки каких-либо файлов запуска, таких как ~/.bashrc(и другие). Оттуда вы можете проверить и исправить любые файлы запуска или другие проблемы. Обычно это лучший механизм восстановления для этого типа проблем.

Вы даже можете редактировать свой файл .bashrcнапрямую, не запуская оболочку, с помощью:

wsl -d Ubuntu20.04_WSL2 -e editor /home/<username>/.bashrc

Примечание: editorКоманда сопоставляется с «предпочтительным редактором» в Ubuntu ( nanoпо умолчанию). В некоторых других дистрибутивах вам может потребоваться указать само имя редактора (например, vi). Вы можете изменить редактор по умолчанию с помощью sudo update-alternatives --config editor.

Окончательно:

wsl -u root

Это позволит вам получить доступ к WSL как пользователю root, где вы сможете редактировать файлы пользователя. Обратите внимание, что если в /etc/profile(или .dподкаталогах) есть ошибка, то это все равно не сработает, так как пользователь root столкнется с той же ошибкой. Вот почему я предпочитаю этот --noprofile --norcвариант.

Также из комментариев:

Я не могу открыть bashrc

Здесь есть два варианта:

  • Как упомянул @terdon в комментариях, вы можете по крайней мере просмотреть файл, используя Проводник в Windows, чтобы перейти к нему \\wsl$\Ubuntu\home\<username>\(или к названию используемого вами дистрибутива, в нем может быть номер версии).

    Обратите внимание, что я не рекомендуюредактированиефайл с помощью приложения Windows, если вы не уверены, что приложение будет соблюдать окончания строк Linux/Unix. Некоторые приложения (например, старые версии Notepad) «портят» файл (по крайней мере, с точки зрения Bash), изменяя окончания строк на DOS/Windows CRLF.

  • Или из PowerShell:

    wsl -e cat /home/<username>/.bashrc | clip.exe
    

    Это скопирует его непосредственно в буфер обмена, чтобы вы могли вставить любые соответствующие части в свой вопрос в следующий раз.

Пожалуйста, не публикуйте изображения текста. Просто скопируйте/вставьте текст прямо в ваш вопрос

Также можно просто выделить текст, который вы ввели на скриншоте, прямо в терминале и вставить его в вопрос.

Я бывсе ещепопросите вас сделать это (если вы еще не полностью исправили ошибку), так как это может помочь другим найти ваш вопрос при поиске в Интернете. Изображения, конечно, не часто индексируются. Смотретьздесьвот еще несколько причин, по которым мы просим вас избегать снимков экрана, когда достаточно текста.

решение2

Нажатие Ctr+C решит проблему.

Связанный контент