Unix / Linux Shells 101

Автор: Eugene Taylor
Дата создания: 11 Август 2021
Дата обновления: 22 Июнь 2024
Anonim
Unix Shell Crash Course || Unix Shell Tutorial for Beginners
Видео: Unix Shell Crash Course || Unix Shell Tutorial for Beginners

Содержание



Источник: Томаш Бидерманн / Dreamstime.com

вынос:

Оболочки Unix и Linux очень мощные и чрезвычайно настраиваемые.

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

Что такое оболочка?

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

Эти скромные интерфейсы обладают удивительным количеством энергии. Во-первых, это полноценные языки программирования. До появления еще более мощных языков сценариев, таких как Python, сценарии оболочки были идеальными для написания программ, которые не обязательно нуждаются в мощности C. Они по-прежнему полезны для автоматизации системных задач и для быстрого прототипирования.

Они также имеют ряд функций, которые облегчают работу с файлами и их поиск. Одним из наиболее широко используемых является «подстановочный знак» или «глобализация». Почти все пользователи Unix и Linux знакомы с подстановочными знаками «*» для соответствия любому символу. Это на самом деле работа оболочки. У разных оболочек есть еще более мощные опции.

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

Оболочка - это просто другая программа, поэтому любой программист, обладающий необходимыми навыками, может ее создать. Там было несколько крупных оболочек, которые появились за эти годы.

История и сводка снарядов

Хотя в первые годы существования операционной системы было несколько оболочек Unix, первым, кто получил широкое признание за пределами Bell Labs, была Bourne Shell, названная в честь Стивена Р. Борна. Основным нововведением оболочки было то, что она поддерживала функции для структурированного программирования, что впервые позволило использовать оболочку в качестве реального языка программирования. Это так необходимо, что все современные версии Unix и Linux все еще используют его, хотя обычно это одна из новых оболочек, эмулирующих оболочку Bourne.

Следующей основной оболочкой была C Shell, обычно сокращенно обозначаемая как «csh». Эта оболочка была разработана в Калифорнийском университете в Беркли и стала основным компонентом BSD-версии Unix. Как следует из названия, его синтаксис разработан так, чтобы напоминать язык программирования Си, но он действительно предназначен для интерактивного использования.

Он включал механизм истории, который позволял пользователям возвращаться и повторять любые команды, которые они выдавали ранее, без необходимости перепечатывать всю строку, и улучшал контроль заданий, что облегчало выполнение нескольких задач. (Помните, это было время, когда большинство людей все еще использовали терминалы на основе.)

Следующей крупной оболочкой была Korn Shell, которая также вышла из Bell Labs. Оболочка была названа в честь Дэвида Корна, а не группы, кстати. Основное нововведение оболочки Korn - это редактирование из командной строки, еще более расширяющее функциональность истории. Пользователи могут вернуться и отредактировать введенные ими команды, используя команды, аналогичные редакторам vi или Emacs.

Из основных оболочек оболочка Bourne Again Shell, или bash, является самой популярной с момента ее появления в конце 80-х годов. Эта оболочка, разработанная в рамках проекта GNU, включает в себя инновации оболочек C и Korn, сохраняя совместимость с оболочкой Bourne, отсюда и название. Это «стандартная» оболочка в большинстве дистрибутивов Linux.

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

Scripting

Как упоминалось ранее, оболочки - это не просто интерфейсы командной строки, а мощные языки программирования. Прелесть сценариев оболочки заключается в том, что вы можете использовать один и тот же язык как при обычном интерактивном использовании, так и в сценариях, что делает кривую обучения намного более плоской. Современные оболочки включают в себя все обычные функции языка программирования, включая управление потоком, функции и переменные. У некоторых из них даже есть продвинутые структуры данных, такие как ассоциативные массивы.

Несмотря на свою мощь, программирование в оболочках имеет несколько подводных камней. Самая большая проблема заключается в том, что слишком легко писать сценарии, которые зависят от какой-либо программы, которой может не быть в другой системе, или которая зависит от конкретной разновидности Unix или Linux. Вот почему сценарии оболочки лучше всего подходят для программ, которые, как вы знаете, будут запускаться только в одной системе. Если вы пытаетесь создать что-то переносимое и не хотите писать программу на C, лучше всего написать на другом языке сценариев, таком как Perl или Python.

Взгляд под капот командной строки Unix / Linux

Под поверхностью командной строки Unix / Linux скрывается больше энергии. Эта статья может вдохновить вас взглянуть под капот вашей любимой оболочки, чтобы увидеть, что вы действительно можете сделать. Если вы хотите заняться созданием сценариев в оболочке, вы можете почитать книги «Инструменты для Unix» и «Изучение оболочки Bash». Оригинальная статья Стивена Р. Борнеса о его оболочке также служит хорошим введением в мир сценариев оболочки, даже если он старый.