Типы команд и чтение документации
#
Васильев Андрей Михайлович, 2024
Версии презентации
Разные типы команд
#
В первой части запроса к интерпретатору находится команда, которую можно отнести
к одной из следующих категорий
- Внутренние команды интерпретатора
- Внешний по отношению к интерпретатору исполняемый файл
- Внутренние команды интерпретатора зачастую изменяют его внутреннее состояние и
не изменяют ничего вне своего процесса
- Запуск внешнего приложения зачастую не изменяет внутреннее состояние
интерпретатора
Определение типа команд
#
В Bash для определения типа команд можно воспользоваться встроенной командой type
Типичные примеры использования type
:
$ type cd
cd — это встроенная команда bash
$ type mkdir
mkdir является /bin/mkdir
$ type ls
ls — это псевдонимом для «ls --color=auto»
Встроенные команды Bash
#
Внутри интерпретатора Bash можно выделить следующие 3 категории доступных команд
- Встроенные команды интерпретатора,
builtin
- Функции интерпретатора,
function
- Псевдонимы интерпретатора,
alias
- Ключевые слова интерпретатора,
keyword
Встроенные команды интерпретатора builtin
#
Данные команды направлены для управления состоянием интерпретатора, а не на
прямое взаимодействие с внешним окружением
Перечислим знакомые нам встроенные команды:
cd
— изменение рабочего каталога интерпретатора
exit
— завершение работы интерпретатора
type
— определение типа команды
Получение помощи по встроенной команде
#
Для получения информации о функционировании встроенной команды используется
встроенная команда help
:
$ help cd
...
$ help help
...
Разбор описания помощи для встроенных команд
#
$ help cd
cd: cd [-L|[-P [-e]] [-@]] [каталог]
Change the shell working directory.
Первая строка кратко описывает какие аргументы можно передавать команде
[-@]
указывает, что аргумент -@
является опциональным: его можно указывать, а можно и не указывать
|
указывает на то, что есть 2 взаимоисключающих варианта
Порядок аргументов зачастую важен! Например для команды cd
нельзя указать каталог до других аргументов
У команды cd
нет ни одного обязательного аргумента
Разбор описания помощи. Продолжение
#
После текстового описания команды идёт блок с описанием каждого поддерживаемого аргумента
Options:
-L force symbolic links to be followed: resolve symbolic
links in DIR after processing instances of `..'
-P use the physical directory structure without following
symbolic links: resolve symbolic links in DIR before
processing instances of `..'
-e if the -P option is supplied, and the current working
directory cannot be determined successfully, exit with
a non-zero status
Работа с псевдонимами alias
#
При долгой работе с командным интерфейсом иногда хочется выполнять ряд действий
быстрее. Для решения этой задачи можно ввести псевдоним команды
Для управления псевдонимами используется команда alias
$ type alias
alias — это встроенная команда bash
Для отображения списка псевдонимов вызовите команду без аргументов
Для определения псевдонимов надо воспользоваться
alias: alias [-p] [имя[=значение] ... ]
Если не указать аргументы, alias выводит список псевдонимов
в виде «alias имя=значение» на стандартный вывод.
Определение и использование псевдонимов
#
Например нам необходимо часто просматривать права доступа к файлам и вызывать
ls -l
. Мы хотим сэкономить время на набор команды, поэтому добавляем псевдоним
ll
:
$ alias ll='ls -l'
$ alias
alias ll='ls -l'
alias ls='ls --color=auto'
$ ll
итого 20
drwx------ 3 root root 60 сен 12 07:41 alsa
drwxr-xr-x 2 avahi avahi 80 сен 12 07:41 avahi-daemon
...
Время жизни псевдонима
#
Определение псевдонима — действие по настройке интерпретатора Bash, как и
изменение текущего рабочего каталога
При завершении сессии, при старте новой сессии состояние сбрасывается на
начальное и все команды, которые были определены с помощью alias
, будут
недоступны
Чтобы эти псевдонимы были доступны всегда, их надо описать внутри
конфигурационного файла bash, который считывается при каждом старте
интерпретатора:
~/.bashrc
Удаление псевдонима
#
Для удаления псевдонима используется команда unalias
Получение помощи по функциям и псевдонимам
#
Функции и псевдонимы не предоставляют средств для получения документации по
своей работе
Единственный способ — это прочитать исходный их исходный код
Несколько выводов:
- при написании функций на любом языке программирования стоит документировать её
поведение
- псевдонимы хороши для каждого конкретного человека или команды, в которой
каждый работник знаком с ними и готов дать консультацию по использованию