Unixový shell je program, ktorý poskytuje rozhranie príkazového riadka medzi používateľom (alebo skriptom) a operačným systémom založeným na Unixe. Shell číta príkazy zo vstupu, interpretuje ich a spúšťa príslušné programy alebo interné funkcie. Používa sa interaktívne (príkazy z klávesnice) aj neinteraktívne (súbory so skriptmi alebo presmerovaný vstup).

Základné funkcie shellu

  • Spúšťanie príkazov: shell môže volať nainštalované programy (napr. ls, cp) alebo svoje interné príkazy (built‑ins).
  • Interpretácia skriptov: súbory so zoznamom príkazov umožňujú automatizáciu úloh.
  • Pretok dát a presmerovanie: zápisy medzi programami riadi pomocou rúr (pipes) a presmerovaní (stdin, stdout, stderr).
  • Správa prostredia: nastavovanie premenných prostredia, aliasov a funkcií pre používateľské prostredie.
  • Riadenie úloh: spúšťanie procesov na pozadí, pozastavovanie a obnovovanie úloh (job control).

Interaktívne vs. neprerušiteľné (non‑interactive)

  • Interaktívny shell očakáva vstup od používateľa, poskytuje prompt, históriu príkazov, dokončovanie tabulátorom a často farebné zvýraznenie.
  • Non‑interactive shell vykonáva skripty bez promptu; používa sa pri spúšťaní dávkových úloh alebo pri inicializácii systému.

Najpoužívanejšie shelly

  • sh – pôvodný Bourne shell; často ako kompatibilná skriptovacia vrstva.
  • bash – Bourne Again Shell; bežne predinštalovaný v mnohých Linux distribúciách, bohaté funkcie pre interaktívne používanie aj skriptovanie.
  • csh a tcsh – C Shell a jeho rozšírená verzia s vylepšeniami pre interaktívne použitie.
  • zsh – moderný shell s pokročilým dokončovaním, modulmi a bohatou konfigurovateľnosťou.
  • ksh, fish a ďalšie

Podstatné koncepty

  • stdin, stdout, stderr: štandardné vstupné a výstupné kanály, ktoré umožňujú presmerovanie a prepojenie programov.
  • Rúrky (pipes): posielajú výstup jedného príkazu ako vstup druhému (napr. príkaz1 | príkaz2).
  • Presmerovanie: ukladajú výstup do súboru alebo čítajú vstup zo súboru (>, >>, <, 2> atď.).
  • Builtin príkazy: príkazy implementované samotným shellom (napr. cd, export, alias), ktoré nemusia spúšťať samostatný proces.
  • Premenné a konfigurácia: súbory ako .bashrc, .profile alebo .zshrc upravujú prostredie pri spustení shellu.

Príklady bežných príkazov

  • ls – zobrazenie obsahu adresára
  • cp – kopírovanie súborov
  • man – zobrazenie manuálovej stránky príkazu

Diagnostika systému

Na zistenie informácií o hardvéri alebo o type procesora sa v rôznych unixových systémoch používajú rôzne príkazy. Medzi často používané patria napríklad uname -m, cat /proc/cpuinfo alebo lscpu. Pre výber vhodného príkazu pri riešení problémov alebo pri písaní skriptov môže byť užitočné pozrieť sa na informácie o procesora.

Bezpečnosť a dobré postupy

  • Pri písaní skriptov overujte vstupy a vyhýbajte sa spúšťaniu príkazov s nezabezpečenými argumentmi.
  • Používajte plné cesty alebo overujte PATH pri spúšťaní programov v skriptoch citlivých na bezpečnosť.
  • Zálohujte konfiguračné súbory pred úpravou a dokumentujte zmeny v prostredí používateľa.

Kde sa dozvedieť viac

Pre hĺbkové štúdium slúžia manuálové stránky (man), oficiálna dokumentácia konkrétneho shellu a množstvo učebníc a online zdrojov zameraných na skriptovanie a správu systémov. Pri rozširovaní schopností shellu je užitočné experimentovať v izolovanom prostredí a čítať dokumentáciu k vybranému shellu.