Na ekranie są śmieci, a wszystkie naciśnięcia klawiszy dają w efekcie znaki do rysowania ramek. Co robić?
Wiele programów przerysuje ekran po naciśnięciu ^L. Może to pomóc
w sytuacji gdy na ekranie znajdują się śmieci z modemu lub nadany
komunikat. Komenda clear czyści ekran.
Komenda reset kasuje sterownik konsoli. Pomaga to w sytuacji
gdy ekran pełen jest dziwnych znaków graficznych, a także jeśli
skurczy się do jednej linii na dole. Jeśli nie masz tej komendy,
bądź jeśli robi ona coś innego, stwórz własną dodając poniższe
dwie linie do pliku wykonywalnego reset w swojej ścieżce:
#!/bin/sh
echo -e \\033c
to jest, masz zamiar posłać dwa znaki: Esc-c, na konsolę.
Dlaczego ekran czasami się miesza i wyświetlane jest 24 lub jedna linia, zamiast zwykłych 25? Cóż, głównym winowajcą jest tutaj TERM=vt100 (albo jakiś inny terminal z 24 liniami) zamiast TERM= linux przy łączeniu się zdalnie. Jeśli stanie się to na /dev/tty2 napisz:
% cat > /dev/tty2
^[c
^D
na jakieś innej WK (gdzie wpisujesz cztery symbole do cat: Esc, c,
Enter, Ctrl-D) i odśwież ekran na /dev/tty2 (możliwie używając ^L), co
przywróci porządek. Oczywiście stałym rozwiązaniem jest używanie
odpowiedniego kawałka termcap lub terminfo.
Dlaczego tak się dzieje że czasami dostajesz masę znaków do rysowania
ramek, np. po wysłaniu na ekran pliku binarnego za pomocą cat ?
Istnieje wiele Esc-sekwencji które zmieniają zestaw znaków, a twój
plik może przypadkiem zawierać niektóre z nich. Esc c to ogólne
przekasowanie, lekarstwo na wszystko, ale jeżeli wiesz dokładnie co
poszło nie tak, możesz to naprawić bez kasowania innych atrybutów
konsoli. Na przykład po
% cat
^N
^D
twój znak zachęty konsoli będzie się cały składał ze znaków do rysowania ramek. Napisz teraz (na ślepo):
% cat
^O
^D
I wszystko jest znów w porządku (wpisałeś trzy symbole do każdego cat:
^N lub ^O, Enter, ^D). Żeby zrozumieć co się dzieje, patrz "Zestawy znaków
konsoli" poniżej.
Jeśli załadowałeś jakiś dziwną czcionkę i chcesz powrócić do domyślnej.
% setfont
wystarczy (założywszy że zachowałeś domyślną czcionke w domyślnym miejscu). Jeśli ta czcionka nie zawiera osadzonej mapy unikodowej (i wypisuje złe symbole dla znaków akcentowanych), wpisz
% loadunimap
Na przykład, jeśli wykonam
% loadkeys de-latin1
będę miał niemiecką klawiaturę, a klawisz na lewo od Enter wypisze mi a-umlaut. Działa to, ponieważ a-umlaut występuje na stronie kodowej 437, i mapa unikodowa jądra jest inicjalizowana dla CP 437, a moja karta graficzna ma wbudowaną czcionkę CP 437. Jeśli teraz załaduję czcionkę ISO-8859-1 używając
% setfont iso01.f16
nadal wszystko działa, bowiem setfont podstawia jądru ważną mapę
unikodową (jeśli do czcionki nie jest dołączona mapa), a bez mapy jądro
odwołuje się bezpośrednio do czcionki, a to jest zupełnie poprawne dla
systemu ISO-8859-1 z czcionką iso01.f16. Ale przywrócenie poprzedniej
czcionki za pomocą
% setfont
daje dużą sigmę zamiast a-umlaut - wszystkie akcentowane znaki są pomieszane, ponieważ ta czcionka również nie ma osadzonej mapy unikodowej. Po wykonaniu
% loadunimap
która ładuje domyślną mapę unikodową (prawidłową dla domyślnej czcionki),
wszystko znów działa jak trzeba. Zwykle loadunimap nie jest
wywoływane bezpośrednio, lecz przez setfont. Tak więc poprzednie
dwie komendy można zastąpić przez
% setfont -u def
Czcionki etiopskie oraz lat1u*.psf mają osadzone tabele znaków Unicode. Większość pozostałych nie ma.
Na starych terminalach wydruk zawierający znaki tabulacji może wymagać opóźnienia, więc musisz napisać
% stty tab3
(patrz stty(1)).
Tryb graficzny zmienić możesz używając resizecons
albo SVGATextMode. To zwykle załatwia aspekt wyświetlania.
Po stronie wprowadzania może istnieć wiele potencjalnie niewłaściwych
rzeczy. Jeśli X, DOOM, albo jakiś inny program używający
trybu "surowego" pada, twoja konsola może ciągle znajdować się w stanie
"surowym" (lub "półsurowym"), i trudno jest wydawać polecenia. Patrz
"Jak wyjść z trybu surowego" poniżej. Jeśli załadowałeś zły układ
klawiatury, to
% loadkeys -d
ładuje ponownie układ domyślny, ale może się okazać że trudno jest napisać "-" ! Alternatywa to:
% loadkeys defkeymap
Czasami nawet litery są poplątane. Warto wiedzieć że istnieją cztery główne typy klawiatur: QWERTY, QWERTZ, AZERTY i Dvoraka. Trzy pierwsze nazwane są od pierwszych sześciu klawiszy i z grubsza odpowiadają krajom angielsko-, niemiecko-, i francuskojęzycznym. W porównaniu z QWERTY, układ QWERTZ zamienia Y i Z. W porównaniu z QWERTY, układ AZERTY zamienia Q i A, W i Z, i ma M na prawo od L, na pozycji średnika. Układ Dvoraka ma zupełnie inny porządek liter.
Coś może być nie w porządku na poziomie niższym niż wie o tym Linux. Istnieją co najmniej dwa różne niższe poziomy (klawiatura i sterownik klawiatury) w których wydać można komendę "wyłącz klawiaturę" sprzętowi za nią odpowiedzialnemu. Klawiatury często można zaprogramować na używanie jednego z trzech różnych zestawów kodów skanowych.
Niemniej nie wiem o żadnym przypadku w którym okazałoby się to jakimś problemem.
Niektóre klawiatury mają wbudowaną zdolność zmiany układów. Stormy
Henderson (stormy@ghost.net) pisze:
"Jeśli twoja klawiatura przeprogramowała się przez przypadek, możesz
(na klawiaturze Gateway AnyKey) nacisnąć control-alt-suspend_macro
by skasować ustawienia klawiszy do stanu normalnego".