前进区域设置

前进区域设置

当我通过 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$

这是怎么回事?我怎样才能让一次性命令也使用我喜欢的语言环境?

答案1

我猜这里应用了一些默认值,我不确定版本,但我的第一想法如下

前进区域设置

SendEnv LANG LC_*

或者

您可以通过编辑远程计算机上的 /etc/ssh/sshd_config 来更改服务器的配置:

接受语言环境

AcceptEnv LANG LC_*

或者

您可以使用 ssh 配置文件将您的语言环境传递给 ~/.ssh/config 并使用

ssh -F ~/.ssh/config your_user@your_host

或者

使用以下方式进行内联更改

LC_TIME="en_US.UTF-8" ssh usernae@yourserver

答案2

fish我刚刚注意到,当我将(fish-shell) 设置为默认 ( )时,就会出现问题chsh。当我将 shell 改回 bash 时,语言环境可以正常工作。

所以:

chsh /bin/bash

相关内容