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

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

新規登録して質問してみよう
ただいま回答率
85.35%
terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Less

LessはCSSをシンプルかつ効率よく書くための、 CSSメタ言語の1つです。 lessで変数宣言を行う場合、@から宣言します。

Q&A

解決済

2回答

3522閲覧

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

tekeThick

総合スコア33

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Less

LessはCSSをシンプルかつ効率よく書くための、 CSSメタ言語の1つです。 lessで変数宣言を行う場合、@から宣言します。

0グッド

0クリップ

投稿2020/07/22 20:17

編集2020/07/23 04:14

概要

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で表示が乱れないようにしたいです。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hentaiman

2020/07/22 22:28

ps5でもps7でもcmdでも試したけど同じ現象にならないので記載されている情報以外に原因となる要素がありそうな気がするけど 試しにpowershell7インストールして試してみたらどうでしょうか
hentaiman

2020/07/22 22:35

ちなみにmoreでも同様ですか?
takasima20

2020/07/22 22:59

export TERM=vt100 でなんかかわるんじゃない? しらんけど。 あと、タブ形式のターミナルアプリってなんかあったんじゃないかなあ。
tekeThick

2020/07/23 04:39 編集

みなさん、ありがとうございます。 Rloginや、Poderosa等のsshクライアントがタブやペインが使えるようですね、 手っ取り早く目的を達するにはこれらがよさそうです。 とはいえ、原因が分からないのも気持ちワルイのと、 ターミナル、コンソール、環境変数、シェル、カーネル、 等について調べて理解を深めるきっかけになりそうだなと思うので、 もう少しあれこれ試してダメだったらそれらのクライアントを使用する形にしたいなと思っています。 確認したところ、 PowerShellのウィンドウを全画面にすると発生し、 ウィンドウが全画面でない場合は発生しないようです。 export TERMについてこれから調べるのですが、 なんだか関係がありそうな気がしています。 今のところ、export TERMの設定、PowerShellのバージョン、接続先のlinuxのディストリと、sshd、lessのバージョン辺りが調べるべき要素かなと思うのですが、さすがにこれらの要素すべてググって下調べして理解した上でいろいろなパターンで動作確認するのは作業量が重いので、全画面では発生しないという手掛かりから何かヒントをいただけると非常にありがたいです。 また、質問を更新し、画像を追加しました。
Zuishin

2020/07/23 04:00

vi で不具合が起きないとしたら less に問題があるのでしょう。元々 Windows に less は無いので、あとからインストールしたものだと思いますが、それを使わないと再現できないのであれば情報不足です。wsl less など他の less で試してみてください。
tekeThick

2020/07/23 04:04

返信ありがとうございます。 viもlessもwindows上にインストールしたのでなく、sshで接続した先のCentOSで叩いています。
tekeThick

2020/07/23 04:27

moreを使ったことがなかったのですが、 ひとまずスッピンのPowerShellで確認したところ、発生しませんでした。
Daregada

2020/07/23 04:30

うーん、Windows TerminalからPowerShell(ps5)やコマンドプロンプトを動かし、WindowsのOpenSSHのsshコマンドでCentOS7に接続し、Windows Terminalを全画面表示してもしなくても、lessでそのような問題は起きませんね。 ちなみに、「echo $TERM」の結果は、「xterm-256color」です。
tekeThick

2020/07/23 09:16

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

回答2

0

ベストアンサー

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

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

投稿2020/07/23 03:47

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tekeThick

2020/07/23 05:57 編集

そういえば、表示される行数が少ないと感じたので、PowerShellとコマンドプロンプトのプロパティでフォントサイズを小さくしました。 windowsでPATHを追加する以外の環境変数をいじるという経験がこれまでなかったので、 環境変数について理解できていないため、 まずは ・環境変数ってそもそもどういうものだったっけ ・環境変数って他のユーザにも影響するのか(共用サーバなので) ・ssh接続した先のlinux上で環境変数を変更すべきなのか、ローカルのPowerShell上の環境変数を変更すべきなのか ・PowerShellの環境変数の変更方法とLINESという値はPowerShellにもあるのか という点を調べてみようと思います。
tekeThick

2020/07/23 04:43 編集

さしあたって、デフォルトのフォントサイズに戻そうと思うのですが、 デフォルトは16で合ってますかね?
tekeThick

2020/07/23 04:48 編集

フォントサイズを12に変更していたので、デフォルト値かどうかはわからないのですが、18にしてみたら発生しないようです。 表示行数が少なすぎるので、 フォントサイズ小さくした状態で発生しなければ最高なのですが、 なんだか行数や表示バッファとかそういう問題のような気がします
otn

2020/07/23 05:46

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

2020/07/23 08:55 編集

PowerShellやコマンドプロンプトでなくlinuxサーバ側の環境変数なのですね。 少し考えていたのですが、 ・趣味のサーバならともかく、業務で使うサーバの設定を特定クライアントの問題のために変更するのは筋が悪いなという点 ・環境変数と$LINESや$TERMという値の意味、概念をろくに理解できていない状態で、何が変わり、何に影響する可能性があるかもわからないままに、むやみに変更するのはよくないだろうという点 ・接続する数十台のサーバ全てでこの変更を行う必要があるなら手間がかかるという点 以上の理由から、 ・表示される行数は少ないけれど、フォントサイズが大きい状態でWindowsTerminalを使う ・Rloginの設定方法、キーボードショートカットを調べて、Rloginに乗り換える のいずれかにしようと思います。 ご回答いただき、ありがとうございました。
otn

2020/07/23 09:01 編集

> PowerShellやコマンドプロンプトでなくlinuxサーバ側の環境変数なのですね。 そりゃそうです。lessの動作を変えるのですから。 別にサーバーの設定を変える必要はないです。コマンドで環境変数を設定するだけです。 環境変数はプロセスの固有値なので、そのシェルプロセスを終了すれば消えます。 > ・環境変数と$LINESや$TERMという値の意味、概念をろくに理解できていない状態で、何が変わり、何に影響する可能性があるかもわからないままに、むやみに変更するのはよくないだろうという点 この姿勢は良いですね。
guest

0

Teratermを使いましょう。

投稿2020/07/22 22:16

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tekeThick

2020/07/23 04:11

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

2020/07/23 07:00

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

2020/07/23 09:00 編集

理由はないです。 質問にぶら下げた、2020/07/23 12:44のコメントにあるように、 今日1日くらい調べて解決しなければRlogin等の他のクライアントに乗り換えを検討する方針でした。 別回答へのコメントにて返信しているように ・表示される行数は少ないけれど、フォントサイズが大きい状態でWindowsTerminalを使う ・Rloginの設定方法、キーボードショートカットを調べて、Rloginに乗り換える のいずれかにしようと思います。 ご回答いただきありがとうございました。
y_waiwai

2020/07/23 09:19

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問