
何らかの理由で今日はターミナルでタブをクリックするたびに次のように表示されます。
cat bash: warning: setlocale: LC_CTYPE: cannot change locale (en_CA)
Display all 150 possibilities? (y or n)
この特別な状況は、入力してTABキーを押すと発生しますcat
。私は設定や何も変更したことがありません。何が起こっているのか知っている人はいますか?
答え1
私はあなたのbash_completionのためにこれが起こったと思います。次の手順を実行して、一時的に(終了するまで)bashを消去します。
complete -r
それが消去されたらそれはbashがすることであり、そうでなければそれはおそらくbash組み込み機能の1つです。
答え2
SSHを介してリモートサーバーに接続するときに同様の問題が発生しました(oh-my-zshをローカルにインストールした後、これが関連しているかどうかはわかりません)。
この問題を解決するために、ローカルコンピュータでファイルを編集し、/etc/ssh/ssh_config
SendEnv行をコメントアウトしました。
#SendEnv LANG LC_*
これで、タブの完成はリモートコンピュータで警告なしに機能します。
bash: 警告: setlocale: LC_CTYPE: ロケールを変更できません。
答え3
私のUbuntuサーバー(FlexiScale)で同様の問題があり、しばらくの間解決策を検索しましたが、適切なものが見つかりませんでした。私がしたことが「正しい」方法であるかどうかはわかりませんが、うまくいくようです。
私が見る警告は次のとおりです。
bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)
ロケールが最新であることを確認するために、次のことを行いました(必要かどうかわからない)。
# locale-gen --purge
locale
私のシステムに表示されている内容が私には適していないため、次のようにLC_CTYPE="UTF-8"
変更しました。/etc/default/locale
LANG="en_GB.UTF-8"
LC_CTYPE="en_GB.UTF-8"
(2行目を追加しました。)もう一度ログインすると、警告ウィンドウが消えました。
答え4
私も同じ問題に直面しました。ここでいくつかの回避策を試しましたが、実行しようとすると、locale-gen
システムがコマンドを見つけることができないというメッセージが表示されます。わかると、locales
私がインストールしていないパッケージの一部でした。だからインストールして実行したら、locales-gen
今動作します!