csh

Powłoka systemowa

csh (od ang. C shell) — jedna z historycznych powłok uniksowych. Napisana przez Billa Joya w czasie prac nad Uniksem BSD i upubliczniona w 1978[1]. Składnia języka używanego w csh przypomina język C. Stąd nazwa C shell będąca grą słów. Dosłownie oznacza powłokę [o składni] C, fonetycznie przypomina jednak wymowę sea shell, czyli muszla.

C shell
ilustracja
Autor Bill Joy
Pierwsze wydanie 1978
Aktualna wersja stabilna 6.20.00
Język programowania C
System operacyjny POSIX
Rodzaj Powłoka systemowa
Licencja BSD

Wniosła wiele ulepszeń w stosunku do oryginalnej powłoki Bourne’a ukierunkowanych na interaktywną pracę z systemem, m.in. aliasy i historię poleceń. Z kolei dzięki wewnętrznej ewaluacji wyrażań była szybsza od poprzedniczki w zastosowaniach wsadowych, nie musząc polegać na wywołaniach zewnętrznych trików jak [ – udający element składni a będący faktycznie dowiązaniem do programu test, czy expr zapewniający wsparcie dla operacji arytmetycznych.

Obecnie oryginalna powłoka csh jest rzadko wykorzystywana do pracy interaktywnej. Została wyparta przez rozszerzoną wersję w postaci tcsh oraz nowsze powłoki kompatybilne ze składnią oryginalnego sh jak Korn shell (ksh), bash i zsh.

Jednocześnie choć wprowadziła wiele innowacyjnych rozwiązań do trybu interaktywnego, dosyć powszechnie jest odradzana jako język skryptowy[2][3]. Głównym argumentem za pisaniem skryptów powłoki w języku Bourne shell jest jej dostępność w każdym systemie zgodnym ze specyfikacją Single UNIX Specification, co zapewnia przenośność kodu.

Mimo szeregu innowacji, które z czasem były reimplementowane w innych powłokach, csh doczekało się jedynie 2 klonów (tcsh jest rozwinięciem oryginalnej implementacji i tym samym nie jest uważane za klon): komercyjnej implementacji Allena Holuba dla systemu MS DOS z 1986 roku[4] oraz wersji dla OS/2 z 1988 roku napisanej przez Hamilton Laboratories, przeniesionej w 1992 także na system Windows NT[5].

Lista innowacji edytuj

  • aliasy
  • adresowalna historia poleceń (np. !!, !$)
  • kontrola procesów pozwalająca na ich zastopowanie i przeniesienie w tło
  • notacja ~ jako skrót do katalogu domowego użytkownika. Na klawiaturze terminala ADM-3A używanego przez Joya tylda znajdowała się na przycisku HOME.
  • uzupełnianie nazw obiektów systemu pliku
  • zmienna CDPATH jako rozszerzenie idei zmiennej PATH dla nawigacji w systemie plików[6]

Zobacz też edytuj

Uwagi edytuj

Przypisy edytuj

  1. Harley Hahn: Harley Hahn's Guide to Unix and Linux. [dostęp 2021-10-25]. (ang.).
  2. Tom Christiansen: Csh Programming Considered Harmful. 1995-09-28. [dostęp 2021-10-25]. (ang.).
  3. Bruce Barnett: Top Ten Reasons not to use the C shell. 2001-09-22. [dostęp 2021-10-25]. (ang.).
  4. Allen Holub: On Command: Writing a Unix-Like Shell for MS-DOS. Wyd. Second. M&T Books, Redwood City, CA, 1986–1987. ISBN 0-934375-29-1. (ang.).
  5. Hamilton C shell(tm) Release Notes. [dostęp 2021-10-25]. (ang.).
  6. William Joy: An Introduction to the C shell. [dostęp 2021-10-25].

Linki zewnętrzne edytuj