Shell
Видалити каталог із файлами:
echo "one"; echo "two"
kill -9 1234 tar -tzf backup.tar.gz !Недолік |- |Назва |Shell |- |Українською |Командна оболонка |- |Тип |Інтерфейс між користувачем і операційною системою |- |Основне призначення |Виконання команд, запуск програм, автоматизація процесів задач |- |Типові системи |Unix, Linux, macOS, BSD, серверні системи |- |Популярні оболонки |sh, Bash, Zsh, Fish, Ksh, Csh, PowerShell |- |Типові файли скриптів |.sh, .bash, .zsh |- |Головні сфери |DevOps, адміністрування, backend, CI/CD, автоматизація процесів, сервери, тестування |- |Складність для новачків |Низька для базових команд, середня для скриптів, висока для складної автоматизації |}
return 0
Shell часто застосовується для роботи з базами даних через CLI-клієнти.;
!Значення docker build -t app .; |- | style="background:#fff3cd; color:#856404; font-weight:bold;" |істотно |'''Shell-команди можуть бути небезпечними''' |Неправильна команда має змогу видалити файли або змінити систему.; Приклади:<pre> Показати вміст файлу:<pre>
Завершити бізнес-процес:
top for i in 1 2 3 4 5; do
Приклад:
Redirect перенаправляє введення або виведення.;== Приклад якісного Shell-скрипта ==
awk '{print $1}' access.log
PowerShell важливий для:
less install.sh find "$directory" -type f
Показати номери рядків:
!Компонент |- |'''Використовувати set -e''' |Завершувати скрипт при помилці |- |'''Використовувати set -u''' |Помилка при використанні невизначеної змінної |- |'''Використовувати set -o pipefail''' |Коректно обробляти помилки в pipe |- |'''Брати змінні в лапки''' |Захист від пробілів і спецсимволів |- |'''Перевіряти аргументи''' |Скрипт має пояснювати, що очікує |- |'''Логувати дії''' |Легше шукати помилки |- |'''Не хардкодити секрети''' |Паролі й токени мають бути в безпечному сховищі або environment variables |}
exit 1
- !/usr/bin/env bash
say_hello "Anna"
Приклад:
echo "Starting backup..." #!/usr/bin/env bash !Параметр
Рекурсивно:
grep -i "error" app.log pg_dump database > backup.sql tail -f app.log
!Символ
htop — зручніший інтерактивний варіант, якщо встановлений:
Якщо команда не знаходиться, можлива причина — її немає в PATH.; Він сприяє знайти:
Навігація файловою системою
set -euo pipefail
echo "Config exists"
Команда rm видаляє файли.;== Права доступу ==
pg_dump erp_database > /backups/$date/erp_database.sql !Команда У shell дуже істотно правильно використовувати лапки.; Вона важлива як основа багатьох Unix-систем і POSIX-сумісних скриптів.; !Запис sed 's/old/new/g' file.txt
Функція в Bash:
find .; Виконати другу команду тільки якщо перша успішна:<pre> Ці поняття часто плутають.; * Linux і Unix; * серверного адміністрування; * DevOps; * CI/CD; * Docker; * Git; * автоматизації; * backup; * логів; * роботи з файлами; * тестування; * backend-розробки; * ERP-інфраструктури.; Він надає можливість не клацати мишкою, а точно наказувати системі, що робити.'''</blockquote>echo "Hello, $name" |- |Файли й каталоги |Створення, копіювання, переміщення, пошук |cp, mv, rm, find |- |Сервери |Адміністрування Linux/Unix-систем |ssh, systemctl, journalctl |- |DevOps |автоматизація процесів розгортання й CI/CD |Docker, GitHub Actions, GitLab CI |- |Backend |Запуск сервісів, міграцій, тестів |npm, php artisan, python manage.py |- |Тестування |Запуск тестів, перевірок, логів |pytest, npm test, grep logs |- |Data processing |Обробка текстових файлів |grep, awk, sed, cut, sort |- |Git |Робота з репозиторіями |git clone, git commit, git push |- |автоматизація процесів |Скрипти для повторюваних задач |backup.sh, deploy.sh |}
Get-Process
git clone https://example.com/repo.git
chown
|- |pwd |Показує поточний каталог |- |ls |Показує файли й каталоги |- |cd |Переходить у каталог |- |mkdir |Створює каталог |- |touch |Створює порожній файл або оновлює дату файлу |- |cp |Копіює файли |- |mv |Переміщує або перейменовує файли |- |rm |Видаляє файли |- |cat |Виводить вміст файлу |- |less |Переглядає файл посторінково |- |grep |Шукає текст |- |find |Шукає файли |- |chmod |Змінює права доступу |- |chown |Змінює власника файлу |- |ps |Показує процеси |- |kill |Завершує бізнес-процес |}
Більш переносимий варіант:
{| class="wikitable" == переважні аспекти Shell ==
Знайти бізнес-процес:
exit 1 '''awk''' — потужний інструмент обробки тексту.; Перед виконанням потрібно уважно перевіряти шлях і назву.'''</blockquote>
nslookup example.com
Знайти бізнес-процес:
Показати значення:<pre> Створити файл:<pre>
export APP_ENV=production
хвилина година день_місяця місяць день_тижня команда Приклад backup-скрипта:<pre> '''Zsh''' — сучасна й зручна оболонка, популярна серед розробників.; '''ShellCheck''' — інструмент для перевірки shell-скриптів.; -rwxr-xr-- '''Shell script''' — це файл із командами shell.; -name "config.yml" grep -i "error" app.log | wc -l cd projects mkdir reports !Значення grep -n "error" app.log
cron застосовується для запуску задач за розкладом.;
Перші рядки файлу:
|- |'''Shell''' |автоматизація процесів команд, файлів, серверів, CI/CD |- |'''Python''' |Складніша логіка, API, data processing, automation |- |'''JavaScript / TypeScript''' |Web, Node.js, frontend/backend |- |'''Go''' |CLI-утиліти, сервери, DevOps-інструменти |- |'''PHP''' |Web backend і CMS |- |'''SQL''' |Робота з базами даних |} Замінити текст:<pre>
Перевірити DNS:
cd ~ grep "error" app.log == Shell script == |- |Робота з файлами | style="background:#d4edda; color:#155724; font-weight:bold;" |Дуже добре |- |Серверне адміністрування | style="background:#d4edda; color:#155724; font-weight:bold;" |Дуже добре |- |CI/CD-скрипти | style="background:#d4edda; color:#155724; font-weight:bold;" |Добре |- |Backup | style="background:#d4edda; color:#155724; font-weight:bold;" |Добре |- |Логи й пошук тексту | style="background:#d4edda; color:#155724; font-weight:bold;" |Дуже добре |- |Невеликі автоматизації | style="background:#d4edda; color:#155724; font-weight:bold;" |Добре |- |Великий бізнес-застосунок | style="background:#f8d7da; color:#721c24; font-weight:bold;" |Не підходить |- |Складна обробка даних | style="background:#fff3cd; color:#856404; font-weight:bold;" |Можливо, але часто краще Python |- |Web frontend | style="background:#f8d7da; color:#721c24; font-weight:bold;" |Не підходить |}
== Shell і Docker == Зазвичай: chmod +x script.sh !Теза |- |'''Швидкість роботи''' |Багато задач можна виконати однією командою |- |'''автоматизація процесів''' |Повторювані дії без зайвих зусиль оформити у скрипт |- |'''Доступність''' |Shell є собою майже на кожній Unix/Linux/macOS системі |- |'''Сильна робота з файлами''' |Пошук, копіювання, фільтрація, архівація |- |'''Pipes''' |Команди можна поєднувати між собою |- |'''Добре для серверів''' |Більшість Linux-серверів адмініструються через shell |- |'''Ідеально для DevOps''' |CI/CD, Docker, deployment, logs, monitoring |}
Створити вкладені каталоги:
== PATH == Змінні середовища доступні процесам.; env
== Аргументи скрипта == !Що означає
Виконати другу команду, якщо перша завершилась помилкою:
Скрипти, які мають працювати максимально переносимо, часто пишуться під <code>sh</code>:<pre> !Пояснення !Що робить if [ -f "$1" ]; then echo "Script: $0" !Пояснення == Shell і Git == !Особливості ./backup.sh
echo "$HOME"
Типові команди:
== Shell і sed == == Shell і логування == |- |'''Не копіювати команди без розуміння''' |Команда має змогу бути небезпечною |- |'''Не запускати скрипти з інтернету напряму''' |Спочатку треба прочитати вміст |- |'''Обережно з sudo''' |Команда з sudo має змогу змінити систему |- |'''Обережно з rm -r''' |Можна видалити важливі файли |- |'''Зберігати секрети безпечно''' |Паролі й токени не мають бути в коді |- |'''Використовувати права доступу''' |Не давати зайвих прав файлам |} == Pipes == cp *.txt backup/ Приклад файлу <code>backup.sh</code>:<pre> == Zsh == {| class="wikitable" pwd == Мінімальний набір для старту == == Перегляд файлів == == Хороші практики Shell-скриптів == == Змінні середовища == * помилки quoting; * небезпечні конструкції; * неправильні змінні; * проблеми переносимості; * типові помилки Bash.; Головна ідея shell — дати користувачу спосіб керувати системою через команди.;<pre> kill 1234 '''sudo''' надає можливість виконати команду з правами адміністратора.; !Приклади !Пояснення {| class="wikitable"Backup PostgreSQL:
== Перевірка файлів ==
Перевірити доступність хоста:
|- |'''>''' |Записує результат у файл, перезаписуючи його |- |'''>>''' |Додає результат у кінець файлу |- |'''<''' |Передає файл як вхідні дані |- |'''2>''' |Перенаправляє помилки |} {| class="wikitable" ssh user@example.com bash backup.shShell не завжди підходить для великих програм, але він незамінний для автоматизації, серверів і щоденної технічної роботи.;Стежити за логом у реальному часі:
sudo chown -R user:user /path/to/folder {| class="wikitable"
'''sed''' застосовується для потокового редагування тексту.;Знайти каталоги:
rm notes_old.txt
Або:
== Shell, Terminal і Console == == Цикл while ==
mysql -u user -p database !Повна назва
Приклад для Bash:
Небезпечний підхід:<pre> echo "$i"
- !/bin/bash
fi
- !/usr/bin/env bash
- !/bin/sh
backup_dir="backup"
Shell — один із найважливіших інструментів в IT.;
== Цикл for ==
Shell особливо сильний там, де потрібно багато дрібних дій обʼєднати в одну команду або скрипт.; Показати поточний каталог:
Видалити порожній каталог:
Подивитися код останньої команди:<pre> {| class="wikitable" == Робота з файлами ==
Запуск:
== Shell і бази даних == !Чи підходить Shell?; Shell — це програма всередині нього, яка розуміє команди.'''</blockquote> {| class="wikitable sortable" name = "Anna" name="Anna"
Показати файли:
Показати всі змінні:
Коментарі в shell починаються з <code>#</code>.; Типові задачі:
if [ !; {| class="wikitable"
У Unix/Linux файли мають права доступу.; Приклад:
!Чому це проблема <blockquote>'''Shell ідеальний для склеювання команд.; скриптів забезпечується черезЦе істотно; додатково реалізовано CI/CD і автоматизації.;
Shell — це текстовий пульт керування операційною системою.; tar -czf "$backup_dir/$archive_name" "$source_dir"
curl https://example.com
Перейти в каталог:
else
Безпечніше:
Приклад Bash-скрипта:<pre>
}
Пошук файлів
У shell-скриптах аргументи доступні через спеціальні змінні.; echo "Usage: $0 <directory>"
Формат:
!Значення git commit -m "Update" !Чому небезпечна
!Помилка
Приклад:
exit 1 curl -O https://example.com/install.sh <code>top</code> показує процеси в реальному часі:<pre>
Стежити за логом:
date=$(date +%Y-%m-%d) !Етап Зробити скрипт виконуваним:<pre> ls == Shell і xargs ==
done curl https://example.com/install.sh | bash echo "Listing files in: $directory" !Як застосовується Shell '''ssh''' застосовують, коли потрібно для підключення до віддаленого сервера.; У Bash арифметика часто пишеться так:<pre>
Створити змінну середовища:
Або знайти всі файли з розширенням
.log:<blockquote>'''Terminal — це вікно.; ps aux | grep nginx
- !/bin/bash
!Пояснення
'''Bash''' — одна з найпопулярніших shell-оболонок.;Типові значення:
npm test
а не:
Приклад із числами:
{| class="wikitable"
check_file() {
Повернутися на рівень вище:
Shell є собою базовим інструментом DevOps.; -name "*.log" У CI/CD shell-команди використовуються для: sudo apt update == sudo ==
У shell можна створювати змінні.;MySQL:
head file.txt | Shell часто застосовується для аналізу логів.; -type d
Bash застосовується для: !Код
- !/bin/bash
fi
Відкрити crontab:<pre> {| class="wikitable"
Показати файли детальніше:
== Коли Shell — хороший вибір == b=7
echo $?;Видалити файл:
echo "New line" >> hello.txt !Термін Приклад:<pre> {| class="wikitable sortable" sudo chown user:user file.txt == ShellCheck == Приклад початку скрипта:<pre> fi sum=$((a + b))
== top і htop == {| class="wikitable"
Робота з мережею
done age=18
Останні рядки файлу:Вона відрізняється від Unix shell тим, що часто функціонує не без ускладнень з текстом, а з обʼєктами.; -name "*.log" !Змінна
== Приклад навчального скрипта ==
- командного рядка;
- серверного адміністрування;
- shell-скриптів;
- DevOps;
- Docker;
- CI/CD;
- Linux-автоматизації;
- роботи з файлами;
- запуску cron-задач.; -name "*.tmp" | xargs rm
- !/bin/bash
Пошук рядка у файлі:<pre> Приклад видалення знайдених tmp-файлів:<pre> == Shell у DevOps ==
docker ps ls -l
else
Інструмент істотно: навколо знака =не ставлять пробіли.;У shell майже завжди краще брати змінні в подвійні лапки: "$var".
0 Успішне виконання не 0 Помилка або особливий стан Fish
mkdir -p backup
echo "First argument: $1" 0 2 * * * /home/user/backup.sh
Підрахувати суму другого стовпця:
!Статус !Значення
Для sh:
tar -czf backup.tar.gz folder/
!Що робить !Значення
HTTP-запит через curl:
- !/bin/bash
Shell має змогу бути корисним у ERP-інфраструктурі.;<pre>
- встановлення пакетів;
- конфігурація серверів;
- запуску контейнерів;
- деплою;
- CI/CD;
- backup;
- логування;
- перевірки healthcheck;
- автоматизації release;
- роботи з Git;
- роботи з Kubernetes;
- роботи з Docker.;<blockquote>'''Якщо графічний інтерфейс — це кнопки й вікна, то Shell — це прямий діалог із системою.'''</blockquote>
== Недоліки Shell ==
mkdir -p logs/2026/may
Перейти в домашній каталог:
'''Shebang''' — перший рядок скрипта, який вказує, якою програмою виконувати файл.; * розумне автодоповнення;
- підказки команд;
- кольоровий синтаксис;
- простіший інтерактивний досвід;
- інший синтаксис скриптів, не в цілому сумісний із Bash.; Shell приймає команди, виконує їх, запускає програми, функціонує з файлами, каталогами, змінними середовища, процесами, потоками введення-виведення і скриптами автоматизації.; !Символ
} command || echo "Command failed" tail -n 100 app.log |- |'''-eq''' |дорівнює |- |'''-ne''' |не дорівнює |- |'''-gt''' |більше |- |'''-ge''' |більше або дорівнює |- |'''-lt''' |менше |- |'''-le''' |менше або дорівнює |}
Права: Останні рядки:
Простими словами
ls -la
name="Anna"
Приклад:
for file in *.txt; doSQLite:
|- |'''-f file''' |файл існує і є собою звичайним файлом |- |'''-d dir''' |каталог існує |- |'''-e path''' |шлях існує |- |'''-r file''' |файл доступний для читання |- |'''-w file''' |файл доступний для запису |- |'''-x file''' |файл виконуваний |}
Примусово завершити:
Скрипт створює backup каталогу.; {| class="wikitable"
Висновок
cat app.log | grep "error"
як ілюстрація, замість того щоб у файловому менеджері вручну відкривати папки, шукати файли й копіювати їх, можна написати:
echo "Backup completed." ssh -i key.pem user@example.com Shell — це спосіб оперативно керувати компʼютером або сервером через текстові команди.; Але якщо логіка стає складною, краще перейти на Python, Go або іншу повноцінну мову.'''</blockquote>Приклад запуску backup щодня о 02:00:Підключення з ключем:Вивести рядки з 10 по 20:Приклади команд Docker:<pre>
cp notes.txt backup/notes.txt awk '{sum += $2} END {print sum}' data.txt
crontab -e
Окремо варто відзначити через яку користувач системи або програма взаємодіє з операційною системою.; |-
Ключове Shell дуже сильний для автоматизації Повторювані задачі можна оформити у скрипти.; a=5 Функції
Головна ідея Shell
composer install
echo "$count"
- Windows-адміністрування;
- Azure;
- Microsoft 365;
- DevOps;
- автоматизації;
- cross-platform сценаріїв.; Через shell можна оперативно виконувати дії, які в графічному інтерфейсі займали б значно більше часу.; Це небезпечна команда, якщо шлях вказано неправильно.
command 2> errors.log застосовується для: count=1
sh
r read, читання w write, запис x execute, виконання echo "Hello from sh" Приклад:Quoting
shellcheck script.sh ./backup.sh documents less file.txt rm *.tmp Показати PATH:<pre> !Команда |- |'''755''' |власник має змогу все, інші можуть читати й виконувати |- |'''644''' |власник має змогу читати й писати, інші тільки читати |- |'''600''' |тільки власник має змогу читати й писати |} {| class="wikitable" echo "Hello from Zsh"Пошук помилок:Послідовне виконання:== Типові помилки новачків == PostgreSQL:<pre>
'''PATH''' — це змінна середовища, яка містить список каталогів, де shell шукає виконувані програми.;Порахувати помилки:'''Fish''' або '''Friendly Interactive Shell''' — оболонка, орієнтована на зручність користувача.; psql -U user -d database !Приклад echo "$name"
cd ..;<pre> sed -n '10,20p' file.txt !Пояснення
count=$((count + 1))Приклад:<pre> |- | style="background:#d4edda; color:#155724; font-weight:bold;" |Ключове |'''Shell потрібен майже всім технічним спеціалістам''' |Розробники, DevOps, адміністратори, QA й аналітики часто працюють із командним рядком.; tar -xzf backup.tar.gz
set -euo pipefail
!Перевага grep -R "database" .;== Арифметика == # Це коментар echo "Source directory does not exist: $source_dir" find .;<blockquote>'''Shell — це не без ускладнень командний рядок.; '''Shell''' — це командна оболонка.;== Wildcards == set -euo pipefailАбо зробити файл виконуваним:Запуск:fi
tail file.txt == Для чого застосовується Shell == chmod 755 script.sh
Коли краще Робота з каталогами
ps aux | grep nginx Pipe або канал передає результат однієї команди в іншу.; echo "Hello" git push
sqlite3 database.sqlite
Exit code
if [ -f "config.yml" ]; then htop
find .; Це універсальний інструмент, який надає можливість програмісту й адміністратору керувати системою оперативно, точно й автоматизовано.echo "File: $file"npm install
Приклади:./script.sh hello world == Shell і cron == fi source_dir="$1" if [ "$age" -ge 18 ]; then == Процеси == Символ pipe:<pre> Wildcards — це шаблони для імен файлів.;echo "Неповнолітній"sh — класична Bourne shell.; !Пояснення echo "$PATH" У Unix, Linux і macOS shell є собою одним із головних інструментів розробника, адміністратора, DevOps-інженера, тестувальника, аналітичні інструменти й досвідченого користувача.; -d "$source_dir" ]; then
xargs будує команди з вхідних даних.;Порівняння чисел
Shell і безпека
mkdir build && cd build
Shell у порівнянні з мовами програмування
echo "Arguments count: $#" echo "$filename"
Деякі команди потрібно виконувати дуже обережно.; |}
Значення Змінні
fi if [ "$count" -gt 10 ]; then
Більш безпечний варіант для файлів із пробілами:|- |'''Shell''' |Програма, яка приймає й виконує команди |- |'''Terminal''' |Вікно або програма, через яку користувач системи функціонує з shell |- |'''Console''' |Текстовий інтерфейс або системна консоль |- |'''Command line''' |Сам спосіб взаємодії через текстові команди |} ls *.txt
Подивитися права:<pre> Змінити права:<pre>
echo "Backup completed: $date"
Важливі акценти
Shell і CI/CD
sh Bourne shell Unix, Linux, POSIX-системи Класична мінімальна оболонка Bash Bourne Again SHell Linux, macOS, сервери, CI/CD Найпоширеніша shell-оболонка в Linux-світі Zsh Z shell macOS, Linux Зручне автодоповнення, теми, Oh My Zsh Fish Friendly Interactive Shell Linux, macOS Зручна інтерактивна оболонка для людей Ksh KornShell Unix-системи Історично важлива shell з потужними можливостями Csh / Tcsh C shell / TENEX C shell Unix/BSD Синтаксис частково схожий на C PowerShell Microsoft PowerShell Windows, Linux, macOS Обʼєктно-орієнтована shell для адміністрування Коментарі
Символ Скопіювати файл:
- !/bin/sh
Правильно:<pre>
find .; {| class="wikitable" git add .; |-
"$var" Підставляє змінну й зберігає пробіли '$var' Не підставляє змінну $var Підставляє змінну, але має змогу некоректно обробити пробіли
Кожна команда повертає код завершення.; -mtime -1
!Напрям
- зручному автодоповненню;
- темам;
- плагінам;
- Oh My Zsh;
- гнучкому prompt;
- зручності для щоденної роботи.; -d "$directory" ]; then
!Вираз
Джерела
Оболонка find .; -name "*.tmp" -print0 | xargs -0 rm
Redirect
Основні команди Shell
Bash
git status mkdir -p /backups/$date
Розпакувати:archive_name="backup-$(date +%Y-%m-%d-%H-%M-%S).tar.gz"
!Значення == Умови в Bash ==
== Популярні Shell-оболонки ==
- backup бази даних;
- імпорт файлів;
- експорт звітів;
- запуск обмінів;
- обробка CSV;
- архівування логів;
- запуск нічних задач;
- деплой оновлень;
- моніторинг сервісів;
- перевірка дискового простору.; if [ "$#" -ne 1 ]; then
|- |'''Складний синтаксис для великих скриптів''' |Bash-скрипти оперативно стають важкими для читання |- |'''Небезпечні команди''' |Помилка в rm, chmod або chown має змогу дорого коштувати |- |'''Проблеми з пробілами й quoting''' |Неправильні лапки можуть зламати скрипт |- |'''Різні shell мають різний синтаксис''' |Bash, sh, Zsh і Fish не в цілому сумісні |- |'''Слабка типізація''' |Усе здебільшого функціонує як текст |- |'''Не для великих застосунків''' |Для складних програм краще повноцінні мови |- |'''Погана переносимість при неуважності''' |Скрипт має змогу працювати в Bash, але не працювати в sh |}
Пошук без урахування регістру:Restore:|- |'''Не брати змінні в лапки''' |Пробіли в іменах файлів можуть зламати команду |- |'''Копіювати команди без розуміння''' |Можна пошкодити систему |- |'''Плутати > і >>''' |<code>></code> перезаписує файл, <code>>></code> додає в кінець |- |'''Запускати rm -r без перевірки''' |Можна видалити важливі каталоги |- |'''Не перевіряти exit code''' |Скрипт має змогу продовжити роботу після помилки |- |'''Писати Bash-скрипт із shebang /bin/sh''' |sh має змогу не підтримувати Bash-синтаксис |- |'''Зберігати паролі в скрипті''' |Це небезпечно |}
name="Anna"
Змінити власника:<pre>
1 Terminal, shell, command line 2 pwd, ls, cd 3 Робота з файлами: cp, mv, rm, mkdir 4 Перегляд файлів: cat, less, head, tail 5 Пошук: grep, find 6 Pipes і redirect 7 Змінні й environment variables 8 Bash-скрипти й shebang 9 Умови, цикли, функції 10 Права доступу: chmod, chown 11 Процеси: ps, kill, top 12 ssh, curl, tar, cron 13 ShellCheck і хороші практики 14 DevOps, Docker, CI/CD !Оператор
Приклад:
<pre> {| class="wikitable" |- |'''ОС''' |Linux, macOS або WSL у Windows |- |'''Shell''' |Bash або Zsh |- |'''Редактор''' |VS Code, Vim, Nano |- |'''Перші команди''' |pwd, ls, cd, cat, grep, find |- |'''Перший скрипт''' |backup.sh або простий hello.sh |- |'''Перевірка''' |ShellCheck |- |'''Практика''' |Логи, файли, backup, Git, Docker |}
Знайти всі log-файли:
ps aux
- !/usr/bin/env bash
phpunit
== Пошук тексту ==
Функція з return code:
bash install.sh
echo "More than 10"PowerShell — це командна оболонка й мова автоматизації від Microsoft.; !Задача grep "error" app.log | wc -l
rmdir reports
Shell — це не заміна повноцінним мовам програмування для великих застосунків.;Подивитися вміст архіву:
- !/bin/bash
psql database < backup.sql
tail -f app.log echo "Backup created: $backup_dir/$archive_name"
Знайти файли, змінені за останні 24 години:
find .;== tar і gzip ==
Приклад PowerShell:<pre>
Перегляд великого файлу:
Вона відома завдяки наявності: Знайти файл за назвою:<pre> chmod +x backup.sh cp report.txt backup/report.txt Створити каталог:<pre> <blockquote>'''Перед виконанням небезпечних команд потрібно розуміти кожен символ у команді.'''</blockquote>
sudo означає, що команда має змогу змінити систему.; Показати процеси:
fi
Порахувати кількість помилок:
curl -O https://example.com/file.zip say_hello() { docker run app
done
Коротко
!Значення Shell часто застосовується з Git.; |- | style="background:#f8d7da; color:#721c24; font-weight:bold;" |Увага |Не треба бездумно копіювати команди з інтернету |Команди можуть містити видалення файлів, зміну прав або запуск шкідливих дій.; echo "Дорослий"
grep -i "error" app.log Приклад:Створити архів:<pre>Пошук у всіх файлах каталогу:Завантажити файл:Неправильно:scp file.txt user@example.com:/home/user/ == Shebang == == Shell і ERP == rm -r reports cat file.txt docker logs container_name touch notes.txt
Копіювання файлу через scp:mv notes.txt notes_old.txt while [ "$count" -le 5 ]; do Він потрібен для: !Значення !Практика !Правило |- |'''*''' |Будь-яка кількість символів |<code>*.txt</code> |- |'''?''' |Один символ |<code>file?.txt</code> |- |'''[]''' |Один символ із набору |<code>file [123].txt</code> |} Рекомендовано:<pre>
Перейменувати файл:if [ !; {| class="wikitable"
return 1
Pipes — одна з найсильніших ідей Unix shell: маленькі програми можна поєднувати в потужні ланцюжки.
Рекомендований шлях навчання Shell
echo "Hello, $1"chmod
npm run build
Що вивчати Запуск: Shell часто застосовується для скриптів запуску контейнерів.; |-echo "$PATH" directory="$1" == PowerShell ==
Ключове Shell є собою основою роботи з Linux-серверами Більшість серверів адмініструються через командний рядок.; Shell надає можливість перетворити повторювану ручну роботу на одну команду.
ssh
Логічні оператори
echo $filename
Shell і awk
Основні правила безпеки:
rm Видаляє файли rm -r Видаляє каталоги з вмістом chmod -R Масово змінює права доступу chown -R Масово змінює власника dd має змогу перезаписати диск або розділ mkfs Форматує файлову систему kill Завершує процеси ping example.com
Рекомендація Небезпечні команди
mkdir -p "$backup_dir"rm -r видаляє каталог разом із вмістом.; |-
Ключове Shell поєднує програми між собою Pipes, redirect і командні ланцюжки дозволяють будувати потужні рішення для бізнесу з простих утиліт.; Перед натисканням Enter потрібно перевірити команду. echo "Directory does not exist: $directory"
- встановлення залежностей;
- запуску тестів;
- збірки;
- деплою;
- перевірки якості;
- створення артефактів.; !Де застосовується
Або:Рекурсивні зміни прав або власника треба виконувати дуже обережно.
Клонування репозиторію:Fish має: echo "$sum"
echo "Hello" > hello.txt
$0 Назва скрипта $1 Перший аргумент $2 Другий аргумент $@ Усі аргументи $# Кількість аргументів find .; dig example.com
Приклад:* GNU Bash Manual: https://www.gnu.org/software/bash/manual/ * POSIX Shell Command Language: https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html * Zsh Documentation: https://zsh.sourceforge.io/Doc/ * Fish Shell Documentation: https://fishshell.com/docs/current/ * Microsoft PowerShell Documentation: https://learn.microsoft.com/en-us/powershell/ * ShellCheck: https://www.shellcheck.net/ * The Linux man-pages project: https://www.kernel.org/doc/man-pages/ * GNU Coreutils: https://www.gnu.org/software/coreutils/manual/