April 9, 2025

Урок 2. Команды. Разбор синтаксиса команд на примере основных команд.

Материал написан автором канала Пингвины летят в Калифорнию

📚 | Оглавление

  1. Разбор синтаксиса команд
  2. Флаги
  3. Домашнее задание

⌨️ | Разбор синтаксиса команд

В прошлом уроке вы познакомились с командами cd и mkdir, теперь разберем их подробнее.

Любую команду в терминале можно представить в общем виде:

<Программа> [Опции/Флаги] [Аргумент_1] [Аргумент_2]

Команда состоит из следующих элементов:

  1. Программа
  2. Опции/Флаги
  3. Аргументы (их может быть несколько)

Из этих 3х элементов обязательный только один - Программа.

Привычные нам команды cd, mkdir и другие, являются программами, которые мы запускаем, и они выполняют свою работу.
Разберем конкретный пример:

cd work
# cd  - программа
# work - аргумент

В данном случае в команде 2 элемента: программа и аргумент. Тут аргументом является путь до директории в которую хотите перейти (абсолютный/относительный)

Давайте познакомимся с другими командами:

ls   # - (от слова list) выводит на экран список файлов и папок, по умолчанию тех, которые находятся в текущей директории.
pwd   # - (Print Working Directory) показывает текущую рабочую директорию
rm   # - (от слова remove) удаление файлов
cp   # - (от слова copy) копирует файлы и каталоги
mv   # - (от слова move) перемещает файлы и каталоги (ее используют еще чтобы переименовать файл)
man   # - (от слова manual) инструкция к указанной программе.

При помощи опций/флагов мы можем менять поведение команд.
Например:

mkdir -p ~/qwe/asd/zxc

Тут мы добавили флаг -p
Благодаря ему, программа не выдаст ошибок, что родительская директория не существует, а создаст ее, а если она существует, то просто "пойдет дальше" и создаст следующий подкаталог.

Важно отметить, что флаги не универсальные! Да, есть некоторые которые часто встречаются и выполняют примерно одни и те же функции, но это не означает что данные флаги есть в каждой программе.


🚩 | Флаги

Но как узнать, какие флаги поддерживает программа?

Есть 2 способа:

1. Выше упомянутая команда man.

Чтобы получить инструкцию к интересующей вас программе, просто укажите ее в качестве аргумента, например:

man ls
Программа запустит интерактивную оболочку, по которой вы можете перемещаться:
Стрелка вниз или Enter - сместиться вниз на 1 строку
Стрелка вверх - сместиться вверх на 1 строку
Пробел - сместиться вниз на 1 "экран"
q - выйти из программы

2. Указать флаг --help (именно два "-") при вызове интересующей вас программы, например:

ls --help
В этом случае программа просто "выплюнет" инструкцию в терминал, без интерактивной оболочки.

Некоторые флаги можно комбинировать, а не указывать по отдельности, например:

ls -la
ls -l -a
# Вы получите один и тот же результат

Важно, если вы указываете несколько флагов отдельно, нужно ставить между ними пробел.


📝| Домашнее задание

  1. Изучить инструкцию к командам cd, mkdir, ls, rm, cp, mv
  2. Напишите какой флаг нужно указать чтобы:
    1. удалить файл без предупреждения?
    2. удалить папку и все находящиеся в ней файлы
    3. вывести содержимое каталога и отсортировать по дате
    4. вывести содержимое каталога и отсортировать по размеру файлов
  3. Сколько агрументов требуется для команд mv и cp, что это за аргументы и в каком порядке они должны идти по умолчанию

Если тебе понравилось и ты хочешь узнать больше, подписывайся на канал Пингвины летят в Калифорнию