Съдържание:
- Какво е черупка?
- История и обзор на черупките
- Scripting
- Поглед под капака на командния ред Unix / Linux
Командният ред в Unix и Linux системите вече е много мощен, но черупките са още по-мощен инструмент, отколкото среща окото. Можете да ги персонализирате и да ги превключите към съдържанието на сърцето си, стига да знаете как.
Какво е черупка?
Почти във всяко ръководство за Unix и Linux има стандартната диаграма на обвивка около операционната система, наподобяваща някакъв вид бонбони. Черупката наистина не е нищо друго освен интерфейс между операционната система, включително ядрото, файловата система и различните системни обаждания и потребителя. Дълги години той беше единственият интерактивен потребителски интерфейс, преди графичните потребителски интерфейси да станат често срещани през 80-те години. Графичните потребителски интерфейси също могат да се считат за тип обвивка, тъй като те обслужват много от едни и същи функции: стартиране на програми, конфигуриране на системата и управление на файлове.
Тези скромни текстови интерфейси имат изненадващо количество мощност. Първо, те са напълно разработени езици за програмиране. Преди появата на още по-мощни скриптови езици като Python, скриптове с черупки са били идеални за писане на програми, които не се нуждаят непременно от силата на C. Те все още са полезни за автоматизиране на системните задачи и за бързо прототипиране.
Те също имат редица функции, които улесняват работата и намирането на файлове. Една от най-широко използваните е „wildcarding“ или „globlob“. Почти всички потребители на Unix и Linux са запознати със символа "*", за да съответстват на всеки символ. Това всъщност е работата на черупката. Различните черупки имат още по-мощни опции.
Една от отличителните характеристики на Unix е възможността за пренасочване на вход и изход на програмата. Черупката реализира тази функционалност.
Черупката е просто друга програма, така че е възможно всеки програмист с правилните умения да създаде такава. Имало е няколко големи черупки, които са се появили през годините.
История и обзор на черупките
Въпреки че имаше няколко корпуса на Unix в първите дни на операционната система, първият, който получи голямо признание извън Bell Labs, беше Shell Bourne, кръстен на Стивън Р. Борн. Основната иновация на черупката беше, че поддържа функции за структурирано програмиране, което дава възможност за първи път да се използва обвивката като истински език за програмиране. Толкова е незаменим, че всички съвременни версии на Unix и Linux все още го използват, въпреки че обикновено това е една от по-новите черупки, подражаващи на черупката на Bourne.
Следващата основна обвивка беше C Shell, обикновено съкратено като „csh“. Тази обвивка е разработена в UC Berkeley, превръщайки се в основен компонент на BSD аромата на Unix. Както подсказва името, синтаксисът му е предназначен да прилича на езика за програмиране на C, но той наистина е създаден за интерактивна употреба.
Той включва механизъм за история, който позволява на потребителите да се връщат назад и да повтарят всички команди, които са издали по-рано, без да се налага да въвеждат отново цял ред и подобряват контрола на работата, което прави изпълнението на множество задачи по-лесно. (Не забравяйте, че това беше време, когато повечето хора все още използваха текстови терминали.)
Следващият основен корпус беше Korn Shell, който също излезе от Bell Labs. Черупката е кръстена между другото на Дейвид Корн, а не на групата. Основната иновация на черупката на Korn е въвеждането на редактиране на командния ред, което още повече разширява функционалността на историята. Потребителите могат да се върнат назад и да редактират командите, които са въвели, като използват команди, подобни на редакторите vi или Emacs.
От основните черупки най-популярният от въвеждането му в края на 80-те е Bourne Again Shell, или баш. Тази обвивка, разработена като част от проекта GNU, включва иновациите на C и Korn черупките, като същевременно поддържа съвместимост с черупката Bourne, откъдето идва и името. Това е „стандартната“ обвивка за повечето Linux дистрибуции.
Z Shell (zsh), издаден за първи път през 1990 г., е мечтата на потребителя в командния ред. Не само че има повечето други основни функции, които имат другите черупки, но е безумно адаптивен с много мощни функции. Едно от най-мощните е рекурсивно глобулиране, което позволява на потребителите да съответстват на имена на файлове в поддиректории при издаване на команди, а не на файлове в текущата работна директория. Наистина напредналите потребители могат също да персонализират опциите за завършване, като съвпадат файлове, без да се налага да ги въвеждате напълно. А за дебелите машинописни машини може да коригира и правописа ви. Тази обвивка е толкова усъвършенствана, ръчната й страница е разделена на няколко много дълги раздела.
Scripting
Както беше споменато по-горе, черупките не са просто интерфейси на командния ред, а мощни езици за програмиране. Красотата на скриптовите скриптове е, че можете да използвате един и същ език както в редовна интерактивна употреба, така и в скриптове, което прави кривата на обучение много по-плоска. Съвременните обвивки включват всички обичайни функции на езика за програмиране, включително контрол на потока, функции и променливи. Някои от тях дори имат разширени структури от данни като асоциативни масиви.
Въпреки силата им, програмирането в черупки има няколко клопки. Най-големият проблем е, че е твърде лесно да се пишат скриптове, които зависят от някаква програма, която може да не е в друга система или това зависи от определен вкус на Unix или Linux. Ето защо скриптове с черупки са най-подходящи за програми, за които знаете, че ще се изпълняват само в една система. Ако се опитвате да изградите нещо преносимо и не искате да пишете програма на C, най-добрият ви залог е да пишете на друг скриптов език като Perl или Python.
Поглед под капака на командния ред Unix / Linux
Има повече мощност, дебнеща под повърхността на вашия команден ред Unix / Linux. Тази статия може да ви вдъхнови да надникнете под капака на любимата си черупка, за да видите какво наистина можете да направите. Ако искате да влезете в скриптове на черупките, може да искате да разгледате книгите Unix Power Tools и Learning the Bash Shell. Оригиналната хартия на Стивън Р. Борн върху неговата черупка също служи като добро въведение в света на сценариите на черупките, дори и да е стар.
