TCSH je Unixový shell založený na kompatibilitě s příkazovým procesorem C shell (csh). Je to v podstatě C shell s programovatelným dokončováním příkazové řádky, editací příkazové řádky a několika dalšími funkcemi.

Tcsh
Aktuální verze6.24.14 (26. listopadu 2024)
Operační systémUN*X
Vyvíjeno vC
Typ softwaruunixový shell a svobodný software
LicenceBSD licence
Webwww.tcsh.org
Některá data mohou pocházet z datové položky.

Historie

editovat

Písmeno T ve zkratce tcsh vzešlo z T ze slova TENEX, operačního systému, který inspiroval Kena Greera na univerzitě Carnegie Mellon svou funkcí automatického doplňování příkazů k vytvoření tcsh. Greer začal pracovat na svém kódu k implementaci doplňování jmen souborů ve stylu operačního systému TENEX v září 1975 a finální spojení s C shell provedl v prosinci 1981. Doplňování příkazů přidal v září 1983 Mike Ellis v A.I. laboratořích Fairchild. 3. října 1983 Greer publikoval zdrojový kód v diskuzní skupině net.sources.
Paul Placeway z Ohijské státní univerzity pokračoval v práci na něm v osmdesátých letech, a od té doby je udržován početnou skupinou lidí. Wilfredo Sanchez, bývalý vedoucí inženýr Mac OS X, pracoval na tcsh na začátku devadesátých let na MIT

Významné funkce

editovat
  • Historie příkazů
    • Vestavěná historie příkazů zobrazuje předešlé příkazy
    • Použití šipek nahoru a dolů na příkazové řádce umožňuje uživateli vybrat příkaz z historie pro jeho editaci nebo opětovné vykonání
    • Vyvolání předchozích příkazů pomocí příkazů historie
      • !! provede poslední vykonaný příkaz
      • !n provode n-tý vykonaný příkaz
      • !-n provede příkaz který byl proveden před n příkazy
      • !string provede poslední použitý příkaz který začíná řetězcem string
      • !?string provede poslední použitý příkaz který obsahuje řetězec string'
    • Použití historie při vytváření nových příkazů
      • !* – odkazuje na všechny argumenty z předchozího příkazu
      • !$ – odkazuje na poslední argument předchozího příkazu
      • !^ – odkazuje na první argument předchozího příkazu
      • !:n – odkazuje na n-tý argument předchozího příkazu
      • !:m-n – odkazuje na M-tý až N-tý argument předchozího příkazu
      • !:n-$ – Odkazuje na všechny argumenty od N-tého až po poslední z předchozího příkazu
  • Editace příkazové řádky
  • Automatické dokončování názvů souborů a proměnných v příkazové řádce
  • Aliasy (možnost definovat alias příkazu pro automatický výběr argumentů a použít ho pro příkaz na který odkazuje. Viz příklad níže). Tcsh je jediný příkazový shell který tuto funkci podporuje.
    • \!# – selektor pro všechny argumenty, včetně aliasu samotného; argument nemusí být dodán.
    • \!* – selektor pro všechny argumenty, s výjimkou samotného aliasu; argument nemusí být dodán.
    • \!$ – selektor pro poslední argument; argument nemusí být dodán, ale pokud není dodán, pak jméno aliasu je považováno za poslední argument
    • \!^ – selektor pro první argument; argument musí být dodán.
    • \!:n – selektor pro n-tý argument; argument musí být dodán; n=0 odkazuje na jméno aliasu/příkazu .
    • \!:m-n – selektor pro m-tý až n-tý argument; argumenty musejí být dodány.
    • \!:n-$ – selektor pro všechny argumenty od n-tého až po poslední; musí být dodán alespoň jeden argument.
#Alias příkazu 'cd'. Pokud změníte složku, je automaticky vypsán její obsah.
alias cd 'cd \!* && ls'
  • Zástupné symboly
if ("$input" =~ [0-9]*) then
  echo "input začíná číslem"
else
  echo "input nezačíná číslem"
endif
  • Řízení úloh (job control)
  • Vestavěný příkaz where. Pracuje jako příkaz which ale zobrazuje všechny umístění cílového příkazu ve složce specifikované v $PATH, nikoliv pouze ten který bude použit.

Nasazení

editovat

První verze systému Mac OS X byly dodávány s tcsh jako výchozím shellem, ale od verze 10.3 je pro nové účty výchozí bash (tcsh je stále poskytován a upgrade OS nemění shell žádného existujícího účtu). Tcsh je výchozí shell roota pro systém FreeBSD (výchozí uživatelský shell je založen na POSIX) a jeho potomky, jako jsou DragonFly BSD a DesktopBSD.

Reference

editovat

V tomto článku byl použit překlad textu z článku tcsh na anglické Wikipedii.