GNU/Linux >> Linux Esercitazione >  >> Linux

Come e dove viene interpretato il termine $?

Mi chiedo come si possa fare un po' di magia terminale funziona internamente.

Mentre si gioca con i contenitori docker, la variabile d'ambiente $TERM non era impostato. Ciò ha portato a applicazioni console dall'aspetto strano come vim e tmux, ma anche a CTRL+l (schermo pulito) ignorate.

Sono abbastanza sicuro che tutte le funzionino come gli aggiornamenti parziali dello schermo, i colori, i comandi come il ripristino dello schermo ecc. sono realizzati utilizzando codici di escape, giusto?

Quindi, dove viene interpretata questa variabile e consente, ad esempio, di ripristinare lo schermo del mio terminale usando CTRL+l se ho impostato il valore corretto lì? Chi controlla ad esempio quali colori sono supportati (xterm vs xterm-256color)? Il guscio? L'applicazione o una libreria come ncurses? E dove sono definiti i possibili valori/tipi di terminale?

Risposta accettata:

$TERM viene letto e interpretato dal sistema terminfo. terminfo si riferisce anche al database delle descrizioni dei terminali che puoi trovare sulla maggior parte dei sistemi in /usr/share/terminfo . $TERM deve corrispondere a una delle voci in quel database. C'era anche una vecchia libreria chiamata termcap che aveva meno capacità, ma terminfo l'ha sostituita. Nei sistemi moderni, terminfo fa parte della libreria ncurses.

Le applicazioni di solito recuperano le funzionalità del terminale direttamente utilizzando funzioni di libreria come tigetstr() oppure utilizzano interfacce di curses di livello superiore per gestire il layout dello schermo. Ad ogni modo, $TERM e verrà consultato il database terminfo.


Linux
  1. Come avviare il comando Linux in background e scollegare il processo nel terminale

  2. Emulatore di terminale Kitty:come installarlo, configurarlo e utilizzarlo

  3. Tput:nessun valore per $term e nessun -t specificato?

  4. Come installare Guake Terminal e aggiungerlo all'avvio automatico

  5. Linux:come sapere dove è stato avviato un processo e come è stato avviato?

Come eseguire il backup e il ripristino della cronologia del terminale Linux

Come installare e utilizzare l'emulatore di terminale Tilix in Linux

Come installare e utilizzare l'emulatore di terminale Konsole in Linux

Come installare e utilizzare Terminator Terminal in Linux

Come copiare file e directory nel terminale Linux

Come cancellare il terminale in Linux {Cancella schermo in Linux}