Создание первого скрипта

LinuxBeginner
Практиковаться сейчас

Введение

Добро пожаловать в мир автоматизации!

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

В Linux скрипт — это ваш рецепт. Это обычный текстовый файл с командами, которые оболочка читает и выполняет по порядку. Это один из самых старых и важных способов автоматизации в системах Unix и Linux.

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

В этой вводной лабораторной работе вы напишете свой первый рецепт. Вы:

  1. Создадите черновик: создадите файл скрипта.
  2. Запишете инструкции: добавите команды.
  3. Разрешите выполнение: предоставите файлу право на запуск.
  4. Выполните скрипт: запустите новую программу.

Создание файла скрипта

Сначала нам понадобится чистый лист, на котором мы запишем рецепт. В Linux скрипт — это обычный текстовый файл.

Linux не требует использовать расширения файлов, но полезно давать скриптам оболочки имена с расширением .sh. Это помогает людям быстро понять назначение файла, хотя для самого Linux важнее содержимое файла и его разрешения, а не расширение имени.

Это важная особенность Unix: обычно файл определяется прежде всего своим содержимым и разрешениями, а не именем. Скрипт — не специальный тип файла, созданный графическим мастером. Это обычный текст, который программа, например Bash, может читать построчно.

Создайте пустой файл с именем hello.sh в каталоге проекта.

Убедитесь, что вы находитесь в нужном каталоге:

pwd

Теперь используйте команду touch. Она служит цифровым аналогом чистого листа бумаги:

touch hello.sh

Проверьте содержимое текущего каталога:

ls

В списке должен появиться файл hello.sh, готовый для добавления инструкций.

Запись содержимого скрипта

Теперь нужно записать сам рецепт. Но сначала добавим специальный заголовок.

Представьте, что скрипт — это письмо. Его нужно адресовать правильному получателю. В Linux первая строка скрипта сообщает системе, кто должен его читать. Эта строка называется shebang (#!).

Мы хотим, чтобы скрипт прочитала оболочка Bash, поэтому укажем /bin/bash. Также добавим простую инструкцию echo. Эта команда сообщает компьютеру: «Выведи это на экран».

Shebang — одно из старейших и наиболее практичных соглашений Unix. Когда вы запускаете скрипт как программу, операционная система читает первую строку и определяет, какой интерпретатор должен обработать файл. Интерпретатор — это программа, которая читает инструкции и выполняет их, вместо непосредственного запуска предварительно скомпилированного двоичного файла.

Откройте пустой файл в редакторе nano:

nano hello.sh

Введите следующие две строки точно в таком виде:

#!/bin/bash
echo "Hello LabEx"

Разберём их:

  • #!/bin/bash: «Адресная метка». Она сообщает Linux: «Передай эти инструкции программе Bash».
  • echo "Hello LabEx": «Инструкция». Она сообщает Bash вывести на экран Hello LabEx.

Без shebang скрипт иногда тоже работает, если явно запустить его командой bash hello.sh, потому что в этом случае вы вручную выбираете интерпретатор. Но при запуске через ./hello.sh shebang — стандартный способ указать системе, какая программа должна обработать файл.

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

  1. Нажмите Ctrl + O, чтобы сохранить файл.
  2. Нажмите Enter, чтобы подтвердить сохранение.
  3. Нажмите Ctrl + X, чтобы выйти.

Проверьте результат, прочитав файл с помощью cat:

cat hello.sh

Сделайте скрипт исполняемым

Вы написали рецепт, но пока это всего лишь лист бумаги. В Linux действует строгое правило безопасности: текстовые файлы нельзя запускать как программы, пока вы явно не предоставите им соответствующее разрешение. Это не позволяет случайно выполнить список покупок как код!

Нам нужно добавить «ключ», который разрешит выполнение. Для изменения разрешений, или режимов доступа, используется команда chmod. Нужный нам ключ — +x (плюс eXecute, то есть «выполнение»).

Содержимое файла при этом не изменяется. Изменяются его биты режима — часть метаданных, которые Linux хранит для каждого файла. Иными словами, chmod +x не делает скрипт «более похожим на скрипт», а лишь сообщает системе, что этому файлу разрешено выполняться как программе.

Предоставьте скрипту разрешение на выполнение:

chmod +x hello.sh

Снова проверьте сведения о файле:

ls -l hello.sh

Посмотрите на разрешения слева. В них должна появиться буква x, например -rwxr-xr-x. Имя файла также может стать зелёным — так терминал сообщает, что файл можно запускать.

Запуск скрипта

Настал момент истины. Приготовим блюдо по рецепту!

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

  • . означает «текущий каталог».
  • / — разделитель.

Таким образом, ./hello.sh буквально означает: «Запусти файл с именем hello.sh, который находится в этой папке».

Это часто удивляет начинающих. Когда вы вводите только имя команды, оболочка обычно ищет её лишь в каталогах, перечисленных в переменной PATH. В целях безопасности текущий каталог обычно не просматривается автоматически. Поэтому важна последовательность ./: вы указываете явный путь, а не просите оболочку искать команду в другом месте.

Запустите скрипт:

./hello.sh

Если всё прошло успешно, компьютер должен вывести:

Hello LabEx

Поздравляем! Теперь вы не просто пользователь Linux, а программист Linux. Вы успешно создали, разрешили запуск и выполнили свой первый скрипт автоматизации.

Итоги

Отличная работа! Вы только что получили важный навык.

Повторим изученный процесс написания скрипта:

  1. Создание черновика: используйте touch или редактор, чтобы создать файл.
  2. Написание кода: добавьте заголовок #!/bin/bash и свои команды.
  3. Разрешение запуска: используйте chmod +x, чтобы Linux разрешил выполнение файла.
  4. Выполнение: запустите скрипт командой ./scriptname.sh.

Это может показаться небольшим шагом, но любая масштабная автоматизированная система — от веб-серверов до суперкомпьютеров — начинается с таких простых скриптов.