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. Вы научились им пользоваться. Это прочный фундамент, на котором мы будем строить все дальнейшие знания.