質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.91%

コマンドプロンプト または PowerShell でssh接続しlessを用いたときの表示の乱れについて

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 496

tekeThick

score 31

概要

windowsからlinuxサーバへのssh接続をTeraTermから、WindowsTerminalに乗り換えました。
しかし、lessでの文字表示が乱れるのでテキストファイル確認時に見落としが起きそうで困っています。
(TeraTermは接続の数だけウィンドウが増えてしまうので、タブやペイン表示ができるWindowsTerminalにしました)

状況

Windows10 Pro 1909、Windows Terminal 1.0.1811.0にて、
Windows Terminal上のPowerShellを用いてWindows10標準のsshで以下のようにlinuxサーバに接続し、

PS C:\Users\XXXX> ssh root@192.168.XXX.XXX


lessコマンドでテキストを開きます。

# less /var/log/XXXX/XXXX.log


通常、lessでファイルを開いた直後、画面の最下行にはファイル名が表示され、
その上には開いたファイルの内容が表示されます。

しかし、本来は画面の最下行、1か所に表示されるはずのファイル名が、
ファイルの内容の途中にも重なるように表示されてしまうほか、
ファイルの先頭数行が表示されず、途中から表示されてしまいます。

同じlessコマンドを実行してはlessを終了するという操作を何度か繰り返すと、
異常な表示になったり、正常になったりします。

異常な表示となったときの様子です。
ファイル名/var/log/lipsum.txtが2か所に表示され、
テキストの1行目が表示されていない状態となっています。
イメージ説明

比較検証

各ソフト、環境で同一サーバにsshし、同一lessコマンドを試しました。

  • WindowsTerminal上のコマンドプロンプトでも同じ現象が起きます
  • スッピンのPowerShellでも同じ現象が起きます
  • スッピンのコマンドプロンプトでも同じ現象が起きます
  • TeraTermでは起きません
  • macのiTerm2では起きません
  • すべての環境・ソフトで試したわけではありませんが、viでは起きないようです

つまり、WindowsTerminalは関係なく、PowerShellまたはコマンドプロンプトでssh接続したときのlessで起きています。
Windows10のOpenSSHとlessの相性的な現象なのでしょうか?

ゴール

要はWindowsでタブやペインを使える手段でssh接続したいということなので、
方法はwindows標準のsshコマンドでなくても良いし、
WindowsTerminalでなくても良いので、
lessで表示が乱れないようにしたいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • Daregada

    2020/07/23 13:30

    うーん、Windows TerminalからPowerShell(ps5)やコマンドプロンプトを動かし、WindowsのOpenSSHのsshコマンドでCentOS7に接続し、Windows Terminalを全画面表示してもしなくても、lessでそのような問題は起きませんね。

    ちなみに、「echo $TERM」の結果は、「xterm-256color」です。

    キャンセル

  • この投稿は削除されました

  • tekeThick

    2020/07/23 18:16

    別回答へのコメントにて返信しているように
    ・表示される行数は少ないけれど、フォントサイズが大きい状態でWindowsTerminalを使う
    ・Rloginの設定方法、キーボードショートカットを調べて、Rloginに乗り換える
    のいずれかにしようと思います。

    ご回答いただきありがとうございました。

    キャンセル

回答 2

checkベストアンサー

+1

画面の行数の認識がおかしい感じでしょうか?

環境変数LINESに正しい行数を設定してみて下さい。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/23 14:46

    環境変数は、プロセス固有の値です。
    sshでログインした状態で、export LINES=40 のようにしてから、less します。

    キャンセル

  • 2020/07/23 17:54 編集

    PowerShellやコマンドプロンプトでなくlinuxサーバ側の環境変数なのですね。

    少し考えていたのですが、

    ・趣味のサーバならともかく、業務で使うサーバの設定を特定クライアントの問題のために変更するのは筋が悪いなという点
    ・環境変数と$LINESや$TERMという値の意味、概念をろくに理解できていない状態で、何が変わり、何に影響する可能性があるかもわからないままに、むやみに変更するのはよくないだろうという点
    ・接続する数十台のサーバ全てでこの変更を行う必要があるなら手間がかかるという点

    以上の理由から、
    ・表示される行数は少ないけれど、フォントサイズが大きい状態でWindowsTerminalを使う
    ・Rloginの設定方法、キーボードショートカットを調べて、Rloginに乗り換える
    のいずれかにしようと思います。

    ご回答いただき、ありがとうございました。

    キャンセル

  • 2020/07/23 17:59 編集

    > PowerShellやコマンドプロンプトでなくlinuxサーバ側の環境変数なのですね。
    そりゃそうです。lessの動作を変えるのですから。

    別にサーバーの設定を変える必要はないです。コマンドで環境変数を設定するだけです。
    環境変数はプロセスの固有値なので、そのシェルプロセスを終了すれば消えます。


    > ・環境変数と$LINESや$TERMという値の意味、概念をろくに理解できていない状態で、何が変わり、何に影響する可能性があるかもわからないままに、むやみに変更するのはよくないだろうという点

    この姿勢は良いですね。

    キャンセル

0

Teratermを使いましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/23 13:11

    回答ありがとうございます。

    私も無用なトラブルを避けるにはTeraTermが確実であろうと認識しています。
    しかし、トリプルディスプレイ環境ではあるのですが、
    それでもウィンドウが増えてくると、作業効率が落ちるのも事実なので、
    タブ・ペイン式のsshクライアントに移行したいと思っています。

    キャンセル

  • 2020/07/23 16:00

    なら、Rloginでどうぞ。
    コマンドプロンプトやPowerShellでなければならない理由はあるんでしょうか

    キャンセル

  • 2020/07/23 17:59 編集

    理由はないです。
    質問にぶら下げた、2020/07/23 12:44のコメントにあるように、
    今日1日くらい調べて解決しなければRlogin等の他のクライアントに乗り換えを検討する方針でした。

    別回答へのコメントにて返信しているように
    ・表示される行数は少ないけれど、フォントサイズが大きい状態でWindowsTerminalを使う
    ・Rloginの設定方法、キーボードショートカットを調べて、Rloginに乗り換える
    のいずれかにしようと思います。

    ご回答いただきありがとうございました。

    キャンセル

  • 2020/07/23 18:19

    lessもそうですがテキストエディタなど画面制御が伴うものは、コントロール用のコマンドが違うためにコマンドプロンプトやらでは上手く動きません
    それを動かすのがTeratermやRloginなどのターミナルエミュレータと呼ばれるものです

    #ターミナル エスケープシーケンスでぐぐってみると解説でてきます

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.91%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • トップ
  • SSHに関する質問
  • コマンドプロンプト または PowerShell でssh接続しlessを用いたときの表示の乱れについて