10 простих команд для написання перших Bash-скриптів

Одна з основних можливостей ОС Linux — це вбудована потужна підтримка скриптових мов. Bash є однією з найпопулярніших командних оболонок, яку використовують для автоматизації рутинних завдань в операційній системі Unix/Linux. 

У цьому тексті розберемо основи Bash-скриптингу, поділимось основними командами Bash для початківців та створимо простий скрипт.

Що таке Bash

Bash (Bourne again shell) — це інтерпретатор командного рядка, стандартна командна оболонка у більшості дистрибутивів Linux і macOS. Bash був створений у 1989 році Брайаном Фоксом для того, щоб вдосконалити командну оболонку sh. Це ідеальний вибір для швидкого написання скриптів через його простий синтаксис та поширеність в Unix-подібних ОС. 

Оболонка — це програмне забезпечення, що дозволяє користувачу спілкуватися з комп’ютером, керувати системою, отримувати інформацію про неї або про системні файли. Така взаємодія може відбуватися двома шляхами: за допомогою набраних у терміналі команд (інтерфейс командного рядка) або шляхом виконання заздалегідь підготовлених файлів сценаріїв — скриптів.

Скрипти Bash можуть спростити роботу системного адміністратора та автоматизувати багато завдань, які виконуються у командному рядку вручну, наприклад встановити програмне забезпечення, налаштувати робоче середовище тощо. 

Bash має такі переваги:

  • зберігання команд у текстовому форматі;
  • можливість виконання повторюваних та умовних операцій;
  • можливість вказати послідовність виконання команд;
  • сумісність із більшістю Unix-подібних систем.

Для взаємодії з оболонкою використовують термінал. Це командо-орієнтований інструмент, тому що для роботи з ним треба безпосередньо вводити команди, а не заповнювати поля чи вибирати дію кнопками миші.

Після відкриття термінала ти побачиш наступне:

username@localhost:~$

де username — ім’я користувача, localhost — назва системи (Debian, Ubuntu тощо), ~ (тільда) — домашній каталог (/home/username), а $ — обліковий запис звичайного користувача.

Команди bash

Команди — це найменша виконувана одиниця коду в Bash. За допомогою команд ти можеш повідомити оболонці, що необхідно зробити у системі. Зазвичай Bash приймає від користувача одну команду та повертається вже після того, як вона буде виконана. 

Спробуй виконати декілька простих команд у Debian.

echo — повертає все, що вводиться у командний рядок.

username@localhost:~$ echo ‘hello world’

date — показує поточну дату та час.

username@localhost:~$ date

pwd (print working directory) — вказує на поточний робочий каталог, де оболонка буде шукати файли.

username@localhost:~$ pwd

ls (list) — відображає вміст каталогу. Зазвичай команда ls починає з перегляду домашнього каталогу. Це означає, що якщо ти просто введеш ls, то отримаєш у результаті вміст поточного каталогу — /home/username:

username@localhost:~$ ls

cd (скор. від «change directory») — змінює поточну директорію на задану користувачем. Розглянемо декілька прикладів використання цієї команди:

cd (change directory) — змінює поточний каталог на заданий користувачем. Має декілька опцій:

  • cd <каталог> — змінює поточний каталог на заданий, наприклад, на / — кореневий каталог:
username@localhost:~$ cd /
  • cd .. — повернутися в батьківський каталог:
username@localhost:~$ cd ..
  • cd — повернутися в домашній каталог:
username@localhost:~$ cd

mkdir (make directory) — створює новий каталог:

username@localhost:~$ mkdir 

mv (move) — переміщує один або кілька файлів/каталогів з одного місця до іншого, яке задане користувачем. Для цього потрібно вказати, що ти хочеш перемістити і куди. Для прикладу, перенесемо всі файли з розширенням .txt з каталогу directory_1 у directory_2.

username@localhost:~$ mv /home/username/directory_1/*.txt ./directory_2/

rm (remove) — видаляє файли. Зазвичай команда rm не видаляє каталоги, але вона може використовуватися як rm -r * всередині вказаного каталогу, тоді кожний підкаталог та файл всередині заданого каталогу будуть видалені.

username@localhost:~$ rm filename.txt 

rmdir (remove directory) — видаляє каталоги.

username@localhost:~$ rmdir directory_name/

cat (concatenate) — зчитує файл та виводить його вміст. Команда може працювати з декількома файлами, об’єднуючи їхні результати в єдиний потік. 

username@localhost:~$ cat filename.py

Щоб переглянути декілька файлів, вкажи через пробіл їхні назви після команди cat, наприклад:

username@localhost:~$ cat filename1.py filename2.py

man (manual) — відображає стандартний посібник користувача, що вбудований у деякі дистрибутиви Linux та більшість Unix-систем. Наприклад, команда man bash відобразить посібник користувача, а команда man ls відобразить довідку по команді ls.

username@localhost:~$ man bash

Написання bash-скриптів

Будь-який скрипт у Bash є звичайним текстовим файлом з переліком команд для циклів та запитів. Під час виконання файлу як програми команди обробляються по черзі. 

Все, що ти можеш запустити з командного рядка, може бути додано у скрипт, як і навпаки: команди зі скрипту можна скопіювати у командний рядок і виконати.

Bash Скрипти мають розширення .sh. Тому, щоб створити новий bash-скрипт, відкрий текстовий файл у будь-якому редакторі та збережи його з розширенням .sh. Проте у Linux не обов’язково мати якесь розширення, скрипт може бути виконаний і без цього.

Кожен bash-скрипт завжди повинен починатися з шебанга:

#!/bin/bash

Після #! ти маєш вказати шлях до командної оболонки bash. Якщо у тебе bash знаходиться в іншому місці, то можеш використати команду whereis bash, дізнатися його локацію і вказати шлях у скрипті.

Далі можна вводити будь-які потрібні команди, наприклад:

#!/bin/bash

echo "сьогодні " `date`

echo -e "\n введіть шлях до каталогу:"

read path_to

echo -e "\n ваш каталог містить файли і папки:"

ls $path_to

Щоб дозволити виконувати скрипт, треба призначити права на виконання своєму користувачеві за допомогою цієї команди:

chmod username+x filename.sh

Розберемо детальніше:

  • chmod змінює власника файлу для поточного користувача username
  • +x додає поточному користувачу права на виконання, тобто користувач, який є власником, тепер може запустити скрипт;
  • filename.sh — це назва файлу, який треба запустити.

Після надання дозволу можна запускати скрипт одним з цих способів:

sh show_all.sh
bash show_all.sh
./show_all.sh

Післяслово

Bash — це потужний інструмент, який надає можливості для оптимізації та полегшення роботи системного адміністратора та DevOps-інженера. Вивчення та використання скриптової мови підвищує ефективність та продуктивність як новачків, так і досвідчених користувачів. 

Проте Bash — це лише одна складова роботи з Linux. Щоб поглибити знання та навчитися працювати з Linux з нуля, рекомендуємо звернути увагу на курси #LINUX BEGINNER та #LINUX BASIC. Реєструйся на навчання, щоб за місяць зрозуміти, чому Linux — це база для будь-якої технічної IT-професії.

Залишити відповідь

Дякуємо, що поділились