Привет, меня зовут Илья. В прошлом месяце я пошёл учиться на курс для будущих системных администраторов. Но я невнимательно прочитал описание к курсу и не учёл, что для комфортного обучения нужно хотя бы минимальное понимание системы Linux. После установки новой системы я не увидел привычного рабочего стола с ярлыками и окнами, а встретил лишь подмигивающий курсор командной строки на пугающе чёрном фоне.
Мне пришлось самому в спешке искать нужную информацию — курс-то уже начался. Когда я разобрался, понял, что Linux — это не сложно, Linux — это непривычно. Я сделал для вас выжимку из фактов об устройстве Linux и базовый список терминальных команд, чтобы вы не попали в похожую ситуацию.
Как устроена операционная система Linux
Давайте разберёмся в устройстве файловой системы и принципах функционирования Linux. Всё не так страшно, как кажется на первый взгляд.
Открытый исходный код. Linux — операционная система с открытым исходным кодом. Это значит, что любой разработчик может взять выложенные в свободном доступе системные файлы и создать собственную версию Linux — дистрибутив. Версии отличаются встроенными функциями, производительностью, графическим окружением, поддержкой уникальных программ и команд и многим другим. Поэтому прежде чем скачать установочные файлы системы по первой же ссылке в браузере, нужно разобраться, для чего конкретно вам нужен Linux и, исходя из целей, выбирать подходящую версию. В этой статье я описываю команды на примере дистрибутива Mint – он является одним из самых универсальных и подходит для обучения профессии системного администратора.
Структура системы. Система состоит из каталогов и файлов и имеет иерархическую структуру. Есть главный каталог — корневой, от него ветвятся все остальные каталоги и подкаталоги, каждый имеет своё назначение. Так, в /etc — находятся настройки системы, в /bin и /usr — файлы установленных программ, а в /dev подключаются внешние устройства: мышь, колонки, микрофон, флешка, портативный жёсткий диск и др.
Простая схема файловой системы Linux
Установка программ. Чтобы установить программу, пользователи Windows скачивают установочный файл из браузера. На Linux тоже есть свои магазины приложений, но доступны они только в новых версиях систем и предлагают ограниченное количество программ. Традиционно установочные файлы программ для Linux скачиваются из специального пакетного менеджера, встроенного в систему. Это похоже на то, как мы ищем и устанавливаем приложения на мобильный через Google Play Market или App Store.
Командная строка. На Linux нет рабочего стола в классическом понимании. Есть графическое окружение, интуитивно понятное и требующее минимум усилий от пользователя, но не способное дать всего, что умеет система. Рабочий стол для Linux — это костыли, программа-прослойка между системой и юзером. Чтобы использовать все преимущества и возможности системы, нужно освоить терминал, который по-другому называют командной строкой или оболочкой. Одна из самых популярных разновидностей командной оболочки — bash.
Расширяемость команд. У команд есть дополнительные параметры — опции, которые расширяют возможности базовой команды. Ниже я покажу это на примерах конкретных команд.
Это основные факты об устройстве Linux, которые позволят сориентироваться в каталогах и файлах, заложат фундамент понимания системы и помогут начать пользоваться новой операционкой без страха «сложностей». А теперь перейдём к освоению базовых команд терминала.
Команды Linux для получения справочной информации
В интернете множество гайдов, посвящённых программам, сервисам и командам Linux. Но дистрибутивов системы много и нельзя быть до конца уверенным, что найденная в сети информация сработает для вашей версии Linux. Поэтому полезно уметь пользоваться встроенной справочной системой.
man, manual — руководство пользователя. Команда открывает страницу с технической документацией по командам, встроенным функциям и программам
Запросим руководство по команде man.
Запрашиваем у системы мануал по команде man
Выводится список со всеми характеристиками команды: названием, синтаксисом, описанием, доступными опциями и др.
Так выглядит мануал по команде man
help — команда, работающая по схожему принципу, что и предыдущая, но более практичная — она выводит сокращённую информацию о командах и выражениях без подробных теоретических выкладок: только описание, варианты применения и дополнительные опции
Справка help по команде caller
whatis — производит сквозной поиск через справочник системы и выводит только краткую информацию о команде. Удобно, если хотим узнать расшифровку названия той или иной команды
Узнаём, как расшифровываются команды pwd и Is
whereis — команда позволяет узнать информацию о расположении файлов программы в системе, если у нас не установлено графическое окружение
Давайте найдём, где живёт командная строка, её системные файлы настройки и справочная информация о ней.
Ищем путь к файлам вручную, если не установлен рабочий стол
Теперь вы знаете команды, которые расскажут вам о других командах в любой непонятной ситуации. Это значит, вы можете приступить к работе и стать пользователем Linux.
Команды Linux для управления пользователями и их правами
Обычный пользователь может хранить данные только в своей папке, которая находится по адресу /home/имя_пользователя. Есть команды, отдать которые системе обычный пользователь не сможет — ему просто не хватит прав. Чтобы делать больше и по всей системе, нужны права администратора или суперпользователя.
sudo — делает вас суперпользователем с правами администратора. Но имейте в виду, что в отличие от Windows Linux не запрашивает подтверждение действия, а сразу выполняет его. Поэтому не рекомендую использовать права администратора, пока не разберётесь в системе получше, чтобы случайно не отдать системе команду, которая её сломает
Система напоминает, что воспользовавшись sudo, мы становимся суперпользователями и берём на себя ответственность за данную нам власть
useradd — регистрирует нового пользователя
Создаём пользователя с именем student
userdel — удаляет учётную запись и файлы пользователя
Удаляем пользователя с именем student
passwd — изменяет пароли учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи
Меняем пароль для пользователя Ilya
Теперь попробуем сориентироваться в Linux без рабочего стола.
Прежде чем создавать каталоги или управлять файлами, нужно научиться перемещаться по файловой системе и понимать, где мы находимся.
pwd — базовая команда для навигации по системе Linux. Показывает каталог, в котором вы находитесь в настоящее время
Команда показывает, что сейчас мы находимся папке ilya, которая, в свою очередь, находится в каталоге home
ls — демонстрирует файлы и папки текущего каталога
Список папок, которые находятся в каталоге ilya
Опция -l (list) расширяет базовые возможности команды ls и дополняет список файлов и папок каталога подробной информацией.
Видим справа налево: дату и время создания, размер файла, имя пользователя, категорию прав (2) и тип файлового объекта (набор букв)
cd — основная команда для перемещения по каталогам
Простая схема перемещения по каталогам
Чтобы переместиться в папку на уровень выше, нужно добавить «..»:
Переместились из папки Документы обратно в основной каталог
tab — крайне полезная для новичков команда-автозаполнение, которая срабатывает при двойном нажатии клавиши Tab
Команда может подсказать доступные для перемещения каталоги, расположенные в любом месте системы. Естественно, с учётом наших прав пользователя.
Команда показывает возможные пути перемещения
Или может предложить окончание команды, если мы сомневаемся в правильном её написании:
Команда показывает команды, которые начинаются на man
Теперь у нас есть глаза, время обзавестись руками.
Команды Linux для управления каталогами и файлами
Давайте разберёмся, как создавать и удалять каталоги и управлять файлами в них.
mkdir — создаёт папку
Создадим папку student в текущем каталоге:
Создали папку student и через команду ls проверили содержимое каталога
А теперь создадим 5 одинаковых папок в одном каталоге. Для этого используем формулу mkdir имя_папки{количество папок, отсчёт с нуля}.
Создали 5 папок с именем NewFolder одновременно и через команду ls проверили содержимое каталога
rmdir, rm — обе команды удаляют выбранный каталог или файл, но делают это по-разному
rmdir стирает только пустые папки — подойдёт, если вы только начинаете разбираться в Linux, так вы обезопасите себя от случайного удаления важных файлов.
rm уничтожает каталог целиком со всем содержимым.
Удалили папку student и через команду ls проверили содержимое каталога. То же самое сделали для 5 папок одновременно
touch — самый простой способ создать файл в Linux. Нужно указывать расширение, чтобы система поняла, какого типа файл мы хотим получить: графический, текстовый, аудиофайл и так далее
Формула touch /путь_к_папке/имя_файла.расширение файла.
Создадим текстовый файл в папке «Документы»:
Создали файл с расширением txt в папке «Документы»
cp — копирует файлы
Формула cp имя_файла путь_к_папке_куда_копируем
Скопировали файл из папки Документы в основной каталог
mv — перемещает файлы
Формула mv имя_ файла путь_куда_перемещаем
Переместили файл из основного каталога в папку «Общедоступные»
Вот основные команды для управления файлами и папками. Когда привыкнете и запомните формулы, такое управление может оказаться даже удобнее и быстрее, чем на рабочем столе Windows.
Команды Linux для управления процессами
В Linux нет встроенного диспетчера задач, как в Windows. Чтобы завершить какой-то процесс, нужно его сначала вычислить, затем идентифицировать и только потом «убить».
ps — выводит список всех запущенных процессов
Два активных процесса bash и ps
Если процессов мало, то найти нужный нетрудно. Но если запущено много процессов, то на помощь приходит следующая команда.
top — также показывает активные процессы, но в отличие от предыдущей команды, обновляет список каждые 2 секунды. Обновляемый список позволяет понять, какой из процессов активен постоянно
Отследить процесс можно по номеру в колонке PID, а кем был запущен этот процесс, системой или пользователем — узнать в колонке USER
kill, killall и xkill — убийцы процессов
Почему так много — давайте разбираться.
kill убивает процесс по идентификатору — уникальному номеру, который система автоматически присваивает каждому процессу.
Завершаем процесс с идентификатором 2034
killall завершает все процессы с одинаковым именем.
Завершили бы все процессы с именем opera. Если бы они были запущены
xkill команда пригодится, если у нас настроено графическое окружение и запущенную программу мы видим в окне. Чтобы не искать идентификатор программы, запускаем команду xkill и закрываем окно программы появившимся крестиком.
Вместо курсора появляется крестик. Наводим его на окно «Домашняя папка» и завершаем процесс
Теперь вы готовы к тому, чтобы учиться. Но это не всё, что я хотел вам рассказать.
Команды Linux для управления настроением системных администраторов
В терминале Linux много встроенных интересных штук, а пользователи постоянно изобретают необычные способы использования обычных команд.
cal — встроенный календарь
Календарь встроенный
fortune — моя любимая команда. Теперь, когда я пользователь Linux, мне больше не нужны паблики с цитатами
Linux ерунды не посоветует
history — если забыли, как запустили сложную программу 5 дней назад, а сегодня не можете повторить подвиг, скомандуйте системе history и она любезно предоставит последнюю тысячу команд
Мой список последних использованных команд
yes — просто введите в терминал команду и любой текст и нажмите Enter. Что произойдёт дальше — увидите сами. Наслаждайтесь.
До покупки слона осталось 3…2…1
banner — введите команду и любое слово или фразу на латинице и система нарисует цифровое полотно
Все любят Cheсkroi
rev — команда-перевёртыш. Оборачивает любую фразу
Введённые в терминал фразы будут переворачиваться, пока не нажмёте CTRL+C
cowsay — работает в большинстве версий Linux. Введите после неё любую фразу и она появится из уст милой коровы
Уникальное явление онлайн-природы: цифровая корова здоровается с диджитал-корги Роем
Если вы не очень ладите с коровами, можете выбрать своё тотемное животное из предустановленных самостоятельно. Чтобы посмотреть весь список доступных зверей, наберите сowsay -l
У Linux есть свой приличный зоопарк
Кролик рад, что вы дочитали статью до конца, и благодарит вас
Подведём итог
Система Linux долго позиционировалась как программное обеспечение для серверов и с тех пор за ней сохранилась репутация сложной и недоступной для обычного пользователя. Как видите, это не так. Понять устройство системы на базовом уровне, сориентироваться в виртуальном пространстве без рабочего стола и разобраться в основных командах — достаточно просто и доступно каждому.
Но самое интересное впереди. Когда вы пойдёте дальше и освоите более продвинутые команды и опции системы, Windows может показаться ограниченным в функциональности. Тогда вы удивитесь, как раньше жили и работали без такой удобной Linux.
Какие именно это команды и как их применять, вы вернее всего узнаете на курсах системных администраторов от проверенных школ. Мы выбрали несколько курсов, которые подходят новичкам.
Курсы от GeekBrains и «Нетологии» разработаны совместно с экспертами «Яндекса», Mail.ru и других крупных компаний со сложной IT-инфраструктурой. Они подойдут тем, кто хочет управлять корпоративными системами.
Курс «Системный администратор» от GeekBrains
Вы разберётесь в устройстве Linux, проводных и беспроводных сетях, основах баз данных и корпоративных сервисах и узнаете, как находить проблемы, отлаживать приложения и поддерживать безопасность системы. Вы соберёте кейсы в портфолио и получите диплом, подарки от школы для повышения уровня английского и помощь с трудоустройством.
Длительность: 7 месяцев
Стоимость: 79 600 ₽
Профессия «Системный администратор» от Нетологии
Вы научитесь самостоятельно развёртывать IT-инфраструктуру предприятия: устанавливать физические и виртуальные машины, управлять облачными приложениями, настраивать и диагностировать сети и обеспечивать надёжное хранение и передачу данных. Вы узнаете, как автоматизировать управление системой и разберётесь в основах DevOps-практики. Вы добавите в портфолио дипломный проект, а школа поможет подтянуть английский и трудоустроиться.
Длительность: 14 месяцев
Стоимость: 78 000 ₽
Курсы от SkillFactory и OTUS заточены под тех, кто хочет работать в IT-компании, поддерживать инфраструктуру разработки и работу облачных сервисов и в будущем нацелен вырасти до DevOps-инженера.
Курс «Системный администратор» от SkillFactory
Вы научитесь развёртывать масштабируемые системы под облачные сервисы. Вы узнаете, как установить физические и виртуальные серверы и связать их в единую систему — кластер и поймёте, как обеспечить надёжность и безопасность кластера. Вы позанимаетесь на тренажёрах, добавите в портфолио систему из трёх машин, а школа поможет с трудоустройством.
Длительность: 9 месяцев
Стоимость: 81 600 ₽
Специализация «Администратор Linux» от OTUS
Вы научитесь управлять Linux на профессиональном уровне: контролировать системные процессы, настраивать веб-сервера, создавать базы данных и мониторить сети. Вы дополнительно освоите программирование на Java и сервисы для работы в команде разработчиков — Git и Docker. Вы попрактикуетесь на виртуальных стендах, соберёте портфолио и получите диплом и помощь с трудоустройством.
Длительность: 12 месяцев
Стоимость: 109 000 ₽