Терминал ничего не угадывает: каждая команда состоит из имени, флагов и аргументов, и делает ровно то, что написано. ls -a /work — это команда ls, флаг -a и аргумент /work. Десяти команд из этого разбора хватает на большую часть повседневной работы: перемещаться по каталогам, создавать, копировать и удалять файлы. Все примеры выполнены на Ubuntu 24.04.
Разные пути приводят в один каталог
/. Оба приводят в одно место, и pwd это подтверждает.Где я и что вокруг: pwd, ls, cd
Три команды навигации, без которых не обходится ни одна сессия. pwd печатает текущий каталог, ls — его содержимое, cd переходит в другой:
pwd
ls
/work
projects reports
Скрытые записи — те, чьи имена начинаются с точки, — ls по умолчанию прячет. Флаг -a показывает всё, включая служебные . (текущий каталог) и .. (родительский):
ls -a
. .. projects reports
cd принимает путь в двух видах. Относительный отсчитывается от места, где ты стоишь, абсолютный начинается с / и работает откуда угодно:
cd projects/blog
pwd
cd ..
pwd
/work/projects/blog
/work/projects
.. — это «на уровень вверх». Ещё два сокращения экономят время каждый день: cd ~ ведёт в домашний каталог, cd - возвращает в предыдущий, где бы он ни был.
Создать и посмотреть: mkdir, touch, cat, head, tail
mkdir создаёт каталог, а с флагом -p — сразу всю цепочку вложенных:
mkdir -p reports/2026/august
Без -p команда упала бы, если reports/2026 ещё не существует. touch notes.txt создаёт пустой файл, а у существующего просто обновляет время изменения.
Смотреть содержимое можно тремя способами, по размеру файла. cat печатает файл целиком, head и tail — только начало или конец:
head -n 2 numbers.txt
tail -n 2 numbers.txt
1
2
99
100
По умолчанию обе показывают 10 строк, -n меняет число. Для длинных файлов удобнее less numbers.txt: он открывает файл постранично, стрелки листают, / ищет, q выходит. А tail -f app.log не завершается, а продолжает печатать строки, которые дописываются в файл, — так смотрят живые логи.
Скопировать, переместить, удалить: cp, mv, rm
cp копирует файл, а каталог — только с флагом -r (рекурсивно, со всем содержимым):
cp -r projects backup
ls projects/blog backup/blog
backup/blog:
draft.md
projects/blog:
draft.md
Копия независима: правки в backup/ не тронут оригинал. Без флага cp каталог молча пропустит: cp: -r not specified; omitting directory 'projects'.
У mv две роли: перемещение и переименование. Это одна и та же операция — меняется путь к файлу:
mv projects/blog/draft.md projects/blog/final.md
ls projects/blog
final.md
rm удаляет файлы, для каталогов нужен -r:
rm backup
rm -r backup
rm: cannot remove 'backup': Is a directory
Вторая команда молча удалила каталог со всем содержимым. Здесь стоит притормозить: в терминале нет корзины. rm -r не спрашивает подтверждения на каждый файл, а rm -rf не переспросит вообще ничего, даже про файлы, защищённые от записи. Прежде чем удалять по маске вроде rm -r build/*, стоит проверить её безопасной командой: ls build/* покажет, что именно попадёт под удаление.
Справка всегда под рукой: man и —help
Полное руководство любой команды открывает man ls — листается как less, выход по q. Короткая выжимка флагов есть у самой команды: ls --help. А which ls обычно ищет внешний исполняемый файл в PATH:
which ls
/usr/bin/ls
Но внешний which не обязан учитывать алиасы и функции текущего шелла. В Bash проверяй type -a ls или command -V ls: они покажут, как оболочка разрешает имя команды.
Ошибки, на которых спотыкаются
rm каталога без -r. rm backup отвечает Is a directory и ничего не делает. Флаг -r нужен всем командам, работающим с каталогами целиком: cp -r, rm -r.
mkdir без -p для вложенного пути. mkdir reports/2026/august падает, если родителей нет. -p создаёт всю цепочку и не ругается на уже существующие каталоги — без него повторный запуск даст File exists.
cd в файл. cd notes.txt отвечает Not a directory: переходить можно только в каталоги.
Пробелы в именах. cd my project передаёт два аргумента: Bash отвечает too many arguments и остаётся в текущем каталоге. Имя с пробелом берут в кавычки: cd "my project". Ещё надёжнее не использовать пробелы в именах вовсе.
Надежда на корзину. rm -rf удаляет сразу и навсегда. Правило простое: сначала ls с той же маской, потом rm.
Частые вопросы
С каких команд начинать учить Linux
С десяти из этого разбора: pwd, ls, cd, mkdir, touch, cat, less, cp, mv, rm. Они покрывают навигацию и работу с файлами — то, что нужно в первый же день. Следующий шаг — поиск файлов через find и grep и конвейеры.
Чем терминал отличается от шелла
Терминал — окно, куда ты печатаешь. Шелл — программа, которая читает команды и запускает их; в Ubuntu по умолчанию это bash. Когда в вакансии пишут «знание bash», имеют в виду команды и скрипты, а не само окно.
Как посмотреть скрытые файлы
ls -a. Скрытыми считаются все имена, начинающиеся с точки, — например, .bashrc или каталог .git. Это соглашение, а не защита: точка в начале имени просто убирает файл из обычной выдачи ls.
Что значит ls -la
Комбинация двух флагов: -l включает подробный формат (права, владелец, размер, дата — по строке на файл), -a добавляет скрытые. Колонка прав из этой выдачи разобрана в статье про chmod.
Где потренироваться
Быстрый способ проверить себя — скилл-тест по Linux: 8 вопросов с мгновенной оценкой уровня. А чтобы командная строка стала рабочим инструментом, а не теорией, дальше обычно идут в скриптинг: путь «Python с нуля» учит автоматизировать то, что руками в терминале делать долго.