Сценарии оболочки в Linux - компьютеры в целом понимают язык 0 и 1, который известен как двоичный язык. Несколько десятилетий назад люди писали программы и приложения, например калькуляторы, на бинарных языках. Но это было не красиво. Представь! Вы хотите рассчитать 73 + 96, как бы вы написали? Вы должны были бы скорее вычислить двоичное целое число для 73 и 96, а затем добавить их. Человек должен быть довольно глупым, чтобы сделать это. Можно было бы рассчитать 73 и 96 на бумаге и двигаться дальше. Но это для меньшей части. Что делать, если вам нужно вычислить что-то вроде (19273/23 * (2967 3)). Я бы сказал сейчас, что это довольно интенсивно.
Таким образом, обычный человек, который учится кодировать все на двоичном языке, не имеет смысла. Это главная причина, почему компьютеры не были популярны в 70-х и 80-х годах. Но позже, еще до того, как была разработана Windows, люди начали разрабатывать ядра и тому подобные вещи, которые были основной частью операционной системы. Ядра раньше понимали понятный человеку формат конкретной программы, а затем преобразовывали его в машинный код. И именно здесь появились языки программирования, которые изменили всю эпоху компьютерного мира. Приложения создавались на C и C ++, а затем на Java, Python, Ruby и Perl.
На данный момент существует более 50 языков программирования. И это по крайней мере те, о которых я знаю. Не говоря уже о том, что существуют другие языки программирования, которые даже сложнее понять, чем машинный код. Я имею в виду такие примеры, как программирование Chicken и Malbolge. Это серьезные неприятные вещи, с которыми приходится иметь дело.
Программирование оболочки… .errr… Сценарии?
Теперь вы можете задаться вопросом, почему я не упомянул выше программирование Shell вместе с другими языками программирования. Основная причина в том, что сама Shell не является языком программирования. Это язык сценариев. Оболочка - это просто пользовательская интерактивная программа, которая интерпретирует любой ввод пользователя и выдает результат при условии, что команда действительна. Затем он передает программу ядру для ее выполнения. Оболочка не является частью ядра, но вместо этого она использует ядро для выполнения своей работы и создания файлов.
Типы сценариев оболочки
Теперь, в отличие от C, C ++ или Java, есть несколько других типов оболочек, которые можно использовать для сценариев оболочки. Ниже приведены четыре типа оболочки, доступные до даты:
Нет . | Тип оболочки | Описание |
1. | Bash aka Bourne Again Shell | Это самая распространенная оболочка, доступная во всех системах на основе Linux и debian. Это с открытым исходным кодом и бесплатное программное обеспечение. |
2. | CSH или C Shell | Эта программа сценариев Shell использует синтаксис оболочки программирования C и почти аналогична C. |
3. | KSH или Korn Shell | Korn - это основанная на Unix программа сценариев Shell, изначально основанная на сценариях Bash Shell. Эта оболочка достаточно продвинута и является языком программирования высокого уровня. |
4. | Tcsh | Не существует конкретной полной формы TCSH. Это так, как есть. TCSH - это усовершенствованная версия оболочки Berkeley Unix C. Он снова поддерживает синтаксис в стиле C |
На сегодняшний день нас не интересуют все вышеперечисленные оболочки здесь. Нас интересует только оболочка Bash, так как сегодня это наиболее часто используемая оболочка в мире.
Bash Shell
Программа сценариев Bash Shell - это язык сценариев высокого уровня, похожий на язык Python. Но если у вас уже есть опыт работы с Python, то на самом деле вы обнаружите, что Bash Shell Scripting гораздо проще, чем любой другой язык сценариев. На bash можно писать скрипты гораздо быстрее, чем на C, C ++, Java или Python. Терминал по умолчанию в сегодняшней среде Linux, например, для: - Ubuntu, Linux Mint Cinnamon / Rafaela, Fedora, Arch Linux или любой другой среды Debian состоит из Bash в качестве оболочки по умолчанию. Однако вы можете проверить все оболочки, присутствующие в вашей системе, набрав в Терминале по умолчанию следующее: -
$ cat / etc / shells |
(Примечание. Знак доллара в начале используется для обозначения терминала.)
Синтаксис 'cat' используется для чтения текстовых файлов. Типы программ сценариев оболочки в среде Linux, Unix или Debian хранятся в файле оболочки в каталоге etc. Каждая оболочка имеет свой уникальный набор синтаксисов и собственный набор встроенных функций. DOS или Windows также имеют свою собственную оболочку, известную как печально известная «командная строка» или «powershell», начиная с Windows 8.1 и выше, но она все еще не так мощна, как bash. Синтаксис cat предоставит вам список оболочек, доступных в системе, однако, чтобы найти оболочку по умолчанию или проверить текущую с помощью оболочки, можно использовать следующий синтаксис в терминале сценариев оболочки: -
$ echo $ SHELL |
Синтаксис 'echo' используется для печати любого оператора. Здесь SHELL - это переменная, назначенная для печати текущей оболочки. Знак доллара после «эха» используется для представления переменной в сценариях оболочки.
Рекомендуемые курсы
- Сертификационный курс по Java Hibernate
- Весенний курс Java
- WordPress Интернет Обучение
- Рубиновое Обучение
Сценарии оболочки
Итак, теперь вы знаете, что такое оболочка, давайте посмотрим на сценарии оболочки и почему она так называется. Shell Scripting - это не что иное, как последовательность команд в простом текстовом файле, заканчивающемся расширением «.sh». «.Sh» определяет, что это исполняемый файл оболочки. После написания сценария оболочки потребуется изменить разрешение на выполнение с помощью функции chmod. По умолчанию любая вновь созданная оболочка не является исполняемой в среде UNIX или Linux, если только разрешения не изменены специально. Shell Scripting почти аналогичен пакетному программированию для Windows, но отличие состоит в том, что Shell Scripting является более мощным и обеспечивает гораздо более качественную интерактивную среду наряду с дополнениями вкладок. Нужно использовать хороший текстовый редактор, чтобы написать скрипт оболочки. Несколько лучших, о которых я знаю, это Vim, Gedit и Leafpad.
В отличие от других языков программирования, сценарии оболочки быстрее пишутся и выполняются. Вам не нужно загружать какие-либо конкретные пакеты или зависимости для выполнения. Они могут использоваться не только системным администратором, но и обычным человеком для ежедневного выполнения автоматических сценариев. Ниже приведен простой пример сценария, написанного здесь.
#! / bin / Баш echo -e «Добро пожаловать в первую программу оболочки. \ n» echo -e «Напишите здесь что-нибудь, и эта программа напечатает то же самое. \ n» # запрашивает ввод для чтения ввода # читает ввод от пользователя echo «Вы введено: $ input ” выход 0 |
Теперь позвольте мне объяснить все параметры в приведенном выше коде. Прежде всего, напишите приведенный выше код в текстовый файл в формате «как есть» и сохраните его с расширением, заканчивающимся на «.sh». Например, назовите файл как «main_program.sh». Убедитесь, что это не main_program.sh.txt. Большинство начинающих, как правило, делают то же самое, и тогда это не исполняется. Как только приведенный выше код скопирован, измените его разрешения, используя следующий синтаксис в терминале: -
$ chmod + x main_program.sh ИЛИ $ chmod 755 main_program.sh |
Не стесняйтесь использовать любую из вышеперечисленных команд, поскольку обе они выполняют одно и то же. В современных программах сценариев оболочки bash '755' заменяется на '+ x'; так что не имеет значения, какой из них вы используете на самом деле. После изменения разрешений введите следующее, чтобы выполнить его.
$. / main_program.sh |
Точка и косая черта используются для идентификации и выполнения сценариев оболочки. Как только вы выполните вышеупомянутый скрипт, он напечатает первый эхо-оператор, а затем попросит вас ввести что-то. Как только вы введете его, он распечатает вам то же самое и выйдет из интерпретатора. Итак, позвольте мне объяснить все синтаксисы выше. '#! / Bin / bash' используется, чтобы сообщить интерпретатору, что это скрипт bash, а программа сценариев оболочки Bash находится в каталоге bin. Команда 'echo' используется для печати любого оператора, а флаг '-e' используется, чтобы указать оболочке, что будет новая строка, обозначенная как 'slash n или \ n', или табуляция 'slash t или \ т 'или тому подобное внутри отраженного утверждения. Хеш-часть во второй строке используется для идентификации комментария в скрипте bash. Все, что вы напишите после хэша, будет закомментировано и не будет выполнено. Но это не относится к '#! / Bin / bash' в первой строке. Вот как скрипт должен работать. Синтаксис read используется для чтения любого ввода от пользователя. И «вход», который я упомянул после синтаксиса «чтение», - это переменная, в которой хранится ввод пользователя. Можно использовать любую переменную вместо ввода. Во второй последней строке $ input используется для идентификации себя в качестве переменной и вывода сохраненного ввода внутри нее. Наконец, команда выхода используется для выхода из интерпретатора с чистым нулем выхода.
Неинтерактивные сценарии
Теперь приведенный выше пример довольно прост. Но есть встроенные модули, которые вы можете использовать вместо того, чтобы давать все входы самостоятельно. Ниже приведен фрагмент кода, который выводит имя пользователя, который в данный момент вошел в систему, текущее время, календарную дату и количество входов в систему: -
#! / bin / Баш # Этот скрипт выведет текущую информацию о пользователях, вошедших в систему, количество вошедших в систему пользователей, дату, время и календарь. echo «Здравствуйте, $ USER» echo «Сегодняшняя дата и время -` date` » echo« Количество пользователей, вошедших в систему: `who | wc -l` ”
эхо «Календарь» кал выход 0 |
Выполните этот скрипт после изменения прав доступа к файлу выше. Теперь вам может быть интересно, что в предыдущем скрипте мы фактически вводили ввод, а затем он возвращал ввод, используя переменную th. Но здесь мы не предоставили никаких входных данных внутри переменной '$ USER', тогда почему она печатает точного пользователя. Основная причина в том, что эти вещи уже настроены в системе. Помните, я говорил вам о $ SHELL ранее в начале, как он определен по умолчанию? Да, похожий случай с $ USER здесь. Что касается даты, если вы просто введете «date» без каких-либо кавычек в терминале, она выведет точную дату и время. Я просто использовал одинарную кавычку (`), чтобы идентифицировать себя как синтаксис, а не как часть повторяющегося оператора. Одинарная кавычка (`) будет выполнять любой синтаксис, напечатанный внутри нее, будь то в выражении или где-либо еще Что касается части количества пользователей, команда 'who' используется для проверки текущих пользователей, вошедших в систему, а также зарегистрированных процессов и даты и времени, когда она была запущена. Но что касается вышеприведенной команды, я фактически усек ее, чтобы просто вывести число пользователей, вошедших в нее, используя команду 'wc -l'. Строка (|) или то, что она широко известна как труба, используется для объединения двух команд. Труба на самом деле означает гораздо больше, но я не буду вдаваться в подробности. И, наконец, я распечатал календарь, используя встроенную команду «cal» для распечатки текущей даты в календаре.
Нулевой выход
Нулевой выход - это то, что я не объяснил ни в одной из вышеперечисленных программ. Основная причина в том, что «Exit Zero» имеет гораздо большую серьезность, чем любой из приведенных выше синтаксисов в Shell Scripting. По умолчанию всякий раз, когда вы выполняете сценарий в дистрибутиве Linux или Unix, он возвращает два типа значений или, более конкретно, состояние выхода, чтобы проверить, успешно ли выполнено сценарий оболочки или нет. Если он возвращает значение как Ноль, то выполнение было успешным, иначе оно либо не было выполнено, либо во время выполнения произошла ошибка. Таким образом, ввод 'exit 0' в конце любого скрипта проверяет статус выполнения скрипта.
Все, что я рассмотрел здесь, является лишь наименее базовой частью сценариев оболочки в дистрибутиве Linux. Выходная нулевая часть и канал играют важную роль при выполнении нескольких сценариев оболочки в командах linux и их использовании вместе с условными операторами if и else.
Статьи по Теме:-
Вот несколько статей, которые помогут вам получить более подробную информацию о типах сценариев оболочки для новичков в Linux, поэтому просто пройдите по ссылке.
- Shell Scripting Интервью Вопросы | Топ 10 полезных вопросов
- Linux против Windows - узнайте 9 самых удивительных отличий
- Linux Interview Вопросы и ответы | Полезные и наиболее часто задаваемые
- Карьера в администрировании Linux
- Правила и положения параметров сценария оболочки