Моя оболочка bash не начинает новую строку после возврата и не показывает введенную команду

Большинство людей, приходящих к этому из поисковой системы, вероятно, задаются вопросом: «Почему я получаю эту ошибку?»:

warning: File system `ext2' doesn't support embedding. 
warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their  use is discouraged.. 
error: will not proceed with blocklists.

Потому что вы это сделали, например:

grub- установить / dev / sda1

вместо

grub-install / dev / sda

Т.е. пытался установить в раздел вместо MBR.

6
06.01.2019, 14:44
2 ответа

Как показывают другие ответы, самое простое решение — просто запустить reset.

Что же касается причины? Обычно это происходит, когда выcat(или иным образом выводите )двоичный файл или данные на свой терминал.

Текст — это просто текст, и он не обрабатывается терминалом специально, но есть также некоторые специальные символы, которые не являются текстом и используются для таких действий, как перемещение курсора, очистка экрана, изменение цвета, прекращение эха. выход и т. д.

Когда вы выводите двоичные данные (, а не текст ), терминал увидит эти специальные управляющие символы и попытается интерпретировать их по мере поступления. Вы можете заметить, что экран очищается, мигает или прыгает вокруг -, это все из-за того, что эти управляющие символы соблюдаются. Вы можете поэкспериментировать, запустив head /dev/urandomв новом терминале, чтобы понять, что я имею в виду.

В большинстве случаев, если ваш терминал в любом случае ведет себя странно, просто запустите reset, чтобы исправить это, просто повторив все специальные символы, необходимые для установки терминала в базовый режим по умолчанию -, например. есть код stop echoing input, а также код start echoing input. Двоичные данные случайным образом включают первое, поэтому вы не можете видеть, что вы печатаете, а resetбудет включать последнее (среди других ), что исправит это.

8
27.01.2020, 20:20

Если reset(, предложенный в другом ответе ), не работает, попробуйте:

stty sane

может сопровождаться

tput rs1

У меня определен следующий псевдоним (Думаю, я нашел его где-то в stackoverflow):

alias   fixtty='reset; stty sane; tput rs1; clear; echo -e "\033c"'
11
27.01.2020, 20:20

Теги

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