Jak ustawiona jest domyślna wartość zmiennej powłoki TERM?

13

Po aktualizacji do Maverick mam zmienną TERM ustawioną na „głupi”, nie dzieje się tak w przypadku tego samego katalogu domowego uruchomionego z Lucid i nie zmieniłem ręcznie niczego związanego z TERM.

Masz pojęcie, gdzie należy ustawić zmienną TERM?

João Pinto
źródło

Odpowiedzi:

13

Aby rozwinąć to, co mówi Gilles, załóżmy, że zdalnie łączysz się z Ubuntu z Windows za pomocą Putty.

W opcjach konfiguracji kitu w obszarze Połączenie-> Dane znajduje się ustawienie o nazwie ciąg terminala. Możesz ustawić TERM tam, a kit instruuje SSH, aby ustawił tę zmienną środowiskową. W pewnym momencie twoja powłoka zostanie uruchomiona, prawdopodobnie / bin / bash i pobiera swoje środowisko z procesu nadrzędnego, prawdopodobnie z procesu sshd.

To samo dotyczy ssh ze zdalnego Linux-a, po prostu lokalna zmienna środowiskowa TERM jest przekazywana przez ssh do zdalnego połączenia.

W przypadku emulatora terminala zadaniem emulatora terminala jest ustawienie zmiennej środowiskowej TERM. np. getty ustawia TERM na „linux” i forksuje proces powłoki (/ bin / bash). lub gnome-terminal ustawia TERM na „xterm” i forksuje proces powłoki.

Jay _silly_evarlast_ Wren
źródło
Sprawdziłem i gnome-terminal działa dobrze, to naprawdę błąd „emulatora”. Używam terminatora. Dzięki
João Pinto
9

Aby dosłownie odpowiedzieć na twoje pytanie, należy ustawić emulator terminala $TERM

Rozwiązanie problemu wymagałoby przynajmniej znajomości używanego emulatora terminala. To może być błąd lub błąd konfiguracji w emulatorze terminala lub problem z plikami Twojego Uruchamianie powłoki (prawdopodobnie ~/.bashrc, ale być może ~/.bash_profile, /etc/bashrc, /etc/profile, ...).

¹ Zakładając, że nie używasz terminala sprzętowego; wtedy byłby to argument gettywywołany z inittab(starsze wersje korzystające z SysVinit) lub /etc/init/tty*.conf(Ubuntu ≥9.10, korzystające z Upstart).

Gilles „SO- przestań być zły”
źródło
2
getty nie jest wywoływane z inittab, Ubuntu nie ma już inittab! Konsole są zdefiniowane przez /etc/init/tty*.conf
LassePoulsen
4
Myślę, że dostajesz odznakę za pierwsze użycie przypisów w odpowiedzi :-)
poolie
teraz, gdy jest już 15.04+, upstart już nie jest już domyślny (ponownie) i systemd obsługuje go w usłudze getty @, wciąż przyzwyczajam się do tej zmiany (to się dzieje, kiedy dowiedziałem się wszystkiego o rozpoczęciu i rozpoczęciu pracy, teraz mam zrobić to samo z systemd ... meh !!)
osirisgothra
1

Jeśli chcesz zmienić terminal, sprawdź funkcjonalność alternatywy aktualizacji.

Na przykład:

update-alternatives --config x-terminal-emulator

Wiele różnych domyślnych opcji systemu w Ubuntu jest ustawianych za pomocą tej metody. Innym popularnym jest przeglądarka internetowa

update-alternatives --config x-www-browser
Stóg
źródło