open atlas
↑ К треку
Командная строка CLI · 01 · 02

Приглашение и команды

Команда оболочки состоит из трёх частей: имя программы, необязательные флаги, меняющие поведение, и аргументы, указывающие, над чем работать. Освоив эту грамматику, ты сможешь читать любой инструмент командной строки.

CLI Основы ◷ 18 min
Уровень
ОсновыJuniorMiddleSenior

Каждая команда оболочки следует одной и той же грамматике: имя, затем переключатели, затем цели. Как только ты увидишь этот паттерн, любая новая команда становится читаемой с первого взгляда — даже та, которую ты никогда не видел раньше. До этого щелчка команды выглядят как помехи на линии.

К концу урока ты сможешь разобрать любую команду на имя программы, флаги и аргументы, и объяснить, что делают ls, ls -l и ls -la.

Цель

После этого урока ты сможешь определить три части команды оболочки (программа, флаги, аргументы), прочитать вывод ls -l и составлять простые варианты команд, комбинируя флаги.

1

Команда оболочки начинается с имени программы. Когда ты вводишь ls и нажимаешь Enter, оболочка ищет программу с именем ls в системе, запускает её и выводит результат. Первое слово в строке команды — всегда программа (или встроенная команда оболочки) для выполнения. Всё, что идёт следом, изменяет или направляет эту программу.

ls

ls без аргументов выводит имена файлов и каталогов в текущем каталоге в алфавитном порядке.

2

Флаги (опции) меняют поведение программы. Флаг — это короткое слово, начинающееся с - (один дефис для однобуквенных флагов) или -- (два дефиса для длинных флагов). Флаги идут после имени программы, перед аргументами. Они необязательны: без них команда использует настройки по умолчанию.

ls -l

Флаг -l («long», длинный) говорит ls показывать по одной записи на строку с дополнительными подробностями: права доступа, владелец, размер и дата изменения. Имя программы (ls) не меняется; флаг изменяет формат вывода.

3

Несколько однобуквенных флагов можно объединить после одного дефиса. Вместо -l -a можно написать -la. Порядок внутри группы обычно не важен.

ls -la

-a означает «all» (все) — включать скрытые файлы (файлы, имена которых начинаются с .). В сочетании -la даёт длинный формат и показывает скрытые файлы. Ты увидишь записи вроде .bashrc и .ssh, которые обычный ls молча пропускает.

4

Аргументы говорят программе, над чем работать. Аргумент — это путь, имя файла или любая другая цель, которая идёт после флагов. Без аргумента многие команды по умолчанию работают с текущим каталогом.

ls -l /etc

Здесь /etc — аргумент: показать содержимое /etc в длинном формате вместо текущего каталога. Команда может принимать ноль, один или несколько аргументов в зависимости от программы.

Разбор примера

Чтение вывода ls -la.

Запуск ls -la в домашнем каталоге может дать:

total 48
drwxr-xr-x  6 alice alice 4096 Jun 20 09:14 .
drwxr-xr-x 32 root  root  4096 Jun 18 17:00 ..
-rw-r--r--  1 alice alice  220 Jun 18 17:00 .bash_logout
-rw-r--r--  1 alice alice 3526 Jun 18 17:00 .bashrc
drwxrwxr-x  2 alice alice 4096 Jun 20 08:55 projects

Читаем одну строку: -rw-r--r-- 1 alice alice 3526 Jun 18 17:00 .bashrc

  • -rw-r--r-- — права доступа: ведущий - означает обычный файл; rw- = владелец может читать и писать; r-- = группа может читать; r-- = остальные могут читать.
  • 1 — количество жёстких ссылок.
  • alice alice — владелец и группа.
  • 3526 — размер в байтах.
  • Jun 18 17:00 — дата и время последнего изменения.
  • .bashrc — имя файла (начинается с ., поэтому скрыт от обычного ls).
Почему это работает

Стандарт POSIX определяет соглашение: однобуквенные флаги используют один дефис (-l), длинные описательные флаги — два дефиса (--long). Большинство Linux-команд следуют этому. Некоторые старые или не-POSIX инструменты (например, find) используют один дефис для длинных флагов (-name). Когда команда сбивает с толку, запусти man ls (страница руководства) или ls --help, чтобы увидеть точный синтаксис флагов.

Частая ошибка

Пробел внутри группы флагов ломает её: -l -a — верно; -l -a с лишним пробелом между ними тоже верно; но -l a (без дефиса перед a) передаёт строку a как аргумент команде ls, а не как флаг — и ls попытается вывести файл с именем a.

Проверь себя
Викторина

Какая команда выводит все файлы (включая скрытые) в длинном формате для каталога /var/log?

Итог

Каждая команда оболочки следует одной грамматике: имя программы, затем флаги (один дефис однобуквенные -l, два дефиса длинные --all), затем аргументы (пути или цели). ls выводит текущий каталог; ls -l добавляет подробности по каждому файлу; ls -la также показывает скрытые файлы. Флаги можно объединять (-la = -l -a). Как только ты увидел эту грамматику, любая новая команда — это просто новое имя программы; паттерн флагов и аргументов остаётся тем же.

Практика

Начни сверху. Задачи идут от простого к сложному: вспомнить факт, применить к случаю, затем senior-уровень. Открой, попробуй, потом открой ответ.

вспомнитьприменитьуглубить0 из 5 завершено

Что-то непонятно?

Задай вопрос по этому уроку. Вопросы анонимны и попадают напрямую автору — урок станет лучше.

хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.