Konfigurace Linuxu

Uživatelské prostředí

Uživatel si může implicitní nastavení pro shell bash změnit v souboru ~/.profile. Tento soubor se automaticky spustí při spuštění bashe po zalogování.

Při každém spuštění bashe se ještě spouští příkazy v souboru ~/.bashrc (nejen po zalogování).

Pokud uzivatel provede zmeny v souboru ~/.profile a chce, aby platili uz ve stavajici instalaci, musi znovu tento soubor spustit:

$bash ~/.profile

Dalsi moznost jak menit promenne prostredi je nastavit je primo z prikazove radky. Napr.:

$ PS1='povidej borce $ '
povidej borce $

Podrobnější pohled na inicializaci bashe

Prvni logovaci skript je predevsim globalni soubor /etc/profile, ktery je pripraven systemovym administratorem. Ten obsahuje vetsinu potrebnych nastaveni.

Dale se vypise obsah souboru /etc/motd (message-of-the-day), ktery modifikuje root. Tento soubor neni bran jako skript, tj. prikazy se vypisi jen jako text. Jako posledni se provede obsah prave jednoho ze souboru ~/.bash_profile, ~/.bash_login a ~/.profile, a to prvniho v uvedenem poradi, ktery existuje. (Plati pro Bourne shell, C-shell inicializuje ~/.login po prihlaseni a ~/.cshrc pri kazdem spusteni csh)

V souboru /etc/profile muze byt odkaz na soubor /etc/profile.local, ktery nemusi existovat, ale je-li vytvoren, spousti se take. Pak je vyhodnejsi soubor /etc/profile nemodifikovat, ale vytvorit soubor /etc/profile.local. Update systomu muze /etc/profile premazat, ale /etc/profile.local ne.

Pred ukoncenim posledni instance bashe (pred odhlasenim) se provede obsah souboru ~/.bash_logout. Do nej muzeme umistit nektere "uklidove" ukony, jako je mazani nepotrebnych souboru apod.

U instance bashe, ktery se nespousti po prihlaseni (ale uz jineho beziciho bashe), se nacita pouze soubor ~/.bashrc. (Tj. profile se spousti jen po prihlaseni, zatimco ~/.bashrc pokazde, co je spustena nova instance bashe.

Příkaz export

Nastavene prostredi vyuzivaji i procesy, ktere jsou stavajici instalaci spusteny. Pokud si uzivatel zmeni nekterou promennou prostredi a chce aby tato zmena byla zverejnena i procesum, ktere bude spoustet, musi pouzit prikaz export.

Uzivatel chce napriklad nastavit promennou reprezentujici typ pouziteho terminalu na terminal vt52:

$ TERM=vt52
$ export TERM

Nebo rovnou:

$ export TERM=vt52

potom i nasledne spoustene procesy budou mit promennou prostredi TERM nastavenou na vt52.

Standardní inicializační soubory

Po startu systému se spustí proces init, který spouští další procesy dle konfiguračních souborů. Jaké soubory spustí záleží na levelu běhu, se kterým se init spouští (většinou level 5).

Pokud se spouští level 5, spouští se postupně skripty z adresáře /etc/init.d/rc5.d/ (pětka v názvu adresáře není náhodná …).

Příkaz init může administrátor spustit za běhu a přejít tak do jiného levelu

SYNOPSIS

init level
LevelVýznam
0Vypne počítač
6Reboot počítače
2, 3, 4, 5Nastartuje runlevelX. Běžně se používá jen 5
1, s, SSpustí záchranný režim
/sbin/init
/etc/init.d/            # adresář se skripty, které spouští programy při startu

/sbin/init.d/halt.local
/etc/init.d/halt.local  # skript spouštěný při vypínání systému

Konfigurace myši v konzoli

K rozchození myši v konzoli se používá program gpm, který se konfiguruje pomocí programu gpmconfig.

OPTIONS

-t typ
(-t ms3)
-m zarizeni
(-m /dev/ttyS0)
-k
ukonci jakykoliv bezici proces gpm
-R typ
(-R ms3)
Kopiruje akce mysi do souboru /dev/gpmdata pod zadanym protokolem. Tato volba je dulezita, kdyz je cinnost programu gpm v textovem modu v kolizi s pristupem systemu X k mysi. Pak X bude pristupovat k mysi prez zarizeni /dev/gpmdata (nikoliv /dev/ttyS0)

Pro starší verze myší:

$ gpm -k
$ gpm -m /dev/ttyS0 -t ms3 -Rms3

Pro novější verze s kompatibilitou s X Window systémem.

$ gpm -k
$ gpm -m /dev/psaux -t imps2 -R /dev/gpmdata
Pozor! Program gpm může být v konfliktu s myší v X Window systému. Rozhodit myš v konzoli i v X Window systémů najednou se nemusí vždy povést.

Abyste mohli spouštět gpm jako běžný uživatel, je nejjednodušší nastavit mu set user bit:

$ su -c "chmod u+s /usr/sbin/gpm"

Nastavení češtiny v konzoli (old)

K zobrazení současného nastavení použijte následující příkaz:

localectl status 

V distribuci OpenSuSE jsem pro zprovoznění českého rozložení klávesnice musel zadat tyto příkazy (některé jako root):

export LANG=cs_CZ
setfont lat2-16
loadkeys cz-qwerty
Pro qwertz variantu se zadává loadkeys cz. Ve starší verzi distribuce se zadávalo loadkeys qwerty/cz. Kompletní výpis fontů k dispozici zobrazí příkaz localectl list-keymaps.

V /etc/sysconfig/keyboard se dá nastavit KEYTABLE="qwerty/cz".
LANG se da nastavit v /etc/sysconfig/language jako RC_LC_ALL="cs_CZ.UTF-8".
Font se zdá být nastaven v /etc/sysconf/console, přesto musím po restartování znovu spustit setfont lat2-16, aby mi fungovalo správně zobrazení češtiny.

Naproti tomu v Ubuntu se mi přepínání mezi klávesnicemi rozchodit nepodařilo /: Funguje tam jen klávesnice Alt Gr s pomocí níž lze psát znaky z anglické klávesnice (defaultně píše česky, protože jsem si při instalaci vybral češtinu).

New: V Debianu jsem musel doinstalovat balíček console-data a v souboru /etc/default/console-setup nastavit FONT=Lat2-Fixed16. (Výběr fontů viz /usr/share/consolefonts/). Možná to tak nějak půjde i v Ubuntu.

Program setfont potřebuje administrátorská práva. Aby jej mohl spouštět i obyčejný uživatel, je nejjednodušší nastavit set user bit:

$ chmod u+s /usr/bin/setfont

Soubor ~/.profile: (nastaví správný český font):

if [ "$TERM" = "linux" ]
then
    export LANG=cs_CZ.UTF-8
    setfont lat2-16
    # /usr/sbin/gpm -m /dev/psaux -t imps2 -R /dev/gpmdata
fi

V souboru ~/.bashrc je možné nastavit shortcut pro přepínání českého a anglického rozložení (pomocí kláves F11 a F12):

if [ "$TERM" = "linux" ]
then
    bind -x '"\e[24~":"/usr/bin/loadkeys -q us"'
    bind -x '"\e[23~":"/usr/bin/loadkeys -q cz-qwerty"'
fi

V Debianu jsem naproti tomu musel spouštět loadkeys qwerty/cz-lat2.

Česká verze klávesnice se umí přepínat do anglické pomocí Pause klávesnice. Pokud tuto klávesnici náhodou nemáte, můžete si nastavit na přepínání jinou v souboru /usr/share/kbd/keymaps/i386/qwerty/cz.map.gz (resp. /usr/share/keymaps/i386/qwerty/cz-lat2.kmap.gz v Debianu).

Nejdřív zjistěte číslo klávesnice, kterou chcete používat pro přepínání, programem showkey. Tento program vypisuje čísla klávesnice. Pokud 10 sekund nic nezmáčknete, ukončí se.

Když už víte číslo klávesnice, kterou chcete používat na přepínání, zkopírujte v souboru /usr/share/kbd/keymaps/i386/qwerty/cz.map.gz odstavec, který nastavuje klávesu Pause a změntě číslo keycode na to vaše.

Toto zkopírujte a nahraďte číslo 119 (pause) vaším číslem (já si nastavil 88 pro klávesu F12).
V Debianu vypadá řádek jinak, ale začíná také keycode 119 = .

# Pause se pouziva pro prepinani CESKE a ANGLICKE klavesnice
#       - funguje jako ShiftR_Lock
#
keycode 119 = ShiftR_Lock  ShiftR_Lock  VoidSymbol   VoidSymbol   VoidSymbol  \
              VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol  \
              VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol  \
              VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol  \
              VoidSymbol                                                      \
              ShiftR_Lock  ShiftR_Lock  VoidSymbol   VoidSymbol   VoidSymbol  \
              VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol  \
              VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol  \
              VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol   VoidSymbol  \
              VoidSymbol

Další info viz čeština v linuxu.

Nastavení češtiny v konzoli (new)

K zobrazení současného nastavení použijte následující příkaz:

localectl status 

OpenSuSE

Nainstalujte si balíček console-setup.

Soubor /etc/default/console-setup nemusíte měnit. V souboru /etc/default/keyboard nastavte toto:

XKBLAYOUT=cz,us
XKBVARIANT=qwerty    # pokud chcete qwertz, nechte prazdne
XKBOPTIONS=grp:alt_shift_toggle
XKBOPTIONS=grp:shifts_toggle -- prepinani pomoci stisku shiftu nefunguje :-(

V souboru /etc/vconsole.conf nastavte KEYMAP na cz-qwerty, nebo cz (pro qwertz variantu).

KEYMAP=cz-qwerty

A na konec spusťte následující příkazy:

# export LANG=cs_CZ.UTF-8
sudo /usr/bin/loadkeys -q cz
sudo /usr/bin/loadkeys -q cz-qwerty #pouze pro qwerty variantu
sudo /usr/bin/setupcon
Vyzkoušejte si napsat písmeno ť. Pokud nezavoláte loadkeys s cz před cz-qwerty, nejspíš se napíše ^t (#asinejakachyba). setupcon je potřeba zavolat až po příkazech loadkeys.

Abyste nemuseli zadávat příkazy při každém restartování systému, můžete si je zapsat do souboru ~/.profile:

if [ "$TERM" = "linux" -o "$TERM" = "screen.linux" ]
then
    export LANG=cs_CZ.UTF-8
    sudo /usr/bin/loadkeys -q cz
    sudo /usr/bin/loadkeys -q cz-qwerty
    sudo /usr/bin/setupcon
    # /usr/sbin/gpm -m /dev/psaux -t imps2 -R /dev/gpmdata
fi

Programy setupcon a loadkeys potřebují administrátorská práva. Abyste nemuseli pokaždé zadávat heslo, zeditujte si /etc/sudoers (příkazem visudo) a přidejte následující řádky:

##
## User privilege specification
##
# root ALL=(ALL) ALL # pokud tato radka existuje (nezakomentovana), musi byt prvni
petr ALL = (root) NOPASSWD: /usr/bin/setupcon
petr ALL = (root) NOPASSWD: /usr/bin/loadkeys

Místo petr použijte své přihlašovací jméno, nebo ALL.

Debian

Nový debian jsem zatím nezkoušel, snad by měl fungovat postup posaný v Nastavení češtiny v konzoli (old), nebo zkuste nastavení pomocí setupcon, jak je popsáno pro OpenSuSE výše.

Ubuntu

Podobně jako v OpenSuSE, nastavte konozli pomocí setupcon. Jenom zavolejte loadkeys s cz-us-qwerty (namísto cz a cz-qwerty).

# export LANG=cs_CZ.UTF-8
sudo /usr/bin/loadkeys -q cz-us-qwerty
sudo /usr/bin/setupcon

Další info viz čeština v linuxu.

Screensaver v konzoli

Screensaver v klasické konzoli nastavit nelze. Na pomoc proto přichází program screen. Ten je sice primárně určen na něco jiného, ale funguje jako bash a umožňuje nastavit screensaver.

Screensaver pro program screen se nastaví v souboru ~/.screenrc takto:

blankerprg cmatrix -ab -u2
idle 60 blanker

Kde místo cmatrix -ab -u2 můžete napsat jakýkoliv oblíbený konzolový screensaver. Příkaz idle určuje, po kolika vteřinách se spustí blanker.

Komentář Hlášení chyby
Created: 13.7.2013
Last updated: 16.12.2019
Tato stánka používá ke svému běhu cookies, díky kterým je možné monitorovat, co tu provádíte (ne že bych to bez cookies nezvládl). Také vás tu bude špehovat google analytics. Jestli si myslíte, že je to problém, vypněte si cookies ve vašem prohlížeči, nebo odejděte a už se nevracejte :-). Prohlížením tohoto webu souhlasíte s používáním cookies. Dozvědět se více..