Ubuntuの$ TERMシェル値は、コンソールログインのデフォルトで「xterm」になります。デフォルトで「xterm-color」になるように変更するにはどうすればよいですか?これがカラープロンプトをオンにする最も簡単な方法のように見えるので、私は尋ねています。
.bashrcまたは他のログインスクリプトでTERM値をリセットできることは承知していますが、TERM値をより適切なデフォルトに強制したいだけです。
[〜#〜] term [〜#〜]変数は、OSが端末に情報を表示する方法を決定するのに役立つterminfoデータベースのエントリの名前を格納します。デフォルトの設定は、ログイン方法に完全に依存します。
通常、「コンソール」とは、物理的にコンピューターの前にいて、テキストベースの仮想端末(VT1-6)の1つにログインしていることを意味します。
[〜#〜] term [〜#〜]デフォルトはlinux(これはディストリビューション間で異なる場合があります; vt1は安全な代替手段です)
これを変更するには、Ubuntu 9.10で、/ etc/init/tty1.confで定義されているgettyコマンドを微調整する必要があります。これにより、/ dev/tty1(VT1)の設定が変更され、/ etc/init/tty2.conf、-でも同じ変更を行う必要があります。 .. tty3.confなど、他の仮想端末も取得します。
# original getty command in /etc/init/tty1.conf
exec /sbin/getty -8 38400 tty1
# new command; sets default TERM on /dev/tty1 to "foobar"
exec /sbin/getty -8 38400 tty1 foobar
X/Gnome/KDE(VT7、8、または9)にログインしている場合、少なくともこのコンテキストでは、コンソールを使用していません。技術的には、これはXにログインし、端末エミュレーターアプリケーションを介して疑似端末を使用します。これにより、シェルとコマンドラインを表示するウィンドウが表示されます。
[〜#〜] term [〜#〜]は、ターミナルエミュレータによって最初に設定されます。シェルの起動ファイルで変更できます(〜/ .bashrc、〜/ .profileなど)。
xterm、rxvt、xterm-color、xterm-256colorはすべて一般的な値です
この値を変更するには、ターミナルエミュレータのドキュメントを参照してください。たとえば、rxvt-unicode(aka rxvt)を使用する場合は、-tn termname
コマンドラインオプションを使用します。
リモートで(SSHまたはリモートXを介して)ログインしている場合は、どのような状況でもコンソールを使用していないことは間違いありません。ここでも、疑似端末を使用しています。
ここにたくさんの良い情報があります:
man 7 term
デフォルトのTERM値は、/ etc/inittab(LinuxおよびSystem-VのようなUNIX)または/ etc/ttys(BSD UNIX)のいずれかによって行ごとに設定されます。これは、ほとんどの場合、ワークステーションおよびマイクロコンピューターコンソールには十分です。
次の問題は、Ubuntu9.10に/etc/inittab
または/etc/ttys
がないことです。
man inittab
Upstart init(8)デーモンはこのファイルを使用せず、代わりに/ etc/init内のファイルから構成を読み取ります。詳細については、init(5)を参照してください。
/ etc/initを調べると、tty * .confファイルが見つかります。それらは、gettyを実行することによって実行されます。それで:
man getty
term TERM環境変数に使用される値。これは、init(8)が設定したものをすべてオーバーライドし、ログインとシェルによって継承されます。
これは良い情報です。これで、デフォルトのTERM値がinit(8)から取得されていることがわかりました。
...結局のところ、initで使用されるデフォルトのTERM値を変更する方法を理解できませんでした。