Будинки Аудіо Оболонки Unix / linux 101

Оболонки Unix / linux 101

Зміст:

Anonim

Командний рядок у системах Unix та Linux вже дуже потужний, але оболонки - ще більш потужний інструмент, ніж очі. Ви можете налаштувати їх і переключити їх на зміст серця, доки ви вмієте.

Що таке оболонка?

Майже в кожному посібнику для Unix та Linux є стандартна схема оболонки, що обертається навколо операційної системи, що нагадує якусь цукерку. Оболонка насправді є не що інше, як інтерфейс між операційною системою, включаючи ядро, файлову систему та різні системні виклики та користувача. Протягом багатьох років це був єдиний інтерактивний користувальницький інтерфейс до того, як графічні інтерфейси користувачів стали поширеними у 1980-х роках. Графічні користувальницькі інтерфейси також можна вважати типом оболонки, оскільки вони виконують багато однакових функцій: запуск програм, налаштування системи та управління файлами.


Ці скромні текстові інтерфейси мають дивовижну кількість потужності. По-перше, вони є повноцінними мовами програмування. До появи ще більш потужних мов скриптів, таких як Python, сценарії оболонки були ідеальними для написання програм, які не обов'язково потребували сили C. Вони все ще корисні для автоматизації системних завдань і для швидкого прототипування.


Вони також мають ряд функцій, які полегшують роботу з пошуком файлів. Одним з найбільш широко використовуваних є "wildcarding" або "globing". Практично всі користувачі Unix та Linux знайомі зі знаком "*", щоб відповідати будь-якому символу. Це насправді робота шкаралупи. У різних оболонок є ще більш потужні варіанти.


Однією з відмінних особливостей Unix є можливість перенаправлення вводу та виведення програми. Оболонка реалізує цю функціональність.


Оболонка - це лише інша програма, тому створити її можна будь-якому програмісту з правильними навичками. Існувало кілька основних снарядів, які з’явилися за ці роки.

Історія та перелік раковин

Незважаючи на те, що в перші дні операційної системи було декілька оболонок Unix, першим, який отримав головне визнання поза лабораторіями Bell, була оболонка Борна, названа на честь Стівена Р. Борна. Основним нововведенням оболонки було те, що він підтримував функції для структурованого програмування, що дало можливість вперше використовувати оболонку як справжню мову програмування. Він настільки незамінний, що всі сучасні версії Unix та Linux все ще використовують його, хоча зазвичай це одна з новіших оболонок, що імітують оболонку Bourne.


Наступною основною оболонкою була оболонка C, яку зазвичай скорочують як "csh". Ця оболонка була розроблена в UC Berkeley і стала головним компонентом BSD-аромату Unix. Як випливає з назви, його синтаксис розроблений так, щоб нагадувати мову програмування C, але він був дійсно розроблений для інтерактивного використання.


Він включав механізм історії, який дозволяв користувачам повертатися та повторювати будь-які команди, які вони видали раніше, не потребуючи повторного введення цілого рядка та покращення контролю за роботою, що полегшило виконання декількох завдань. (Пам'ятайте, це був час, коли більшість людей все ще використовували текстові термінали.)


Наступною основною оболонкою була Корнова оболонка, яка також вийшла з лабораторій Белл. Шкарлупа названа на честь Девіда Корна, а не група, до речі. Основна інновація оболонки Korn - це введення редагування командного рядка, що ще більше розширює функціонал історії. Користувачі можуть повертатися та редагувати введені ними команди за допомогою команд, аналогічних редакторам vi або Emacs.


З основних оболонок найпопулярнішим є панцир Bourne Again, або баш, з моменту його введення в кінці 80-х. Ця оболонка, розроблена як частина проекту GNU, включає інновації оболонок C і Korn, зберігаючи сумісність із оболонкою Bourne, звідси і назва. Це "стандартна" оболонка для більшості дистрибутивів Linux.


Оболонка Z (zsh), вперше випущена в 1990 році, - мрія користувача командного рядка. Він не тільки має більшість інших основних особливостей, які мають інші оболонки, але божевільно налаштовується безліччю потужних функцій. Одним з найпотужніших є рекурсивна глобалізація, яка дозволяє користувачам співставляти назви файлів у підкаталогах при видачі команд, а не файлів у поточному робочому каталозі. Дійсно просунуті користувачі також можуть налаштувати параметри завершення, збігаючи файли без необхідності їх друку. А для жирних машинописницьких машинописів це також може виправити ваш правопис. Ця оболонка настільки вдосконалена, її сторінку керівництва була розділена на кілька дуже довгих розділів.

Сценарій

Як було сказано раніше, оболонки - це не просто інтерфейси командного рядка, а потужні мови програмування. Краса сценаріїв оболонок полягає в тому, що ви можете використовувати ту саму мову як у регулярному інтерактивному використанні, так і в сценаріях, що робить криву навчання набагато більш простою. Сучасні оболонки включають усі звичні функції мови програмування, включаючи контроль потоку, функції та змінні. Деякі з них навіть мають розширені структури даних, такі як асоціативні масиви.


Незважаючи на їх потужність, програмування в оболонках має кілька підводних каменів. Найбільша проблема полягає в тому, що писати сценарії, які залежать від якоїсь програми, яка може не бути в іншій системі, або це залежить від певного аромату Unix чи Linux, занадто просто. Тому сценарії оболонки найкраще підходять для програм, які ви знаєте, що запускаються лише в одній системі. Якщо ви намагаєтеся створити щось портативне і не хочете писати програму на C, найкраще ставитись на іншу мову сценаріїв, наприклад Perl чи Python.

Заглянути під кришку командного рядка Unix / Linux

Під поверхнею вашого командного рядка Unix / Linux є більше потужності. Ця стаття може надихнути вас заглянути під кришку улюбленої оболонки, щоб побачити, що ви дійсно можете зробити. Якщо ви хочете потрапити в сценарій оболонок, ви можете перевірити книги Unix Power Tools та Learning the Bash Shell. Оригінальний папір Стівена Р. Борна на його оболонці також служить гарним введенням у світ сценаріїв оболонок, навіть якщо він старий.

Оболонки Unix / linux 101