• ベストアンサー

viを使おうとするとunknown terminal type

 Red Hat Linux 6.2Jを使っています。telnetでSolaris 8にログインし、viを使おうとすると、unknown terminal typeと出て、ラインエディタのようになってしまいます。どう対処すればいいでしょうか。

  • JF1Msf
  • お礼率56% (201/354)

質問者が選んだベストアンサー

  • ベストアンサー
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.2

二つの原因が複合しているのだと思います。 1.TERM変数が設定されていない。  端末(仮想端末)の種類は、環境変数$TERMに設定されますが、  telnet等でリモートログインした場合、これがunknownとなっている  場合があります。ローカル側のTERM変数の値を調べておいて、  ログイン後にsetenv等で設定します。 2.termcapが合わない。  端末(仮想端末)の制御情報は/etc/termcapに記録されていますが、  LINUX側の情報がSolaris側に書かれていないことが考えられます。  LINUX側のファイル内容をSolaris側に付け加えればこの問題は解消  します。 OSの種類により、ファイル名等微妙に違うかもしれませんが、その場合は ご容赦を。

その他の回答 (7)

回答No.8

xjdさん検証ありがとうございました。 手抜きも考えましたが、確認できる実機がないので控えました。 コンパイルとは言ってもいわゆる普通のコンパイルとは違い、入力可能な文字として表現している 記号を実際のコントロールコード(例えば \ → \x1b)に変換している(注)ので 大丈夫かと思いましたが、コマンドで作成する方法であればログインする相手がなんであれトラブ ルことはないので提案するのはやめました。 ということで、どんな環境でも問題の出る可能性の少ない『コマンドで作成する』を推奨します。 (注)何をやってるかよく分かっていません。それだけではなさそうです。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.7

(お詫びと、再検証報告) すみませんでした。Marionetteさんの指摘どおり、私が#5で説明した 方法ではviで日本語が扱えませんでした。 というわけで再検証しました。(JF1Msfさんがktermを使っていると仮定) (方法1)RedHat側のktermエントリをそのままSolarisで使う(手抜き?) RedHat側の /usr/share/terminfo/k/ktermというファイルを Solaris側の /usr/share/lib/terminfo/k/配下にftpしたところ、 RedHat側(kterm)よりSolarisにログインし、viで日本語の入力・表示が正常に できるようになりました。 (方法2)Marionetteさんの手順(ちゃんとコマンドで作成する) RedHat側でktermのテンプレートを作成する。 # infocmp -I kterm > /tmp/terminfo.src terminfo.srcをSolaris側にftpする。 Solaris側でテンプレートをコンパイルする。 # tic /tmp/terminfo.src (#3に書かれている-o,-s というオプションはありませんでした) /usr/share/lib/terminfo/k/ktermが作成されている事を確認する。 方法1と同じく、viで日本語が扱える様になりました。 (追記)viの機能を全て確認したわけではありません。

回答No.6

回答ではありませんが。。。 xjdさんへ ktermとxtermでは微妙に動作が違いませんか? 漢字入力で問題が出るとか? #3も試してもらえると助かります。Solaris環境はないので。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.5

検証報告。 RedHatはktermをお使いでしょうか? 自宅の、Solaris8(Intel版)とRedHat7.2で試してみましたが、 /usr/share/lib/terminfo/k/配下にktermというエントリーがなかったので、 /usr/share/lib/terminfo/x/配下にある、xtermというファイルを、 /usr/share/lib/terminfo/k/kterm、という名前でコピーしてみたところ viエディタが正常に使える様になりました。

回答No.4

#3 です。 Solarisでした。terminfoのディレクトリも確認してくださいね。

回答No.3

最近いやかなり以前からアプリケーションやライブラリはterminfoを使うようになっており termcapは一部(例えばコンソール用の漢字入力フロントエンドのcanuum)でしか使用されていません。 Soraris側でterminfoを用意する必要があります。次のようにすればよいのでは? 1. Linuxでterminfoソースを準備する。   infocmp [infoname] > terminfo.src 2. 出来上がったterminfoソースをSoraris側にコピーし、コンパイルする。   tic -s -o /usr/share/terminfo terminfo.src 以上で、/usr/share/terminfo/*/ に作成されているはずです。 (注)「*」は terminfoの頭一文字   コマンドとオプションは Linuxのものなので Sorarisでは若干異なるかもしれません。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

>unknown terminal type エラーメッセージはこれだけですか? もっと表示されていると思いますが。。。 おそらく、Solaris側のterminfoにあなたが使用している ターミナルソフトのエントリーがない、と言う事です。 情報不足なので、これ以上の回答はできないです。

JF1Msf
質問者

補足

早々のご回答ありがとうございます。 Solaris側にログインすると、 tcsh: using dumb terminal settings. と表示され、shellプロンプトが出てきます。 そして(Solaris側で)viを起動すると、 linux: Unknown terminal tepe I don't know what kind of terminal you are on - all I have is 'linux'. とエラーメッセージが出てきます。 もう一点、重要なことを書き忘れていました。すみません。 この症状が出るのは、Linux(Fujitsuの6年ほど前のノート型, X Window System使用せず)の"コンソール"からtelnetでログインした時のみです。 他のコンピュータからこのLinuxに入って、さらにSolarisに入り込むと、何ら問題はありません。 よろしくお願いします。

関連するQ&A

  • Unknown terminal type

    Pantherのターミナル(tcsh)からSolarisにtelnetでログインし、viを使おうとすると、以下のエラーが出ます。 xterm-color: Unknown terminal type I don't know what kind of terminal you are on - all I have is 'xterm-color'. これは、Solaris側の問題でしょうか? それともMac側の問題でしょうか? 相手がIRIXでも同様なことが起こるのでMac側でなんとか対処できるような気がしているのですが、解決策はありませんでしょうか。

    • ベストアンサー
    • Mac
  • Terminal type dtterm って何でしょう?

    (1) Solarisのコンソールから Linuxマシンに ssh でログインしました. (2) emacs を起動しようとすると,下記のエラーが出ます.emacs を使えません. $ emacs -nw emacs: Terminal type dtterm is not defined. If that is not the actual type of terminal you have, use the Bourne shell command `TERM=... export TERM' (C-shell: `setenv TERM ...') to specify the correct type. It may be necessary to do `unset TERMINFO' (C-shell: `unsetenv TERMINFO') as well. 他のLinuxマシンやWindows(Putty)から ssh ログインしたときは 問題がなく使えるので,Solaris のせいでしょうか? どうすればログイン先のlinuxで emacs を使えるでしょうか?

  • viの使い方について

    viでファイルを跨いでコピーしたいのですが、その時、 ヤンク(?)とか言うviの機能で、名前付きバッファで コピー&ペースとしています。 名前付きバッファは次使うときは上書きされたり、viを 終了するとクリアされると説明されているのですが、 その様に動きません。 コピーした値が追加され残った状態です。また、viを 終了してもクリアされません。 名前付きバッファをクリアしたいのですが、できないのでしょうか。 クリアする方法を教えてください。 環境は、 Linux Red Hat 4.5

  • viの最終編集箇所について

    Red Hat Linux release 7.3 (Valhalla) viを起動した再に、前回viで最後に編集していた箇所に自動的に飛んでしまうんですが、この機能を戻したいんですが、何のファイルをいじればよろしいのでしょうか?

  • viで方向キーが利用できないときって?

     viの学習をする際に、方向キーが使えないときのためにh,j,k,lを使ったカーソルの移動方法も覚えるように言われたのですが、具体的に方向キーが利用できないってケースはあるんでしょうか。  ちなみに当方の環境は、Red Hat Linux 9を使っています。

  • viエディタについて

    基本的な理解をしたいのですが ただいま、http://www.miloweb.net/vi.htmlを一通り読みました. 1. vi エディタ はカーネルの一部なんですか 2. ウィンドウズのDOSみたいな物と理解していいですか  ですが、DOSみたいにプロンプト上で出力されることはなく、  コンパイルで実行しますよね 3. Vine3.1の場合、ログイン直後の画面からどうやって   viエディタに入ればいいですか 4. viエディタはテキストファイルとして保存・呼び出して   利用することは当然できますよね いくつかviエディタについてページを見ましたが、 http://www.itmedia.co.jp/help/tips/linux/l0271.html など 同じ内容ばかり書いてあったような気がしました もっと詳しい内容のページなどもあれば是非教えて下さい

  • 文字化け

    Red Hat Linux9をインストールして、テキストモード で操作を使用としたところ、ある程度は普通に文字が 見えるのですが、例えばエラーメッセージや Viエディタを使用すると、文字化けがおきてしまい 困ってます。よろしくお願いします。

  • プロの技術者がCGIやPHPを書く際の環境とは?

    red hat 7.3 を最近インストールして有名らしい vi エディタを使い始めました。いまいち慣れませんが。ところで、趣味のHPのCGIはwindows上でapacheを入れ更新するたびにExplorerで確認するということをやっているのですが、よく聞くのがsambaを利用してwindows上でlinux内のファイルを直接編集するのと、vi を使ってlinuxでプログラムを書くということを聞きますが、もし、viで書いたとして、explorerで動作確認するときはどうしているのか、いまいちわかりません。プロの開発環境とはどのようなものなのでしょうか?

  • Viでの日本語文字化け

    VM wareやターミナルでWebサーバーにログインし、 いろいろなサーバにあるHTMLファイルをViで編集しています。 マシンによって、またファイルによって、 日本語が文字バケするファイルや英語のみでも文字化けするファイルが あります。その都度 echo $LANGで文字設定を確認したり、ターミナル側の文字設定を変更したり emacsやtelnetなど他のエディタで開いたりしています。 それでも文字バケが治らないファイルはローカル(Windows)に落として作業しています。 ローカルに落として作業する、という回避策はヨシとして、 何が原因でこの文字バケが起こるのか知りたいのです。 環境はSoralis, Debian, Linux,などいろいろです。 ・各マシンのどこをどう設定すると、どのエディタでも日本語の文字バケが起こらない設定ができるのでしょうか。 ・ファイル側でcharsetの記述がない場合、nkfやconvertで文字変換する以外に 対応策はあるでしょうか。 ・日本語の文字バケに一番強いエディタは何でしょうか。 ・同じマシンでviで編集すると、文字がカラフルに表示されるファイルとモノクロ表示のファイルがあります。ファイル側ではなく、vi側の設定でどのファイルもカラフルに表示させるにはどうしたらいいでしょうか。(本を参照して設定してみましたがどうもうまくいきません。やはりファイルによって色調が違います。) 細かいことで、おそらく回避策さえわかればいいのでは、、、と思われるかもしれませんが、日々疑問に思っていることなので もしどなたか解決策やヒントをお持ちでしたらぜひ教えて下さい。 どうぞよろしくお願い致します。

  • Linuxを他のPCのターミナルソフトでインストール作業することは可能か?

    Linuxをサーバやアプライアンスにインストールするとき、ターミナルソフトで、他のPCから操作してインストールは可能かと思いますが、( 玄箱みたいなものとか)どの様にやればよろしいでしょうか? OSは Red Hat Enterprise Linux AS3です。 以上よろしくお願い致します。