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

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

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

今回は、シェルのキー操作についてです。
シェルは、BシェルであれCシェルであれ、キー操作で同じような動作をして欲しいものです。
もちろんアルファベットの入力では同じ動作でしょう。問題になるのは、メタキー (Delete キー, Home キー , End キー, Insert キー) と呼ばれるものの動作が異なる場合が多いです。

今回は、そのメタキーの動作がおかしい(期待している動作と異なる)場合の対処について簡単に解説してみます。

ここの内容は、BSD系OS( FreeBSD など ) , Linux系OS( CentOS, Ubuntu など ) を含めすべてのOSでbash,csh,viを用いている場合は、 同じように使える内容になっています。( あたりまえですが、bash,csh,viの設定方法ですから。 )

各キーの操作(押下)で期待する動作

メタキー (Delete キー, Home キー , End キー, Insert キー) の操作(押下)として期待する動作は、以下のとおりです。
( ここでは、Delete キーとの動作の違いを区別しておきたいので、BackSpace キー の動作についても記載しています。)

  • Delete キー は、カーソル上に一文字を消す

    [ シェルのコマンドライン ]

    シェルのコマンドライン

    [ Delete キーを押すとカーソル上に一文字が消える ]

    シェルのコマンドライン Delete キーの動作

  • BackSpace キー は、カーソルの前の一文字を消す

    [ シェルのコマンドライン ]

    シェルのコマンドライン

    [ BackSpace キーを押すとカーソルの前の一文字が消える ]

    シェルのコマンドライン BackSpace キーの動作

  • Home キー は、カーソルを先頭へ移動する

    [ シェルのコマンドライン ]

    シェルのコマンドライン

    [ Home キーを押すとカーソルが先頭へ移動 ]

    シェルのコマンドライン Home キーの動作

  • End キー は、カーソルを最後尾へ移動する

    [ シェルのコマンドライン ]

    シェルのコマンドライン

    [ End キーを押すとカーソルが最後尾へ移動 ]

    シェルのコマンドライン End キーの動作

  • Insert キー は、挿入モード・上書きモードを切り替える
    • Insert キーを押すと上書きモードへ切り替わる

      [ シェルのコマンドライン ]

      シェルのコマンドライン

      [ “z” を入力するとカーソル上の文字が上書き ]

      シェルのコマンドライン Insert キーの動作

    • 再度、Insert キーを押すと挿入きモードへ切り替わる

      [ シェルのコマンドライン ]

      シェルのコマンドライン

      [ “z” を入力するとカーソル上の文字が挿入 ]

      シェルのコマンドライン Insert キーの動作

メタキーの動作がおかしい(期待している動作と異なる)場合の対処

Delete キー押すとBackSpace と同じ動作をしてしまう

[ 現象 ]

[ シェルのコマンドライン ]

シェルのコマンドライン

[ Delete キー , BackSpace キー いずれを押してもカーソルの前の一文字が消える ]

シェルのコマンドライン BackSpace キーの動作

[ 対処 ]

これは、ほとんどの場合、SSH,Telnetなどによるリモート接続時の問題だと思います。

その場合、まず確認すべきは、
SSH,Telnetのクライアントソフトが、メターキーのDelete (Del) キーを押した時に DEL 文字を送出していないかでしょう。

以下は、SSHクライアントソフト Tera Termの設定例です。

  1. メニュー [ 設定 ] → [ キーボード ] でキーボードの設定画面を開く。
    シェルのコマンドライン TeraTerm設定

    [ DELを送信するキー ] という項目がありますので、このチェックを全て解除し、[ OK ]ボタンをクリックします。

  2. メニュー [ 設定 ] → [ 設定の保存 ] で TERATERM.INI に保存する。

    必ず、保存しておかないと次回TeraTermを使用する際、元の戻ってしまいます。

これで、DEL 文字の送信はなくなりました。

これでも動作が直らない場合は、端末タイプを疑った方が良いかもしれません。

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

TermType=xterm
		

これで、Tera Termを再起動すればOKです。


メタキー(Delete キー, Home キー , End キー, Insert キー) を押すと波ダッシュ(~)が表示されてしまう

[ 現象 ]

[ シェルのコマンドライン ]

シェルのコマンドライン

[ メタキー(Delete キー, Home キー , End キー, Insert キー) のいずれかを押すと、波ダッシュ(~)が表示 ]

シェルのコマンドライン メタキーの動作

[ メタキー(Delete キー, Home キー , End キー, Insert キー) のいずれかを押すと、変な文字列がが表示 ]

シェルのコマンドライン メタキーの動作

[ 対処 ]


SSH,Telnetのクライアントソフトの確認

これは、SSH,Telnetなどによるリモート接続時でも、コンソールからのログイン時でも同じ動作なら、 メタキーのシェルでのキーバインドの設定 からはじめてみましょう。

SSH,Telnetなどによるリモート接続時の場合に問題が発生する場合は、まず、SSH,Telnetのクライアントソフトを確認してみましょう。
以下はTera Termの設定例です。

  • 送受信している漢字コードに誤りがないか確認する

    メニュー [ 漢字コード ]でキーボードの設定画面を開きます。

    シェルのコマンドライン TeraTerm設定

    漢字コードに誤りがないか確認しましょう。
    UTF-8 なのに Shift_JIS , EUC-JP などになっていませんか?
    逆にEUC-JPなのに、UTF-8になていませんか?

    誤りがあったら、正しい漢字コードへ変更し再度確認してみてください。

    サーバー側の漢字コードの設定を確認したい場合は、以下のコマンドで確認することができます。
    $ locale
    LANG=ja_JP.UTF-8
    LC_CTYPE="ja_JP.UTF-8"
    LC_NUMERIC="ja_JP.UTF-8"
    LC_TIME="ja_JP.UTF-8"
    LC_COLLATE="ja_JP.UTF-8"
    LC_MONETARY="ja_JP.UTF-8"
    LC_MESSAGES="ja_JP.UTF-8"
    LC_PAPER="ja_JP.UTF-8"
    LC_NAME="ja_JP.UTF-8"
    LC_ADDRESS="ja_JP.UTF-8"
    LC_TELEPHONE="ja_JP.UTF-8"
    LC_MEASUREMENT="ja_JP.UTF-8"
    LC_IDENTIFICATION="ja_JP.UTF-8"
    LC_ALL=
    			
    上記の場合、UTF-8になります。
  • 端末タイプに誤りがないか確認する

    接続先へ送信する端末種別情報を Tera Term の設定ファイル ( TERATERM.INI : インストール先ディレクトリにある )に持っています。
    [Tera Termインストール先ディレクトリ]\TERATERM.INI 内のTermType情報が、変な端末種別になっていないか確認します。

    もしわからない場合は、xterm を設定しておきましょう。
    ( このファイルは、テキストファイルなので、メモ帳などで編集できます。)

    			TermType=xterm
    			

    これで、Tera Termを再起動します。

    サーバーへ接続し、以下のコマンドで端末タイプを確認してみてください。

    $ echo $TERM
    xterm
    			

    ここで、先にTeara Term側で設定(編集)した端末タイプと同じであることを確認します。

    もし、先にTeara Term側で設定(編集)した端末タイプと異なる場合は、各シェルの設定に誤りがある可能性があります。


メタキーのシェルでのキーバインドの設定

最後は、メタキーのシェルでのキーバインドの設定です。

各シェル(Bシェル , Cシェルなど)でメタキーに対して動作を設定するキーバインドの機能があります。
このキーバインドの設定に誤りがあるか、メタキーの設定が全くないかのいずれかでしょう。

以下は、Bシェル , Cシェルについての設定例です。

Bシェル ( .inputrc ) の設定例

"\e[1~": beginning-of-line
"\e[2~": overwrite-mode
"\e[3~": delete-char
"\e[4~": end-of-line
		

Cシェル ( .cshrc ) の設定例

if ($term	== "xterm" || $term == "vt100" \
	|| $term ==	"vt102"	|| $term !~ "con*") then
	  # bind keypad	keys for console, vt100, vt102,	xterm
	  bindkey "\e[1~" beginning-of-line  # Home
	  bindkey "\e[2~" overwrite-mode     # Ins
	  bindkey "\e[3~" delete-char	     # Delete
	  bindkey "\e[4~" end-of-line	     # End
endif
		

いずれも各ファイルに上記の内容を追記して、再ログインして確認してみましょう。

SSHクライアントから、メタキーがどんなコードで送信されているか確認するには、以下のコマンドで確認することができます。

Bシェル の場合
$ read
^[[2~^[[3~^[[1~^[[4~
readコマンド発行し、Insert キー, Delete キー, Home キー ,End キー の順番で押下し、最後にEnterで終了です。

Cシェル の場合
$ echo $<
^[[2~^[[3~^[[1~^[[4~
echo $<コマンド発行し、Insert キー, Delete キー, Home キー ,End キー の順番で押下し、最後にEnterで終了です。

^[ : エスケープ文字になります。
上記の各シェルの設定文字列の \e に相当します。

(おまけ) viでBackSpace を押すと変な動作をして文字を消せない

[ 現象 ]

vi で編集中のBackSpace を押しても文字を消せないという現象です。


[ 対処 ]

各ユーザの.vimrcに以下の1行を追加することで解消できます。

$ vi ~/.vimrc
...
set backspace=indent,eol,start

保存して、再度、viを起動して確認してみましょう。

indent : オートインデントの空白文字を削除できる。
eol : 改行も削除できる。改行削除時は、前行の最後尾へ連結される。
start : Ctrl+uやCtrl+wで入力した文字以外(最初から行にある文字)も削除できる。

メターキー(Delete キー, Home キー , End キー, Insert キー)の動作が変だと、ちょっと、いらいらしちゃいませんか?
個人的には、かなりいらいらしちゃいます。

サーバーの設定は、CUIでもっぱらやりますから、まずマウス操作はないですし、重要なキー操作が思うように動かないのは、やっぱり困りますね。

ここでもポイントは、やっぱり各シェルのキーバインドです。
これをやると、自分でキーのカスタマイズができますから、大変楽になることがあります。また、環境をファイルとして管理できるのも楽ですよね。 別のサーバーへもファイルをコピーするだけで同じ環境を得ることができます。

まだ、シェルのキーバインドをやったことがない方は、一度、お試しあれ。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない検索ができないことがあります。


関連記事 :

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

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

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

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

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

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

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

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

CRONを使う

今回は、CRONを使ってみます。 CRONを使う場合には、直接、crontab ファイルを編集する方法と、crontabコマンドを利用して ...



コメントを投稿 :

お名前 *

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

サイトアドレス

コメント *

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




最近投稿の記事

[ 画像提供元 : 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.2261 [s]