Командний рядок

Оператори командного рядка

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

Без операторів довелося б вручну копіювати й вставляти вивід між командами або запускати кожну команду окремо й перевіряти, чи вона впоралася, перш ніж запускати наступну. Оператори роблять роботу ефективнішою й допомагають автоматизувати рутинні завдання.

Оператори перенаправлення (>, >>)

Оператори перенаправлення беруть вивід команди й надсилають його у файл або інше місце призначення замість показу на екрані. Це зручно, щоб зберігати результати команд або логи.

Ось мнемоніка, щоб запам'ятати різницю:

  • >: 1 стрілка = зберегти 1 річ = зберегти моє
  • >>: 2 стрілки = зберегти 2 речі = зберегти твоє і моє

Записати шматок тексту у файл:

echo "Hello, World!" > hello.txt

Дописати останні 5 комітів у файл журналу змін:

git log -5 --oneline >> CHANGELOG.md

Оператор конвеєра (|)

Оператор конвеєра (pipe) бере вивід однієї команди й використовує його як ввід для іншої. Так утворюється «конвеєр» (pipeline), де дані течуть від команди до команди, як вода через з'єднані труби.

Вибрати коміти, що містять слово «fix» у повідомленні:

Linux/macOS:

git log --oneline | grep "fix" | sort

PowerShell:

git log --oneline | Select-String "fix" | Sort-Object

Логічні оператори (&&, ||)

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

  • &&: запускає наступну команду, тільки якщо попередня завершилася успішно (код виходу 0).
  • ||: запускає наступну команду, тільки якщо попередня завершилася з помилкою (ненульовий код виходу).

Додати файли в область підготовки і зробити коміт, тільки якщо додавання вдалося:

git add . && git commit -m "Update documentation"

Спробувати забрати зміни; якщо не вийде — просто стягнути їх:

git pull origin main || git fetch origin