Имя файла с пробелом или спецсимволом
Проще всего — набрать начало имени и нажать Tab: оболочка сама допишет и экранирует.
Строка в терминале — это имя команды, ключи (-l, --all) и аргументы; оболочка делит её на слова по пробелам.
ls -l -a /etc
команда, два ключа, аргумент
ls -la /etc
короткие ключи можно склеить
ls --all --human-readable
длинные ключи
head -n 5 app.log
ключ со значением
head --lines=5 app.log
длинный ключ со значением
cp "my file.txt" docs/
пробел в имени — в кавычках
rm -- -file.txt
после -- только аргументы
ls --help | less
краткая справка по ключам
man ls
полное руководство
mkdir logs && cd logs
вторая команда — если первая прошла
Оболочка (bash) делит строку на слова по пробелам. Первое слово — имя команды, остальные — аргументы, которые программа получает как есть:
Кавычки склеили two three в один аргумент. Двойные кавычки ещё подставляют
переменные ("$HOME"), одинарные оставляют текст как есть.
Аргументы, которые начинаются с минуса, по договорённости — ключи: они меняют поведение команды. Остальные — то, с чем команда работает: файлы, каталоги, имена.
| Запись | Что это |
|---|---|
-l |
короткий ключ, одна буква |
-la |
несколько коротких ключей подряд: -l -a |
--all |
длинный ключ, словом |
-n 5, --lines=5 |
ключ со значением |
-- |
конец ключей: дальше только аргументы |
Какие ключи есть у команды, знает только она сама: смотри команда --help и
man команда (см. man-help). Шаблоны *.log и ~ раскрывает оболочка до
запуска, программа получает уже готовые имена — см. globbing.
Проще всего — набрать начало имени и нажать Tab: оболочка сама допишет и экранирует.
\ в конце строки переносит команду на следующую. После \ не должно быть
пробела.
У команды нет такого ключа. Проверь написание в команда --help. Учти, что ключи
одной и той же команды в Linux, macOS и BusyBox отличаются.
Команде не хватило аргумента: mkdir без имени, cp с одним файлом. Допиши, что
создать или куда копировать.
Имя с пробелом без кавычек оболочка разделила на два аргумента. Возьми имя в кавычки или допиши его клавишей Tab.
Оболочка ждёт закрывающую кавычку. Допиши её и нажми Enter или прерви ввод Ctrl+C.
--help, man, apropos.*, ?, {}: что оболочка подставляет до запуска.PATH, где оболочка ищет команды.>, | и 2>&1 в той же строке.Есть неточность? Сообщить об ошибке в статье