Основные команды Linux: файлы, папки и навигация

Linux Автор: Среда и версия: Ubuntu 24.04, bash 5.2, GNU coreutils 9.4
содержание

Терминал ничего не угадывает: каждая команда состоит из имени, флагов и аргументов, и делает ровно то, что написано. ls -a /work — это команда ls, флаг -a и аргумент /work. Десяти команд из этого разбора хватает на большую часть повседневной работы: перемещаться по каталогам, создавать, копировать и удалять файлы. Все примеры выполнены на Ubuntu 24.04.

Linux / 01

Разные пути приводят в один каталог

Разные пути приводят в один каталог01 От текущего каталога cd projects/blog Начальная точка: /work. Относительный путь зависит от pwd. 02 От корня cd /work/projects/blog Начальная точка не важна. Результат pwd: /work/projects/blog.01От текущего каталогаcd projects/blogНачальная точка: /work. Относительный путьзависит от pwd.02От корняcd /work/projects/blogНачальная точка не важна. Результат pwd:/work/projects/blog.
Относительный путь считается от текущего каталога, абсолютный — от корня /. Оба приводят в одно место, и 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 с нуля» учит автоматизировать то, что руками в терминале делать долго.

Источники