it-swarm-eu.dev

Wie wird der Standardwert für die TERM-Shell-Variable festgelegt?

Nach dem Upgrade auf Maverick habe ich meine TERM-Variable auf 'dumm' gesetzt. Dies passiert nicht mit demselben Ausgangsverzeichnis, das von Lucid ausgeführt wird, und ich habe nichts manuell geändert, was mit TERM zu tun hat.

Irgendeine Idee, woher die TERM-Variable gesetzt werden soll?

12
João Pinto

Angenommen, Sie stellen mit PuTTY eine Remoteverbindung von Windows zu Ihrem Ubuntu her, um die Aussagen von Gilles zu erläutern.

In den PuTTY-Konfigurationsoptionen gibt es unter Connection-> Data eine Einstellung namens terminal-type string. Sie können dort Ihr TERM festlegen und PuTTY weist SSH an, diese Umgebungsvariable festzulegen. Irgendwann danach wird Ihre Shell ausgeführt, wahrscheinlich/bin/bash, und sie bezieht ihre Umgebung von ihrem übergeordneten Prozess, wahrscheinlich dem sshd-Prozess.

Das Gleiche gilt, wenn Sie von einer entfernten Linux-Box aus ssh verwenden. Es ist nur so, dass die lokale Umgebungsvariable TERM über ssh an die entfernte Verbindung übergeben wird.

Bei einem Terminalemulator ist es Aufgabe des Terminalemulators, die Umgebungsvariable TERM festzulegen. z.B. getty setzt TERM auf "linux" und gibt einen Shell-Prozess aus (/ bin/bash). oder gnome-terminal setzt TERM auf "xterm" und gibt einen Shell-Prozess aus.

Um Ihre Frage wörtlich zu beantworten, muss der Terminal-Emulator $TERM. ¹ setzen

Um Ihr Problem zu lösen, müssen Sie mindestens wissen, welchen Terminalemulator Sie verwenden. Dies kann ein Fehler oder eine Fehlkonfiguration im Terminalemulator sein oder ein Problem mit Ihren Shell-Startdateien (möglicherweise ~/.bashrc, möglicherweise ~/.bash_profile, /etc/bashrc, /etc/profile, ... ).

¹ Angenommen, Sie verwenden kein Hardware-Terminal. dann wäre es das Argument für getty, das von inittab (ältere Releases mit SysVinit) oder /etc/init/tty*.conf (Ubuntu ≥9.10, mit Upstart) aufgerufen wird.

8
Gilles

Wenn Sie das Terminal ändern möchten, überprüfen Sie die Funktionalität der Aktualisierungsalternativen.

Zum Beispiel:

update-alternatives --config x-terminal-emulator

Viele der verschiedenen Systemstandardoptionen in Ubuntu werden über diese Methode festgelegt. Ein weiterer häufiger Fall wäre ein WWW-Browser

update-alternatives --config x-www-browser
1
Rick