在 bash shell 中看到奇怪的問號

在 bash shell 中看到奇怪的問號

我注意到我們的 RHEL7 伺服器有一些奇怪的地方:在 shell 中總是傳回問號,其中包含部分文字。有點像這樣:

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 伺服器並使用 screen。這可能是差異的根源嗎?

答案1

rm正在嘗試顯示您的終端不支援的字元。這顯示你的語言環境設定錯誤,特別是LC_CTYPE。環境LC_CTYPE變數應由終端模擬器設置,並且不應由任何腳本(例如.profile或 )更改.bashrc

您表明您正在運行螢幕。如果您在一種語言環境中啟動 screen 會話並在另一種語言環境中附加到它,則 screen 會將不支援的字元轉換為?.它無法更改已運行的應用程式(例如您在該視窗中運行的 shell)中的區域設定 - 大多數應用程式不支援動態更改區域設定。你透過設定變數在 shell 中完成此操作LC_CTYPE。若要查看您的終端機期望什麼,請列印LC_CTYPE附加到螢幕工作階段之前的值。

為了避免麻煩,請在各處採用一致的區域設定。如今 UTF-8 已成為無處不在的標準,任何其他編碼都應該僅用於與舊應用程式或裝置相容。

相關內容