Come viene impostato il valore della variabile shell TERM predefinito?


13

Dopo l'aggiornamento a Maverick ho impostato la mia variabile TERM su "stupido", ciò non accade con la stessa home directory in esecuzione da Lucid e non ho modificato manualmente nulla correlato a TERM.

Qualche idea da dove dovrebbe essere impostata la variabile TERM?

Risposte:


13

Per approfondire ciò che dice Gilles, supponi di connetterti in remoto al tuo Ubuntu da Windows usando Putty.

Nelle opzioni di configurazione del mastice, sotto Connessione-> Dati c'è un'impostazione chiamata stringa di tipo terminale. Puoi impostare il tuo TERM lì e putty ordina a SSH di impostare quella variabile d'ambiente. Ad un certo punto dopo che la shell verrà eseguita, probabilmente / bin / bash e ottiene il suo ambiente dal suo processo genitore, probabilmente il processo sshd.

Lo stesso vale se si ssh da un box Linux remoto, è solo che la variabile d'ambiente TERM locale viene passata attraverso ssh alla connessione remota.

Nel caso di un emulatore di terminale, è compito dell'emulatore di terminale impostare la variabile di ambiente TERM. ad esempio getty imposta TERM su "linux" e crea un processo shell (/ bin / bash). oppure gnome-terminal imposta TERM su "xterm" e crea un processo shell.


Ho controllato e gnome-terminal funziona bene, è davvero un bug "emulatore". Sto usando il terminatore. Grazie
João Pinto il

9

Per rispondere letteralmente alla tua domanda, dovrebbe essere impostato l'emulatore di terminale $TERM

Per risolvere il tuo problema richiederebbe almeno sapere quale emulatore di terminale usi. Potrebbe essere un bug o errori di configurazione nel emulatore di terminale o di un problema con i file di avvio vostra shell (probabilmente ~/.bashrc, ma forse ~/.bash_profile, /etc/bashrc, /etc/profile, ...).

¹ Supponendo che non si stia utilizzando un terminale hardware; allora sarebbe l'argomento a getty, chiamato da inittab(versioni precedenti usando SysVinit) o /etc/init/tty*.conf(Ubuntu ≥9.10, usando Upstart).


2
getty non viene chiamato da inittab, Ubuntu non ha più un inittab! Le console sono definite da /etc/init/tty*.conf
LassePoulsen

4
Penso che ottieni un badge per il primo utilizzo che ho visto delle note a piè di pagina in una risposta :-)
poolie,

ora che è 15.04+ upstart non è più il default (di nuovo) e systemd lo gestisce nel servizio getty @, mi sto ancora abituando a quel cambiamento (sembra che una volta che ho imparato tutto su upstart dentro e fuori, ora ho fare lo stesso con systemd ... meh !!)
osirisgothra il

1

Se vuoi cambiare il terminale assicurati di controllare la funzionalità di aggiornamento-alternative.

Per esempio:

update-alternatives --config x-terminal-emulator

Molte delle varie opzioni predefinite del sistema in Ubuntu sono impostate tramite questo metodo. Un altro comune sarebbe un browser www

update-alternatives --config x-www-browser
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.