Когда я подключаюсь по SSH к серверу Arch Linux и включаю командную строку, я получаю локаль POSIX:
laptop.lan$ ssh server.lan locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
laptop.lan$
Насколько я могу судить, локаль на сервере настроена правильно. /etc/locale.conf
выглядит так:
LANG=en_US.UTF-8
И, когда я обычно использую SSH, моя локаль в порядке:
laptop.lan$ ssh server.lan
server.lan$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
server.lan$
Что здесь происходит, и как сделать так, чтобы одноразовые команды тоже использовали мой предпочтительный языковой стандарт?
Думаю, здесь применяются некоторые настройки по умолчанию, я не уверен насчет версии, но мои первые мысли ниже
SendEnv LANG LC_*
Или
вы можете изменить конфигурацию сервера, отредактировав / etc / ssh / sshd_config на удаленном компьютере:
AcceptEnv LANG LC_*
Или
ssh -F ~/.ssh/config your_user@your_host
Или
LC_TIME="en_US.UTF-8" ssh usernae@yourserver
Я только что заметил, что проблема возникает, когда у меня fish
(рыбий панцирь) установлен по умолчанию (chsh
). Когда я снова сменил оболочку на bash, языковой стандарт работает должным образом.
Так:
chsh /bin/bash