Команды и их аргументы

Перейдите к следующему слайду, нажав кнопку Вправо

Запуск команд с аргументами в терминалах Linux и Mac

Подготовлено онлайн-курсом

https://dvmn.org

$ echo выводит переданный ей текст
выводит переданный ей текст

echo

echo и некоторые другие команды
можно вызывать откуда угодно не используя ./

Вызов команды

$ echo "тут будет текст с 'одинарными кавычками' "
тут будет текст с 'одинарными кавычками'

$ echo 'тут будет текст с "двойными кавычками" '
тут будет текст с "двойными кавычками"

$ echo "тут будет текст с \"двойными кавычками\" и с \'одинарными кавычками\'"
тут будет текст с "двойными кавычками" и с 'одинарными кавычками'

Кавычки

Что, если вы хотите передать команде аргумент в кавычках, внутри которых тоже будут кавычки?

$ type echo
echo is a shell builtin
$ type man
man is hashed (/usr/bin/man)
$ type toy-nginx
bash: type: toy-nginx: not found

type

type может подсказать вам, какие из них
встроены, а какие - нет.
Встроенные и закэшированные можно использовать
без указания пути до них.

Определение типа команды

~projects$ ./toy-nginx
Веб сервер запущен....

~$ ./projects/toy-nginx
Веб сервер запущен....

./команда

Некоторые команды нужно вызывать используя ./путь-до-команды
Точка - это текущая директория, а далее через / мы
указываем путь до файла.

Вызов команды по пути в системе

$ echo Тут нет пробелов
Тут нет пробелов
$ echo Тут     много              пробелов
Тут много пробелов

пробелы

Команды сами убирают лишние пробелы

$ echo Тут     много              пробелов
Тут много пробелов
$ echo 'Тут     много              пробелов'
Тут     много              пробелов

пробелы

Кавычки помогают оставить пробелы на местах

$ echo Первая строка \nВторая строка
Первая строка
Вторая строка

переносы строк

Переносы строк можно сделать с помощью \n

~$ echo -n Этот текст прилипнет к следущей строке
Этот текст прилипнет к следущей строке~$ 

Аргументы

В данном случае мы вызвали команду echo c аргументом -n,
который убирает перенос строки в конце текста. Конкретно этот пример
выглядит странно, но в будущем аргументы вам очень понадобятся
$ ls
website blog settings.txt shop

$ ls -a
.  .env    blog         shop
.. website settings.txt

Аргументы

В данном случае мы вызвали команду ls c аргументом -a,
который добавляет в вывод содержимого скрытые файлы,
которые обычно не показываются.
$ ls -al
$ ls -a -l

Аргументы

Если вы хотите использовать сразу несколько аргументов - вы можете
перечислять сразу все после чёрточки, а можете передать по отдельности
$ ./toy-nginx -h
Сообщение с описанием аргументов

$ ./toy-nginx --help
Сообщение с описанием аргументов

Полная форма аргумента

У аргументов есть полные названия, например, в данном примере
мы по очереди применяем короткое название аргумента help,
а затем полное. Вывод получается одинаковым.
$ ls --help
Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not ignore entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               with -l, print the author of each file
  -b, --escape               print C-style escapes for nongraphic characters
      --block-size=SIZE      scale sizes by SIZE before printing them; e.g.,
                               '--block-size=M' prints sizes in units of
                               1,048,576 bytes; see SIZE format below
...

Аргументы

Просмотр списка аргументов

Создано для онлайн-курса https://dvmn.org