Разное

Уроки linux: Основы Linux (обзор с практическим уклоном) / Хабр

Содержание

Основы Linux (обзор с практическим уклоном) / Хабр

Привет, Хабр!

В последние несколько лет все больше и больше людей ищут возможность войти в ИТ или поглубже изучить Linux, повысив уровень своей квалификации. Вместе с тем полноценных обзоров с практическим уклоном по типу «все и сразу» написано не так уж и много (особенно на русском языке).

Главная задача данной статьи – указать начинающим специалистам направление развития, дать ключевые понятия для дальнейшего изучения и показать несколько простых практических приемов. По этой причине (а еще, безусловно, вследствие недостаточной квалификации автора) теоретический материал достаточно сильно упрощен.

Что такое Linux?

История и определение

В 1969 году в дочернем подразделении компании AT&T – Bell Laboratories – была выпущена операционная система Unix, которая стала основной для большого количества операционных систем того времени. UNIX была проприетарной системой, лицензия на нее стоила порядка 40 000 долларов. Таким образом, позволить себе ее покупку могли только крупные компании. Это послужило толчком для старта в 1983 году проекта GNU – GNU is Not Unix. Его основоположник, Ричард Столлман, объявил целью проекта создание свободно распространяемой операционной системы. Чуть позже Столлманом был написан знаменитый манифест GNU, который стал основой для лицензии GPL (GNU General Public License), актуальной и по сей день. К началу 1990-х годов в рамках проекта GNU было написано большинство компонентов ОС – оболочка bash, компиляторы, отладчик, текстовый редактор и др. Не хватало лишь ядра операционной системы.

В 1991 году Линус Торвальдс, будучи студентом финского университета, увлекся идеей написания ядра операционной системы для своего персонального компьютера с процессором Intel. Вдохновлением и прототипом для будущего Linux стала совместимая с Unix операционная система для персональных компьютеров Minix. Уже в августе 1991 года было написано ядро операционной системы, в нее были портированы оболочка bash и компилятор gсс из проекта GNU.  По признанию самого Линуса, изначально это было не более, чем хобби, однако проект оказался весьма востребованным, к нему начали присоединяться разработчики со всего мира. Дополненная массой программ, разработанных в рамках проекта GNU, ОС Linux стала пригодна для практического использования. При этом ядро системы распространялось под лицензией GNU General Public License, что гарантировало свободное распространение кода ядра системы. 

Читать подробнее: История Linux. Вкратце о главном

Итак, сегодня Linux (или GNU/Linux) – семейство Unix-подобных операционных систем на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU. Linux-системы распространяются в виде различных дистрибутивов, имеющих свой набор системных и прикладных компонентов (как свободных, так и проприетарных).

Серверные дистрибутивы

Дистрибутив Linux — это операционная система, созданная на основе ядра Linux, которая включает в себя набор библиотек и утилит (пакетов), разработанных в рамках проекта GNU, а также систему управления пакетами (менеджер пакетов).  В настоящее время существует более 500 различных дистрибутивов, разрабатываемых как при коммерческой поддержке (Red Hat / Fedora, SLED / OpenSUSE, Ubuntu и др.), так и исключительно усилиями добровольцев (Debian, Slackware, Gentoo, ArchLinux и др.). 

Дистрибутивы делятся на несколько типов в зависимости от базового дистрибутива и системы управления пакетами. Вот несколько примеров наиболее популярных серверных дистрибутивов двух типов:

  • RPM-based (используют формат пакетов .rpm)
    RedHat Enterprise Linux, CentOS, Fedora

  • DEB-based (используют формат пакетов .deb)
    Debian, Ubuntu, Astra Linux

Стоит отметить, что существует великое множество различных дистрибутивов на любой вкус и цвет. Их невозможно даже сосчитать, так как практически каждый представитель сообщества может собрать свой собственный дистрибутив на основе ядра Linux.

Работа с Linux

Загрузка

Алгоритм включения сервера и загрузки Linux в большинстве случаев выглядит следующим образом:

  • BIOS / UEFI → MBR / GPT
    Выполняется код, заложенный производителем аппаратного обеспечения. Этот код проводит тестирование системы POST (Power On Self Test) и передает управление загрузчику в MBR (Master Boot Record) / GPT (GUID Partition Table)

  • MBR / GPT → GRUB2 (существуют и другие загрузчики)
    Загрузчик из MBR / GPT очень простой – он способен только найти на диске и запустить следующий загрузчик. Как правило это GRUB2, но существуют и другие загрузчики, например LILO (в настоящее время практически не используется)

  • GRUB2 → Kernel
    GRUB2 расположен на разделе жесткого диска в каталоге /boot. GRUB2 загружает ядро Linux (vmlinuz)

  • Kernel → Init
    Ядро запускает процесс инициализации операционной системы. Как правило это SystemD, но существуют и другие системы инициализации, например SystemV (в настоящее время практически не используется). Процесс инициализации запускает все остальные процессы в системе

Читать подробнее: Алгоритм загрузки Linux (BIOS / UEFI)

Подключение

Командная оболочка

Подключиться к Linux для управления можно в интерфейсе командной строки (command-line interface, CLI) или в графическом интерфейсе (graphical user interface, GUI). При работе с серверной инфраструктурой в подавляющем числе случаев GUI отсутствует и взаимодействие с сервером осуществляется в CLI. При входе пользователя на сервер в CLI запускается командная оболочка (в GUI командную оболочку можно запустить через эмулятор, например Terminal). Командная оболочка (shell) – это программа, которая принимает команды с клавиатуры и передает их операционной системе для выполнения. Наиболее распространенной командной оболочкой в Linux является GNU bash (Bourne Again SHell). bash основывается на другой легковесной оболочке-предшественнике – sh (Bourne sh), созданной Стефеном Борном.

Команды можно выполнять с помощью командной строки, указав имя двоичного (бинарного, bin) исполняемого файла или сценария. По умолчанию в Linux много команд, которые позволяют перемещаться по файловой системе, устанавливать ПО, конфигурировать его и выполнять другие действия. Каждая запущенная команда является отдельным процессом. Важно отметить, что в Linux (в отличие от Windows) почти всегда учитывается регистр, включая имена файлов и каталогов, команды, аргументы и опции.

Читать подробнее: Основы работы с терминалом Linux

SSH

Подключаться к Linux и работать с командной оболочкой можно локально (например включив ПК дома или подойдя к серверу в центре обработки данных), однако гораздо чаще работать с системой требуется удаленно. Для этого необходимо настроить SSH и подключаться через него. SSH (Secure SHell) – это протокол, позволяющий производить удаленное управление операционной системой и туннелирование TCP-соединений (например, для копирования файлов). SSH основан на клиент-серверной архитектуре, которая организует защищенное (зашифрованное) соединение поверх небезопасных каналов связи. Серверная часть устанавливается на удаленном сервере, а клиентская на компьютере, с которого осуществляется подключение.

Существует много клиентов для удаленного подключения к серверу по SSH. Вот несколько примеров для различных операционных систем:

  • Windows
    PuTTY – выбор новичка, PowerShell (команда ssh), Xshell – выбор автора, MobaXterm, mRemoteNG

  • Linux
    Terminal (команда ssh) – выбор новичка и автора, Asbru Connection Manager

  • MacOS
    Terminal (команда ssh) – выбор новичка и автора, Core Shell

Читать подробнее: 

  • SSH

  • Как подключиться по SSH

  • Лучшие SSH клиенты для Windows, Linux и MacOS

Установка программ (утилит) пакетным менеджером

Зачем нужны пакетные менеджеры?

На заре развития Linux установить приложение (утилиту) можно было только путем скачивания исходного кода программы и компиляции. Это не практично и не слишком удобно для пользователей, поэтому были разработаны пакетные менеджеры. Установка приложений в них производится из пакетов – архивов с файлами скомпилированной программы. Большинство популярных дистрибутивов Linux содержат пакетные менеджеры, способные устанавливать любое программное обеспечение. Пакетные менеджеры имеют свой список репозиториев – серверов с базой пакетов. Во время установки алгоритм менеджера находит необходимый пакет в базе и производит автоматическое скачивание, установку и настройку.

Существует несколько форматов пакетов, однако наибольшее распространение получили .deb и .rpm. Рассмотрим операционные системы и менеджеры пакетов для данных форматов:

  • DEB (.deb)
    ОС – DEB-based, например Debian, Ubuntu, AstraLinux
    Система управления пакетами – DPKG (работает только с локальными пакетами)
    Пакетный менеджер – apt

  • RPM (.rpm)
    ОС – RPM-based, например RedHat Enterprise Linux, Fedora, CentOS
    Система управления пакетами – RPM (работает только с локальными пакетами) 
    Пакетный менеджер – yum (в последних дистрибутивах заменен на dnf)

Читать подробнее: Популярные пакетные менеджеры Linux

Практика

На практике пользователю необходимо уметь взаимодействовать с пакетными менеджерами – устанавливать и удалять пакеты.

Ниже приведены несколько примеров команд:

# руководство (справочная информация)
man <utility> # просмотр справочной информации по утилите
<utility> --help # просмотр справочной информации по утилите
# менеджер пакетов apt (.deb)
sudo apt install nano # установка пакета
sudo apt remove nano # удаление пакета
sudo apt autoclean # удаление кэша пакетов
# менеджер пакетов yum (.rpm) - для dnf команды полностью аналогичны
sudo yum install nano # установка пакета
sudo yum remove nano # удаление пакета
sudo yum clean all # удаление кэша пакетов

При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.

Структура файловой системы и работа с файлами

Типы файлов

Все объекты в Linux являются файлами. Существуют следующие типы файлов:

  • Обычные файлы 
    Символьные и двоичные данные (текст, картинки, программы и др.)

  • Каталог (директория) d
    Список ссылок на файлы или другие каталоги

  • Символьные ссылки l
    Ссылки на другие файлы по имени

  • Блочные устройства b, символьные устройства c
    Интерфейсы для взаимодействия с аппаратным обеспечением (диски, терминалы, клавиатуры, принтеры и др. ). Когда происходит обращение к файлу устройства, ядро операционной системы передает запрос драйверу этого устройства

  • Сокеты s и каналы p
    Интерфейсы для взаимодействия процессов

Читать подробнее: Типы файлов в Linux

Структура файловой системы

Структура файловой системы представляет собой дерево, корнем которой является каталог /.

Рассмотрим подробно структуру и назначение каталогов:

  • /bin (binaries) – исполняемые файлы самых необходимых утилит. Может быть символьной ссылкой на /usr/bin

  • /boot – файлы, необходимые для самого первого этапа загрузки – загрузки ядра (и обычно само ядро)

  • /dev (devices) – блочные и символьные файлы устройств (диски, терминалы, клавиатуры, принтеры и др.)

  • /etc (etcetera) – конфигурационные файлы системы и различных программ

  • /home – домашние каталоги пользователей для хранения «личных» файлов

  • /lib (libraries) – файлы библиотек (стандартных функций, необходимых многим программам), необходимых для работы утилит. Может быть символьной ссылкой на /usr/bin

  • /mnt (mount) – каталог для подключения файловых систем (съемных носителей и др.)

  • /opt (optional) – каталог для дополнительных программ (проприетарных драйверов, агентов мониторинга и др.)

  • /proc (process) – файлы в оперативной памяти, в которых содержится информация о выполняемых в системе процессах

  • /root – домашний каталог пользователя root

  • /sbin (system binaries) – файлы системных утилит, необходимые для загрузки, резервного копирования и восстановления системы. Может быть символьной ссылкой на /usr/sbin

  • /sys (system) – виртуальная файловая система sysfs, которая содержит информацию об аппаратном обеспечении (ЦПУ, ОЗУ, дисках, сетевых устройствах), драйверах, ядре системы и др.

  • /tmp – каталог для временных файлов, обычно зачищается при каждой загрузке системы

  • /usr – пользовательский каталог, который содержит каталоги исполняемых файлов и конфигурационных файлов

  • /var (variable) – файлы, создаваемые или используемые различными программами (логи, очереди, идентификаторы процессов, БД и др. )

Читать подробнее: Структура файловой системы Linux

Права доступа

В Linux права доступа к файлам (в том числе к каталогам) задаются для трех видов пользователей – владельца, группы владельца и остальных. Также есть три типа доступа к файлу – чтение r (Read), запись w (Write) и исполнение x (eXecution), которые задаются для каждого из видов пользователей. Прочерк  означает отсутствие доступа.

Таким образом, права доступа к файлу выглядят следующим образом:

  • права для владельца (u, user) – read, write, execution

  • права для группы владельца (g, group) – read, write, execution

  • права для остальных пользователей (o, other) – read, write, execution

Пример: rwx r— — означает, что у владельца есть права на все, у группы владельца доступ только на чтение, а у остальных доступа нет. В двоичной системе счисления эти права выглядят как три группы цифр – 111 100 000, что равносильно трем цифрам 7 4 0 в восьмеричной и десятичной системах счисления.

Читать подробнее: 

  • Владельцы файлов и папок в Linux

  • Команда chmod в Linux

Практика

На практике пользователю необходимо осуществлять навигацию по системе, просматривать, создавать, редактировать и удалять файлы, настраивать права доступа.

Ниже приведены несколько примеров наиболее часто используемых команд:

# руководство (справочная информация)
man <utility> # просмотр справочной информации по утилите
<utility> --help # просмотр справочной информации по утилите
# навигация
ls -la <dir> # просмотр содержимого каталога (в том числе прав доступа)
cd <dir> # переход в каталог
# каталоги
mkdir <dir> # создание каталога
rmdir <dir> # удаление пустого каталога
rm -rf <dir> # удаление каталога с файлами
# файлы
cat <file> # вывод файла в консоль
less <file> # постраничный вывод файла
tail <file> # вывод последних строк («хвоста») файла
vi <file> # редактиврование файла текстовым редактором vi
nano <file> # редактирование файла текстовым редактором nano
cp <file> <dir> # копирование файла в каталог
mv <file> <dir> # перемещение файла в каталог (для переименования переместите файл в тот же каталог)
rm <file> # удаление файла
rm -rf <dir>/* # удаление всех файлов в каталоге
# права доступа
chown <user> <dir> # установить пользователя владельцем каталога
chown <user>:<group> <dir> # установить владельца и группу владельца каталога
chmod 644 <file> # установить права доступа rw- r-- r-- (чтение и запись для владельца, чтение для группы владельца, чтение для остальных пользователей)
сhmod 740 <file> # установить права доступа rwx r-- --- (чтение, запись и исполнение для владельца, чтение для группы владельца)
chmod u+w <file> # добавить владельцу право на запись файла

При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.

Процессы и потребление ресурсов сервера

Процессы

Если предельно упростить, то процесс – это любая программа, которая выполняется в системе. В ходе работы с системой может быть запущено множество программ, которые, в свою очередь, могут запустить множество процессов. Простейший пример процесса – командная оболочка bash. Каждому процессу в Linux присваивается уникальный идентификатор процесса (PID), который используется ядром для управления процессом до завершения программы или команды, с которой он связан.

Процесс может находиться в следующих статусах:

  • Выполнение (R, Running)
    Выполнение или ожидание ЦПУ для выполнения

  • Сон (S, Sleep)
    Прерываемое программно ожидание

  • Непрерываемый сон (D, Direct)
    Ожидание «прямого» сигнала от аппаратной части для прерывания

  • Приостановлен (T, Tracing)
    Отладка

  • Зомби (Z, Zombie)
    Выполнение завершено, однако ресурсы не освобождены

Почти любой процесс (кроме процесса в статусе D) может быть принудительно прерван администратором в случае необходимости («убит»). Это не всегда безопасно, однако возможно.

Запущенные процессы требуют использования аппаратных ресурсов сервера – ЦПУ, ОЗУ, дисков, сетевых интерфейсов.

Читать подробнее: Процессы в Linux

Практика

На практике пользователю необходимо просматривать списки процессов и останавливать процессы, а также просматривать имеющиеся и потребляемые ресурсы сервера в системе.

Ниже приведены несколько примеров наиболее часто используемых команд:

# руководство (справочная информация)
man <utility> # просмотр справочной информации по утилите
<utility> --help # просмотр справочной информации по утилите
# процессы
top
sudo ps aux
sudo kill -9 <pid> # убийство процесса по PID
sudo killall -s 9 <name> # убийство всех процессов по имени
# утилиты для мониторинга использования ресурсов
htop # использование ресурсов по процессам (может потребоваться установка пакета htop)
nmon # использование процессора по ядрам, памяти, дисков и др. (может потребоваться установка пакета nmon)
iostat # использование процессора в среднем по ядрам и чтение/запись по дискам
# ЦПУ
lscpu # общая информация
cat /proc/cpuinfo # подробная информация
# ОЗУ
cat /proc/meminfo # общая информация и потребление
free -h # удобное представление на основе данных из файла meminfo
ps aux --sort -rss # использование памяти по процессам
# диски
lsblk # общая информация
df -h # просмотр занятного места по разделам
du -сh <dir> # просмотр занятого места в каталоге
# сеть
/sys/class/net/<interface>/speed # просмотр максимальной скорости интерфейса

При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.

Программный комплекс systemd

Зачем нужен systemd?

SystemD – это программный комплекс, состоящий из системных компонентов Linux. Основным компонентом является система инициализации системы SystemD, которая пришла на смену SystemV в большинстве современных дистрибутивов. Ядро Linux запускает процесс systemd, который, в свою очередь, запускает все остальные процессы системы.

SystemD предоставляет следующий функционал:

  • Запуск служб при старте системы (по возможности параллельно) по различным таргетам (target, аналог уровней загрузки в SystemV)
    Обеспечивается обратная совместимость с системами инициализации SystemV и LSB

  • Контроль состояния запущенных служб

  • Управление устройствами, входом в систему, сетевыми подключениями, ведение журнала событий

  • Интерфейсы для реализации функциональных возможностей ядра – cgroups, autofs, kdbus

  • Набор утилит для управления системой – systemctl, journalctl и др.

Что такое systemd unit?

SystemD Unit – это обычный текстовый файл в стиле ini, который декларативно описывает информацию о службах .service, устройствах .device, целях запуска .target и других типах модулей systemd.

Описание юнита состоих из нескольких секций:

  • Unit
    Description (краткое описание), After (ожидание запуска), Requires (обязательная зависимость) и др.

  • Service
    Type (тип) – по умолчанию Simple, ExecStart (команда для запуска), ExecStop (команда для остановки) и др.

  • Install
    WantedBy (таргет или уровень запуска, на котором юнит должен запуститься)

Файлы systemd unit располагаются в следующих каталогах:

  • /etc/systemd/system – юниты, создаваемые администраторами

  • /usr/lib/systemd/system – юниты из установленых пакетов

  • /run/systemd/system – юниты, создаваемые во время работы системы (в runtime)

Редактировать и создавать юниты можно с помощью текстового редактора (например vi или nano).

Читать подробнее:

  • Применение systemd: только самое главное

  • Понимание systemd юнитов

  • Примеры systemd unit – NGINX, Apache

Практика

На практике пользователю необходимо просматривать различные systemd unit, просматривать их содержимое и управлять сервисами, а также читать журналы логов.

Ниже приведены несколько примеров наиболее часто используемых команд:

# руководство (справочная информация)
man <utility> # просмотр справочной информации по утилите
<utility> --help # просмотр справочной информации по утилите
# просмотр юнитов
systemctl # список юнитов (это псевдоним команды systemctl list-units)
systemctl --type=service # юниты типа сервисы
systemct | grep <keyword> # юниты, содержащие ключевое слово (полезно для быстрого поиска)
systemctl cat <unit> # описание юнита
# управление юнитами
systemctl status <unit> # статус (состояние) юнита
sudo systemctl daemon-reload # перезагрузка конфигурационных файлов в systemd
sudo systemctl enable <unit> # включение сервиса в автозагрузку
sudo systemctl disable <unit> # отключение сервиса из автозагрузки
sudo systemctl start <unit> # запуск
sudo systemctl stop <unit> # остановка
# журналы логов
journalctl -u <unit> # чтение логов по юниту
journalctl -u <unit> --since today # чтение логов по юниту со смены дня 

При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.

Сеть

На практике пользователю необходимо уметь просматривать сетевые настройки сервера, а также уметь проводить простейшую диагностику сетевых проблем.

Ниже приведены несколько примеров наиболее часто используемых команд:

# руководство (справочная информация)
man <utility> # просмотр справочной информации по утилите
<utility> --help # просмотр справочной информации по утилите
# просмотр сетевых настроек сервера
ip a # IP адреса
ip n # ARP таблица
cat /etc/resolv.conf # конфигурация DNS
sudo netstat -tulpn # открытые порты
sudo ss -tulpn # открытые порты (молодежный вариант)
# диагностика сетевых проблем
nslookup <hostname> # проверка разрешения DNS имени
ping <host> # отправка ICMP пакетов до хоста
traceroute <host> # трассировка до хоста UDP пакетами
telnet <host> <port> # проверка доступности TCP порта на хосте
nmap <host> # сетевое сканирование хоста
nmap -p T:<port> <host> # проверка доступности TCP порта на хосте (молодежный вариант)
nmap -p U:<port> <host> # проверка доступности UDP порта на хосте (молодежный вариант)

При необходимости уточняйте описание утилит и ключей выполнения в Интернете или в руководстве man.


Все статьи серии:

  1. Основы Linux (обзор с практическим уклоном)

  2. Основы виртуализации (обзор)

  3. Основы контейнеризации (обзор Docker и Podman)

  4. Основы мониторинга (обзор Prometheus и Grafana)

Введение в Linux и Bash. Курс для начинающих

Курс «Введение в Linux и Bash» – серия статей-уроков, знакомящих с историей, особенностями и философией операционных систем GNU/Linux, принципами работы в режиме командной строки и основными командами, выполняемыми в Bash.

Курс будет полезен начинающим пользователям операционной системы GNU/Linux, будущим системным администраторам и веб-разработчикам, планирующим самостоятельно развертывать сайты на веб-серверах.

  • История Linux
    Кратко рассматриваются предпосылки возникновения операционной системы Linux и ее развитие: историческая значимость Unix, роль проекта GNU, как появилось ядро Linux, многообразие дистрибутивов.

  • Свободное ПО и копилефт
    GNU GPL — одна из разновидностей копилефт-лицензий для свободного программного обеспечения. В статье рассматриваются исторические причины появления копилефт-лицензий и преимущества открытого и свободного ПО.

  • Ядро Linux
    Что такое ядро операционной системы, особенности Unix-подобных ядер, в том числе Linux. Понятие о дистрибутивах GNU/Linux.

  • Каталоги Linux
    Понятие о корневом каталоге, стандарт файловой иерархии unix-подобных систем, назначение основный директорий Linux (/home, /bin/, /boot и др.)

  • Типы файлов Linux
    Типы файлов Linux: обычные файлы (-), каталоги (d), символьные ссылки (l), символьные (c) и блочные (b) устройства, каналы (p) и сокеты (s). В Linux расширение файла не несет информации для ОС о типе файла.

  • Интерфейс командной строки
    Интерфейс командной строки — иной, отличный от графического режима, способ работы в операционной системе, при котором команды отдаются с помощью их ввода с клавиатуры. Исторически CLI возник раньше GUI.

  • Bash – командная оболочка Linux
    Bash — это наиболее распространенная командная оболочка для Linux. Bash позволяет работать в интерфейсе командной строки операционной системы, отдавая команды в интерактивном режиме.

  • Параметры команд
    Команды Bash могут содержать параметры. Ключи, или опции, модифицируют работу программы. Аргументы, или операнды, — то, над чем выполняется команда.

  • Ctrl + C, Ctrl + D, Ctrl + Z
    В терминале Ctrl + C и Ctrl + D прерывают работу программ, Ctrl + Z — останавливает и переводит в фоновый режим. Чтобы сделать фоновую задачу текущей, используется команда fg. Для удаления процессов — команда kill.

  • История команд и автодополнение
    В Bash история команд прокручивается стрелками вверх и вниз, для автозавершения команд и адресов используется Tab — клавиша табуляции. История команд и автодополнение облегчают ввод с клавиатуры.

  • Перенаправление ввода-вывода
    В Bash с помощью знака больше > вывод команды можно перенаправить в файл. С помощью знака меньше < изменяется стандартный поток ввода. Программные каналы организуются с помощью знака |.

  • Документация Linux
    В Bash доступ к документации программ GNU/Linux можно получить с помощью программ man, info, ключа —help. Man-страницы имеют строгую структуру, info — неофициальная документация.

  • Команда cd. Абсолютная и относительная адресация
    Для перехода по дереву каталогов в Bash используется команда cd, которая в качестве аргумента принимает абсолютный или относительный адрес каталога, который делает текущим.

  • Команда ls – просмотр каталога
    Команда ls используется в командной оболочке Linux для вывода содержимого каталогов и информации о файлах. У программы ls есть много ключей, позволяющих получать о файлах более подробную информацию, а также выводить ее в различных форматах.

  • Копирование, перемещение, создание и удаление файлов и каталогов
    В командной оболочке Bash команда cp копирует файл, mv — перемещает и переименовывает, mkdir — создает каталог, rm — удаляет. При копировании и перемещении сначала указывается источник, потом место назначения.

  • Жесткие и символьные ссылки
    В Linux каждый файл идентифицируется числовым индексным дескриптором. Имена файлов указывают на дескрипторы и являются жесткими ссылками. Символьные ссылки указывают на жесткие ссылки.

  • Создание ссылок в Linux
    В командной оболочке Linux жесткие ссылки на файлы создаются с помощью команды ln. Для создания символьных ссылок на файлы и каталоги используется команда ln -s.

  • Права доступа к файлам и каталогам
    В Unix-подобных ОС для файлов устанавливаются биты прав доступа на чтение, изменение и выполнение по отношению к трем категориям: владельцу, группе и остальным. Права могут выставляться с помощью букв (rwx) и чисел.

  • Команда chmod – изменение прав доступа
    С помощью команды chmod изменяют права доступа к файлам и каталогам. Может использоваться как символьный, так и числовой способ назначения прав.

  • Шаблоны имен файлов
    В шаблонах имен файлов любое количество любых символов обозначается звездочкой *. Любой один символ — знаком вопроса ?. Если надо задать только определенные допустимые символы, то используются квадратные скобки [].

  • Поиск файлов. Команда find
    В Bash поиск файлов выполняется командой find. Сначала указывается каталог, потом свойство и его значение. Например, find . -name «*.html» ищет файлы html в текущем каталоге.

  • Команда sudo – администрирование системы
    Утилита sudo позволяет выполнить команду с правами администратора системы. В Bash сначала пишется sudo, затем команда и ее параметры.

  • Пакетный менеджер APT
    В Linux установка программ выполняется с помощью пакетных менеджеров. Наиболее популярным является apt. Команда установки: apt install. Команда удаления: apt remove.

  • Изучайте Linux с помощью онлайн-курсов, занятий и уроков

    От администрирования сети до предоставления платформы для программирования — у Linux есть множество применений. Для тех, кто хочет работать с Linux, есть много возможностей изучить Linux онлайн и даже получить сертификат Linux на курсах, проводимых через edX.

    Что такое Linux?

    Linux — это операционная система (ОС), представляющая собой программное обеспечение, отвечающее за связь между программным и аппаратным обеспечением компьютера. Технически часть операционной системы, которая на самом деле называется «Linux», — это ядро, представляющее собой часть программного обеспечения, отвечающую за управление основным процессором компьютера (ЦП), памятью и периферийными устройствами, такими как монитор, клавиатура, принтер и т. д. Исходное ядро ​​Linux имеет открытый исходный код, что означает, что пользователи могут изменять и распространять его исходный код. Но не все последующие варианты Linux пошли по пути открытого исходного кода.¹

    Linux поставляется в различных вариантах, известных как проекты или дистрибутивы. Некоторые популярные дистрибутивы Linux включают Debian, Fedora, Ubuntu, Red Hat Enterprise Linux, Oracle Enterprise Linux и SUSE Linux Enterprise. Корпоративные дистрибутивы предназначены для корпоративного, делового или академического использования, предлагая регулярные обновления программного обеспечения и специализированную техническую поддержку платным клиентам.²

    Каждый дистрибутив обычно поставляется с ядром Linux; система управления пакетами, представляющая собой программное обеспечение, используемое для управления установкой, удалением, обновлением и настройкой программного обеспечения; и различные части программного обеспечения, которые облегчают взаимодействие между пользователем и программным обеспечением, такие как графические пользовательские интерфейсы (GUI), средства редактирования и доступа к коду, а также способы подключения устройств ввода, вывода и хранения.³

    Просмотреть онлайн-курсы по Linux

    Просмотреть все курсы

    Просмотреть все курсы

    Изучить Linux на онлайн-курсах и тренингах просмотр веб-страниц может быть в состоянии довольно легко освоить основы Linux, особенно с доступным дистрибутивом Linux, который имитирует пользовательский интерфейс таких операционных систем, как Windows или Mac OS.

    Если профессионал хочет знать, как изучать Linux, потому что он заинтересован в работе в Linux начального уровня или даже в карьере в Linux, он может начать с прохождения платного или бесплатного онлайн-курса по Linux или запуска Linux на одном из своих устройств. . Онлайн-обучение Linux доступно, потому что оно существует с 1991 года, и существует достаточно документации и учебных ресурсов, которые помогут людям найти лучший способ изучения Linux. Кроме того, поскольку у Linux очень много применений, онлайн-обучение Linux может дать возможность сузить кругозор за пределы того, что изучается на курсе Linux для начинающих.

    Знакомство с работой в Linux

    Изучение команд Linux и других основ Linux является обязательным требованием для любой работы в Linux начального уровня, но профессионалы также могут извлечь пользу из более конкретного курса Linux. Существуют курсы по разработке программного обеспечения для Linux, написанию самого кода Linux, сетевому администрированию, которое влечет за собой управление сетями компьютеров и серверов с использованием Linux, и многое другое.

    Есть также много нишевых профессий Linux. Например, учитывая, что многие устройства и сети работают под управлением Linux, кто-то, кто хочет работать в области компьютерной криминалистики, раскапывая цифровой мусор, используемый в киберпреступлениях, может извлечь пользу из изучения Linux. Онлайн-курс Linux также может быть возможностью получить сертификат Linux, даже в определенном дистрибутиве Linux, таком как Red Hat или Oracle. Менеджеры по найму могут предпочесть кандидатов с сертификатом Linux, если они хотят выполнять роли, предполагающие работу исключительно с определенными дистрибутивами Linux. Помимо отдельных курсов, существуют программы на получение степени, которые могут касаться основ Linux.

    Путь многих людей в поле может начаться с программы бакалавриата . Некоторые могут даже решить получить степень магистра в будущем, чтобы глубже погрузиться в специфику операционных систем и их реальных приложений.

    Как стать системным администратором Linux онлайн

    Одной из наиболее распространенных профессий Linux является системное администрирование Linux, которое включает в себя управление настройкой Linux в организации. Работа администратора Linux включает в себя установку, обновление, резервное копирование и настройку систем Linux. В должностные обязанности также может входить написание документации и оказание технической поддержки. Иногда быть системным администратором Linux является частью другой роли в отделе информационных технологий организации. Можно начать с заданий Linux начального уровня и в конечном итоге запустить огромные сети с использованием Linux, управляя другими системными администраторами Linux.

    Онлайн-обучение Linux — это один из способов подготовиться к поступлению на работу администратора Linux. Онлайн-курс Linux для администрирования Linux можно пройти в удобном для себя темпе и закончить его сертификатом Linux. В дополнение к основам Linux работа администратора Linux обычно требует понимания облачных технологий, безопасности, компьютерных сетей и решения проблем, которые обычно рассматриваются в онлайн-курсе Linux. Навыки межличностного общения и презентации также могут быть полезны, учитывая, что работа администратора Linux часто связана с сотрудничеством и может потребовать объяснения чего-то другим.

    Хотя путь к тому, чтобы стать системным администратором Linux, выглядит по-разному для каждого человека, некоторые жизнеспособные пути помимо онлайн-курсов по Linux включают получение степени бакалавра в области компьютерных наук или науки о данных или степени онлайн-магистра в области науки о данных или смежной области.

    FAQ по Linux

    Для чего используется Linux?

    Поскольку Linux — это операционная система, у Linux много применений. Linux используется для запуска всех видов сетей и устройств. Знание Linux важно для многих технических работ, поскольку многие из них выполняются на машинах, работающих под управлением Linux. Linux также используется в качестве операционной системы людьми, интересующимися бесплатными технологиями с открытым исходным кодом, и энтузиастами Linux, предпочитающими ее другим операционным системам.

    Как я могу изучить Linux?

    Можно изучить основы Linux, читая статьи, просматривая видео или используя приложения. Учащийся также может пройти платный или бесплатный онлайн-курс по Linux. Linux доступен для изучения, потому что его можно скачать бесплатно. Можно даже запустить Linux в другой операционной системе с помощью виртуальной машины, которая представляет собой программу, которая запускает операционные системы в специальном окне на рабочем столе. ⁶

    Как лучше всего изучить Linux?

    Лучший способ изучения Linux зависит от стиля обучения и жизненной ситуации учащегося, а также от возможного использования Linux. Самостоятельный курс Linux для начинающих, который дает возможность изучить команды Linux, может быть пройден по собственному усмотрению. А возможность заразиться компьютерным вирусом довольно редка, поэтому антивирусное программное обеспечение не всегда необходимо.⁷

    Трудно ли изучать Linux?

    Это зависит от уровня знаний человека. Изучение основ Linux может быть не слишком сложным для тех, кто уже знаком с вычислительной техникой. Это связано с тем, что в зависимости от дистрибутива Linux Linux имитирует другие распространенные операционные системы, такие как Mac OS или Windows. Более продвинутое использование Linux влечет за собой изучение других навыков, таких как программирование или работа в компьютерных сетях.

    Сколько времени нужно, чтобы изучить Linux?

    Есть книги и курсы, которые обещают научить Linux за 24 часа или пять дней. Это может быть эффективным способом начать изучение основ Linux. Курс Linux для начинающих, который предлагает более глубокое понимание основ Linux, может потребовать от студентов уделять пару часов обучению в неделю. Многие курсы также длятся пару недель. Онлайн-курс по Linux нередко заканчивается вручением сертификата Linux.

    Как я могу изучить Linux для начинающих?

    Если у кого-то достаточно опыта работы с компьютером, чтобы находить файлы, писать документы, просматривать Интернет и загружать приложения, он может начать изучать Linux. Все, что необходимо, — это устройство, которое может подключаться к Интернету для получения учебных материалов, а также программа или мобильное приложение, которое может работать под управлением Linux. Linux даже не обязательно быть основной операционной системой на устройстве.

    Последнее обновление

    Главная | Путешествие в Linux

    Получайте новости о новых курсах и уроках!


    Кузнечик

    Начало работы

    Что такое Linux? Начните с выбора дистрибутива и установки.

    Командная строка

    Изучите основы командной строки, навигации по файлам, каталогам и т. д.

    Text-Fu

    Изучите основы работы с текстом и навигации.

    Advanced Text-Fu

    Перемещайтесь по тексту, как Linux-обезьяна-паук, с помощью vim и emacs.

    Управление пользователями

    Узнайте о ролях пользователей и управлении ими.

    Разрешения

    Узнайте об уровнях разрешений и изменении разрешений.

    Процессы

    Узнайте о запущенных процессах в системе.

    Пакеты

    Узнайте все об инструментах управления пакетами dpkg, apt-get, rpm и yum.

    Подмастерье

    Устройства

    Узнайте об устройствах Linux и о том, как они взаимодействуют с ядром и пользовательским пространством.

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

    Узнайте о файловой системе Linux, различных типах файловых систем, разделах и многом другом.

    Загрузка системы

    Узнайте об этапах процесса загрузки Linux.

    Ядро

    Самая важная часть системы Linux, узнайте, как она работает и как ее настроить.

    Init

    Узнайте о различных системах инициализации, SysV, Upstart и systemd.

    Использование процессов

    Изучайте мониторинг ресурсов с помощью Top, Load Averages, iostat и многого другого!

    Ведение журнала

    Узнайте о системных журналах и каталоге /var/log.

    Сетевой кочевник

    Общий доступ к сети

    Узнайте о совместном использовании сети с помощью rsync, scp, nfs и других.

    Основы сети

    Узнайте об основах работы в сети и модели TCP/IP.

    Подсети

    Узнайте о подсетях и о том, как выполнять арифметические операции с подсетями!

    Маршрутизация

    Узнайте, как пакеты маршрутизируются по сетям!

    Network Config

    Узнайте о настройке сети с помощью инструментов Linux!

    Устранение неполадок

    Узнайте об общих сетевых инструментах, которые помогут вам диагностировать и устранять проблемы!

    DNS

    Все и даже больше, что вы хотели знать о DNS.

    Рекомендуемые ресурсы

    Как работает Linux: что должен знать каждый суперпользователь

    Одна из моих самых рекомендуемых книг!

    Руководство по системному администрированию UNIX и Linux, 4-е издание

    Чрезвычайно всеобъемлющая книга для каждого системного администратора.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *