2012-10-04 26 views
7

Polecenie konsoli reset(1) jest, jak sądzę, zbyt wolne. Na moim komputerze wykonanie 1-sekundowego czasu ściany.Resetowanie polecenia systemu Linux (1) jest powolne

Dlaczego tak jest? Czy można to zrobić szybko? Alternatywnie, czy istnieje inne polecenie, które może usunąć mój bufor terminala?

+0

Ty zamknięte moje pytanie jako off topic chociaż jest to prawdziwy problem dla mnie wykorzystanie. Nawet jeśli pytanie, dlaczego resetowanie jest powolne, może być trochę zabawne, pytanie, w jaki sposób mogę usunąć mój bufor terminala, z pewnością nie jest. – nccc

Odpowiedz

5

Pobiegłem strace reset i zobaczyłem ten zbliża się do końca:

nanosleep({1, 0}, 0x7fffe32053e0)  = 0 

Więc to celowo czeka chwilę po wysłaniu wszystkich terminali kodów Reset, prawdopodobnie dlatego, że niektóre terminale potrzebujemy czasu na przetworzenie wszystko.

Bardzo często nie powinieneś używać reset (tylko wtedy, gdy program pełnoekranowy został nieprawidłowo zakończony, więc nie resetuje samego terminala), dlaczego jest to wielka sprawa?

Nie jestem pewien, co masz na myśli przez "wymaż mój bufor terminala". Nie do tego służy reset.

+2

Może to nie jest tym czym jest "reset", ale nie wiem, jakie inne polecenie może mieć taki sam efekt. Dzięki jednak ten rodzaj wyjaśnia, dlaczego jest powolny. – nccc

+1

To wielka sprawa, ponieważ bardzo często używam 'resetu 'podczas programowania w niektórych emulatorach terminalowych, np. gnome-terminal. Często muszę po prostu wyczyścić ekran, ale także całkowicie usunąć bufor terminala. – nccc

+0

To wyjaśnia, dlaczego w niektórych dystrybucjach w rzadkich przypadkach pozostawia śmieci w terminalu. Powoduje wyczyszczenie ekranu, a następnie pojawienie się niektórych kodów terminala, a następnie pojawia się monit. –

5

resetuje połączenia tput (1) z argumentami clear, rmacs, rmm, rmul, rs1, rs2 i rs3. Powoduje to, że tput wysyła odpowiednie ciągi resetowania do terminala na podstawie informacji w/etc/termcap (dla tput GNU lub BSD) lub w bazie terminfo (dla ncurses tput). Wydaje się, że ta sekwencja wystarczy, aby zresetować system Linux VC, gdy zaczną drukować "zabawnie wyglądające" postacie. Na dobrą zasadę, stty (1) jest wywoływane z rozsądnym argumentem, próbując odzyskać gotowany tryb.

Zobacz również jasne (1), stty (1), tput (1)

+3

Wygląda na to, że 'tput reset' wykonuje to zadanie bez opóźnienia. –

+0

From tput (1): '' Jeśli tput jest wywoływane przez link o nazwie reset, ma to taki sam efekt jak reset tput. ', Tworzenie dowiązania symbolicznego z' 'tput'' do' 'reset'' w moim kontenerze domowym Folder załatwił sprawę. Dzięki. –

0

Jeśli chcesz po prostu wyczyścić bufor terminala, można spojrzeć na komendę clear(1).

Fragment strony clear(1) ręcznej:

NAME 
    clear - clear the terminal screen 

SYNOPSIS 
    clear 

DESCRIPTION 
    clear clears your screen if this is possible. It looks in 
    the environment for the terminal type and then in the 
    terminfo database to figure out how to clear the screen. 
    ... 
+1

clear (1) czyści widoczny prostokąt znaków w terminalu, a nie cały bufor terminala. Tak jasne (1) nie zawsze jest wystarczające – porton

Powiązane problemy