csh
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 |
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.
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 | edytuj kod]- 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 | edytuj kod]Uwagi
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ Harley Hahn: Harley Hahn's Guide to Unix and Linux. [dostęp 2021-10-25]. (ang.).
- ↑ Tom Christiansen: Csh Programming Considered Harmful. 1995-09-28. [dostęp 2021-10-25]. (ang.).
- ↑ Bruce Barnett: Top Ten Reasons not to use the C shell. 2001-09-22. [dostęp 2021-10-25]. (ang.).
- ↑ 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.).
- ↑ Hamilton C shell(tm) Release Notes. [dostęp 2021-10-25]. (ang.).
- ↑ William Joy: An Introduction to the C shell. [dostęp 2021-10-25].