Почему текст
Командная строка кажется пережитком: зачем печатать, если можно нажать кнопку? Но у текста есть свойства, которых у кнопок нет, — и поэтому терминал никуда не делся, а в работе с серверами стал главным инструментом.
- Сервер обычно без экрана. Большинство серверов в интернете работают на Linux и вовсе не имеют графического интерфейса. Подключиться к ним можно только по сети и только текстом.
- Команду можно повторить. Последовательность кнопок нужно помнить и нажимать заново; последовательность команд можно записать, переслать коллеге и выполнить ещё раз ровно так же.
- Команды соединяются. Одна находит файлы, вторая отбирает нужные строки, третья считает — из маленьких программ собирается решение, для которого никто не делал отдельной кнопки.
- Текст точен. «Удалить все файлы журналов старше недели в этой папке» — одна строка, которую видно целиком и которую можно проверить перед запуском.
Linux — семейство операционных систем, у которых общее ядро и почти одинаковый набор базовых команд. Он стоит на большинстве серверов, в облаках, в контейнерах, в роутерах, в умных телевизорах; ядро Linux лежит и в основе Android. Поэтому команды из этого курса пригодятся почти везде, где есть компьютер без привычного окна.
В macOS командная строка очень похожа: там почти те же команды и та же логика. В Windows есть своя оболочка с другими командами, но туда можно поставить настоящий Linux — об этом в третьей главе.
Терминал, оболочка, команда
Когда вы открываете терминал, работают три разные вещи, и их полезно различать.
- Терминал — окно, которое показывает текст и передаёт нажатия клавиш. Сам он ничего не делает.
- Оболочка — программа, которая читает вашу строку, разбирает её и запускает нужную программу. Самая распространённая оболочка — bash; бывают и другие, но основа у них общая.
- Команды — в большинстве своём отдельные программы:
ls,cp,grep. Оболочка лишь находит и запускает их.
Оболочка встречает вас строкой приглашения, и в ней много полезного:
Любая команда устроена одинаково: имя команды, затем ключи (обычно с дефисом: -l, --help) и аргументы — с чем работать. Разделяются они пробелами, поэтому имя файла с пробелом берут в кавычки: "мой отчёт.txt".
Где учиться
Linux бывает разный: Ubuntu, Debian, Fedora и десятки других. Их называют дистрибутивами — это одно ядро и одни базовые команды, собранные разными командами людей с разными настройками и набором программ. Для нашего курса разница почти не важна: всё, что касается файлов, прав, процессов и сети, работает одинаково. Где дистрибутивы расходятся — прежде всего в установке программ, — курс скажет об этом прямо.
Где попробовать, ничего не сломав:
- на Windows — встроенная подсистема Linux (WSL): настоящий Linux в окне, рядом с обычной системой;
- в виртуальной машине — отдельный компьютер внутри вашего, который не жалко;
- на недорогом облачном сервере — ближе всего к настоящей работе;
- на старом ноутбуке — если он всё равно пылится.
Несколько вещей, которые экономят время с первого дня:
- Tab дописывает имя команды или файла — меньше опечаток и не нужно помнить длинные имена;
- стрелка вверх возвращает прошлые команды,
historyпоказывает их списком; - Ctrl+C прерывает команду, которая зависла или делает не то;
--helpпосле команды иmanперед ней — встроенная справка.
ls --help # короткая справка
man ls # полное руководство; выход — клавиша q
Три правила курса
В терминале можно сделать очень много одной строкой — и хорошего, и плохого. Поэтому курс держится на трёх правилах, и почти любая беда в Linux — нарушение одного из них.
Первое: читай команду, прежде чем выполнить. Особенно чужую — из статьи, чата, ответа нейросети. Разберите её на части: что за программа, какие ключи, с какими файлами. Если часть непонятна — сначала --help, потом запуск. Строки, которые скачивают что-то из интернета и сразу выполняют, и строки с удалением стоит читать дважды.
Второе: минимум прав. Работать обычным пользователем, а права администратора брать на одну команду через sudo и только когда она правда нужна. Администратор root может всё — в том числе удалить систему одной опечаткой. Обычный пользователь просто получит «нет прав», и это защита, а не помеха.
Третье: сначала посмотреть, потом менять. Перед удалением — показать, что будет удалено. Перед правкой настройки — сделать её копию. Перед перезапуском службы — посмотреть её состояние. Команды, которые только показывают, безопасны всегда; команды, которые меняют, — только когда вы уже видели, что именно они изменят.
Дальше курс идёт по порядку, в котором эти навыки нужны: как устроены папки и пути, как работать с файлами, как читать и искать, как соединять команды, права, процессы, установка программ, работа с сервером и первые скрипты.