RHEL7サーバーで奇妙なことを見つけました。シェルのテキストの一部で常に疑問符を返します。このような:
rm file.txt
rm: remove regular file ?file.txt??
またはこれ:
rm 886- rm: cannot remove ?886-?: No such file or directory
これは普通ですか?
Ubuntu 16.04デスクトップでssh経由でRHEL7サーバーに接続し、画面を使用しています。これが違いの原因になりますか?
答え1
rm
端末でサポートされていない文字を表示しようとしました。これはあなたのロケール設定エラー、特にLC_CTYPE
。環境LC_CTYPE
変数はターミナルエミュレータに設定する必要があり、.profile
スクリプト(または)に変更しないでください.bashrc
。
画面が実行中であることを示します。あるロケールでscreenセッションを開始して別のロケールに接続すると、screenはサポートされていない文字をに変換します?
。すでに実行されているアプリケーションを変更することはできません(たとえば、シェルのウィンドウロケールで実行している場合など)。ほとんどのアプリケーションはそうではありません。動的にロケール変更をサポートします。あなたできるこれは変数を設定してシェルで行われますLC_CTYPE
。端末で予想される内容を表示するには、LC_CTYPE
画面セッションに追加する前に値を印刷してください。
問題を回避するには、どこでも一貫したロケールを使用してください。最近UTF-8はどこでも標準であり、他のエンコーディングは以前のアプリケーションやデバイスとの互換性のためにのみ使用する必要があります。