Jasne ... nie rób tego! Ponadto, jeśli uważasz, że polecenie może generować nieprawidłowe znaki, użyj cat -A.
jnylen
2
Dodatkowo zawsze byłem ciekawy, jak catzłamać swój zestaw znaków ...
crasic
cat / bin / ls często to naprawia (nie wiem dlaczego)
skarface
2
@crasic: wysyła dane binarne do terminala, a każdy terminal może zmieniać czcionkę / kolor / itp., otrzymując specjalne znaki. Zobacz cudowny: linusakesson.net/programming/tty (alias „TTY demystified). W zależności od twojego ustawienia TERM będzie także reagować inaczej (i oczywiście w zależności od tego, jakie bajty otrzymuje i w jakiej kolejności).
Olivier Dulac
@skarface: prawdopodobnie miałeś szczęście, że plik binarny / bin / ls miał pod koniec sekwencje bajtów, które naprawiły wyświetlanie. Będzie to zależeć od systemu operacyjnego, pliku binarnego (tj., Która wersja, jakiego kompilacji użyłeś Optino itp.) Oraz ustawienia TERM twojego terminala ... więc bardzo polecam użycie zamiast tego "stty sane" ^^
Olivier Dulac
Odpowiedzi:
50
Spróbuj jednego z tych:
stty sane
lub
reset
Jeśli oba nie działają, lub twój terminal jest tak zepsuty, że nie możesz nawet wprowadzać poleceń, najlepiej zamknąć terminal i uruchomić nowy.
Zauważ, że stty sanejest zdefiniowane przez POSIX, podczas gdy resetnie jest. Oznacza to, że w niektórych systemach może nie być resetlub może zrobić coś zupełnie innego, na przykład zresetować cały system. Nie spotkałem jeszcze systemu bez reset.
Więcej informacji w tle znajduje się w rozdziale „ Klawiatura i konsola Linuxa HOWTO” w rozdziale „Resetowanie terminala” .
Dałem ci właściwą odpowiedź, ponieważ byłeś pierwszy. Przepraszam innych.
Pedro Montoto García
Zasadniczo, zapisywanie losowych bajtów na terminalu raczej nie spowoduje, że będzie to wymagało naprawy stty przy zdrowych zmysłach; jest bardziej prawdopodobne, że nastąpi awaria programu.
Random832,
stty sanejest bezpieczny i właściwy sposób (jestem zmęczony „resetowaniem” z powodów, które podałem w komentarzach pod odpowiedzią Laina)
Olivier Dulac
1
@OlivierDulac Dziękujemy za podzielenie się doświadczeniami. Badałem i dowiedziałem się, że resetnie jest zdefiniowany przez POSIX.
lesmana
1
@Iain Nie sądzę, że @OlivierDulac rozpowszechnia FUD. Odniesieniem, które resetnie jest „bezpieczne”, jest fakt, że nie jest zdefiniowane przez POSIX. Przestań rozpowszechniać FUD, które @OlivierDulac rozpowszechnia FUD.
Połączyłeś stronę man, domyślnie polecając dobry RTFM. Jesteś dziś moim bohaterem, dzięki.
Luke404,
Działa to na wielu systemach uniksowych ... Ale słowo ostrzeżenia: bądź ostrożny: w niektórych systemach (np. W innych systemach operacyjnych, a może w innej dystrybucji linuksa?) Może to zainicjować reset systemu (sądzę, że na przykład działa na niektóre wersje solaris). Dlatego resetuj system, tj. Wymuszając ponowne uruchomienie (bez odpowiedniego wyłączenia) ... Jak w przypadku każdego polecenia, bądź ostrożny. (Dotyczy to również innych poleceń: niektóre „tar” na przykład NIE usuwają prefiksów „/” i dlatego mogą zastępować poufne pliki itp. Zawsze upewnij się, że wiesz, w jaki sposób polecenie, którego zamierzasz użyć, działa w systemie używają.)
Olivier Dulac
1
@OlivierDulac; OP oznaczył swoje pytanie linux, więc otrzymał odpowiedź na Linux-a, choć będzie działać bez problemu na innych systemach uniksowych, w tym Solaris. Pracuję z Solaris od 15 lat! Mylisz polecenie resetowania SPARC Open Boot Prom z poleceniem resetowania użytkownika (1). Jeśli zresetujesz się po wyświetleniu monitu OK, prawdopodobnie nie będzie można odzyskać danych z uszkodzonego terminala.
user9517 obsługuje GoFundMonica
@lain: ah, to może być rzeczywiście (bal Open Boot). Ale nadal oznacza to, że w niektórych środowiskach „reset” jest powiązany z resetowaniem hosta, więc wolę ludzi (nawet jeśli są „głównie” na systemie Linux), aby uczyć się / korzystać z polecenia „bezpiecznego” „stty sane” (który określa co robi to i nie jest tak dwuznaczny jak „reset”) ... dlatego ostrzegam czytelników o tym.
Olivier Dulac
@OlivierDulac Solaris, CentOS, Ubuntu, OpenBSD wszystkie linki zostały zresetowane do tset - proszę przedstawić dowody na twoje dezinformacje inne niż błędne zapamiętanie czegoś. OBP nie jest systemem operacyjnym hosta, więc się nie liczy.
cat -A
.cat
złamać swój zestaw znaków ...Odpowiedzi:
Spróbuj jednego z tych:
lub
Jeśli oba nie działają, lub twój terminal jest tak zepsuty, że nie możesz nawet wprowadzać poleceń, najlepiej zamknąć terminal i uruchomić nowy.
Zauważ, że
stty sane
jest zdefiniowane przez POSIX, podczas gdyreset
nie jest. Oznacza to, że w niektórych systemach może nie byćreset
lub może zrobić coś zupełnie innego, na przykład zresetować cały system. Nie spotkałem jeszcze systemu bezreset
.Więcej informacji w tle znajduje się w rozdziale „ Klawiatura i konsola Linuxa HOWTO” w rozdziale „Resetowanie terminala” .
źródło
stty sane
jest bezpieczny i właściwy sposób (jestem zmęczony „resetowaniem” z powodów, które podałem w komentarzach pod odpowiedzią Laina)reset
nie jest zdefiniowany przez POSIX.reset
nie jest „bezpieczne”, jest fakt, że nie jest zdefiniowane przez POSIX. Przestań rozpowszechniać FUD, które @OlivierDulac rozpowszechnia FUD.Możesz spróbować użyć polecenia resetowania .
źródło
reset
Komenda powinna działać.źródło