Перейдите к следующему слайду, нажав кнопку Вправо
Запуск команд с аргументами в терминалах Linux и Mac
Подготовлено онлайн-курсом
$ echo выводит переданный ей текст
выводит переданный ей текст
echo
echo и некоторые другие команды
можно вызывать откуда угодно не используя ./
Вызов команды
$ echo "тут будет текст с 'одинарными кавычками' "
тут будет текст с 'одинарными кавычками'
$ echo 'тут будет текст с "двойными кавычками" '
тут будет текст с "двойными кавычками"
$ echo "тут будет текст с \"двойными кавычками\" и с 'одинарными кавычками'"
тут будет текст с "двойными кавычками" и с 'одинарными кавычками'
# https://stackoverflow.com/a/28786747
Кавычки
Что, если вы хотите передать команде аргумент в кавычках, внутри которых тоже будут кавычки?
$ 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