Локаль (locale или локализация) в Linux определяет какой язык и какой набор символов (кодировку), пользователь видит в терминале.
Прочитав эту статью вы поймете, как узнать и изменить язык и кодировку системы из командной строки в Linux.
Я покажу как проверить текущие настройки языка и кодировки и узнать список всех доступных локалей.
Вы узнаете, как временно сменить язык и кодировку для текущей сессии или установить их постоянно, как для отдельного пользователя, так и для всех пользователей (сменить системную локаль по умолчанию).
Дельный Совет: Узнайте как определить и изменить кодировку файла из командной строки в Linux! Лучшее решение для конвертации текстовых файлов между различными кодировками! Читать далее →
Настройки Языка и Кодировки
Выполните команду locale
, чтобы получить информацию о текущем языковом окружении:
$ locale
Чтобы узнать список всех установленных языков и кодировок, выполните:
$ locale -a
Локаль задается в следующем формате:
<ЯЗЫК>_<ТЕРРИТОРИЯ>.<КОДИРОВКА>[@<МОДИФИКАТОРЫ>]
ЯЗЫК | Код языка по стандарту ISO 639 |
ТЕРРИТОРИЯ | Код страны по стандарту ISO 3166 |
КОДИРОВКА | Набор символов или идентификатор кодировки текста, как ISO-8859-1 или UTF-8 |
Например, локаль для австралийского английского с кодировкой UTF-8 называется: en_AU.UTF-8
Добавить Новую Локаль
Новая локаль: Прежде чем локаль станет доступной для использования, ее необходимо установить (сгенерировать).
Если вы не нашли необходимый язык или кодировку в списке установленных локалей, вы можете сделать поиск по всем поддерживаемым локалям и установить ту, которая вам нужно.
Ubuntu-18.04
Поддерживаемые релизы: Ubuntu-15.04, 15.10, 16.04, 16.10, 18.04.
Список всех поддерживаемых (доступных для установки) локалей:
$ cat /etc/locale.gen
Найдите необходимую локаль, например:
$ grep de_DE.UTF-8 /etc/locale.gen de_DE.UTF-8 UTF-8
Установите ее, выполнив:
$ sudo locale-gen de_DE.UTF-8
Теперь она должна появиться в списке установленных локалей:
$ locale -a | grep de_DE.utf8 de_DE.utf8
Ubuntu-14.04
Поддерживаемые релизы: Ubuntu-9.10, 10.04, 10.10, 11.04, 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10.
Список всех поддерживаемых (доступных для установки) локалей:
$ cat /usr/share/i18n/SUPPORTED
Найдите необходимую локаль, например:
$ grep fr_FR.UTF-8 /usr/share/i18n/SUPPORTED fr_FR.UTF-8 UTF-8
Установите ее, выполнив:
$ sudo locale-gen fr_FR.UTF-8
Теперь она должна появиться в списке установленных локалей:
$ locale -a | grep fr_FR.utf8 fr_FR.utf8
CentOS-7, CentOS-6
Список всех поддерживаемых (доступных для установки) локалей:
$ localedef --list-archive
Найдите необходимую локаль, например:
localedef --list-archive | grep hi_IN.utf8 hi_IN.utf8
Сменить Язык и Кодировку Временно
Настройки языка и кодировки определяются переменнойLANG
, значение которой вы можете увидеть если выполните echo $LANG
.
Чтобы изменить язык и кодировку текущей сессии, необходимо просто переназначить эту переменную.
Ниже приведены примеры изменения локали для некоторых распространенный языков.
Установите значение переменной LANG
, как показано на примерах, чтобы изменить язык и кодировку текущий сессии:
Установить английскую локаль:
$ LANG=en_US.utf8
Установить русскую локаль:
$ LANG=ru_RU.utf8
Установить французскую локаль:
$ LANG=fr_FR.iso-8859-15
Установить немецкую локаль:
$ LANG=de_DE.utf8
Установить индийскую локаль:
$ LANG=hi_IN.utf8
Сменить Язык и Кодировку Перманентно
Если вы не хотите руками менять язык и кодировку при каждом подключении — вы можете задать локаль на постоянной основе.Для этого установите необходимое значение переменной LANG
в пользовательском Bash профиле и нужный язык вместе с кодировкой будут автоматически подгружаться при каждом входе в систему.
Добавьте следующую строку в файл ~/.bashrc
или ~/.profile
, чтобы для текущего пользователя локаль en_US.utf8
стала локалью по умолчанию:
export LANG=en_US.utf8
Изменение вступит в силу при следующем входе в систему, но вы можете это ускорить, если выполните одну из приведенных ниже команд, в зависимости от того, в каком файле вы прописали экспорт переменной LANG
:
$ source ~/.profile
— or —
$ source ~/.bashrc
Локаль Системы По Умолчанию
Дельный Совет: Создайте потрясающий ASCII баннер из командной строки в Linux и вставьте его в предупреждающее сообщение, которое будет появляться при подключении по SSH! Читать далее →
Выполните следующие действия для смены системной локали по умолчанию (для всех пользователей).
Ubuntu-18.04
Поддерживаемые релизы: Ubuntu-15.04, 15.10, 16.04, 16.10, 18.04.
$ localectl set-locale LANG=en_US.utf8
Ubuntu-14.04
Поддерживаемые релизы: Ubuntu-9.10, 10.04, 10.10, 11.04, 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10.
Откройте файл с настройками локали по умолчанию:
/etc/default/locale
Переопределите значение переменной LANG
:
LANG="en_US.utf8"
CentOS-7
$ localectl set-locale LANG=en_US.utf8
CentOS-6
Откройте файл с настройками локали по умолчанию:
/etc/sysconfig/i18n
Переопределите значение переменной LANG
:
LANG="en_US.utf8"
Необходима перезагрузка: Изменения системных настроек вступит в силу только после перезагрузки.
Very Nice Post!
Thanks so Much!
is it?
Thanks was great article
for mac compatibility, change every .utf8 to .UTF-8
plain clear understandable.
Thank you !
thank you ,, useful understandable information
$ grep de_DE.UTF-8 /etc/locale.gen de_DE.UTF-8 UTF-8
/etc/locale.gen:de_DE.UTF-8 UTF-8
grep: de_DE.UTF-8: No such file or directory
grep: UTF-8: No such file or directory
You misread the code block. The first line (‘grep de_DE.UTF-8 /etc/locale.gen’) is the command, the other lines are the OUTPUT of that command.
Who uses $LANG and what for?
i need to write tamil language on kalilinux terminal how to i
any way should i fellow
Great post. It’s very helpful. Thank you very much!