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

📂 Основи Linux, Файли та Текст

Фундаментальні команди для пересування системою, роботи з файлами та обробки тексту.


Навігація та Основи

Команда Опис Приклад
pwd Print Working Directory. Поточна робоча директорія. pwd
cd Change Directory. Зміна поточної директорії. cd /var/log (абсолютний шлях)
cd .. (рівнем вище)
cd ~ (домашня директорія)
ls List. Список файлів. ls -lah (відображення прихованих, детально, читабельний розмір)
history Історія команд. history \| grep ssh (пошук команди)
!105 (виконати команду за номером)
man Manual. Довідкова система. man grep (вихід через q)

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

Створення та Копіювання (cp, mv)

Дія Команда
Створити папку mkdir photos (одну)
mkdir -p projects/python/bot (дерево папок)
Створити файл touch notes.txt (пустий)
echo "Hello" > notes.txt (з текстом)
Копіювати cp file.txt backup.txt
cp -r my_folder/ /media/usb/ (рекурсивно для папок!)
Перемістити mv file.txt /tmp/
Перейменувати mv old_name.txt new_name.txt
Видалити rm junk.txt (файл)
rm -r old_folder/ (папку)

Wildcards (Маски)

Використовуйте * та ? для роботи з групами файлів:

rm *.log          # Видалити всі .log файли
cp photo_?.jpg backup/  # Копіювати photo_1.jpg, photo_2.jpg і т.д.
mv *.txt documents/     # Перемістити всі текстові файли

Brace Expansion (Швидке створення)

mkdir {2020,2021,2022}  # Створить 3 папки
touch file_{1..5}.txt   # Створить file_1.txt, file_2.txt ... file_5.txt

Читання файлів

  1. cat - для маленьких файлів. Виводить все одразу.
    cat config.json
    
  2. less - для великих файлів. Можна гортати стрілками.

    less long_log.txt
    
    (Вихід - q. Пошук - /текст).

  3. head / tail - початок і кінець.

    head -n 5 file.txt   # Перші 5 рядків
    tail -f app.log      # Відстеження нових рядків у реальному часі (для логів)
    


Скрипти та обробка (grep, pipe)

Командна оболонка дозволяє об'єднувати команди через | (pipe). Вивід однієї команди передається на вхід наступній.

grep

Фільтрація рядків за заданим шаблоном.

# Показати тільки помилки в логах
cat /var/log/syslog | grep "Error"

# Знайти процес python
ps aux | grep python

# Шукати текст у всіх файлах папки (рекурсивно)
grep -r "TODO" ./projects/

awk, sed, cut

  • cut: Виділення частин рядків.

    # Отримати список користувачів з /etc/passwd (1-ша колонка, роздільник :)
    cut -d: -f1 /etc/passwd
    

  • awk: Обробка структурованого тексту.

    # Показати тільки PID (2 колонка) процесу
    ps aux | grep chrome | awk '{print $2}'
    

  • xargs: Передає вхід як аргументи іншій команді.

    # Знайти всі .log файли та видалити їх
    find . -name "*.log" | xargs rm
    


Архіви (tar, zip)

В Linux "рідний" формат - .tar.gz.

TAR (Tape Archive):

  • Запакувати: tar -czvf archive.tar.gz my_folder/

    • c (create) - створити архів.
    • z (gzip) - стиснути (зменшити розмір).
    • v (verbose) - показувати процес на екрані.
    • f (file) - вказати файл архіву (обов'язково в кінці ключів!).
  • Розпакувати: tar -xzvf archive.tar.gz

    • x (extract) - витягнути файли.

ZIP:

  • zip -r data.zip folder/ (ключ -r обов'язковий для папок).
  • unzip data.zip

Клавіатурні скорочення

  • Tab: Автодоповнення! Почніть писати cd Doc і натисніть Tab -> стане cd Documents/. Тисніть Tab двічі, щоб побачити варіанти.
  • Ctrl+R: Пошук в історії. Натисніть і почніть писати команду, яку вводили вчора.
  • Ctrl+C: Зупинити поточну програму (Cancel).
  • Ctrl+L: Очистити екран (як clear).
  • Ctrl+Z: "Заморозити" програму (повернути назад командою fg).
  • alias: Створіть свої команди.
    # Додайте в ~/.bashrc:
    alias ll='ls -lah'
    alias update='sudo apt update && sudo apt upgrade -y'
    
    Тепер, щоб оновити систему, просто напишіть update.