PuTTYを使用してSSHプロトコルを介して特定のLinuxサーバーに接続し、nanoエディタを使用してファイルを編集しようとすると、入力はディスプレイを更新しません。別の改行を挿入するためにEnterキーを押すと、次の行は下に移動しません。ただし、ファイルを保存して再度開くと、新しい改行が表示されます。
私はこれがファイルの最初の3〜4行でのみ発生することを発見しました。
この特定のサーバーはCentOS 6を実行しています。他のサーバーに接続しても同じ問題は発生しません。
問題は何であり、どのように解決しますか?
infocmp $TERM
レポートを実行します。
# Reconstructed via infocmp from file: /usr/share/terminfo/l/linux
linux|linux console,
am, bce, ccc, eo, mir, msgr, xenl, xon,
colors#8, it#8, ncv#18, pairs#64,
acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l\E[?1c,
clear=\E[H\E[J, cnorm=\E[?25h\E[?0c, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub1=^H, cud1=^J, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, cvvis=\E[?25h\E[?8c,
dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
flash=\E[?5h\E[?5l$<200/>, home=\E[H, hpa=\E[%i%p1%dG,
ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL,
il1=\E[L, ind=^J,
initc=\E]P%p1%x%p2%{256}%*%{1000}%/%02x%p3%{256}%*%{1000}%/%02x%p4%{256}%*%{1000}%/%02x,
kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, oc=\E]R,
op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m,
rmam=\E[?7l, rmir=\E[4l, rmpch=\E[10m, rmso=\E[27m,
rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, setab=\E[4%p1%dm,
setaf=\E[3%p1%dm,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h, smir=\E[4h,
smpch=\E[11m, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c,
vpa=\E[%i%p1%dd,
答え1
"PuTTY over ssh"を実行するためのステートメントは少し混乱しています。 SSHプロトコルを介してLinuxサーバーに接続するためにPuTTYを使用しているとします。 (あまりにも冗長で申し訳ありません。明確にしたかったです。)PuTTYを使用するとき、PuTTY(および他の多くのグラフィック端末)は古いxterm端末エミュレータをエミュレートするので、TERMは常にxtermでなければなりません。 LinuxのTERM値は、X11 / Xorgを実行せずにLinuxテキストコンソールで直接実行されていることを意味します。 PuTTYのTERM値は、通常、PuTTY構成 - >接続 - >データ - >ターミナルタイプ文字列で設定されます。常にxtermに設定する必要があります。もう1つの可能性は、失敗したサーバーにログインすると、.bashrc、.profile、.cshrcなどのログインスクリプトがTERMを設定することです。 TERMがまだLinuxに設定されている場合は、コマンドラインから次のコマンドを実行してみてください。
export TERM=xterm
これがnanoの問題を解決する場合は、ログインスクリプトを使用して設定を追跡する必要があります。通常はgetty / sshdによって事前に処理されるため、ログインスクリプトはTERMを設定する必要はありません。
答え2
PuTTYに保存されている「問題」サーバーセッションと「ジョブ」サーバーセッションを比較して問題を発見しました。ターミナルエミュレーションオプションで、「DEC Origin Modeが最初にオン」を選択しました。このオプションの選択を解除すると問題が解決しました。