Mir ist etwas Merkwürdiges bei unseren RHEL7-Servern aufgefallen: In der Shell werden immer Fragezeichen zurückgegeben, die Teile des Textes einschließen. Etwa so:
rm file.txt
rm: remove regular file ?file.txt??
Oder dieses:
rm 886- rm: cannot remove ?886-?: No such file or directory
Ist das normal?
Ich führe per SSH von einem Ubuntu 16.04-Desktop eine Verbindung zu den RHEL7-Servern durch und verwende den Bildschirm. Könnte das die Ursache für die Unterschiede sein?
Antwort1
rm
versucht, ein Zeichen anzuzeigen, das Ihr Terminal nicht unterstützt. Das ist ein Zeichen dafür, dass IhrGebietsschemaEinstellungen sind falsch, insbesondere LC_CTYPE
. Die LC_CTYPE
Umgebungsvariable sollte vom Terminalemulator festgelegt und nicht durch Skripts wie .profile
oder geändert werden .bashrc
.
Sie geben an, dass Sie screen ausführen. Wenn Sie die screen-Sitzung in einem Gebietsschema gestartet haben und sie in einem anderen Gebietsschema verbinden, übersetzt screen nicht unterstützte Zeichen in ?
. Es kann die Gebietsschemaeinstellung in bereits laufenden Anwendungen wie der Shell, die Sie in diesem Fenster ausführen, nicht ändern – die meisten Anwendungen unterstützen keine Änderung der Gebietsschemaeinstellungen im laufenden Betrieb. Siedürfentun Sie dies in der Shell, indem Sie die LC_CTYPE
Variable festlegen. Um zu sehen, was Ihr Terminal erwartet, drucken Sie den Wert aus, LC_CTYPE
bevor Sie eine Verbindung zur Bildschirmsitzung herstellen.
Um sich Kopfschmerzen zu ersparen, sollten Sie überall einheitliche Gebietsschemaeinstellungen verwenden. Heutzutage ist UTF-8 überall der Standard, jede andere Kodierung sollte nur aus Kompatibilitätsgründen mit älteren Anwendungen oder Geräten verwendet werden.