Что является эквивалентом команды "cls" из Windows/DOS? [duplicate]

На этот вопрос уже есть ответ здесь:

Я использовал cmd еще в windows, и командная строка, которую я часто использовал, была cls. Это похоже на команду clear, используемую в Linux, но она очищает экран навсегда.

Если вы используете команду clear, она просто прокручивается вниз, так что вы не видите команду, над которой работали.

Мне очень нравятся оба варианта, но мой вопрос в том, как мне получить cls, подобную команду, которая очищает экран и не может прокручиваться вверх, чтобы увидеть команду, над которой вы работали?

23
задан 16 January 2013 в 16:03

5 ответов

Если цель состоит в том, чтобы избежать только случайного повторного обнаружения истории команд, reset может быть жизнеспособным выбором.

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

history -c # очистить вашу историю

0
ответ дан 16 January 2013 в 16:03

Вы можете использовать reset. Это сбрасывает весь терминал, так что это может быть немного излишним.

Примечание для Konsole:
@ Механическая улитка заметила, что «в Konsole 4.8.5 старый текст все еще там, если вы прокрутите вверх». @gertvdijk объяснил, что это «особенность. Для Konsole есть Ctrl + Shift + K (сброс и сброс прокрутки) ) «.

0
ответ дан 16 January 2013 в 16:03

Добавьте эту строку в ~/.bashrc (т. Е. Файл с именем .bashrc, расположенный в вашей домашней папке - вы можете увидеть его в Nautilus, нажав Ctrl + H ):

alias cls='printf "\033c"'

Теперь команда cls очистит экран, как в Windows. Это вернет вас в верхнюю часть окна терминала, без текста над ним. (Он не удалит историю команд оболочки.)

Это работает, потому что:

  • .bashrc запускается каждый раз при запуске оболочки bash.
  • Команда alias определяет команду cls для запуска команды, указанной в правой части.
  • Команда printf записывает символы в терминал. Он принимает escape-коды. Восьмеричный 033 - это символ, используемый для обозначения начала управляющего кода терминала . Управляющий код c говорит терминалу очистить себя.
  • Итак, с этой модификацией к .bashrc. Запуск cls отправляет необходимые данные в терминал, чтобы сказать ему очистить себя.
0
ответ дан 16 January 2013 в 16:03

В текущем окне терминала просто введите следующее:

printf "\033c"
0
ответ дан 16 January 2013 в 16:03

cls работает путем очистки буфера, который фиксируется 25 или 50 строк в случае DOS и Windows, соответственно. Вы можете достичь чего-то подобного, написав так много строк в буфере, что он переполняется (2000 - типичное значение), но тогда reset также является жизнеспособным вариантом, как сказал @lgarzo.

0
ответ дан 16 January 2013 в 16:03

Другие вопросы по тегам:

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