GNU/Linux >> Znalost Linux >  >> Linux

LANG=C je v řadě skriptů /etc/init.d/*. Co dělá LANG=C a proč je potřeba nastavit LANG=C.

Nutí aplikace používat výchozí jazyk pro výstup a vynucuje řazení po bytech.

$ LANG=es_ES man
¿Qué página de manual desea?
$ LANG=C man
What manual page do you want?
$ LANG=en_US sort <<< $'a\nb\nA\nB'
a
A
b
B
$ LANG=C sort <<< $'a\nb\nA\nB'
A
B
a
b

Jak již bylo vysvětleno, LANG proměnná prostředí řídí lokalizaci.

Ovlivňuje mnoho standardních nástrojů příkazového řádku, jako je sort , grep , awk .

Nastavení jeho hodnoty na "C" sděluje všem těmto nástrojům, aby zohledňovaly pouze základní znaky ASCII a deaktivovaly vícebajtovou shodu UTF-8.

Dalším dobrým důvodem než lokalizace pro použití této proměnné prostředí je výkon:může vytvořit grep 1000krát rychlejší pro grep verze <2.7 :http://rg03.wordpress.com/2009/09/09/gnu-grep-is-slow-on-utf-8/

Důvod, proč se písmeno "C" používá k určení "bezpečného" základního národního prostředí, viz Proč "LANG=C"? (ne D nebo E nebo F).


LANG=C je způsob, jak zakázat lokalizaci. Používá se ve skriptech k predikci výstupu programu, který se může lišit v závislosti na aktuálním jazyce. Pro více informací si přečtěte toto


Linux
  1. Co je to linuxový server a proč jej vaše firma potřebuje?

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Jak Systemd používá skripty /etc/init.d?

  1. Příkaz grpck – Odstraňte poškozené nebo duplicitní položky v souborech /etc/group a /etc/gshadow.

  2. Jak nastavíte heslo pro přenosový démon, klientský server BitTorrent?

  3. Jaký je rozdíl mezi /tmp a /run?

  1. Proč potřebujete umístit #!/bin/bash na začátek souboru skriptu?

  2. Proč mají všechny adresáře /home, /usr, /var atd. stejné číslo inodu (2)?

  3. Rozdíl mezi /etc/hosts a /etc/resolv.conf