Index 🏠 || 🔝 Nahoru


Publikováno:

Aktualizováno

Série »Linux shell«

Kategorie:

PSKáčko

Tagy:

Příkazový řádek

Základním komunikačním rozhraním v OS Unix je příkazový řádek. Ihned po přihlášení se uživateli spustí tzv. příkazový interpret neboli shell.

Ve většině Linuxových distribucí je jako výchozí shell nastaven program Bash. Ale nabídka je mnohem větší: Např. C shell, Korn shell nebo můj oblíbený Z shell.

Unixový shell
poskytuje uživateli textové (příkazové) komunikační rozhraní — CLI
komunikuje s uživatelem
interpretuje jeho příkazy
spouští jiné programy

Shell je v podstatě skriptovací programovací jazyk. Shell vytváří prostředí příkazového řádku, do kterého uživatel zadává názvy příkazů, které chce spustit. Shell tyto příkazy interpretuje, spouští odpovídající programy a umožňuje sledovat jejich výstup. Umožňuje příkazům předávat parametry, seskupovat je, slučovat příkazy do skriptů a podobně. Shell představuje „skořápku”, která skrývá uživateli detaily ovládání kernelu (jádra) operačního systému. Mnoho uživatelů unixových systémů dosud považuje moderní příkazový řádek shellu za mnohem pohodlnější způsob ovládání počítače než grafické uživatelské rozhraní.

Příkaz obsahuje:

  • jméno příkazu
  • volby — přepínače
  • parametry
  • metaznaky — znaky se speciálním významem (mezera, > < * ? \ [ ] { } )

Například:

1
ls --all -l data Documents
ls
je jméno příkazu
--all -l
jsou přepínače, které modifikují chování příkazu ls
data Documents
jsou parametry; v tomto případě názvy souborů nebo adresářů
mezera
je je tzv. metaznak (znak se speciálním vyznamem) a slouží jako oddělovač parametrů a přepínačů

Volby (přepínače) mohou být dlouhé nebo krátké. Krátké přepínače jsou uvozené jednou pomlčkou - a je možné je spojovat: ls -lisa je volání příkazu ls s volbami l, i, s, a a je ekvivalentní pro zápis ls -l -i -s -a.

Dlouhé (slovní) přepínače jsou uvozené dvěma pomlčkami --. Například ls --all nebo ls --format=single-column.

Speciální parametr -- obvykle znamená konec voleb, tedy že další parametr není přepínač i když začíná pomlčkou, ale například název souboru, jehož jméno začíná pomlčkou.

Příkaz

1
ls -soubor

je totéž jako

1
ls -s -o -u -b -r

ale

1
ls -l -- -soubor

vypíše podrobné informace k souboru -soubor.

Ukázka přebírání parametrů programem

Každý programovací jazyk umožňuje převzít parametry, které mu na příkazové řádce shell předává. Většinou se tak děje přes proměnnou nebo pole ARGV. Dále uvedený příklad je v programovacím jazyku Python.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/usr/bin/env python3
"""Ukázka předávání parametrů příkazové řádky."""
import sys
import getopt

print(f"všechno: {sys.argv}\n")

# funkci getopt řeknu, že povolené přepínače jsou -a -b a přepínač -x má parametr
opts, args = getopt.getopt(sys.argv[1:], "abx:")

print(f"volby: {opts}")
print(f"parametry: {args}\n")
1
2
3
4
5
 ./parametry.py -a -x param ahoj cau
    všechno: ['./parametry.py', '-a', '-x', 'param', 'ahoj', 'cau']

    volby: [('-a', ''), ('-x', 'param')]
    parametry: ['ahoj', 'cau']

Manuálové stránky

Každý příkaz (např. ls nebo mkdir) má svou manuálovou stránku, ve které je popis daného příkazu, jeho syntaktická pravidla a popis voleb a přepínačů. Manuálovou stránku zobrazíme příkazem man.

1
man jmenoprogramu

Například

1
man ls

Příkaz man ve skutečnosti manuálovou stránku pouze najde a předá ji jinému programu, který ji zobrazí. Programu pro zobrazování textových souborů na terminál se říká stránkovač (pager). V našem případě (a doufám, že i na všech jiných rozumně nastavených Linuxových systémech) je stránkovačem program less.

Ovládání programu less (manuálové stránky)

Klávesa Funkce
q ukončí manuálovou stránku
h zobrazí nápovědu
j, k pohyb v nahoru dolů stejně jako pomocí šipek
/vyraz najde první následující výskyt výrazu (řetězce)
n najde další výskyt výrazu
N najde předchozí výskyt výrazu
?vyraz najde poslední předchozí výskyt výrazu (řetězce); význam n a N je přehozen

Výrazem může být obyčejná posloupnost znaků nebo regulární výraz.

Více se dozvíte při stisku klávesy h nebo v manuálové stránce.


Související posty