1. Введение: Философия Linux
Представьте, что вы покупаете автомобиль. В большинстве случаев (Windows, macOS) вы получаете "черный ящик": он едет, но вы не можете заглянуть под капот, не можете его модифицировать или починить самостоятельно. Linux — это как если бы вам дали не только автомобиль, но и полный набор чертежей, инструментов и доступ в мировое сообщество инженеров, готовых помочь вам его улучшить.
В основе Linux лежат три кита:
- Open Source (Открытый исходный код): Код системы доступен каждому. Это гарантирует прозрачность, безопасность (тысячи экспертов ищут уязвимости) и бесконечные возможности для кастомизации.
- Стабильность: Linux-системы славятся своей надежностью. Серверы могут работать годами без перезагрузки. Именно поэтому 96.3% из топ-1 миллиона веб-серверов в мире работают на Linux.
- Контроль: Вы — хозяин своей системы. Нет навязанных обновлений, нет скрытых процессов. Вы можете настроить абсолютно все, от внешнего вида до поведения ядра.
Профессиональный совет: Не путайте Linux и GNU/Linux. Linux — это только ядро (двигатель). GNU — это набор базовых инструментов (коробка передач, руль, колеса). Вместе они образуют полноценную ОС, которую мы и называем GNU/Linux.
2. Установка в VirtualBox: Ваша личная песочница
Мы установим Linux в безопасной среде — виртуальной машине. Это как симулятор полетов для пилота: вы можете делать что угодно, не боясь "разбить" свой основной компьютер.
- Скачайте и установите Oracle VM VirtualBox.
- Скачайте образ Ubuntu 22.04 LTS. LTS означает Long-Term Support — версия с долгосрочной поддержкой, самая стабильная.
- Создайте виртуальную машину:
- Имя: `Cortex-Ubuntu`
- Память (RAM): Минимум 2048 MB, рекомендуется 4096 MB.
- Жесткий диск: Создать новый, VDI, динамический, размер 25-30 GB.
- Настройте машину (важно!): В настройках машины перейдите в "Система" -> "Процессор" и выделите 2 ядра CPU. В разделе "Дисплей" увеличьте видеопамять до 128 MB.
- Запустите и установите Ubuntu: При первом запуске укажите скачанный `.iso` файл. В процессе установки выберите язык, минимальную установку (minimal installation) и опцию "Стереть диск и установить Ubuntu". Это безопасно для вашего основного компьютера.
После установки и перезагрузки у вас будет полноценный рабочий стол Ubuntu. Первым делом откройте терминал (Ctrl+Alt+T) и обновите систему:
sudo apt update && sudo apt upgrade -y
Это хорошая привычка, которая гарантирует, что у вас установлены все последние обновления безопасности.
3. Анатомия Системы: Ядро и Пользовательское пространство
Система Linux четко разделена на два мира: Kernel Space (Пространство Ядра) и User Space (Пользовательское Пространство). Ядро имеет полный доступ ко всему оборудованию. Все ваши программы живут в User Space и могут общаться с "железом" только через специальные запросы к ядру — системные вызовы (syscalls). Это фундаментальный принцип защиты.
+-------------------------------------------------+
| User Space (Ваши программы) |
| Браузер | Текстовый редактор | Терминал |
|=================================================| <- System Calls
| Kernel Space (Полный контроль) |
| |
| Процессы | Память | Файловая система | Сеть |
|-------------------------------------------------|
| Оборудование |
+-------------------------------------------------+
4. Терминал: Основы Магии
Терминал (или командная строка) — это не пережиток прошлого, а самый эффективный способ взаимодействия с системой. Каждая команда имеет структуру: `команда [опции] [аргументы]`.
4.1. Навигация и Осмотр
pwd - показать текущую директорию. ls -la - показать все файлы в подробном виде. cd [путь] - сменить директорию.
Лайфхаки: cd ~ вернет вас в домашнюю директорию из любого места. cd - вернет в предыдущую директорию. Используйте клавишу Tab для автодополнения команд и путей — это сэкономит вам уйму времени!
4.2. Создание и Уничтожение
mkdir [имя] - создать папку. touch [имя] - создать пустой файл. cp [что] [куда] - скопировать. mv [что] [куда] - переместить или переименовать.
Команда удаления rm требует особого уважения.
rm file.txt # Удалить файл
rmdir empty_dir # Удалить ПУСТУЮ папку
rm -r dir_with_files # Рекурсивно удалить папку со всем содержимым
ВНИМАНИЕ: В Linux нет "корзины" для терминала. Команда rm удаляет файлы навсегда. Команда rm -rf /, выполненная от имени суперпользователя, уничтожит вашу систему за секунды. Думайте дважды, нажимайте Enter один раз.
4.3. Чтение Файлов
cat [файл] - выводит все содержимое файла в терминал (хорошо для маленьких файлов). less [файл] - открывает файл в интерактивном режиме просмотра (идеально для больших логов, выход - клавиша `q`). head -n 10 [файл] - показать первые 10 строк. tail -n 10 [файл] - показать последние 10 строк.
4.4. Суперсила: Конвейеры и Перенаправление
Это то, что делает терминал невероятно мощным. Вы можете "склеивать" команды.
- Конвейер `|` (pipe): Передает вывод одной команды на вход другой.
- Перенаправление `>`: Перенаправляет вывод в файл (перезаписывая его).
- Перенаправление `>>`: Добавляет вывод в конец файла.
# Найти все файлы в системе и отфильтровать только те, что содержат "ssh"
find / | grep "ssh"
# Сохранить список процессов в файл
ps aux > running_processes.txt
# Добавить текущую дату в конец лог-файла
date >> my_app.log
5. Файловая Система (FHS)
Все папки в Linux имеют свое четкое предназначение. Понимание этой структуры — ключ к быстрому поиску нужных файлов.
| Директория | Назначение |
|---|---|
/ | Корень. Начало всего. |
/bin & /sbin | Ключевые системные команды. |
/etc | Конфигурации. Все настройки системы и программ лежат здесь. |
/home/username | Ваш дом. Все ваши личные файлы. |
/var | Изменяемые данные. Самое важное здесь - /var/log, где хранятся все системные журналы (логи). |
/tmp | Временные файлы, которые удаляются при перезагрузке. |
/dev | Устройства. Ваш диск (/dev/sda), мышь, все представлено файлами здесь. |
/proc | Виртуальная файловая система с информацией о запущенных процессах. |
6. Пользователи и Права Доступа: Кто что может?
Linux — многопользовательская система. У каждого файла есть владелец, группа и набор прав для трех категорий: владелец (user), группа (group) и остальные (others).
Запустите ls -l и вы увидите что-то вроде -rwxr-xr--. Разберем это:
d rwx r-x r--
- --- --- ---
| | | |
| | | +-- Права для "остальных" (чтение)
| | +------- Права для "группы" (чтение, исполнение)
| +------------ Права для "владельца" (чтение, запись, исполнение)
+---------------- Тип файла (d - директория, - - файл)
Права бывают трех видов: r (read - чтение), w (write - запись), x (execute - исполнение).
Для управления правами используется команда chmod, а для смены владельца — chown. Суперпользователь root может делать с системой абсолютно все. Чтобы выполнить команду от его имени, используется sudo (SuperUser Do).
# Сделать скрипт исполняемым для владельца
chmod u+x my_script.sh
# Дать права на чтение и запись всем (777 - плохая практика!)
chmod 777 sensitive_data.txt
# Сменить владельца файла
sudo chown new_user report.docx
7. Установка Программ: Менеджер пакетов APT
В Linux программы устанавливаются не скачиванием `.exe` файлов, а через централизованные хранилища — репозитории. Менеджер пакетов (в Ubuntu это APT) сам скачивает программу и все ее зависимости, устанавливает и следит за обновлениями.
Это невероятно удобно и безопасно! Вы всегда получаете проверенное ПО из надежного источника.
Основные команды:
sudo apt update— обновить список доступных пакетов.sudo apt upgrade— обновить все установленные пакеты до последних версий.sudo apt install [имя_пакета]— установить программу (например,sudo apt install neofetch).sudo apt remove [имя_пакета]— удалить программу.apt search [ключевое_слово]— найти пакет в репозиториях.
8. Финальное Практическое Задание
Время объединить все знания. Ваша миссия — подготовить рабочее окружение для проекта.
- Создайте в своей домашней директории папку
final_project. - Внутри нее создайте структуру: папки
src(для исходников),docs(для документации),data(для данных). - Перейдите в папку
docsи создайте файлreadme.md. - Запишите в этот файл текущую дату и время, используя перенаправление вывода (команда
date). - Перейдите в папку
srcи создайте файлmain.sh. - Сделайте файл
main.shисполняемым только для вас (владельца). - Установите из репозитория утилиту
tree(sudo apt install tree). - Вернитесь в папку
final_projectи выполните командуtree, чтобы увидеть красивое дерево вашего проекта. Сохраните результат в файлproject_structure.txtв папкеdocs.
Если вы справились, вы не просто "познакомились" с Linux. Вы научились им пользоваться. Это прочный фундамент, на котором мы будем строить все дальнейшие знания.