Linux и Bash

2.1 Терминал и Shell

Терминал — это текстовый интерфейс для взаимодействия с операционной системой. Shell — это программа, которая интерпретирует ваши команды и выполняет их.

Что такое Shell

Shell — это командная оболочка, которая:

  • Принимает команды от пользователя
  • Интерпретирует их
  • Выполняет соответствующие программы
  • Возвращает результат

Популярные Shell

Bash (Bourne Again Shell)

  • Самый популярный shell в Linux
  • Совместим с sh
  • Много возможностей для автоматизации

Zsh (Z Shell)

  • Современная альтернатива bash
  • Улучшенное автодополнение
  • Темы и плагины

Открытие терминала

# Открыть терминал в Ubuntu/Linux Mint
Ctrl + Alt + T
# Или через меню приложений
# Найти "Терминал" или "Terminal"

2.2 Файловая система Linux

В Linux все организовано в виде единого дерева каталогов, начинающегося с корневого каталога /.

Иерархия каталогов

/
├── bin/          # Основные исполняемые файлы
├── boot/         # Файлы загрузчика
├── dev/          # Устройства
├── etc/          # Конфигурационные файлы
├── home/         # Домашние каталоги пользователей
├── lib/          # Библиотеки
├── media/        # Съемные носители
├── mnt/          # Точки монтирования
├── opt/          # Дополнительное ПО
├── proc/         # Информация о процессах
├── root/         # Домашний каталог root
├── run/          # Временные файлы
├── sbin/         # Системные исполняемые файлы
├── srv/          # Данные сервисов
├── sys/          # Системная информация
├── tmp/          # Временные файлы
├── usr/          # Пользовательские программы
└── var/          # Переменные данные

Назначение основных каталогов

/bin — основные команды системы (ls, cp, mv, rm)
/home — домашние каталоги пользователей
/etc — конфигурационные файлы системы
/var — логи, кэш, временные данные
/root — домашний каталог администратора

2.3 Пути и навигация

Путь — это адрес файла или каталога в файловой системе. В Linux используются два типа путей.

Абсолютные пути

Начинаются с / и указывают полный путь от корня файловой системы:

/home/user/documents/file.txt
/etc/passwd
/usr/bin/python3

Относительные пути

Указывают путь относительно текущего каталога:

documents/file.txt    # файл в подкаталоге
../other/file.txt     # файл в родительском каталоге
./script.sh          # файл в текущем каталоге

Специальные символы

Символы навигации

  • . — текущий каталог
  • .. — родительский каталог
  • ~ — домашний каталог пользователя
  • - — предыдущий каталог

2.4 Команды навигации

Основные команды для навигации по файловой системе Linux.

pwd — показать текущий каталог

pwd
# Вывод: /home/user

ls — список файлов и каталогов

ls                    # простой список
ls -l                 # подробный список
ls -a                 # включая скрытые файлы
ls -h                 # размеры в удобном формате
ls -la                # комбинация флагов

cd — смена каталога

cd /home/user         # перейти в абсолютный путь
cd documents          # перейти в подкаталог
cd ..                 # перейти в родительский каталог
cd ~                  # перейти в домашний каталог
cd -                  # вернуться в предыдущий каталог

file — определение типа файла

file document.txt     # text file
file image.jpg        # JPEG image
file script.sh        # shell script

Полезные комбинации

ls -la ~              # подробный список домашнего каталога
cd /var/log && ls     # перейти в /var/log и показать содержимое
pwd && ls -la         # показать путь и содержимое