6.1.4 Вступление в Linux и основные команды
Linux — это операционная система, которая, как и Windows или macOS, управляет компьютером. Однако она имеет свои особенности, которые делают её подходящей для различных задач — от серверов до встраиваемых устройств и даже для настольных ПК. Главное отличие Linux от большинства других операционных систем заключается в том, что она является открытым программным обеспечением, то есть исходный код доступен для изучения и изменений.
Она основана на UNIX — операционной системе, которая была разработана в 1960-х годах и оказала большое влияние на создание других систем. Linux существует в разных дистрибутивах, таких как Ubuntu, Debian, CentOS, Fedora и многих других. Каждый из них немного отличается, но базовые принципы остаются одинаковыми.
Вариативность дистрибутивов Linux – что выбрать?
Одним из ключевых аспектов Linux является наличие множества дистрибутивов. Каждый дистрибутив Linux имеет свои особенности и предназначен для различных целей, от простоты в использовании до максимальной кастомизации и оптимизации для серверов. Выбор дистрибутива зависит от потребностей пользователя и его уровня знаний.
Основные дистрибутивы:
- Ubuntu и его производные (Linux Mint, Zorin OS и т.д.) — наиболее популярные и удобные для начинающих. Они ориентированы на пользователя, обеспечивая простой интерфейс и доступность пакетов через менеджеры пакетов.
- Debian — более стабильный и подходящий для тех, кто ценит безопасность и долговечность, но требует большего времени на настройку.
- Fedora — дистрибутив, ориентированный на новейшие технологии и сообщество разработчиков. Он более “свежий” по сравнению с Ubuntu, но может быть менее стабильным.
- Arch Linux — для опытных пользователей. Arch предлагает полную кастомизацию, и установка на нем напоминает настройку системы с нуля.
- CentOS/RHEL — ориентированы на серверное использование и предлагают высокую стабильность, что делает их идеальными для серверов и организаций.
- Kali Linux — дистрибутив, специализирующийся на безопасности и тестировании на проникновение.
Для новичков рекомендуется в первую очередь Ubuntu или Mint или Zorin OS (для обучения), так как они предлагают максимально удобный интерфейс и простоту настройки.
Выбор зависит от вашего опыта и того, какие задачи вам нужно решать. Linux позволяет пользователям гибко настроить систему, но для новичков важна простота и поддержка.
Основные различия
Если вы привыкли работать с Windows, переход в Linux может показаться непривычным. Вот несколько ключевых отличий:
-
Командная строка — в отличие от Windows, где интерфейс и все действия выполняются в основном через графическое окружение, Linux широко использует командную строку. В Windows тоже можно работать с командной строкой (CMD или PowerShell), как и дистрибутивы Linux часто имеют версии с графической оболочкой, но чисто статистически в Linux это гораздо более основной способ взаимодействия с системой.
-
Гибкость и настройка — в Linux можно настраивать все, что угодно, начиная от самого ядра системы и заканчивая каждым сервисом. Windows обычно ограничивает пользователю возможность настройки, давая интерфейс с уже заранее определенными параметрами.
-
Безопасность — Linux считается более безопасной операционной системой по сравнению с Windows. Это связано с тем, что большинство пользователей в Linux работают без прав суперпользователя (root), и для выполнения административных действий требуется ввод пароля.
-
Обновления и установка программ — в Linux программы часто устанавливаются через менеджеры пакетов, такие как apt или yum, а не через скачивание и установку файлов с сайта. Обновления системы также происходят централизованно, и это может быть более безопасным и удобным способом поддержания системы в актуальном состоянии.
-
Файловая система — в отличие от Windows, где используется система NTFS и разделы C:, D:, E…, в Linux все начинается с единой корневой папки /. Все файлы и каталоги могут быть организованы в дереве, начиная с корня.
В целом, ОС семейства Linux значительно более производительные в контексте серверной работы. Хотя у Microsoft имеется собственная серверная ОС Windows Server, используется она скорее в нишевых проектах с определенными зависимостями или специфичиными запросам.
Детально о преимуществах и недостатках Linux в сравнении с Windows
Преимущества Linux:
-
Открытость и кастомизация. Linux является открытым ПО, что позволяет пользователю изменять исходный код, настраивать систему и устанавливать только те компоненты, которые необходимы. Дистрибутивы Linux предоставляют выбор настроек, которые могут подстроить систему под любые требования, от легкости до максимальной безопасности.
-
Безопасность. В Linux используется модель безопасности с правами пользователей, где обычный пользователь не имеет доступа к системным файлам, что повышает безопасность. Linux значительно реже поддается вирусным атакам и имеет более строгие механизмы контроля доступа.
-
Легкость и эффективность. Ядро Linux не требует таких ресурсов, как Windows, и может работать на старых или слабых компьютерах. Благодаря легкости системы можно настроить рабочую среду, которая будет работать быстрее на тех же самых ресурсах.
-
Стабильность и производительность. Linux — это система, которая идеально подходит для серверов, поскольку она может работать бесперебойно месяцами и годами. Для работы с большим количеством данных и многозадачности Linux предоставляет более стабильную и предсказуемую среду
Бесплатность. Почти все дистрибутивы Linux являются бесплатными, в отличие от Windows, где необходимо покупать лицензию.
Недостатки Linux:
Совместимость с программами. Многие популярные программы, такие как Microsoft Office или Adobe Photoshop, отсутствуют в Linux, и приходится искать альтернативы (например, LibreOffice или GIMP). Некоторые профессиональные приложения могут работать только в Windows, и для этого приходится использовать Wine или виртуальные машины.
-
Поддержка драйверов. В некоторых случаях драйвера для оборудования могут быть не так хорошо поддержаны в Linux, особенно для новых моделей принтеров, видеокарт и других устройств. Хотя ситуация улучшилась, пользователи иногда сталкиваются с трудностями при настройке драйверов.
-
Игры. Хотя Linux все больше поддерживает игры, многие популярные игры и игровые платформы (например, Steam) могут не работать так же хорошо, как в Windows. Для игр на Linux необходимо либо использовать Proton, либо найти альтерантивы.
Сложность для новичков. Для пользователей, привыкших к Windows, переход на Linux может быть сложным, особенно если речь идет о командной строке и настройке системы вручную.
Теперь, когда мы разобрались с основами, можно переходить ко второму разделу, где более подробно рассмотрим, что нужно знать пользователю Windows, переходящему на Linux.
Что нужно знать пользователю Windows, переходящему на Linux?
Файловая система и пути
В Linux нет разделов, как в Windows (C:
, D:
, и т.д.). Вместо этого вся файловая система начинается с корня (/
). Все устройства (например, жесткие диски, флешки) монтируются в эту файловую систему и становятся доступными через каталоги, например, /mnt
или /media
. Если Вы подключаете внешний диск, он будет доступен через каталог вроде /media/имя_диска
. Важно понимать, что вся файловая структура выглядит как единое дерево, и даже устройства и разделы интегрируются в это дерево.
Пример: В Windows внешний диск может быть доступен как E:
, а в Linux он будет доступен как /media/username/ExternalDrive
.
Пользователь и права доступа
В Linux каждый файл или каталог имеет владельца, группу и права доступа, которые могут быть настроены отдельно для чтения, записи и выполнения. Это важное различие от Windows, где атрибуты безопасности можно изменить только через графический интерфейс. В Linux управление правами доступа происходит через команды, такие как chmod
, chown
, и chgrp
.
Также, в Linux часто используют пользователя root для выполнения административных задач. В Windows можно использовать учетную запись администратора, но в Linux рекомендуется запускать команды с правами root только по мере необходимости, используя команду sudo
перед командой.
Пример: Если вы хотите изменить настройки системы, вам нужно будет использовать sudo
для выполнения команд с правами суперпользователя, например, sudo apt update
для обновления системы.
Менеджеры пакетов и установка программ
В Linux нет такого понятия, как скачивание установочных файлов (например, .exe
в Windows). Все программы устанавливаются через менеджеры пакетов, которые являются удобным инструментом для установки, обновления и удаления программ. Это позволяет быстро устанавливать приложения с минимальными усилиями.
Примеры популярных менеджеров пакетов:
- APT (
Advanced Package Tool
) для дистрибутивов на базе Debian (например, Ubuntu). Для установки программы достаточно выполнить команду типаsudo apt install firefox
. - YUM/DNF для дистрибутивов на базе Red Hat (например, Fedora, CentOS). Для установки программы используйте команду
sudo dnf install firefox
. - Pacman для Arch Linux и его производных. Установка программы с помощью команды sudo pacman -S firefox.
Установка через менеджер пакетов гарантирует, что вы получите последнюю стабильную версию программы, и минимизирует риск загрузки вредоносных файлов.
Обновления системы
Обновления в Linux происходят централизованно через систему пакетов. Это значит, что Вам не нужно вручную искать обновления для каждой программы, как это происходит в Windows.
В Linux обновления часто включают не только обновления для приложений, но и для самой операционной системы и ядра. В Windows обновления происходят через Центр обновлений Windows, и, хотя это тоже автоматический процесс, в Linux обновления можно контролировать с помощью простых команд в терминале, например sudo apt update && sudo apt upgrade
для обновлений в Ubuntu.
Использование командной строки
В отличие от Windows, где командная строка используется реже, в Linux она является основным инструментом взаимодействия с системой. Знание базовых команд Linux существенно упростит использование системы, ведь многие действия можно выполнить быстрее и эффективнее с помощью терминала, чем через графический интерфейс.
Пример: Для создания нового каталога в Windows достаточно щелкнуть правой кнопкой мыши и выбрать Создать папку
. В Linux вы можете сделать это с помощью команды в терминале:
mkdir myfolder
Для навигации по файлам в Linux используется команда cd
, а для просмотра содержимого каталога — команда ls
. В Windows это аналогично проводнику, но через командную строку.
Процесс работы с программами
В Windows многие программы запускаются автоматически при старте системы и могут работать в фоновом режиме без вашего вмешательства с помощью системы Служб. В Linux вы часто будете вручную запускать процессы, контролировать их с помощью команд, таких как ps
для просмотра запущенных процессов и kill
для завершения программы. А грубым аналогом Служб являются Сервисы.
Пример: Чтобы увидеть список процессов, запущенных на вашей системе, используйте команду:
ps aux
Чтобы завершить процесс, нужно использовать команду:
kill [PID]
где [PID]
— это идентификатор процесса.
Настройки системы
В Linux большинство настроек системы доступно через текстовые конфигурационные файлы, которые можно отредактировать с помощью текстовых редакторов, таких как nano, vim или gedit. В Windows настройки чаще всего изменяются через графический интерфейс или с помощью редактора реестра.
Пример: Для изменения настроек сети в Linux, вам нужно будет редактировать файлы, такие как /etc/network/interfaces
или использовать команды для управления сетью, например nmcli
.
Совместимость программ
Хотя в Linux есть множество программ для замены популярных приложений Windows, некоторые программы могут работать только в Windows. Для запуска Windows-программ в Linux существует несколько решений:
- Wine — позволяет запускать Windows-программы на Linux.
- VirtualBox или VMware — позволяет установить Windows в виртуальной машине внутри Linux.
Такой подход даст вам более полное представление о практических аспектах перехода с Windows на Linux. Если нужно продолжить, готов добавить больше деталей!
Основные команды
Достаточно теории. Давайте пройдемся по практике!
Небольшой дисклеймер перед ознакомлением с командами
Команды Linux так или иначе выполняются через терминал. Это может быть прямой терминал на Вашем локальном ПК, удаленное подключение к такому же терминалу по VNC или IP-KVM и так далее. Но в 90% случаев - это реализуется через удаленное подключение по протоколу SSH
Команды в Linux обычно следуют определенному синтаксису, который состоит из нескольких компонентов. Чтобы понять, как работает команда, важно понимать роль каждого элемента. Среднестатистическая команда в Linux выглядит примерно вот так:
tar -czvf archive.tar.gz folder
Где:
tar
– это название самой программы или утилиты, которую вы хотите запустить. В нашем примере этоtar
– утилита для создания и извлечения архивов в Linux. В данном случае она используется для создания архива из каталога.czvf
– после команды могут следовать различные аргументы, которые уточняют, как программа должна работать. Аргументы обычно начинаются с одного или двух дефисов и состоят из букв (или слов). В примере-czvf
— это целый набор аргументов, и каждый из них выполняет конкретную задачу и может быть скомбинирован друг с другом.archive.tar.gz
иfolder
– после команды и ее аргументов идут переменные, которые представляют собой данные, которые вы хотите обработать командой. В примереarchive.tar.gz
— это название нашего будущего архива, аfolder
– каталог или файл, который будет архивирован.
Как можно заметить, переменные мы выделили отдельно. Точно также мы будем выделять их и далее во всех примерах.
Как посмотреть детальную информацию о команде прямо в терминале?
Синтаксис построения команд в Linux удивительно вариативный – чтобы описать все параметры даже базовых команд непременно ушло бы очень много времени и текста. Если же Вы хотите ознакомиться со всеми параметрами без поиска соответствующей документации, это можно сделать прямо в терминале.
-
man
и--help
. Чтобы узнать больше о любой команде в Linux, можно использовать командуman
(manual). Она показывает руководство по использованию команды: -
Пример:
man ls
Выведет подробное руководство по команде ls
.
- Альтернативно, большинство команд поддерживают флаг
--help
, который также предоставляет краткую информацию о команде.
ls --help
Навигация по каталогам
В Linux для навигации по файловой системе используется несколько ключевых команд. Основной командой для перемещения между каталогами является cd
(change directory).
Примеры использования:
- Перейти в домашний каталог пользователя:
cd ~
- Перейти в родительский каталог (на уровень выше):
cd ..
- Перейти в конкретный каталог:
cd /home/user/documents
- Чтобы узнать, в каком каталоге вы находитесь, используйте команду
pwd
(print working directory). Это полезно, если вы запутались в структуре каталогов:
pwd
Выведет полный путь к текущему каталогу, например /home/user
.
Управление файлами и каталогами
Linux предоставляет несколько команд для работы с файлами и каталогами. Вот основные из них:
- ls — отображает содержимое каталога.
- Простое использование:
ls
- Для подробного списка с правами, владельцами и размерами:
ls -l
- Для отображения скрытых файлов (начинаются с точки):
ls -a
- cp — копирует файлы и каталоги.
- Копирование файла:
cp file.txt /home/user/Documents/
- Копирование каталога (с опцией
-r
для рекурсивного копирования):
cp -r folder /home/user/Documents/
- mv — перемещает или переименовывает файлы.
- Перемещение файла:
mv file.txt /home/user/Documents/
- Переименование файла:
mv oldname.txt newname.txt
- rm — удаляет файлы или каталоги.
- Удаление файла:
rm file.txt
- Удаление каталога и всех его содержимых файлов (с опцией
-r
):
rm -r folder
5. touch — создает пустой файл или обновляет временную метку существующего файла.
- Создание файла:
touch newfile.txt
Управление правами доступа
В Linux важной частью работы с файлами является управление правами доступа. Используется команда chmod
для изменения прав доступа, и chown
для изменения владельца файлов.
1. chmod — изменяет права доступа к файлам и каталогам.
- Чтобы предоставить владельцу полный доступ (чтение, запись, выполнение), группе и другим пользователям — использовать:
chmod 755 file.txt
Здесь 7 означает права на чтение, запись и выполнение (rwx
) для владельца, 5 — на чтение и выполнение (rx
) для группы, и 5 — для других.
2. chown — изменяет владельца и группу файла.
- Для изменения владельца и группы файла:
chown user:group file.txt
Мониторинг системы
Для мониторинга работы системы и текущих процессов используется несколько полезных команд:
Совет: более детально вопрос мониторинга нагрузки и процессов уже описан в другой нашей статье.
1. top — показывает текущие процессы, загрузку системы и память.
- Пример:
top
Для выхода из режима мониторинга нажмите q
.
2. ps — отображает список текущих процессов.
- Для отображения всех процессов:
ps aux
3. df — показывает информацию о доступном и использованном пространстве на диске. Более детально описана в следующей статье.
- Для получения информации о дисках:
df -h
4. free — показывает информацию о памяти.
- Для получения информации о оперативной и своп-памяти:
free -h
Продвинутые команды
Существует множество более продвинутых команд с бесконечными вариантами построения запросов. Их в этой вступительной статье мы не можем описать детально, но наиболее расптространенные заслуживают упоминания:
1. grep и — поиск текста в файлах.
- Пример:
grep "search_term" filename
2. find — поиск файлов в системе. Она более детально описана в следующей статье.
- Пример:
find /home/user -name "*.txt"
3. tar — архивирование и разархивирование файлов. Более детально описана в следующей статье.
- Пример для создания архива:
tar -czvf archive.tar.gz folder
- Пример для разархивирования:
tar -xzvf archive.tar.gz
4. wget — скачивание файлов по URL.
- Пример:
wget http://example.com/file.zip
5. curl — отправка HTTP-запросов и загрузка данных.
- Пример для получения содержимого веб-страницы:
curl http://example.com
6. nano — текстовый редактор для командной строки.
- Открытие файла:
nano file.txt
Для сохранения изменений: Ctrl + O
, для выхода: Ctrl + X
.
7. alias — создание псевдонимов для команд.
- Пример для создания псевдонима:
alias ll="ls -l"
8. history — просмотр истории вводимых команд.
- Пример:
history
9. shutdown и reboot — выключение и перезагрузка системы.
- Для выключения:
sudo shutdown now
- Для перезагрузки:
sudo reboot
10. ip — управление сетевыми интерфейсами.
- Пример для отображения текущих настроек:
ip a
11. mount и umount — монтирование и размонтирование файловых систем.
- Пример монтирования:
sudo mount /dev/sda1 /mnt
- Пример размонтирования:
sudo umount /mnt
12. rsync — синхронизация и резервное копирование файлов. Более детально описана в нашей статье.
- Пример для копирования:
rsync -av source/ destination/
Терминал — это мощный инструмент для работы с Linux, и чем больше вы будете им пользоваться, тем быстрее освоитесь. Во многих случаях использование команд в терминале значительно быстрее, чем через графический интерфейс. Не бойтесь ошибок, они легко исправимы. Главное — начинать!
В заключение
Linux — это бескрайний океан возможностей, и в этом путешествии не будет конца.
Linux предлагает высокий уровень контроля и безопасности, а также свободу настройки, что делает его идеальным выбором для разработчиков, системных администраторов и энтузиастов. Простой доступ к мощным инструментам и утилитам командной строки позволяет работать быстрее и эффективнее.