Poznej Linux
- Menu je zatím ve výstavbě
Dosud jsme nerozlišovali typ použitých příkazů. Vlastní příkaz může být název spustitelného souboru, který tvoří nějaký program, může to být ale i vestavěná funkce shellu nebo třeba alias. Příkazy jako ls
, grep
, cat
či ssh
jsou názvy spustitelných souborů, tedy programy. Naopak třeba příkaz cd
je vestavěnou funkcí shellu, není to žádný konkrétní program, podobně jako třeba echo
. Této znalosti můžete využít, pokud budete v prostředí, kde máte sice shell, ale už ne jednotlivé programy jako ls
. Program ls
můžete nahradit právě použitím vestavěné funkce shellu echo:
echo *
Poslední kategorií jsou aliasy. Ty můžete specifikovat vedle dalších nastavení ve svém ~/.bashrc
. Alias je jiné jméno pro nějaký příkaz. Můžete si tak namapovat nějaký komplikovanější příkaz na snadno zapamatovatelný alias:
alias la='ls -la'
Pokud by se vám stýskalo po označeních jednotek písmeny, můžete si pomoci třeba takto:
alias c:='cd /mnt/windows'
Pokud máte příkaz a netušíte, co je zač, můžete zkusit vestavěnou funkci shellu type:
type prikaz
Proměnné slouží k uložení určitých hodnot či řetězců. Začněme proměnnými prostředí. O jedné jsme už několikrát mluvili, a sice o vyhledávací cestě, která se prohledává při zadání nějakého příkazu, který shell nerozpozná jako vestavěnou funkci. Proměnná se jmenuje PATH a její obsah můžeme zobrazit takto:
echo $PATH
Všechny proměnné prostředí můžeme vypsat pomocí příkazu set:
set
Další zajímavou proměnnou prostředí je PS1
, která určuje tvar výzvy (prompt). Výzva vypadá třeba takto:
[michal@griffon ~]$
Mnoho informací o proměnných prostředí naleznete v manuálu bashe:
man bash
Proměnné nemusí ale být jenom proměnné prostředí. Můžete si je tvořit sami, což se zejména ve skriptech velice hodí. Proměnnou vytvoříte pomocí znaku =
(rovná se):
PROMENNA="Moje proměnná."
Vlevo je název proměnné, vpravo za =
je její hodnota. Tento zápis netoleruje mezery. Pokud byste =
oddělili mezerami, nebude to fungovat.
Hodnotu proměnné můžete dosadit kamkoliv, pokud před název proměnné zapíšete znak dolaru:
echo $PROMENNA
Ukažme si malý skriptík s proměnnou:
#!/bin/bash LOG="~/log.txt" cp soubor /tmp 2&>$LOG
Ano, je to velmi primitivní příklad, a jak správně tušíte, tento skript překopíruje soubor soubor do adresáře /tmp a veškeré případné chybové hlášky zapíše do souboru, který je specifikován v proměnné LOG. Pokud budete tvořit složitější skript, vyplácí se nějaké statické hodnoty (třeba adresáře, soubory, apod.) specifikovat v proměnných. Pak, když budete potřebovat hodnoty změnit, nemusíte procházet celý soubor a měnit všechny výskyty dané hodnoty, změníte pouze hodnotu v proměnné.
Do proměnných můžete přirozeně ukládat i výstup nějakého příkazu:
PROMENNA=$(ps au | grep "bash")
Základní matematiku (celočíselné operace) provádí následující syntax:
$((vyraz))
Za vyraz
stačí dosadit nějakou matematickou operaci, třeba:
$((4+5*(5-20/5)))
Operace vyžadující plovoucí desetinnou čárku můžete provádět pomocí programu bc
. Jeho použití je ale trošku složitější:
echo "scale=2; 4*4-6*(1/25)" | bc
Proměnná scale
nastavuje počet desetinných míst. Přirozeně, na místě pro jednotlivá čísla můžete uvádět proměnné a výsledek ukládat do jiných proměnných.