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

Базові команди Bash

Bash (Bourne Again SHell) — це оболонка командного рядка + мова сценаріїв, яка використовується для:

  • виконання команд
  • автоматизації задач
  • написання скриптів

Bash — це повноцінна мова програмування, але з важливим уточненням — це скриптова мова для автоматизації в Unix/Linux-середовищі, а не універсальна мова на рівні Java чи Python.

Bash має всі базові можливості програмування:

  • змінні
  • умовні конструкції (if, case)
  • цикли (for, while)
  • функції
  • обробку вводу/виводу
  • роботу з файлами
  • обробку помилок

Основні команди

pwd              # показати поточну директорію
ls               # список файлів
ls -la           # детальний список (з прихованими)
cd /path         # перейти в директорію
cd ..            # на рівень вище
clear            # очистити термінал

Робота з файлами та папками

touch file.txt           # створити файл
mkdir dir                # створити папку
mkdir -p a/b/c           # створити вкладені папки
rm file.txt              # видалити файл
rm -r dir                # видалити папку
cp file.txt copy.txt     # копіювати файл
cp -r dir1 dir2          # копіювати папку
mv file.txt new.txt      # перейменувати / перемістити

Перегляд вмісту файлів

cat file.txt             # показати весь файл
less file.txt            # перегляд з прокруткою
head file.txt            # перші 10 рядків
tail file.txt            # останні 10 рядків
tail -f log.txt          # слідкувати за логом

Пошук

find . -name "*.txt"     # знайти файли
grep "text" file.txt     # пошук у файлі
grep -r "text" .         # пошук рекурсивно
which python             # шлях до програми

Права доступу

chmod +x script.sh       # зробити файл виконуваним
chmod 755 file           # встановити права
chown user:file file     # змінити власника

Робота з процесами

ps aux                  # список процесів
top                     # моніторинг процесів
htop                    # покращений моніторинг
kill 1234               # завершити процес
kill -9 1234            # примусово завершити

Архівування

tar -czf archive.tar.gz dir   # створити архів
tar -xzf archive.tar.gz       # розпакувати
zip archive.zip file.txt      # zip
unzip archive.zip             # unzip

Мережа

ping google.com          # перевірка зв’язку
curl http://example.com  # HTTP-запит
wget http://example.com  # завантажити файл
ssh user@host            # підключення по SSH
scp file user@host:/path # копіювання по SSH

Змінні

NAME="John"
echo $NAME

PATH_TO_FILE="/home/user/file.txt"
echo $PATH_TO_FILE

Умови

if [ -f "file.txt" ]; then
  echo "Файл існує"
else
  echo "Файл не знайдено"
fi

Цикли

for file in *.txt; do
  echo $file
done

i=1
while [ $i -le 5 ]; do
  echo $i
  i=$((i+1))
done

Функції

hello() {
  echo "Привіт $1"
}

hello "Світ"

Ввід / Вивід

echo "Hello"             # вивід
read name                # ввід
echo "Привіт $name"

command > file.txt       # запис у файл
command >> file.txt      # додати в файл
command 2> error.log     # помилки
command &> all.log       # все в файл

Pipe (конвеєри)

cat file.txt | grep "error"
ps aux | grep java
ls -la | sort

Виконання скриптів

chmod +x script.sh
./script.sh

bash script.sh

Shebang

#!/bin/bash
echo "Hello world"

Коментарі

Популярні публікації

Шпаргалка по базових командах PostgreSQL

1. Підключення до PostgreSQL через командний рядок: psql -h <host> -p <port> -U <username> -d <database> 2. Підключення до бази без параметрів (якщо користувач і база мають однакове ім’я): psql 3. Показати список усіх баз даних: \l 4. Підключитися до іншої бази даних: \c <database_name> 5. Показати список таблиць у поточній базі: \dt 6. Показати всі об'єкти (таблиці, індекси, секвенції): \d 7. Показати таблиці з усіх схем: \dt *.* 8. Переглянути структуру конкретної таблиці: \d <table_name> 9. Виконати SQL-запит (приклад): SELECT * FROM users; 10. Вийти з psql: \q 11. Створити нову базу даних: CREATE DATABASE mydb; 12. Створити нову таблицю: CREATE TABLE users ( id SERIAL PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE ); 13. Додати новий запис: INSERT INTO users (name, email) VALUES ('Іван', 'ivan@example.com'); 14. Оновити дані в таблиці: UPDATE users SET name = 'Петро' WH...

Основи GLSL

Що таке GLSL? GLSL (OpenGL Shading Language) – мова програмування шейдерів для OpenGL. Використовується для написання vertex, fragment, geometry та інших шейдерів, що працюють на GPU. Оголошення версії #version 330 core Вказує версію GLSL. Наприклад, 330 core відповідає OpenGL 3.3. Вхідні та вихідні змінні layout(location=0) in vec3 aPos; layout(location=1) in vec3 aNormal; out vec3 FragPos; in – вхідні атрибути (vertex shader). out – вихідні змінні (vertex shader) або фінальний колір (fragment shader). Основні типи даних float, int, bool vec2, vec3, vec4 mat2, mat3, mat4 sampler2D (текстури) Тип Опис Приклади використання vec2 Двокомпонентний вектор з типом float. - Текстурні координати (UV) - 2D позиції - Швидкість у 2D vec3 Трикомпонентний вектор з типом float. - Координати позицій у 3D - Нормалі - Колір у форматі RGB vec4 Чотирикомпо...

Атоми в мові програмування Elixir

Атоми в Elixir Атоми є фундаментальною концепцією в Elixir , що відіграє ключову роль у створенні надійних та масштабованих систем. В Elixir це специфічний тип даних, який є константою , незмінною , ідентифікованою за своїм ім'ям . Отже, атом в Elixir — це іменована константа, що представляє себе. Уявіть, що ви даєте унікальне ім'я певній речі, і це ім'я завжди посилається саме на цю річ, і ніколи на щось інше. Наприклад, атом :ok завжди буде означати саме успішне завершення операції, а не якесь інше значення. Технічно, атоми є похідними від чисел . Кожен унікальний атом зберігається у таблиці атомів, і йому присвоюється унікальний цілочисельний ідентифікатор. Це робить їх надзвичайно ефективними для порівняння: замість порівняння рядків (що є повільною операцією), Elixir порівнює цілочисельні ідентифікатори. Переваги та особливості використання атомів Переваги атомів: Ефективність. Завдяки своєму числовому представленню, порівняння атомів є дуже швидким. Це осо...

Встановлення PostgreSQL на Ubuntu-сервер

Встановлення Оновлюємо пакети та встановлюємо PostgreSQL: sudo apt update sudo apt install -y postgresql postgresql-contrib Перевіряємо статус сервісу: sudo systemctl status postgresql Якщо PostgreSQL не запущений, запустимо його: sudo systemctl start postgresql sudo systemctl enable postgresql Налаштування безпеки Зміна пароля: sudo -u postgres psql У консолі PostgreSQL: ALTER USER postgres PASSWORD 'міцний_пароль'; \q \q - вихід з консолі. Список основних команд для роботи з PostgreSQL можна переглянути за посиланням. За замовчуванням PostgreSQL слухає localhost (127.0.0.1). Щоб дозволити доступ із зовнішніх машин, редагуємо конфігурацію: sudo nano /etc/postgresql/17/main/postgresql.conf (замість 17 вкажи версію PostgreSQL, яку встановлено) Шукаємо рядок: #listen_addresses = 'localhost' та замінюємо на listen_addresses = '*' Зберігаємо (Ctrl + X, Y, Enter). Тепер редагуємо pg_hba.conf: sudo nano /etc/postgresql/17/main/pg_hba.conf...

Прості типи даних в Elixir

Мова Elixir має низку простих (примітивних) типів даних, які часто використовуються в повсякденному програмуванні. Числа Elixir підтримує цілі (integer) та дійсні числа (float). # Цілі числа a = 42 b = -7 # Дійсні числа c = 3.14 d = -0.001 Булеві значення Elixir має два булевих значення: true та false . x = true y = false z = x and y # false Атоми Атоми — це константи з іменем, що починається з двокрапки. Вони широко використовуються, наприклад, для імен параметрів або станів. :ok :error :running :elixir_is_fun Рядки Рядки в Elixir — це двійкові дані з кодуванням UTF-8, оголошуються в подвійних лапках. name = "Pavlo" greeting = "Привіт, #{name}!" Nil Nil — це спеціальне значення, що позначає "відсутність значення". value = nil is_nil(value) # true Бінарні дані та байти Бінарні дані оголошуються в подвійних лапках або як бінарні літерали. string = "Привіт" # це рядок, але також бінарні дані binary = ...