Оператори командного рядка
Оператори командного рядка — це спеціальні символи, які допомагають керувати тим, як команди працюють і взаємодіють між собою. Уяви їх як «клей», що з'єднує різні команди або вказує, куди має піти інформація. Ці оператори розв'язують типові проблеми під час роботи в терміналі: зберегти вивід команди у файл, запустити кілька команд послідовно або використати вивід однієї команди як ввід для іншої.
Без операторів довелося б вручну копіювати й вставляти вивід між командами або запускати кожну команду окремо й перевіряти, чи вона впоралася, перш ніж запускати наступну. Оператори роблять роботу ефективнішою й допомагають автоматизувати рутинні завдання.
Оператори перенаправлення (>, >>)
Оператори перенаправлення беруть вивід команди й надсилають його у файл або інше місце призначення замість показу на екрані. Це зручно, щоб зберігати результати команд або логи.
Ось мнемоніка, щоб запам'ятати різницю:
>: 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" | sortPowerShell:
git log --oneline | Select-String "fix" | Sort-ObjectЛогічні оператори (&&, ||)
Логічні оператори, схожі на ті, що в мовах програмування, керують послідовністю виконання команд залежно від успіху чи невдачі попередніх.
&&: запускає наступну команду, тільки якщо попередня завершилася успішно (код виходу 0).||: запускає наступну команду, тільки якщо попередня завершилася з помилкою (ненульовий код виходу).
Додати файли в область підготовки і зробити коміт, тільки якщо додавання вдалося:
git add . && git commit -m "Update documentation"Спробувати забрати зміни; якщо не вийде — просто стягнути їх:
git pull origin main || git fetch origin.gitignoregit checkoutgit configgit taggit worktree