C shell

C shell (csh) je unixový shell vyvinutý Billem Joyem pro BSD Unix.

C shell
VývojářBill Joy
Operační systémBSD
Vyvíjeno vC
Typ softwaruunixový shell, programovací jazyk a command line interface language
Licence3-clause BSD License
Některá data mohou pocházet z datové položky.

Byl původně odvozen z šestého vydání Unixu /bin/sh (kterým byl Thompson shell), předchůdce Bourne shell. Jeho syntaxe je silně ovlivněná programovacím jazykem C (odtud pochází název shellu). C shell přidal mnoho vylepšení oproti Bourne shell, jako například aliasy a historii příkazů.

V současné době není původní C shell v Unixu široce využíván; byl nahrazen jinými (částečně kompatibilními) shelly, jako je Tenex C shell (tcsh). Nezávisle vyvinutý a zmodernizovaný C shell, vytvořený Nicolem Hamiltonem, také přežil ve Windows ve formě Hamilton C shell.

Vlastnosti

Zástupné znaky

Zástupné znaky slouží k usnadnění zadávání argumentů. Jejich použití je zcela stejné jako u shellu standardního:

  • * – vyhoví libovolný řetězec, př. a* → a, ab
  • ? – vyhoví jeden libovolný znak, př. a? → aa, ab, ac
  • [abc] – vyhoví libovolný znak z uvedených znaků, př. a[ab] → aa, ab
  • \ – zbavuje následující znak jeho speciálního významu

Důležité je, že soubory se jmény začínající tečkou jsou zpracovány jinak. Je to proto, aby při použití zástupných znaků nemohly být omylem postiženy soubory . (což je aktuální adresář) nebo .. (nadřazený adresář) ani další soubory začínající tečkou.

Přesměrování vstupu a výstupu příkazu

Standardní vstup/výstup může být přesměrován do souboru symboly:

  • < soubor – vstupu je přiřazen soubor
  • > soubor – výstupu je přiřazen soubor
  • >> soubor – výstup je přiřazen na konec souboru
  • >& soubor – výstup a chybový výstup jsou přesměrovány do souboru
  • >>& soubor – výstup a chybový výstup jsou připojeny na konec souboru

Výhody

Výhodou C shellu je, že umožňuje chránit soubory před nechtěným přepsáním při špatném přesměrování výstupu. Další výhodou je, že pokud máme nastavenou proměnnou noclobber, tak nám C shell odmítne přesměrovat výstup příkazu do již existujícího souboru.

Práce na popředí a pozadí

Máme-li zadán jeden nebo více příkazů na příkazovém řádku, C shell z nich vytvoří jednotku zvanou job. Pokud je příkazový řádek ukončen znakem &, je job spuštěn na pozadí. Job spuštěný na pozadí probíhá zároveň s jobem prováděným na popředí. Při spouštění jobu na pozadí vrací C shell číslo jobu (je zobrazeno v hranatých závorkách) a identifikační čísla procesů, z nichž je job složen.

Proměnné

Hodnotou proměnné v C shellu je řetězec. Přiřazení hodnoty proměnné se provádí příkazem set. Samotný příkaz set bez argumentů vypíše hodnoty všech definovaných proměnných, které C shell používá ke své práci.

Přes proměnnou argv má autor scénáře přístup k jednotlivým argumentům – pozičním parametrům dané kopie C shellu. Proměnná cwd je absolutní jméno aktuálního adresáře. home obsahuje absolutní jméno domovského adresáře. V proměnné path hledá C shell příkazové soubory. prompt obsahuje řetězec, kterým dává C shellu výzvu k zadání příkazu. Ve status najdeme stavový příznak vrácený posledním skončeným programem. term označuje typ terminálu, ze kterého uživatel pracuje. user je jméno uživatele přihlašujícího se do systému.

Historie

C shell je schopný zapamatovat si několik předcházejících příkazových řádků, které uživatel zadal, a tedy lze se k těmto příkazům vrátit nebo je upravit a použít je v pozměněné podobě. Počet příkazových řádků je dán obsahem proměnné history (obvykle je nastaven na hodnotu 10).

Související články

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.