Перейти до вмісту

Shell

Матеріал з K2 ERP Wiki
Версія від 18:25, 6 травня 2026, створена R (обговорення | внесок) (Первинна публікація)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)

Видалити каталог із файлами:

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
  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.sh

Shell не завжди підходить для великих програм, але він незамінний для автоматизації, серверів і щоденної технічної роботи.;Стежити за логом у реальному часі:

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"

  1. !/bin/bash

fi

  1. !/usr/bin/env bash
  1. !/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

  1. !/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 застосовується для: !Код

  1. !/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
  1. !/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:

  1. !/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; do

SQLite:

|- |'''-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:

Приклади команд Docker:<pre>

Підключення з ключем:
Вивести рядки з 10 по 20:

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, виконання

Quoting

echo "Hello from sh" Приклад:
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"

Порахувати помилки:

<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

cd ..;

!Перевага
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 для адміністрування

Коментарі

Символ Скопіювати файл:

  1. !/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 |}



Пошук без урахування регістру:

|- |'''Не брати змінні в лапки''' |Пробіли в іменах файлів можуть зламати команду |- |'''Копіювати команди без розуміння''' |Можна пошкодити систему |- |'''Плутати > і >>''' |<code>></code> перезаписує файл, <code>>></code> додає в кінець |- |'''Запускати rm -r без перевірки''' |Можна видалити важливі каталоги |- |'''Не перевіряти exit code''' |Скрипт має змогу продовжити роботу після помилки |- |'''Писати Bash-скрипт із shebang /bin/sh''' |sh має змогу не підтримувати Bash-синтаксис |- |'''Зберігати паролі в скрипті''' |Це небезпечно |}

name="Anna"

Restore:

Змінити власника:<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

  1. !/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 — це не заміна повноцінним мовам програмування для великих застосунків.;Подивитися вміст архіву:

  1. !/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

Неправильно:

mv notes.txt notes_old.txt while [ "$count" -le 5 ]; do Він потрібен для: !Значення !Практика !Правило |- |'''*''' |Будь-яка кількість символів |<code>*.txt</code> |- |'''?''' |Один символ |<code>file?.txt</code> |- |'''[]''' |Один символ із набору |<code>file [123].txt</code> |} Рекомендовано:<pre>

Копіювання файлу через scp:

if [ !; {| class="wikitable"

Перейменувати файл:

return 1

Pipes — одна з найсильніших ідей Unix shell: маленькі програми можна поєднувати в потужні ланцюжки.

Рекомендований шлях навчання Shell

echo "Hello, $1"

chmod

npm run build

Що вивчати Запуск:

echo "$PATH" directory="$1" == PowerShell ==

Shell часто застосовується для скриптів запуску контейнерів.; |-
Ключове 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/