Можно использовать route
найти Ваш маршрут по умолчанию:
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Iface
столбец в соответствии с местом назначения default
говорит Вам, какой интерфейс используется.
Существует три набора настроек локали ¹:
LANG
, установка нейтрализации, если Вы не указали значение для категории. Это - отступ для пользователей для указания на их локаль простым способом.LC_xxx
для каждой категории (xxx
может быть MESSAGES
, TIME
, и т.д.).LC_ALL
переопределения все настройки. Это - путь к приложениям для переопределения всех настроек для работы в известной локали (обычно C
, локаль по умолчанию), обычно так, чтобы различные команды произвели вывод в известном формате.Таким образом, можно установить LANG=de_AT.UTF-8
и LC_MESSAGES=C
(C
локаль по умолчанию и означает непереведенный; en_US
обычно идентично C
для сообщений).
Однако существует две категории, где я не рекомендую изменить значение по умолчанию, потому что оно повреждает много программ:
LC_COLLATE
символьный порядок сопоставления. Это не очень полезно, потому что это только указывает, как отсортировать символы, не, как отсортировать строки. Инструменты, которые знают, как отсортировать строки, не используют LC_COLLATE
. Кроме того, много инструментов ожидает вещи как “[a-z]
соответствия все 26 строчных букв ASCII и никакие другие символы ASCII”, но это не верно в большинстве локалей не по умолчанию (попытка echo B | LC_COLLATE=en_US grep '[a-z]'
).LC_NUMERIC
указывает, как отобразить числа. В частности, на многих языках это заставляет числа с плавающей точкой использовать a ,
вместо .
как десятичная точка. Но большинство программ, которые анализируют числа, ожидает a .
и обработка a ,
как разделитель полей.Таким образом, я рекомендую
LC_COLLATE=C LC_NUMERIC=_C
,LANG
сброс и только установленный значение для полезных категорий (LC_MESSAGES
, LC_TIME
, LC_PAPER
, плюс LC_CTYPE
(чье значение может варьироваться в зависимости от Вашего терминала)).¹ Плюс LANGUAGE
с GNU libc. Если Вы не услышали об этом, Вы не отсутствуете очень.
Локаль страницы справочника (7) говорит:
локаль по умолчанию [...] определяется с помощью следующих шагов:
Если существует непустая переменная среды LC_ALL, значение LC_ALL используется.
Если переменная среды с тем же именем как одна из категорий [LC_ *] выше существует и является непустым, его значение используется для той категории.
Если существует непустая переменная среды ЛЕНГ, значение ЛЕНГА используется.
Так, можно использовать ЛЕНГА в качестве своего рода аналога низкого приоритета LC_ALL: установите значение ЛЕНГА к de_AT
и LC_MESSAGES к en_US
:
$ env LC_MESSAGES=en_US.UTF-8 LANG=de_AT.UTF-8 locale | egrep '(MESSAGES|PAPER)'
LC_MESSAGES=en_US.UTF-8
LC_PAPER="de_AT.UTF-8"
,
вместо a.
(к сожалению), так введение номеров с точкой неудобно (и большинство приложений, кажется, работает приятно с нестандартным LC_NUMERIC). Я не полностью понимаю Вашего примера LC_COLLATE: В моей системе пример, который Вы дали, не соответствуетB
. – Heinzi 01.07.2011, 16:29