レンタルサーバー・自宅サーバー設定・構築のヒント
レンタルサーバー・自宅サーバー設定・構築のヒント - レンタルサーバー・自宅サーバーの設定・構築情報を公開しています。

TeraTerm ( ssh接続 ) でカラー表示ができなかったので対応してみた

2012年2月7日 2014年1月17日
teraterm troubleshooting

FreeBSDでは、デフォルトのコンソールからは、文字色がカラーで表示させることができます。 そのため、lsコマンドのオプション-Gを指定するとディレクトリなどは、文字色がカラーで出力されます。

文字色ありのコンソール

しかし、Tera Term を使ってSSHで接続していたら、この文字色の変化がありませんでした。( そもそもTera Termの古いバージョンを使っていたのも一つの原因だったんですけどね)
そこで、どんな接続でも、ちゃんとカラー表示させるための設定を調べてみました。

基本的な考え方は、BSD系もLinux系も大きくは違わないので、ここ内容は、Linux系(CentOS,Scientific Linux Ubutu,Debianなど) も参考になると思います。

カラー表示されない理由

FreeBSDの場合、lsコマンドに-Gオプションを付加されていた場合、端末情報 ( /etc/termcap にテキストによる定義情報が保存してある ) に従って色情報を出力するか否かを判断しています。
つまり、その端末情報にカラー対応端末であることが定義されていない場合には、色情報を付加されないのです。

ある意味、これは、非常に正しいですよね。

また、Linuxのlsコマンドは、FreeBSDを含むBSD系のlsコマンドとは、違います。Linuxのそれは、正確にはGNU lsと呼ばれるもので、–colorオプションを指定すると必ず色情報を出力します。
つまり、接続されている端末が何であれ、色情報とともに出力情報をプリントアウトします。

このため、同じTera Termを使っても、Linuxでは画面にカラー表示されるが、FreeBSDではモノクロ表示される・・という変な現象が発生していたわけです。

結局、理由は簡単で
Tera Term の設定ファイル ( TERATERM.INI : インストール先ディレクトリにある ) の端末タイプを以下のように設定していたためでした。

TermType=vt100

この設定では、vt100 をFreeBSDでもLinuxでもカラー非対応端末と認識します。

この問題を回避するためには、カラー対応の端末タイプにすればOKなわけです。
以降では、カラー対応の端末タイプ ( 例として vt100-color ) を用いて、対処の仕方を簡単に解説してみます。

カラー対応の端末タイプ名 は、/etc/termcap というファイルを参照するとわかります。
termcapは、端末タイプを定義するファイルになります。

たとえば、vt100-colorは、以下のように定義されています。
vt100-color|vt100-co|vt100 emulator with ANSI colors:\
        :pa#64:Co#8:AF=\E[3%dm:AB=\E[4%dm:op=\E[39;49m\E[m:tc=vt100:
ここで大事なのは、以下の2点です。
pa#64:これは、64色の色の組み合わせが使える端末である・・という意味です。
Co#8:これは、8色の色が使える端末である・・という意味です。
一般的に、Coで定義されている色数(ここでは8)の2乗が、paの値(ここでは64)となります。

つまり、vt100-color という端末タイプは、最大で64色の組み合わせでカラー表示できるということになります。
その他、端末タイプの内容を詳しく知りたい方は、
$ man terminfo
を参照してください。

カラー表示されない対処

結局は、先に記述したとおり端末種別の設定誤りなのですが、対処として、大きく2つあると思います。 SSHクライアントソフト( ここでは、Tera Term ) の設定で、端末種別を設定するやり方と
ログインしたところでシェルの設定時に、自動的に端末種別を設定してしまうやり方があります。

ここでは、簡単にその2つのやり方を解説しておきます。

  • SSHクライアントソフト( ここでは、Tera Term ) で対応する方法

    ここでは、Tera Term の設定例を解説します。

    Tera Term では、接続先へ送信する端末種別情報を Tera Term の設定ファイル ( TERATERM.INI : インストール先ディレクトリにある )に持っています。 ここでは、その情報を編集してみます。
    [Tera Termインストール先ディレクトリ]\TERATERM.INI 内のTermType情報を以下のように編集すればOKです。
    ( このファイルは、テキストファイルなので、メモ帳などで編集できます。)

    TermType=vt100-color

    設定を終えたら、Tera Term を再起動してみましょう。

    ls -G コマンドで、ディレクトリ情報がカラー表示されればOKです。

    文字色ありのコンソール

  • ログインシェルで対応する方法

    いろいろなSSHソフトウェアを使ってログインする可能性がある場合は、ログインユーザの .bashrc , .cshrc に設定することでも対応することができます。
    先のvt100-colorを設定する例は、以下のとおりです。

    [ .bashrc の場合 ]

    $ vi ~/.bashrc
    ...
    export TERM=vt100-color

    [ .cshrc の場合 ]

    $ vi ~/.cshrc
    ...
    setenv  TERM  vt100-color

    ls -G コマンドで、ディレクトリ情報がカラー表示されればOKです。

    文字色ありのコンソール

とりあえず、カラー表示できるようになりましたね。

csh , tcsh をカラー表示されない場合は、setコマンドでカラー表示を設定してみてください。
$ set color
これで表示できると思います。
ここでは、端末タイプを vt100-color としました。
これは、あくまで誤った端末タイプvt100を指定していたためのわかり易い対処の例であって、本来の対処は、正しい端末タイプを指定すべきです。

UTF-8対応にするなら、端末タイプは、TeraTermのデフォルト値である xterm を指定しておくことが無難でしょう。
EUC対応なら、端末タイプは、先のvt100-color でも動作すると思います。もちろんxterm でも動作するでしょう。

端末タイプが、今ひとつ理解できていない方やちょっと不安な方は、xterm をおすすめしておきます。

カラー表示の色を変更してみる

FreeBSD系 ls で色を変更してみる

先のTERMの変更だけでカラー表示までできるようになりました。しかし、先の画面のように背景色が黒の場合は、せっかくのカラー表示も見づらくなっていますね。 それを改善するために色を変更してみます。

色を変更する場合、各シェルの設定ファイルを編集することで変更します。

[ .bashrc の場合 ]

$ vi ~/.bashrc
...
export LSCOLORS='GxFxDxDxhxDgDxabagacad'

[ .cshrc の場合 ]

$ vi ~/.cshrc
...
setenv LSCOLORS 'GxFxDxDxhxDgDxabagacad'

編集を終えたら、source コマンドで再読み込みし、ls -Gコマンドで確認してみましょう。

$ source ~/.bashrc
$ ls -G /
文字色ありのコンソール

ずいぶん見やすくなりましたね。

背景色がの場合は、LSCOLORS : ‘exfxcxdxbxegedabagacad’
背景色がの場合は、LSCOLORS : ‘GxFxDxDxhxDgDxabagacad’
と定義する色を変更すると見やすくなります。


LSCOLORS は、22文字の文字情報で設定できます。
この文字情報は、左から順番に以下の色情報になります。
  1. ディレクトリ前景色
  2. ディレクトリ背景色
  3. シンボリックリンク前景色
  4. シンボリックリンク背景色
  5. ソケットファイル前景色
  6. ソケットファイル背景色
  7. FIFOファイル前景色
  8. FIFOファイル背景色
  9. 実行ファイル前景色
  10. 実行ファイル背景色
  11. ブロックスペシャルファイル前景色
  12. ブロックスペシャルファイル背景色
  13. キャラクタスペシャルファイル前景色
  14. キャラクタスペシャルファイル背景色
  15. setuidつき実行ファイル前景色
  16. setuidつき実行ファイル背景色
  17. setgidつき実行ファイル前景色
  18. setgidつき実行ファイル背景色
  19. スティッキビットありother書き込み権限つきディレクトリ前景色
  20. スティッキビットありother書き込み権限つきディレクトリ背景色
  21. スティッキビットなしother書き込み権限つきディレクトリ前景色
  22. スティッキビットなしother書き込み権限つきディレクトリ背景色
また、文字情報は、以下の各色をあらわしています。
  • a: 黒
  • b: 赤
  • c: 緑
  • d: 茶
  • e: 青
  • f: マゼンタ
  • g: シアン
  • h: 白
  • x: なし(デフォルト色)
※大文字 : ボールド(太字)

[ 上記で設定したLSCOLORSの意味 ] 

            1234567890123456789012
            +---------+---------+-
LSCOLORS : 'GxFxDxDxhxDgDxabagacad'
            ||||||||||||||||||||||
            |||||||||||||||||||||+-- 茶
            ||||||||||||||||||||+-- 黒 スティッキビットなしother書き込み権限つきディレクトリ
            |||||||||||||||||||+-- 赤
            ||||||||||||||||||+-- 黒 スティッキビットありother書き込み権限つきディレクトリ
            |||||||||||||||||+-- シアン
            ||||||||||||||||+-- 黒 setgidつき実行ファイル
            |||||||||||||||+-- 赤
            ||||||||||||||+-- 黒 setuidつき実行ファイル
            |||||||||||||+-- なし(デフォルト色)
            ||||||||||||+-- 赤(太字) キャラクタスペシャルファイル (背景色なし)
            |||||||||||+-- シアン
            ||||||||||+-- 赤(太字) ブロックスペシャルファイル
            |||||||||+-- なし(デフォルト色)
            ||||||||+-- 白 実行ファイル (背景色なし)
            |||||||+-- なし(デフォルト色)
            ||||||+-- 赤(太字) FIFOファイル (背景色なし)
            |||||+-- なし(デフォルト色)
            ||||+-- 赤(太字) ソケットファイル (背景色なし)
            |||+-- なし(デフォルト色)
            ||+-- マゼンタ(太字) シンボリックリンク (背景色なし)
            |+-- なし(デフォルト色)
            +-- シアン(太字) ディレクトリ (背景色なし)

           ※背景が黒は、なし(デフォルト色)を意味します。
 

Linux系 ls で色を変更してみる

上記と同様に、いわゆる GNU ls で色を変更してみます。
Linux ( CentOS ,Scientific Linux ,Ubutu など )が主だったところなので、ここでは、Bシェル ( bashrc ) についての例のみ解説しておきます。

FreeBSD系のlsの色変更に用いた環境変数が、LSCOLORSであったのに対して、
Linux系 ls の色変更に用いた環境変数は、LS_COLORSであることに注意してください。

[ .bashrc の場合 ]

$ vi ~/.bashrc
...
export LS_COLORS='di=1;36:fi=0:ln=1;95:so=1;91:pi=1;91:ex=93:bd=1;91;46:cd=1;91:or=1;37:mi=1;37:*.rpm=1;92'

編集を終えたら、source コマンドで再読み込みし、ls –colorコマンドで確認してみましょう。

$ source ~/.bashrc
$ ls -G /
文字色ありのコンソール

ずいぶん見やすくなりましたね。

背景色がの場合は、LS_COLORS : ‘di=0;34:fi=0:ln=0;95:so=0;42:pi=0;45:ex=31:bd=0;34;46:cd=0;34:or=1;37:mi=1;37:*.rpm=1;92’
背景色がの場合は、LS_COLORS : ‘di=1;36:fi=0:ln=1;95:so=1;91:pi=1;91:ex=93:bd=1;91;46:cd=1;91:or=1;37:mi=1;37:*.rpm=1;92’
と定義する色を変更すると見やすくなります。


LS_COLORS は、2文字の色情報を持ちます。FreeBSDと異なり、順番は関係ありません。以下に示す2文字のキーにより判断されます。
また、前景色、背景色の区別がありません。消し線があるものは、FreeBSD ls にあって GNU ls に無いものです。
  • di : ディレクトリ色
  • ln : シンボリックリンク色
  • so : ソケットファイル色
  • pi : FIFOファイル色
  • ex : 実行ファイル色
  • bd : ブロックスペシャルファイル色
  • cd : キャラクタスペシャルファイル色
  • setuidつき実行ファイル色
  • setgidつき実行ファイル色
  • スティッキビットありother書き込み権限つきディレクトリ色
  • スティッキビットなしother書き込み権限つきディレクトリ色

以下は、FreeBSD ls になくて GNU ls にある色種別情報です。
  • fi : 通常のファイル色
  • or : 存在しないファイルへのシンボリックリンクの色
  • mi : シンボリックリンクされた存在しないファイルの色
また、文字情報は、以下の各色をあらわしています。
  • 0 : なし(デフォルト)
  • 1 : ボールド(太字)
  • 4 : 下線
  • 5 : 点滅
  • 7 : 反転
  • 31 : 赤
  • 32 : 緑
  • 33 : オレンジ
  • 34 : 青
  • 35 : 紫
  • 36 : シアン
  • 37 : 灰色
  • 40 : 黒(背景色)
  • 41 : 赤(背景色)
  • 42 : 緑(背景色)
  • 43 : オレンジ(背景色)
  • 44 : 青(背景色)
  • 45 : 紫(背景色)
  • 46 : シアン(背景色)
  • 47 : 灰色(背景色)
  • 90 : 暗い灰色
  • 91 : 明るい赤
  • 92 : 明るい緑
  • 93 : 黄
  • 94 : 明るい青
  • 95 : 明るい紫
  • 96 : ターコイズ(明るいシアン)
  • 100 : 暗い灰色(背景色)
  • 101 : 明るい赤(背景色)
  • 102 : 明るい緑(背景色)
  • 103 : 黄(背景色)
  • 104 : 明るい青(背景色)
  • 105 : 明るい紫(背景色)
  • 106 : ターコイズ(明るいシアン)(背景色)

[ 上記で設定したLS_COLORSの意味 ] 

LS_COLORS : 'di=1;36:fi=0:ln=1;95:so=1;91:pi=1;91:ex=93:bd=1;91;46:cd=1;91:or=1;37:mi=1;37:*.rpm=1;92'
            ------- ---- ------- ------- ------- ----- ---------- ------- ------- ------- ----------
            |       |    |       |       |       |     |          |       |       |       |
            |+------+    |       |       |       |     |          |       |       |       |
            ||+----------+       |       |       |     |          |       |       |       |
            |||+-----------------+       |       |     |          |       |       |       |
            ||||+------------------------+       |     |          |       |       |       |
            |||||+-------------------------------+     |          |       |       |       |
            ||||||+------------------------------------+          |       |       |       |
            |||||||+----------------------------------------------+       |       |       |
            ||||||||+-----------------------------------------------------+       |       |
            |||||||||+------------------------------------------------------------+       |
            ||||||||||+-------------------------------------------------------------------+
            ||||||||||+-- 明るい緑(太字) 拡張子がrpmのファイルの色 (背景色なし)
            |||||||||+-- 灰色(太字) シンボリックリンクされた存在しないファイルの色 (背景色なし)
            ||||||||+-- 灰色(太字) 存在しないファイルへのシンボリックリンクの色 (背景色なし)
            |||||||+-- 明るい赤(太字) キャラクタスペシャルファイル (背景色なし)
            ||||||+-- 明るい赤(太字) ブロックスペシャルファイル(背景色:シアン)
            |||||+-- 黄 実行ファイル (背景色なし)
            ||||+-- 明るい赤(太字) FIFOファイル (背景色なし)
            |||+-- 明るい赤(太字) ソケットファイル (背景色なし)
            ||+-- マゼンタ(太字) シンボリックリンク (背景色なし)
            |+-- デフォルト 通常のファイル (背景色なし)
            +-- シアン(太字) ディレクトリ (背景色なし)

           ※背景が黒は、なし(デフォルト色)を意味します。
理屈はわかりますが、ちょっと面倒ですね。とりあえず、色を指定するだけで、イメージを作成するページを作成したので、
GNU ls の色設定例を作成してくれるページを作成してみた を参照してください。

おまけ viでカラー表示してみる

さて、ついでのviのカラー色表示も実施してみましょう。
viは、.vimrc を編集することで色表示を切り替えることができます。

[ 背景色が黒の場合 ]

$ vi ~/.vimrc
...
syntax on
set background=dark

[ 背景色が白の場合 ]

$ vi ~/.vimrc
...
syntax on
set background=light
syntax [on/off] : カラー表示の有無
set background=[dark/light] : 背景色の設定
文字色ありのvi

上記は、set background=darkを設定した時の例です。


viは、上記のような設定以外に ( カラースキーマと呼ばれている ) テーマを指定することができます。
指定できるテーマは、
Linux : /usr/share/vim/vim[バージョン]/colors/
FreeBSD : /usr/local/share/vim/vim[バージョン]/colors/
配下のファイル名になります。

$ ls /usr/local/share/vim/vim73/colors/
README.txt      delek.vim       koehler.vim     peachpuff.vim   torte.vim
blue.vim        desert.vim      morning.vim     ron.vim         zellner.vim
darkblue.vim    elflord.vim     murphy.vim      shine.vim
default.vim     evening.vim     pablo.vim       slate.vim
$ vi ~/.vimrc
...
colorscheme=blue
colorscheme=[テーマ名] : テーマ設定
※テーマ名は、先のファイル名の拡張子(.vim)を除いた名前になります。

[ テーマ適応前 ]
文字色ありのvi
[ テーマ適応後 ]
文字色ありのvi
こんな感じで劇的に変わります。
こんな感じでカラー表示できるようになりました。

そもそものカラー表示できなかった原因は、Tera Term をいろいろ別の通信テストでも使った際に、端末タイプの設定までいじっていた・・・ということなんですけど。

ただ、カラー表示は、LinuxのlsコマンドをFreeBSDでも使うことはできます。それによって、どんな端末タイプであっても表示することができることは、先にも記載しました。 でも、結局、Gnu ls を使ったところで、基本的なことを知らないと、他のviなどのカラー表示は使えないわけで、 さらには、Gnu lsは、BSD機能のファイルフラグを出力( オプション : -o )できないので、下手のGnu lsを使い出すと問題を複雑化しかねないと思います。
( もちろん、ちゃんと理解して使う分には何も問題ないと思います。個人的に、すぐ忘れてしまうのでaliasなどで入れ替えてると、戸惑うことがあるんですよね。)
もし、FreeBSDでからー表示できない・・・とお悩みの方が参考になれば幸いです。

さくらのVPSでは、FreeBSDをカスタムOSとして提供しています。(コントロールパネルからインストールして利用することができます)
さくらインターネットのVPS ( さくらのVPS )を試してみたい方は、さくらのVPS ページさくらのVPS ページからどうぞ。無料お試し期間は14日です。
※お試し期間中は、OP25B設定、データ転送帯域に制約がありますから注意してください。

ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

シェル(主にTeraTerm)でメターキー(Delete キー, Home キー , End キー, Insert キー)の動きが変なので対応してみた

今回は、シェルのキー操作についてです。 シェルは、BシェルであれCシェルであれ、キー操作で同じような動作をして欲しいものです。 もちろんアル ...

FreeBSDで日本語環境(UTF-8対応)を整える

FreeBSDでSSHを使えるようにする でSSHでログインまでできるようになりました。 さて、現状では、FreeBSDは、すべてが英語で ...

TeraTermでテンキー(数値キーパッド)(/,*,-,+)の動きが変なので対応してみた

今回は、以前の記事で、シェル(主にTeraTerm)でメターキー(Delete キー, Home キー , End キー, Insert キー) ...

bash (Bシェル) でプロンプトを変更する

今回は、単純にbashでプロンプトの表示を変更する方法を簡単にまとめておきます。 いろんなサイトに記載があるので、ここでまとめても・・・と ...

TeraTermでText User Interface(TUI)の線が正しく表示されなかったので対応してみた

今回は、TeraTermでText User Interface(TUI)の線(罫線?)表示についてです。 単純にTeraTermのZIP ...



コメントを投稿 :

お名前 *

メールアドレス *
( メールアドレスが公開されることはありません。)

サイトアドレス

コメント *

* 印の項目は、入力が必要な項目です。




最近投稿の記事

[ 画像提供元 : Amazon ] 先日、1TBのディスクの入れ替え時にバックアップをとろうとディスクコピーを行いました。 その際 ...

Windows で Linux ファイルシステム Ext4 のディスクをマウントするには? Ext3Fsd が、おそらく、最も簡単なツール ...

今回は、Windows で Compass を使ってみました。 Compass とは、 Sass(サス、Syntactica ...

今回は、Anti Adblock を使ってみました。 Anti Adblock とは、 そもそも Adblock という ウェブ ...

デスクトップ環境でない サーバーで、Webページのキャプチャー画像をコマンドで撮る には、wkhtmltoimage, CutyCapt ...


さくらのVPS 全プラン リニューアルです。(石狩(北海道)も選択可)


root権限ありで ¥685 / 月 ~ と非常にリーズナブルな CPU 1(core)の 512 プランから、 最高 CPU 10(core), メモリ 32(GB), SSD容量 800(GB) までとプランが充実。
ディスクは、SSDとHDDの選択が可能になった他、データセンターは人気の東京、石狩(北海道)となりました。

また、どのプランでも好きなOSが選べます
( CentOS, Fedora, Scientific Linux, FreeBSD, Ubutu, Debian )

管理人もおすすめのVPSです。
試用期間がありますから、一度、お試しを!!

詳しくは、http://vps.sakura.ad.jp/さくらのVPSのサイトへ へどうぞ!!

カテゴリ


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。


Serverman@VPS 完全1ヶ月無料 キャンペーン実施中です。
最近、スワップにも対応した Serverman@VPS は、かなりリーズナブルかもです。

  • メモリ1GB~2GBのEntryプラン :月額:490円
  • メモリ2MB~4GBのStandardプラン :月額:980円
  • メモリ4GB~8GBのProプラン :月額:1,980円

新規申し込みで1ヶ月間完全無料となるキャンペーンを実施中です。
Serverman@VPSの特徴は、安さとIPv6対応です。また、初期設定費0円もポイントです。

IPv6でちょっと遊んでみたい方には、おすすめかもしれませんね。最低利用期間もありませんから、気に入らないときは即解約もできます。

Serverman@VPSの詳細については、 http://dream.jp/vps/ Serverman@VPSのサイトへへどうぞ。



KVM採用 ConoHa VPSは、時間単位で借りれる便利なVPSです。


ConoHa VPS は、初期設定費0円最低利用期間無し時間単位で清算可能、 さらに、Web APIを使って自動化を図ることもできる便利なVPSです。

海外サーバー設置も可能で、ローカル接続にも対応と、かなり、機能豊富なサーバーです。

新規ユーザ登録で、クーポンもらえますから、まずは、お試しですね。

ConoHa VPSの詳細については、
http://www.conoha.jp/ へどうぞ。

KVM採用 お名前.com VPS(KVM) 2G プラン 初期設定費無料 キャンペーン 実施です。


メモリ2GBプラン CPU:3core、Disk:200GB
月額:1,153円から (初期設定:1,680円0円)

さくらのVPSがリニューアルされてもなんのその。
1GBメモリ / 2Core を ¥834 – の格安価格で提供中です!
間違いなくスペックからすると割安感ありです。
年間割引時の途中解約で返金がないのは、 ちょっと残念ですが、それでもこの割安感は魅力です。

まずは、お試しですね。

お名前.com VPS(KVM)の詳細については、
http://www.onamae-server.com/vps/ へどうぞ。(お試し期間が15日あります。)



  • ソーシャルブックマーク

  • はてなブックマークへ追加するはてな登録数
ページトップへ
Time : 0.7392 [s]