Тхомпсон шеллы – Unix жүйесіндегі алғашқы интерпретатор. 1971 ж. Кен Томпсон жасаған, қарапайым, бірақ инновациялық құрал. Басқару операторлары бөлек командалар ретінде енгізілген.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Unix командалық интерпретаторы
Unix command interpreter
Томпсон қабығы – 1971 жылы Unix-тің алғашқы нұсқасында пайда болған және Кен Томпсон жазған алғашқы Unix қабығы. Бұл скрипттерді қолдануға арналмаған, қарапайым командалық интерпретатор болды, бірақ осыған қарамастан командалық желі интерфейсіне бірнеше инновациялық мүмкіндіктерді енгізіп, кейінгі Unix қабықшаларының дамуына ықпал етті.
The Thompson shell was the first Unix shell, introduced in the first version of Unix in 1971, and was written by Ken Thompson. It was a simple command interpreter, not designed for scripting, but nonetheless introduced several innovative features to the command line interface and led to the development of the later Unix shells.
Дизайн
Shell-дің дизайны қасақана минималистік болды; тіпті бағдарлама ағынын басқару үшін қажетті if және goto операторлары жеке командалар ретінде іске асырылды. goto ерекше тәсілмен іске асырылады, себебі ол shell-ден бөлек. "LABEL" дегенге секіру сұралысы келгенде, ол (назарға алынбайды) деген жол үшін ағымдағы команда файлында іздейді, содан кейін тоқтатылады. Shell келесі жолды оқуға тырысқанда, қайта орналастырылған файл дескрипторы оны белгіленген жерге бағыттайды. Томпсон shell-інде стандартты кіріс және шығыс (0 және 1) файл дескрипторларынан басқа, қосымша файл дескрипторларын қайта бағыттау жоқ. Stderr-ді қайта бағыттау (файл дескрипторы 2) үшін де сыртқы бағдарламалық қоршау қажет. Shell globbing-ті қолдайды, бірақ оны аргументтерді алмастыратын және сұралған команданы шақыратын командаға жүктеу арқылы іске асырады. Томпсон shell-інің позициялық параметрлері бар, бірақ аталған айнымалылары жоқ және сыртқы ортаның айнымалыларына қол жеткізу мүмкіндігі де жоқ. Ол Борн shell-іне ұқсас, фондық командаларды құруды түсінеді. Ол цитаталарды және кері қисық сызықтан шығаруды ұсынады, бірақ жалғыз цитаталар Борн shell-інен өзгеше жұмыс істейді.
The shell's design was intentionally minimalistic; even the if and goto statements, essential for control of program flow, were implemented as separate commands. goto is implemented in an interesting way, as it is separate from the shell. When asked to jump to "LABEL", it seeks the current command file for a line that says (recall that is simply ignored), then exits. When the shell tries to read a next line, the repositioned file descriptor will direct it to the labelled location. There is no redirection of additional file descriptors other than standard input and output (0 and 1) in Thompson shell. Redirection of stderr (file descriptor 2) also requires an external program wrapper,
The shell supports globbing, but actually implements it by deferring it to a command that replaces the arguments and calls the requested command. Thompson shell has positional parameters, but no named variables nor access to environmental variables. It understands the creation of background commands with , similar to Bourne shell. It offers quoting and backslash escapes, though the single quotes work differently from Bourne shell.
Төмендеу және ауыстыру
Қарапайымдылығының нәтижесінде, 1975 жылы 6-шы Unix нұсқасы жарық көрген кезде Томпсон қабығының көптеген маңызды бағдарламалау міндеттері үшін жеткіліксіз екені анық болды. Осы кезде Programmer's Workbench UNIX таратушыларының әзірлеушілері, оның ішінде Джон Маши, Томпсон қабығын бағдарламалауға ыңғайлы ету үшін өзгертуге кірісті. Нәтижесінде, PWB қабығы немесе Маши қабығы деп аталған жаңа қабық, ағын басқарудың жетілдірілген механизмдерін және қабық айнымалыларын енгізді, бірақ Томпсон қабығымен үйлесімді болу қажеттілігімен шектелді. Соңында, Томпсон қабығы 7-ші Unix нұсқасындағы Bourne қабығы және 1979 жылы жарық көрген 2BSD-дегі C қабығымен ауыстырылды. Қазіргі заманғы Unix және Unix-қа ұқсас жүйелердің барлығы дерлік V7 және 2BSD-ден тарағандықтан, Томпсон қабығы көбінесе қолданылмайды. Дегенмен, ол бірнеше көне Unix бастапқы кодтарының бөлігі ретінде ашық код ретінде қол жетімді және тарихи экспонат ретінде заманауи Unix жүйелеріне көшірілген.
As a result of the simplistic design, by the 1975 release of Version 6 Unix, it was becoming clear that the Thompson shell was inadequate for most serious programming tasks. At this time, the developers of the Programmer's Workbench UNIX distribution, most notably John Mashey, began modifying the Thompson shell to make it more suitable for programming. The result, known as the PWB shell or the Mashey shell, included more advanced flow control mechanisms and introduced shell variables, but remained limited by the necessity to remain compatible with the Thompson shell. Finally, the Thompson shell was replaced as the main Unix shell by the Bourne shell in Version 7 Unix and the C shell in 2BSD, both released in 1979. Since virtually all modern Unix and Unix like systems are descended from V7 and 2BSD, the Thompson shell is generally no longer used. It is, however, available as open source as part of several Ancient Unix source distributions, and has been ported to modern Unices as a historical exhibit.