Введение в Linux и Bash. Курс
Курс "Введение в Linux и Bash" – серия статей-уроков, знакомящих с историей, особенностями и философией операционных систем GNU/Linux, принципами работы в режиме командной строки и основными командами, выполняемыми в Bash.
Курс будет полезен начинающим пользователям операционной системы GNU/Linux, будущим системным администраторам и веб-разработчикам, планирующим самостоятельно развертывать сайты на веб-серверах.
Текущая версия курса: сентябрь 2025
Содержание курса
История 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. В современных ОС Linux эмуляция CLI реализована с помощью программы Терминал.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 - неофициальная документация. Для поиска по man-страницам используется ключ-k
или командаapropos
.Команда cd - изменение текущего каталога
Для перехода по дереву каталогов в Bash используется командаcd
, которая в качестве аргумента принимает абсолютный или относительный адрес каталога. Перейти в каталог - это значит сделать его текущим.Команда ls – просмотр каталогов, получение информации о файлах и папках
Командаls
используется в командной оболочке Linux для вывода содержимого каталогов и информации о файлах. У программыls
есть много ключей, позволяющих получать о файлах более подробную информацию, а также выводить ее в различных форматах.Копирование, перемещение, создание и удаление файлов и каталогов
В командной оболочке Bash командаcp
копирует файл,mv
- перемещает и переименовывает,mkdir
- создает каталог,rm
- удаляет. При копировании и перемещении сначала указывается источник, потом место назначения.Жесткие и символьные ссылки
В Linux каждый файл идентифицируется числовым индексным дескриптором. Имена файлов указывают на дескрипторы и являются жесткими ссылками. Символьные ссылки указывают на жесткие ссылки.Команда ln – создание ссылок
В командной оболочке Linux жесткие ссылки на файлы создаются с помощью командыln
. Для создания символьных ссылок на файлы и каталоги используется командаln -s
.Права доступа к файлам и каталогам в Linux. Категории пользователей
В Unix-подобных ОС для файлов устанавливаются биты прав доступа на чтение, изменение и выполнение по отношению к трем категориям: владельцу, группе и остальным. Права могут выставляться с помощью букв (rwx) и чисел.Команда chmod – изменение прав доступа
С помощью командыchmod
изменяют права доступа к файлам и каталогам. Может использоваться как символьный, так и числовой способ назначения прав.Шаблоны имен файлов
В шаблонах имен файлов любое количество любых символов обозначается звездочкой*
. Любой один символ - знаком вопроса?
. Если надо задать только определенные допустимые символы, то используются квадратные скобки[]
.Команда find - поиск файлов и каталогов
В Bash поиск файловых объектов выполняется командойfind
. Сначала указывается каталог, потом свойство и его значение. Например,find . -name '*.html'
ищет файлы html в текущем каталоге. С помощью ключа-exec
задается действие над найденными объектами.Команда sudo – администрирование системы
Утилитаsudo
позволяет выполнить команду с правами администратора ОС Linux. В Bash сначала пишетсяsudo
, затем команда и ее параметры. Потребуется ввести пароль пользователя.Пакетный менеджер APT
В Linux установка программ выполняется с помощью пакетных менеджеров. Наиболее популярным являетсяapt
. Команда установки:apt install
. Команда удаления:apt remove
.Архиватор tar
Утилитаtar
позволяет создавать архивы (ключи-cf
), распаковывать (-xf
), добавлять файлы в существующий архив (-rf
), а также сжимать при создании (-caf
). После командыtar
указываются ключи, затем имя архива, в случае упаковки далее перечисляются файлы и каталоги.Grep ‒ поиск по содержимому файлов
Командаgrep
позволяет выполнять поиск по содержимому как одного, так и множества файлов. Как искать и выводить на экран определяется ключами. Подстрока поиска (что искать) может задаваться буквально или с помощью регулярных выражений.Знакомство с потоковым редактором sed
Текстовые файлы можно редактировать непосредственно в командной оболочке. Для этого используется утилита sed. В простейшем случаеsed
заменяет одну подстроку на другую, также можно передавать регулярные выражения.Простые Bash-скрипты как исполняемые файлы со списком команд
Если какая-либо последовательность команд выполняется в Bash регулярно, ее можно сохранить в файл, сделать его исполняемым и передавать имя файла оболочке Bash как новую команду. Передаваемые с командой аргументы в bash-скрипте присваиваются переменным $1, $2 и т.д.