Руководство по командам и программированию оболочки в Linux
Обновлено: 21.11.2024
Создание сценариев оболочки — один из самых важных навыков, которыми должны обладать пользователи Linux. Сценарии оболочки играют огромную роль в автоматизации повторяющихся задач, выполнение которых в противном случае было бы утомительным построчно.
В этом руководстве мы выделяем некоторые основные операции сценариев оболочки, которые должен иметь каждый пользователь Linux.
1. Создайте простой сценарий оболочки
Сценарий оболочки — это файл, содержащий текст ASCII. Мы начнем с создания простого сценария оболочки, и для этого мы будем использовать текстовый редактор. Существует довольно много текстовых редакторов, как с командной строкой, так и с графическим интерфейсом. В этом руководстве мы будем использовать редактор vim.
Мы начнем с создания простого скрипта, который при выполнении отображает «Hello world».
Вставьте следующее содержимое в файл и сохраните.
Давайте рассмотрим сценарий оболочки построчно.
Следующий шаг — сделать скрипт исполняемым, назначив разрешение на выполнение с помощью команды chmod, как показано.
Наконец, запустите сценарий оболочки с помощью любой из команд:
2. Использование условных операторов для выполнения кода
Как и в других языках программирования, условные операторы используются в сценариях bash для принятия решений с небольшим изменением синтаксиса. Мы рассмотрим условные операторы if, if-else и elif.
Пример только оператора if
Инструкцию if можно использовать для проверки одного или нескольких условий. Мы начнем с фундаментального использования оператора if для проверки одного условия. Оператор if определяется оператором if . фи блокирует.
Давайте взглянем на приведенный ниже сценарий оболочки.
Приведенный выше сценарий оболочки предлагает пользователю ввести оценку, которая затем сохраняется в переменной x. Если оценка соответствует 70, скрипт возвращает вывод «Хорошая работа!». Оператор сравнения == используется для проверки того, эквивалентна ли введенная оценка, которая хранится в переменной x, 100.
Другие операторы сравнения, которые вы можете использовать, включают:
- -eq — равно
- -ne — не равно
- -lt – Меньше чем
- -le — меньше или равно
- -lt – Меньше чем
- -ge — больше или равно
Например, приведенный ниже блок операторов if выводит «Работай усерднее», если входная оценка меньше 50.
Пример оператора if-else
В ситуациях, когда у вас есть 2 возможных результата: то или иное, оператор if-else пригодится.
Приведенный ниже скрипт считывает введенную оценку и проверяет, больше она или равна 70.
Если оценка больше или равна 70, вы получите сообщение "Отличная работа, вы прошли!". Однако, если оценка упадет ниже 70, будет напечатан вывод «Вы потерпели неудачу».
Пример оператора if-elif-else
В сценариях с несколькими условиями и разными результатами используется оператор if-elif-else. Этот оператор имеет следующий формат.
Например, у нас есть скрипт для лотереи, который проверяет, является ли введенное число 90, 60 или 30.
3. Использование оператора If с логикой AND
Вы можете использовать оператор if вместе с логическим оператором AND для выполнения задачи, если выполняются два условия. Оператор && используется для обозначения логики И.
5. Использование оператора If с логикой ИЛИ
При использовании логики ИЛИ это представляется как || символ, для получения ожидаемых результатов скрипт должен выполнить одно из условий.
Использовать циклические конструкции
Циклы Bash позволяют пользователям выполнять ряд задач, пока не будет достигнут определенный результат. Это удобно при выполнении повторяющихся задач.В этом разделе мы познакомимся с некоторыми циклами, которые вы также найдете в других языках программирования.
Пока цикл
Это один из самых простых циклов для работы. Синтаксис довольно прост:
Цикл while ниже выводит список всех чисел от 1 до 10 при выполнении.
Давайте обсудим цикл while:
Счетчик переменных инициализируется равным 1. Пока переменная меньше или равна 10, значение счетчика будет увеличиваться до тех пор, пока условие не будет выполнено. Строка echo $counter выводит все числа от 1 до 10.
Цикл for
Как и цикл while, цикл for используется для итеративного выполнения кода. т.е. повторять выполнение кода столько раз, сколько возможно, заданное пользователем.
Цикл for ниже выполняет итерацию от 1 до 10 и обрабатывает их значения на экране.
Лучший способ добиться этого – определить диапазон с помощью двойных фигурных скобок < >, как показано, вместо того, чтобы вводить все числа.
Позиционные параметры Bash
Позиционный параметр — это специальная переменная, на которую ссылается сценарий, когда значения передаются в оболочке, но не могут быть назначены. Позиционные параметры варьируются от $0 $1 $2 $3 …… до $9. Помимо значения $9, параметры должны быть заключены в фигурные скобки, например $, $ … и т. д.
При выполнении сценария первый позиционный параметр, равный $0, принимает имя сценария оболочки. Параметр $1 принимает первую переменную, переданную терминалу, $2 — вторую, $3 — третью и так далее.
Давайте создадим скрипт test.sh, как показано.
Затем выполните скрипт и укажите в качестве аргументов первое и второе имя:
Из вывода видно, что первая печатаемая переменная — это имя сценария оболочки, в данном случае test.sh. После этого имена распечатываются в соответствии с позиционными параметрами, определенными в сценарии оболочки.
Позиционные параметры полезны тем, что помогают настраивать вводимые данные вместо явного присвоения значения переменной.
Коды выхода команд оболочки
Давайте начнем с ответа на простой вопрос: что такое код выхода?
Каждая команда, выполняемая в оболочке пользователем или сценарием оболочки, имеет статус выхода. Статус выхода — целое число.
Статус выхода 0 означает, что команда выполнена успешно без каких-либо ошибок. Любое значение от 1 до 255 указывает на то, что команда завершилась неудачно или не была выполнена успешно.
Чтобы найти статус завершения команды, используйте ключ $? Переменная оболочки.
Статус выхода 1 указывает на общую ошибку или любые недопустимые ошибки, такие как редактирование файлов без разрешений sudo.
Статус выхода 2 указывает на неправильное использование команды или встроенной переменной оболочки.
Статус выхода 127 указывает на недопустимую команду, которая обычно приводит к ошибке «команда не найдена».
Обработка вывода команд оболочки в сценарии
В сценариях bash вы можете сохранить вывод команды в переменной для использования в будущем. Это также называется подстановкой команд оболочки и может быть достигнуто следующими способами.
Например, вы можете сохранить команду даты в переменной с именем сегодня и вызвать сценарий оболочки, чтобы показать текущую дату.
Возьмем другой пример. Предположим, вы хотите найти действительных пользователей для входа в вашу систему Linux. Как бы вы это сделали? Во-первых, список всех пользователей (как системных, так и пользователей, вошедших в систему) хранится в файле /etc/passwd.
Для просмотра файла необходимо использовать команду cat. Однако, чтобы сузить список пользователей, вошедших в систему, используйте команду grep для поиска пользователей с атрибутом /bin/bash и используйте команду cut -c 1-10, как показано, для отображения первых 10 символов имен.
Мы сохранили команду cat в переменной login_users.
На этом наше руководство по созданию простых сценариев оболочки подходит к концу. Мы надеемся, что вы нашли это полезным.
Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.
Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:
TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.
Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.
Мы благодарны за вашу бесконечную поддержку.
Похожие записи
Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ
Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.
Shell Scripting — это компьютерная программа с открытым исходным кодом, предназначенная для запуска в оболочке Unix/Linux. Shell Scripting — это программа для написания серии команд для выполнения оболочкой. Он может объединять длинные и повторяющиеся последовательности команд в один простой сценарий, который можно сохранить и выполнить в любое время, что сокращает усилия по программированию.
Это учебное пособие по написанию сценариев оболочки помогает получить базовое представление о программе создания сценариев оболочки Linux/Unix, а также более сложные концепции сценариев оболочки. Этот учебник по сценариям оболочки предназначен для начинающих и профессионалов, которые хотят узнать, что такое сценарии оболочки? Как работают сценарии оболочки, типы оболочек и многое другое.
Что такое Shell?
Оболочка — это термин UNIX для интерфейса между пользователем и службой операционной системы. Оболочка предоставляет пользователям интерфейс и принимает удобочитаемые команды в систему и выполняет те команды, которые могут выполняться автоматически и выдавать результат программы в сценарии оболочки.
Операция состоит из многих компонентов, но два ее основных компонента —
Ядро — это ядро компьютера. Это делает возможной связь между аппаратным и программным обеспечением. Ядро — это самая внутренняя часть операционной системы, а оболочка — самая внешняя.
Оболочка в операционной системе Linux получает от вас данные в виде команд, обрабатывает их и выдает результат. Это интерфейс, через который пользователь работает с программами, командами и сценариями. Доступ к оболочке осуществляется через терминал, который ее запускает.
Когда вы запускаете терминал, оболочка выдает командную строку (обычно $), где вы можете ввести свой ввод, который затем выполняется, когда вы нажимаете клавишу Enter. Вывод или результат после этого отображаются на терминале.
Оболочка обволакивает нежную внутреннюю часть операционной системы, защищая ее от случайного повреждения. Отсюда и название Шелл.
Это руководство по сценариям оболочки Unix/Linux помогает понять основы сценариев оболочки до продвинутого уровня.
В этом учебном пособии по сценариям оболочки вы узнаете:
Нажмите здесь, если видео недоступно
Типы оболочки
В Linux есть две основные оболочки:
<р>1. Оболочка Bourne: приглашение для этой оболочки — $, и его производные перечислены ниже:- Оболочка POSIX также известна как sh
- Korn Shell также известен как sh
- Bourne Again SHell также известен как bash (наиболее популярный)
- Оболочка C также известна как csh
- Оболочка Tops C также известна как tcsh
В этом руководстве мы обсудим сценарии оболочки на основе оболочки bash.
Как написать сценарий оболочки в Linux/Unix
Сценарии оболочки пишутся с использованием текстовых редакторов. В вашей системе Linux откройте программу текстового редактора, откройте новый файл, чтобы начать вводить сценарий оболочки или программирование оболочки, затем дайте оболочке разрешение на выполнение вашего сценария оболочки и поместите ваш сценарий в то место, где оболочка может его найти.
Давайте разберемся с этапами создания сценария оболочки:
Давайте создадим небольшой скрипт –
Давайте рассмотрим шаги по созданию программ сценариев оболочки в Linux/Unix –
Команда ‘ls’ выполняется, когда мы запускаем файл sample.sh скрипта.
Добавление комментариев оболочки
Комментирование важно в любой программе. В программировании оболочки синтаксис для добавления комментария:
Позвольте понять это на примере.
Что такое переменные оболочки?
Как обсуждалось ранее, переменные хранят данные в виде символов и чисел. Точно так же переменные оболочки используются для хранения информации, и они могут использоваться только оболочкой.
Например, следующий код создает переменную оболочки, а затем выводит ее:
Ниже приведен небольшой скрипт, который будет использовать переменную.
Давайте разберемся, шаги по созданию и выполнению скрипта
Как видите, программа выбрала значение переменной «имя» как «Радость», а «примечание» — как «отлично».
Это простой сценарий. Вы можете разрабатывать расширенные сценарии, содержащие условные операторы, циклы и функции. Сценарии оболочки сделают вашу жизнь проще, а администрирование Linux — проще простого.
Обзор:
- Ядро — это ядро операционной системы, обеспечивающее связь между аппаратным и программным обеспечением.
- Shell – это программа, которая интерпретирует пользовательские команды через интерфейс командной строки, например Терминал.
- Оболочка Bourne и оболочка C являются наиболее часто используемыми оболочками в Linux.
- Сценарий оболочки Linux записывает серию команд для выполнения оболочкой
- Переменные оболочки хранят значение строки или числа для чтения оболочкой.
- Сценарии оболочки в Linux могут помочь вам создавать сложные программы, содержащие условные операторы, циклы и функции
- Основные команды сценариев оболочки в Linux: cat, more, less, head, tail, mkdir, cp, mv, rm, touch, grep, sort, wc, cut и другие.
Компания Acunetix, разработчик сверхточных сканеров безопасности веб-приложений, спонсировала проект Guru99, помогая точно и с максимальной скоростью сканировать более 4500 веб-уязвимостей.
Изучите предварительную версию Практического руководства по командам, редакторам и программированию в Linux, четвертое издание прямо сейчас.
Участники O’Reilly получают неограниченный доступ к интерактивным онлайн-тренингам, а также книгам, видео и цифровому контенту от более чем 200 издателей.
Описание книги
Самый полезный учебник и справочник с сотнями высококачественных примеров для каждого популярного дистрибутива Linux
«Сначала Собелл научил людей пользоваться Linux. . . теперь он учит вас силам Linux. Обязательная книга для всех, кто хочет вывести Linux на новый уровень».
—Джон «maddog» Холл, исполнительный директор Linux International
Откройте для себя возможности Linux — подходит и для macOS!
- Учитесь на сотнях реалистичных высококачественных примеров и станьте настоящим гуру командной строки.
- Охватывает MariaDB, DNF и Python 3.
- Справочный раздел на 300+ страницах охватывает 102 утилиты, включая команды macOS.
Для использования со всеми популярными версиями Linux, включая Ubuntu,™ Fedora,™ openSUSE,™ Red Hat,® Debian, Mageia, Mint, Arch, CentOS и macOS
Сегодня Linux – это доминирующая серверная платформа в Интернете. Системным администраторам и веб-разработчикам необходимо глубокое владение Linux, включая экспертные знания оболочек и командной строки. Это единственное руководство со всем необходимым для достижения такого уровня мастерства в Linux. Известный эксперт по Linux Марк Собелл собрал подробное и содержательное руководство по инструментам, которые больше всего нужны системным администраторам, разработчикам и опытным пользователям, и создал выдающийся повседневный справочник, обновляемый при содействии нового соавтора Мэтью Хелмке.
Это название на 100 % не зависит от распространения и выпуска.Наполненный сотнями высококачественных реалистичных примеров, он представляет Linux с нуля: самые четкие объяснения и самая полезная информация обо всем, от файловых систем до оболочек, от редакторов до утилит, от инструментов программирования до регулярных выражений.
Используете Mac? Вы найдете информацию о командной строке macOS, включая инструменты и утилиты, предназначенные только для macOS, которые игнорируются другими играми для Linux/UNIX.
Практическое руководство по командам, редакторам и командной оболочке Linux®, четвертое издание — единственное доступное руководство
Версия 1.11. Последнее обновление: 2008–1227. Выпуск
Это практическое руководство, которое, хотя и не всегда является слишком серьезным, пытается привести примеры из реальной жизни, а не теоретические. Частично я написал это, потому что меня не возбуждают урезанные и чрезмерно упрощенные примеры, написанные людьми, которые знают, о чем они говорят, демонстрируя некоторые действительно крутые возможности Bash настолько вне контекста, что вы никогда не сможете использовать их на практике. обстоятельства. Вы можете прочитать подобные материалы после прочтения этой книги, содержащей упражнения и примеры, которые помогут вам выжить в реальном мире.
Из своего опыта пользователя UNIX/Linux, системного администратора и инструктора я знаю, что люди могут годами ежедневно взаимодействовать со своими системами, не имея ни малейшего представления об автоматизации задач. Поэтому они часто думают, что UNIX неудобна для пользователя, и, что еще хуже, у них создается впечатление, что она медленная и старомодная. Это еще одна проблема, которую можно решить с помощью этого руководства.
Каждому, кто работает с UNIX или UNIX-подобной системой, кто хочет облегчить себе жизнь, как опытным пользователям, так и системным администраторам, будет полезно прочитать эту книгу. Читатели, которые уже имеют представление о том, как работать с системой с помощью командной строки, узнают все тонкости сценариев оболочки, облегчающих выполнение повседневных задач. Системное администрирование во многом зависит от сценариев оболочки; общие задачи часто автоматизируются с помощью простых сценариев. Этот документ полон примеров, которые подтолкнут вас к написанию собственных скриптов и вдохновят вас на улучшение существующих скриптов.
Предпосылки/не в этом курсе:
Вы должны быть опытным пользователем UNIX или Linux, знакомым с основными командами, справочными страницами и документацией
Возможность использовать текстовый редактор
Понимать процессы загрузки и завершения работы системы, инициализацию и сценарии инициализации
Создание пользователей и групп, установка паролей
Разрешения, специальные режимы
Понимание правил именования устройств, разбиения на разделы, монтирования/размонтирования файловых систем
Добавление/удаление программного обеспечения в вашей системе
Рис. 1. Обложка руководства по Bash для начинающих
Это руководство было переведено:
Перевод на французский язык находится в разработке, ссылка на него будет опубликована, как только он будет завершен.
Спасибо всем друзьям, которые помогли (или пытались), и моему мужу; Ваши ободряющие слова сделали эту работу возможной. Спасибо всем, кто прислал отчеты об ошибках, примеры и замечания, среди многих других:
Ханс Бол, одна из поклонниц
Майк Сим, комментарии о стиле
Дэн Рихтер, примеры массивов
Гергу Фергюсону за идеи по поводу названия
Мендель Лео Купер, освободите место
Фрэнк Ван, за его подробные замечания обо всех моих ошибках ;-)
Особая благодарность Табате Маршалл, которая вызвалась провести полный обзор и проверить орфографию и грамматику. Мы отличная команда: она работает, когда я сплю. И наоборот ;-)
Отсутствует информация, отсутствующие ссылки, отсутствующие символы, примечания? Отправить по адресу
Читайте также: