урок номер 12 линукс

Цель урока: Понять, что такое shell-скрипт и зачем он нужен. Изучить базовую структуру скрипта на языке Bash. Научиться создавать, делать исполняемыми и запускать свои собственные скрипты. Освоить использование переменных, передачу аргументов и получение данных от пользователя.

Часть 1: Теория. Что такое скрипт и почему это меняет всё?

До сих пор мы вводили команды в терминал по одной. Каждая команда выполняла одну конкретную задачу.

Скрипт (или сценарий) - это простой текстовый файл, в котором вы записываете последовательность этих самых команд. Вместо того чтобы вводить их вручную каждый раз, вы просто "просите" систему выполнить этот файл, и она исполнит все команды по очереди, сверху вниз.

Почему это так важно и мощно?

  1. Автоматизация: У вас есть задача, которую нужно выполнять регулярно? Например, делать резервную копию сайта каждый вечер. Вы пишете скрипт один раз и затем запускаете его одной командой, экономя уйму времени и сил.

  2. Надежность и Повторяемость: Ручной ввод команд чреват опечатками. Скрипт гарантирует, что одна и та же последовательность действий будет выполнена абсолютно одинаково сегодня, завтра и через год. Это исключает человеческий фактор.

  3. Сложность: Скрипты позволяют создавать сложную логику, недоступную в одной командной строке. "Если файл существует, то сделать А; если нет, то сделать Б", "Повторять действие В, пока не выполнится условие Г" - всё это становится возможным.

Язык Bash

Оболочка (shell), в которой мы работаем, - это bash. Это не просто "приемник" команд, это полноценный язык программирования. Именно на нем мы и будем писать наши первые скрипты.

Часть 2: Практика. Анатомия вашего первого скрипта

Давайте создадим и разберем по косточкам наш самый первый скрипт.

Шаг 1: Создание файла

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

mkdir scripts
cd scripts
nano hello_server.sh
scripts linux
  • nano - наш текстовый редактор.

  • hello_server.sh - имя файла. Расширение .sh не является обязательным для Linux, но это общепринятое соглашение, которое помогает и вам, и другим людям сразу понять, что этот файл - shell-скрипт.

Шаг 2: Написание кода

В открывшемся редакторе nano введите следующий текст. Каждую деталь мы разберем ниже.

#!/bin/bash

# Это мой первый скрипт. Он выводит приветствие и текущую дату.

echo "Привет, сервер!"
echo "Сейчас мы находимся в каталоге:"
pwd
echo "А текущая дата и время:"
date

Шаг 3: Разбор полетов

  • #!/bin/bash - Шебанг (Shebang). Это самая важная и всегда первая строка в любом скрипте.

    • # и ! - это магическая последовательность, которая говорит ядру Linux: "Этот файл не нужно исполнять самому, его нужно передать на исполнение другой программе".

    • /bin/bash - это путь к программе-интерпретатору, которой нужно передать файл. В данном случае, мы явно указываем, что наш скрипт написан на языке bash. Это гарантирует, что он будет работать одинаково, даже если у пользователя в системе по умолчанию другая оболочка.

  • # Это мой первый скрипт... - Комментарий. Любая строка, начинающаяся с символа # (кроме шебанга), игнорируется интерпретатором. Комментарии нужны не для компьютера, а для людей (для вас в будущем и для ваших коллег). Хороший код - это прокомментированный код.

  • echo "..."pwddate - Это те самые обычные команды, которые мы уже знаем. echo выводит текст на экран.

Шаг 4: Сохранение и выход

В nano нажмите Ctrl+O (сохранить), Enter (подтвердить имя), Ctrl+X (выйти).

Шаг 5: Предоставление прав на исполнение

Если вы сейчас посмотрите на права файла ls -l hello_server.sh, вы увидите что-то вроде -rw-r--r--. Права на исполнение (x) отсутствуют. Система видит его как обычный текстовый файл.

Мы должны явно разрешить системе запускать его как программу.

chmod +x hello_server.sh

Теперь ls -l hello_server.sh покажет `-rwxr-xr-x`, и имя файла, скорее всего, станет зеленым.

Шаг 6: Запуск скрипта.

Чтобы запустить скрипт, находясь в том же каталоге, нужно указать его путь.

./hello_server.sh

./ - это очень важная деталь. Она дословно означает "в текущем каталоге". Мы говорим системе: "Найди и запусти файл `hello_server.sh`, который лежит прямо здесь". Это делается из соображений безопасности, чтобы вы случайно не запустили одноименный скрипт, лежащий где-то в другом системном каталоге.

В результате вы должны увидеть на экране результат работы всех команд из вашего файла. Поздравляю, вы написали и выполнили свою первую программу!

скрипты в линукс

Часть 3: Переменные и ввод данных.

Скрипты, которые всегда делают одно и то же, не очень полезны. Давайте сделаем их более гибкими.

1. Переменные

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

Создание: ИМЯ_ПЕРЕМЕННОЙ="значение" (без пробелов вокруг знака `=`).

Использование: $ИМЯ_ПЕРЕМЕННОЙ (со знаком `$` впереди).

Давайте улучшим наш скрипт. Откройте его снова nano hello_server.sh и измените:

#!/bin/bash

# Скрипт с использованием переменной
USERNAME="Влад"
echo "Привет, $USERNAME!"
echo "Твой домашний каталог: /home/$USERNAME"

Сохраните и запустите ./hello_server.sh . Теперь скрипт использует переменную.

переменная линукс

2. Аргументы командной строки (Позиционные параметры)

Еще более мощный способ - передавать данные в скрипт прямо в момент его запуска.

  • $0 - имя самого скрипта.

  • $1 - первый аргумент, переданный скрипту.

  • $2 - второй аргумент, и так далее.

  • $# - количество переданных аргументов.

  • $@ - все переданные аргументы как отдельный список.

Создадим новый скрипт nano user_creator.sh:

#!/bin/bash

# Скрипт, создающий пользователя на основе аргументов

# $1 будет именем пользователя, $2 - комментарием (полным именем)

echo "Создаю пользователя с именем: $1"
echo "С комментарием (ФИО): $2"

adduser --comment "$2" "$1"

echo "Готово! Пользователь $1 создан."

Сделайте его исполняемым chmod +x user_creator.sh и запустите, передав ему аргументы:

./user_creator.sh testuser "Тестовый Пользователь"

Скрипт подставит testuser вместо $1 и "Тестовый Пользователь" вместо $2.

3. Интерактивный ввод (read)

Мы можем спрашивать данные у пользователя прямо во время работы скрипта.

Создадим скрипт nano interactive_hello.sh:

#!/bin/bash

# Интерактивный скрипт

echo "Привет! Как тебя зовут?"
read USERNAME

echo "Очень приятно, $USERNAME!"
echo "Какой твой любимый дистрибутив Linux?"
read -p "Введи название: " LINUX_DISTRO

echo "О, $LINUX_DISTRO - отличный выбор!"
  • read USERNAME - команда ждет ввода от пользователя и все, что он введет до нажатия Enter, сохраняет в переменную USERNAME.

  • read -p "..." - ключ -p (prompt) позволяет вывести приглашение к вводу в той же строке, что более удобно.

Сделайте его исполняемым и запустите. Скрипт будет вести с вами диалог.

chmod +x interactive_hello.sh
./interactive_hello.sh
основы линукса скрипты

Итоги урока:

  • Что мы освоили:

    • Что скрипт - это файл с последовательностью команд для автоматизации задач.

    • Анатомию скрипта: обязательный шебанг #!/bin/bash и важность комментариев.

    • Как делать скрипт исполняемым (chmod +x) и как его запускать (./script.sh).

    • Как использовать переменные для хранения и повторного использования данных.

    • Два способа сделать скрипт гибким: передача аргументов ($1$2) и интерактивный ввод (read).

На следующем уроке мы погрузимся в логику скриптов: научимся использовать условия if/else, проверять существование файлов, сравнивать строки и числа, чтобы наши скрипты могли принимать решения.

Перейти к просмотру - УРОК №13.

подарок Промо-код: PROMO15 - скидка 15%! огонь

Введите при оформлении первого заказа на сайте: Hosting-VDS.com

авторское право цифровые решения

Помог ли вам данный ответ? 0 Пользователи считают это полезным (0 голосов)