GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit barvu vašeho terminálu Linux

Můžete přidat barvu do svého linuxového terminálu pomocí speciálního nastavení kódování ANSI, buď dynamicky v příkazu terminálu nebo v konfiguračních souborech, nebo můžete použít hotová témata v emulátoru terminálu. V každém případě je nostalgický zelený nebo jantarový text na černé obrazovce zcela volitelný. Tento článek ukazuje, jak můžete udělat Linux tak barevný (nebo monochromatický), jak chcete.

Možnosti terminálu

Moderní systémy obvykle standardně používají alespoň xterm-256color, ale pokud se pokusíte přidat barvu do svého terminálu bez úspěchu, měli byste zkontrolovat nastavení TERM.

Historicky byly Unixové terminály doslova:fyzické body na doslovném koncovém bodě (konci) sdíleného počítačového systému, kam mohli uživatelé zadávat příkazy. Byly jedinečné od dálnopisných strojů (proto máme dnes v Linuxu stále zařízení /dev/tty), které se často používaly k zadávání příkazů na dálku. Terminály měly vestavěné CRT monitory, takže uživatelé mohli sedět u terminálu ve své kanceláři a komunikovat přímo se sálovým počítačem. CRT monitory byly drahé – jak na výrobu, tak na ovládání; bylo snazší nechat počítač chrlit hrubý ASCII text, než se starat o vyhlazování a další vychytávky, které moderní počítačisté považují za samozřejmost. Vývoj v technologii však probíhal rychle i tehdy a rychle se ukázalo, že když byly navrženy nové terminály pro zobrazení videa, potřebovaly nové možnosti, které by byly k dispozici na volitelné bázi.

Například luxusní nový VT100 uvedený na trh v roce 1978 podporoval barvy ANSI, takže pokud uživatel určil typ terminálu jako vt100, pak počítač mohl poskytovat barevný výstup, zatímco základní sériové zařízení takovou možnost mít nemusí. Stejný princip platí i dnes a je nastaven proměnnou prostředí TERM. Definici POJMU můžete zkontrolovat pomocí echo :

$ echo $TERM
xterm-256color

Další zdroje pro Linux

  • Cheat pro příkazy Linuxu
  • Cheat sheet pro pokročilé příkazy systému Linux
  • Bezplatný online kurz:Technický přehled RHEL
  • Síťový cheat pro Linux
  • Cheat sheet SELinux
  • Cheat pro běžné příkazy pro Linux
  • Co jsou kontejnery systému Linux?
  • Naše nejnovější články o Linuxu

Zastaralý (ale stále udržovaný na některých systémech v zájmu zpětné kompatibility) soubor /etc/termcap definoval schopnosti terminálů a tiskáren. Jeho moderní verzí je terminfo, které se v závislosti na vaší distribuci nachází buď v /etc nebo /usr/share. Tyto soubory obsahují seznam funkcí dostupných v různých typech terminálů, z nichž mnohé jsou definovány historickým hardwarem:existují definice pro vt100 až vt220 a také pro moderní softwarové emulátory jako xterm a Xfce. Většinu softwaru nezajímá, jaký typ terminálu používáte; ve vzácných případech se může při přihlašování k serveru, který kontroluje kompatibilní funkce, zobrazit varování nebo chyba o nesprávném typu terminálu. Pokud je váš terminál nastaven na profil s velmi malým počtem funkcí, ale víte, že emulátor, který používáte, umí více, můžete své nastavení změnit definováním proměnné prostředí TERM. Můžete to provést exportem proměnné TERM ve vašem konfiguračním souboru ~/.bashrc:

export TERM=xterm-256color

Uložte soubor a znovu načtěte nastavení:

$ source ~/.bashrc

kódy barev ANSI

Moderní terminály zdědily escape sekvence ANSI pro "meta" funkce. Jedná se o speciální sekvence znaků, které terminál interpretuje jako akce namísto znaků. Tato sekvence například vymaže obrazovku až do další výzvy:

$ printf `\033[2J`

Nevymaže vaši historii; jen vyčistí obrazovku v emulátoru terminálu, takže je to bezpečná a názorná úniková sekvence ANSI.

ANSI má také sekvence pro nastavení barvy vašeho terminálu. Například zadáním tohoto kódu změníte následující text na zelený:

$ printf '\033[32m'

Pokud barvy vidíte stejně jako váš počítač, můžete použít barvy, abyste si zapamatovali, do kterého systému jste přihlášeni. Pokud například na svůj server pravidelně používáte SSH, můžete výzvu serveru nastavit na zelenou, abyste ji na první pohled odlišili od místní výzvy. Pro zelenou výzvu použijte kód ANSI pro zelenou před znakem výzvy a zakončete ji kódem představujícím vaši normální výchozí barvu:

export PS1=`printf "\033[32m$ \033[39m"`

Popředí a pozadí

Nejste omezeni pouze na nastavení barvy textu. Pomocí kódů ANSI můžete ovládat barvu pozadí svého textu a také provádět základní styling.

Například s \033[4m , můžete nastavit podtržení textu nebo pomocí \033[5m můžete jej nastavit tak, aby blikal. To se může na první pohled zdát hloupé – protože pravděpodobně nenastavíte svůj terminál tak, aby podtrhl veškerý text a celý den blikal – ale může se to hodit pro vybrané funkce. Můžete například nastavit, aby naléhavá chyba vytvořená skriptem shellu blikala (jako výstraha pro vašeho uživatele), nebo můžete podtrhnout adresu URL.

Pro vaši informaci zde jsou kódy barev popředí a pozadí. Barvy popředí jsou v rozsahu 30, zatímco barvy pozadí jsou v rozsahu 40:

Barva Popředí Pozadí
Černá \033[30 m \033[40 m
Červená \033[31 m \033[41 m
Zelená \033[32 m \033[42 m
Oranžová \033[33m \033[43 m
Modrá \033[34m \033[44m
Magenta \033[35 m \033[45 m
Azurová \033[36 m \033[46 m
Světle šedá \033[37 m \033[47 m
Návrat k výchozímu nastavení distribuce \033[39 m \033[49 m

Pro pozadí jsou k dispozici další barvy:

Barva Pozadí
Tmavě šedá \033[100 m
Světle červená \033[101 m
Světle zelená \033[102 m
Žlutá \033[103 m
Světle modrá \033[104 m
Světle fialová \033[105 m
Teal \033[106 m
Bílá \033[107 m

Trvalost

Nastavení barev v relaci terminálu je pouze dočasné a relativně bezpodmínečné. Někdy efekt trvá několik řádků; je to proto, že tato metoda nastavování barev spoléhá na příkaz printf, který nastavuje režim, který trvá pouze do té doby, než jej přepíše něco jiného.

Způsob, jakým emulátor terminálu obvykle získává pokyny o tom, jaké barvy použít, je z nastavení proměnné prostředí LS_COLORS, která je zase vyplněna nastavením dircolors. Svá aktuální nastavení můžete zobrazit pomocí příkazu echo:

$ echo $LS_COLORS
rs=0:di=38;5;33:ln=38;5;51:mh=00:pi=40;
38;5;11:so=38;5;13:do=38;5;5:bd=48;5;
232;38;5;11:cd=48;5;232;38;5;3:or=48;
5;232;38;5;9:mi=01;05;37;41:su=48;5;
196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;
196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;
[...]

Nebo můžete použít přímo dircolors:

$ dircolors --print-database
[...]
# image formats
.jpg 01;35
.jpeg 01;35
.mjpg 01;35
.mjpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.tif 01;35
.tiff 01;35
[...]

Pokud to vypadá záhadně, je to proto, že to tak je. První číslice za typem souboru je kód atributu a má šest možností:

  • 00 žádné
  • 01 tučné
  • 04 podtržítko
  • 05 mrknutí
  • 07 zpět
  • 08 skryto

Další číslice je kód barvy ve zjednodušené podobě. Barevný kód získáte tak, že vezmete poslední číslici kódu ANSII (32 pro zelené popředí, 42 pro zelené pozadí; 31 nebo 41 pro červené atd.).

Vaše distribuce pravděpodobně nastavuje LS_COLORS globálně, takže všichni uživatelé ve vašem systému dědí stejné barvy. Pokud chcete přizpůsobenou sadu barev, můžete k tomu použít dircolors. Nejprve vygenerujte místní kopii nastavení barev:

$ dircolors --print-database > ~/.dircolors

Upravte svůj místní seznam podle potřeby. Až budete se svými volbami spokojeni, uložte soubor. Vaše nastavení barev je pouze databáze a nelze je přímo použít ls, ale můžete použít dircolors k získání kódu shellu, který můžete použít k nastavení LS_COLORS:

$ dircolors --bourne-shell ~/.dircolors 
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:
pi=40;33:so=01;35:do=01;35:bd=40;33;01:
cd=40;33;01:or=40;31;01:mi=00:su=37;41:
sg=30;43:ca=30;41:tw=30;42:ow=34;
[...]
export LS_COLORS

Zkopírujte a vložte tento výstup do souboru ~/.bashrc a znovu načtěte. Případně můžete tento výstup uložit přímo do souboru .bashrc a znovu načíst.

$ dircolors --bourne-shell ~/.dircolors >> ~/.bashrc
$ source ~/.bashrc

Můžete také nechat Bash vyřešit .dircolors při spuštění namísto ručního převodu. Ve skutečnosti pravděpodobně nebudete měnit barvy často, takže to může být příliš agresivní, ale je to možnost, pokud plánujete hodně změnit barevné schéma. Do svého souboru .bashrc přidejte toto pravidlo:

[[ -e $HOME/.dircolors ]] && eval "`dircolors --sh $HOME/.dircolors`"

Pokud máte ve svém domovském adresáři soubor .dircolors, Bash jej po spuštění vyhodnotí a podle toho nastaví LS_COLORS.

Barva

Barvy ve vašem terminálu představují snadný způsob, jak si poskytnout rychlou vizuální referenci pro konkrétní informace. Možná se však o ně nebudete chtít příliš opírat. Koneckonců, barvy nejsou univerzální, takže pokud váš systém používá někdo jiný, nemusí barvy vidět stejně jako vy. Kromě toho, pokud používáte různé nástroje pro interakci s počítači, můžete také zjistit, že některé terminály nebo vzdálená připojení neposkytují barvy, které očekáváte (nebo barvy vůbec).

Pomineme-li tato varování, barvy mohou být v některých pracovních postupech užitečné a zábavné, takže si vytvořte databázi .dircolor a přizpůsobte si ji podle svých představ.


Linux
  1. Jak tmux vyvolává radost ve vašem linuxovém terminálu

  2. Jak změnit identitu systému Linux

  3. Jak změnit výchozí prostředí v Linuxu

  1. Změňte barevný motiv svého terminálu Linux

  2. Jak přinést štěstí do vašeho linuxového terminálu

  3. Jak vyhledávat na webu z terminálu v systému Linux

  1. Odpočiňte si u ohně na svém linuxovém terminálu

  2. Jak používat příkaz Linux cd ke změně adresáře

  3. Jak nastavit nebo změnit časové pásmo v Linuxu