pokrocile ovladanie virtualneho terminalu

03.07.2006 03:56

tento strucny clanok ma oboznamit zaciatocnikov (ale ktovie? :)) s nejakymi "fintami" v terminale

control characters

Su to znaky tvorene kombinaciou klavesy (prekvapivo) Control a nejakeho znaku. Celkovo ich je 32 a predstavuju ASCII kody 0 - 31. Prva kombinacia je so znakom "@", nasleduje abeceda a zopar dalsich - usporiadanie je odvodene od ASCII
tabulky (kody 64 - 95). Tieto znaky ovladaju kurzor, riadia vstup, vystup ci proces.

Kombinacia klaves Control a C sa zapisuje ako ^C alebo C-c.
Pre uplnost - prefix M- je Meta, na PC klavesniciach ho zastupuje Alt.

C-g
terminal beep (bell)
C-d
end of transmission - ukonci uzivatelsky vstup, alebo logout.
C-j
enter (line feed)
C-l
zmaze obrazovku, pricom vstupny buffer ostava nezmeneny (form feed)
C-h
backspace
C-u
vymaze buffer od sucasnej pozicie kurzora az po zaciatok
C-a
presunie kurzor na zaciatok vstupneho bufferu
C-e
presunie kurzor na koniec vstupneho bufferu
C-p
predosly prikaz v historii
C-n
nasledujuci prikaz v historii
C-c
prerusi vykonavanie procesu
(konkretne dostane SIGINT, viac o signaloch v manualovej stranke signal(7))
C-z
suspend. pozastavi vykonavanie procesu, znova ho spusti prikaz fg.
job control tutorial je v LDP (mozno ho najst aj v ceskej verzii)
C-s
zastavi vystup (aj proces)
C-q
naprotivok C-s (druhy C-s moze robit to iste, ale nie je to pravidlo)

Este tabulka vsetkych ASCII kontrolnych znakov aj s klavesovymi skratkami, ak to niekoho zaujima ;)

viac terminalov na jediny login

Takuto vychytavku poskytuje screen. Tento program umoznuje jednoduchym sposobom vytvorit lubovolny pocet emulacii terminalu VT100 a prepinat medzi nimi. Navyse poskytuje mnozstvo nadstandardnych funkcii (scrollback, clipboard, uzamknutie, detach) a flexibilitu nastaveni. Skvele pre remote login.

Pre zaciatok sa zide skopirovat si /usr/share/doc/screen/screenrc do ~/.screenrc

Kedze vsetky podstatne informacie sa daju vycitat z manualu screen(1), tak len zopar uzitocnych skratiek:

C-a c
vytvori novy terminal
C-a C-a
prepina na predosly terminal
C-a n
prepne na nasledujuceho terminalu v poradi
C-a p
prepne na predchadzajuci terminalu v poradi
C-a 0
prepne do okna 0 (funguje aj pre dalsie cislice)
C-a '
prepne do okna zadaneho menom alebo cislom
C-a -
prepne do prazdneho okna
C-a [
zapne scrollback mod - prehliadanie historie
C-a C
zmaze obsah obrazovky
C-a t
zobrazi datum a cas
C-a ?
zobrazi prikazy screen-u

A na zaver specialitka - detach. C-a d "vypne" screen, ale necha ho bezat na pozadi aj so vsetkymi procesmi a netreba sa kaslat s nejakym nohup(1). Kludne mozem dat logout a neskor znovu prevziat kontrolu cez screen -r

Takze, ak by manual nestacil, este je tu pekne a strucne HOWTO.

A pokial by v screene nefungoval backspace, malo by pomoct pridanie bindkey -k kb stuff ^H do ~/.screenrc. Pokial nejde v grafickom emulatore terminalu, malo by pomoct nastavit, aby backspace generoval ASCII DEL (generovanie ^H funguje tiez, ale potom nefunguje napr. v man(1)).

^D

    • nepoznal som vsetky, ale 03.07.2006 | 22:04
      Avatar blackhole_ventYl   Používateľ

      nepoznal som vsetky, ale vacsinu z tych, co som nepoznal, nejako nepotrebujem k zivotu, su to len ulahcovaky...
      ...skor by sa mi zislo, to by sa mohlo zapracovat do serialu o bashi, ako ovladat vsetky tieto vychytavky napriklad zo skriptov, vsetky tie escape sekvencie a tak, ako napriklad na farby, na zmenu titulku Xtermu atd.

      ---
      Cuchat s nadchou, to je ako sniffovat bez promiscu.

      --- Cuchat s nadchou, to je ako sniffovat bez promiscu.
      • escape sequences 03.07.2006 | 23:00
        disorder   Návštevník

        no, ano - escape sekvencie - tie su ale pri ovladani dost nanic :)
        google by urcite pomohol, nejake prehlady som uz videl. ja sa tym velmi nezaoberam, akurat mam alias beep='printf "\a"', ktory pouzivam pri kompilacii

        ---
        Ale je to smutná epocha, keď je ľahšie rozbiť atóm ako predsudky. Einstein.

    • screen je zaklad 07.07.2006 | 14:01
      s_c_johnson   Návštevník
      screen bola prva vec co som sa naucil usovat hned po ssh login@masina. a nebola to chyba.