1

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

Я также попытался reset 0 и reset 1 без радости. И я даже без особой радости попробовал команду cls Windows.

У Cygwin отсутствует какая-либо полезная документация:

$ man -k reset
reset: nothing appropriate.

$ man -k terminal
terminal: nothing appropriate.

$ man reset 1
No manual entry for reset
No manual entry for 1
(Alternatively, what manual page do you want from section 1?)

Как мне сбросить терминал из командной строки при использовании Cygwin? Чего не хватает в команде выше?


Сообщение об ошибке было отправлено в Cygwin для этой проблемы: Ошибка 19195: Терминал Cygwin не отвечает ни на «reset», ни на «cls».

5 ответов5

5

Под Cygwin, похоже, сброс не работает

  • Вы используете версию reset отличную от Cygwin.

  • Вы можете подтвердить это, запустив where reset в командной строке.

Заметки:

  • c:\windows\system32\reset.exe - это утилита сброса служб удаленных рабочих столов

  • Вывод, который вы показываете в своем вопросе, выглядит так, как будто он получен из этой версии сброса (а не версии Cygwin).


Настройка Cygwin PATH

Если вы установили пакет ncurses (смотри ниже) , то вам необходимо убедиться , что ваш Cygwin PATH имеет элементы Cygwin до элементов для Windows (это должно произойти автоматически при установке Cygwin).

Пример пути cygwin:

DavidPostill@Hal /f/test
$ echo $PATH
.:/home/DavidPostill/bin:/usr/local/bin:/usr/bin:/c/ProgramData/Oracle/Java/javapath:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/apps/Calibre

Cygwin reset

reset Cygwin является частью пакета ncurses и связан с tset .

Параметры к tset являются необязательными.

Вы можете определить это в вашей системе, используя:

which reset

В моей системе:

DavidPostill@Hal ~
$ which reset
/usr/bin/reset

DavidPostill@Hal ~
$ ll /usr/bin/reset
lrwxrwxrwx 1 DavidPostill None 8 Jul  1 08:14 /usr/bin/reset -> tset.exe

Cygwin clear также является частью ncurses У меня есть cls псевдонимов следующим образом :

alias cls='clear'

Заметки:

  • Вы всегда можете узнать, какие пакеты содержат определенные команды cygwin, используя Search Packages.

  • clear , и reset имеют различное поведение:

    • clear очищает видимую часть mintty дисплея Буфер прокрутки остается как есть.

    • reset отправляет строку инициализации терминала. В случае mintty это очищает видимую часть экрана и удаляет буфер прокрутки.


Как проверить, установлен ли ncurses?

Чтобы увидеть, установлен ли пакет, используйте cygcheck -l ncurses .

  • -l package - вывести содержимое пакета (или всех пакетов, если они не указаны)
DavidPostill@Hal /f/test
$ cygcheck -l ncurses
/usr/bin/captoinfo
/usr/bin/clear.exe
/usr/bin/infocmp.exe
/usr/bin/infotocap
/usr/bin/reset
/usr/bin/tabs.exe
/usr/bin/tic.exe
/usr/bin/toe.exe
/usr/bin/tput.exe
/usr/bin/tset.exe
/usr/share/doc/ncurses/ANNOUNCE
/usr/share/doc/ncurses/AUTHORS
/usr/share/doc/ncurses/COPYING
/usr/share/doc/ncurses/NEWS
/usr/share/doc/ncurses/README
/usr/share/man/man1/captoinfo.1m.gz
/usr/share/man/man1/clear.1.gz
/usr/share/man/man1/infocmp.1m.gz
/usr/share/man/man1/infotocap.1m.gz
/usr/share/man/man1/reset.1.gz
/usr/share/man/man1/tabs.1.gz
/usr/share/man/man1/tic.1m.gz
/usr/share/man/man1/toe.1m.gz
/usr/share/man/man1/tput.1.gz
/usr/share/man/man1/tset.1.gz

Что входит в пакет ncurses?

2015-05-18 21:00           0 usr/bin/
2015-05-18 20:58           0 usr/bin/captoinfo -> tic.exe
2015-05-18 21:00        9747 usr/bin/clear.exe
2015-05-18 21:00       52755 usr/bin/infocmp.exe
2015-05-18 20:58           0 usr/bin/infotocap -> tic.exe
2015-05-18 20:58           0 usr/bin/reset -> tset.exe
2015-05-18 21:00       14355 usr/bin/tabs.exe
2015-05-18 21:00       67091 usr/bin/tic.exe
2015-05-18 21:00       15379 usr/bin/toe.exe
2015-05-18 21:00       15379 usr/bin/tput.exe
2015-05-18 21:00       19475 usr/bin/tset.exe
2015-05-18 20:58           0 usr/share/doc/
2015-05-18 20:58           0 usr/share/doc/ncurses/
2015-05-18 20:58       13750 usr/share/doc/ncurses/ANNOUNCE
2015-05-18 20:58        2529 usr/share/doc/ncurses/AUTHORS
2015-05-18 20:58        1408 usr/share/doc/ncurses/COPYING
2015-05-18 20:58      549943 usr/share/doc/ncurses/NEWS
2015-05-18 20:58       10212 usr/share/doc/ncurses/README
2015-05-18 20:59           0 usr/share/man/man1/
2015-05-18 20:57        2919 usr/share/man/man1/captoinfo.1m.gz
2015-05-18 20:57        1201 usr/share/man/man1/clear.1.gz
2015-05-18 20:57        6976 usr/share/man/man1/infocmp.1m.gz
2015-05-18 20:57        1594 usr/share/man/man1/infotocap.1m.gz
2015-05-18 20:59          39 usr/share/man/man1/reset.1.gz
2015-05-18 20:57        2288 usr/share/man/man1/tabs.1.gz
2015-05-18 20:57        5995 usr/share/man/man1/tic.1m.gz
2015-05-18 20:57        1883 usr/share/man/man1/toe.1m.gz
2015-05-18 20:57        4540 usr/share/man/man1/tput.1.gz
2015-05-18 20:57        4971 usr/share/man/man1/tset.1.gz

Источник ncurses: утилиты отображения терминала (установленные двоичные файлы и файлы поддержки)

2

Это очищает экран и буфер обратной прокрутки, как на mintty, так и на консоли:

echo -e "\033c"
2

Попробуй clear - он должен делать то, что ты хочешь.

Редактировать: это часть пакета ncurses , по умолчанию не установленная.

2

Обходное решение, если у вас еще нет установленных ncurses и, следовательно, «очистите».
(добавлено примечание - и, как указал Дэвид Постил, следующее будет работать только в том случае, если вы запускаете cygwin по старинке через cygwin.bat, т.е. cd \cygwin<ENTER> cygwin<ENTER> ), файл cygwin.bat не работает запустите mintty, поэтому он запускает его по старинке, а затем вы можете выполнить cmd /c cls .

0

Cygwin добавил reset в свой набор команд где-то в декабре 2015 года. Это было где-то, когда терминал Cygwin не отвечает ни на «перезагрузку», ни на «cls» . Или, может быть, он начал работать, как ожидалось.

Если у вас нет сброса, перезапустите программу установки пакета и обновите все.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .