Основы Python и Bash

PythonBeginner

Введение

В автоматизации Linux Bash отлично подходит для объединения инструментов командной строки. Однако по мере усложнения логики Python часто становится более подходящим выбором: он предлагает более ясную структуру, удобную работу с данными и богатую стандартную библиотеку.

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

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

Проверка версии Python

Перед написанием кода важно узнать, какая версия интерпретатора Python установлена в системе. В большинстве современных дистрибутивов Linux, включая используемую вами систему Ubuntu, Python 3 уже установлен.

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

На этом шаге вы проверите установленную версию Python 3. Так вы убедитесь, что среда готова к запуску сценариев, которые вы напишете далее.

Откройте терминал и выполните следующую команду, чтобы проверить версию:

python3 --version

Вы должны увидеть вывод, похожий на этот:

Python 3.10.12

Точный номер версии может немного отличаться, но если это Python 3.x, всё готово. Обратите внимание: мы явно используем python3, потому что в некоторых устаревших системах команда python без цифры 3 может указывать на старую, нерекомендуемую версию Python 2 или вообще не быть связанной ни с одной программой.

Использование REPL

В Python есть интерактивная оболочка, которую часто называют REPL (Read-Eval-Print Loop — цикл чтения, вычисления и вывода результата). Это мощный инструмент для проверки фрагментов кода, доступности библиотек и выполнения быстрых вычислений без создания файла.

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

На этом шаге вы войдёте в интерактивную оболочку Python, выполните простую команду и вернётесь в оболочку Bash.

Сначала запустите интерактивную оболочку Python 3:

python3

Приглашение командной строки изменится на >>>. Это означает, что вы вошли в среду Python.

Теперь введите простую команду Python для вывода сообщения:

print("Hello from Python REPL")

Вы сразу увидите результат.

Чтобы выйти из оболочки Python и вернуться в обычную оболочку Bash Linux, введите:

exit()

Также можно нажать Ctrl + D.

После выхода снова должно появиться стандартное приглашение командной строки, например labex:~/project $.

Создание сценария

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

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

На этом шаге вы создадите файл с именем system_info.py.

Используйте текстовый редактор nano, чтобы создать и открыть файл:

nano system_info.py

Добавьте в файл следующее содержимое:

print("Starting system info script...")

Чтобы сохранить файл и выйти из nano:

В редакторе nano нажмите Ctrl + O, затем нажмите Enter, чтобы подтвердить имя файла. После этого нажмите Ctrl + X, чтобы выйти из редактора и вернуться в терминал.

Теперь проверьте, что файл создан:

ls -l system_info.py

Использование стандартной библиотеки

Одно из главных преимуществ Python — его стандартная библиотека по принципу «всё необходимое уже включено». В Bash часто приходится разбирать вывод таких команд, как uname или cat /etc/os-release, а Python предоставляет встроенные модули для удобного доступа к информации о системе.

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

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

Снова откройте сценарий в nano:

nano system_info.py

Измените содержимое так, чтобы оно выглядело следующим образом:

import platform

print("Starting system info script...")
print(f"System: {platform.system()}")
print(f"Release: {platform.release()}")
print(f"Version: {platform.version()}")

Сохраните файл и выйдите из nano (Ctrl+O, Enter, Ctrl+X).

Проверьте сценарий, явно передав его интерпретатору Python:

python3 system_info.py

Вы должны увидеть вывод со сведениями о вашей среде Linux.

Запуск сценария

На предыдущих шагах вы запускали сценарий с помощью команды python3 system_info.py.

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

В стандартной работе с Linux иногда можно встретить прямой запуск сценариев, например ./system_info.py. Для этого необходимы две вещи:

  1. Строка «shebang» (мы её пропустили).
  2. Права Execute у файла.

Поскольку мы работаем в упрощённой среде без shebang, будем использовать самый надёжный способ: явно запускать сценарий с помощью интерпретатора Python.

Запустите сценарий ещё раз, чтобы убедиться, что он по-прежнему работает:

python3 system_info.py

Эта явная команда точно сообщает Linux, что нужно сделать: «Использовать программу python3, чтобы прочитать и выполнить инструкции из файла system_info.py».

Итоги

В этой лабораторной работе вы успешно установили связь между Bash и Python. Вы научились:

  • Проверять версию Python, чтобы убедиться в совместимости среды.
  • Использовать REPL для интерактивного тестирования.
  • Создавать сценарий Python.
  • Использовать стандартную библиотеку platform для доступа к данным системы.
  • Запускать сценарий с помощью команды python3.

Эти навыки составляют основу написания сценариев Python в Linux и позволяют создавать более сложные и понятные инструменты автоматизации, чем обычно возможно только с помощью Bash.