Получение помощи по использованию команд
Виды команд
- Приложение, т.е. исполняемый файл. Если команда - это исполняемый файл, то Bash запустит данное приложение и передаст ему аргументы.
- Встроенная команда интерпретатора. Данные команды не приводят к запуску приложения, но изменяют состояние самого интерпретатора.
- Функция на языке Bash (командного интерпретатора).
- Псевдоним.
Для опредления типа команды есть type
. Type покажет к какой категории команда относится.
Как вызываются приложения?
Для вызова приложения используется переменная PATH. Для просмотра значения переменной можно воспользоваться
echo $PATH
либо вызвать приложение
env
Переменная содержит в себе несколько путей к каталогам в файловой системе. Пути разделены между собой двоеточием.
- /usr/local/bin
- /usr/bin
- /bin
- /usr/local/game
- /usr/games
Для поиска комадны Bash сначала заходит в первый каталог и ищет там приложение, если находит, то запускает, если не находит, то идёт во второй каталог….
Для того, чтобы понять откуда конкретно будет запущено приложение можно воспользоваться which
Как получить помощь по использованию команд
В зависимости от типа команд информация по их использованию находится по различным путям.
Если команда - встроенная команда Bash
В этом случае необходимо пользоваться командой help
.
Разберём help cd
cd: cd [-L | [-P [-e]] [-@]] [каталог] |
- cd: - заголово
- cd - название команды
- [] - опциональные аргументы
- [каталог] - опциальный аргумент, путь к каталогу куда мы можем перейти
-
[-L []] - опциональный аргумент, который может принимать несколько форм [-P [-e] [-@]]
type [-afptP] имя [имя …]
- имя - обязательный аргумент
- [имя …] - опциональный аргумент, который может повторяться много раз
- [-afptP] - список аргументов, которые можно передать приложению
-a
,-f
,-p
-t
,-P
- Если аргумент начинается с одного дефиза и имеет 1 букву, то их можно объединять в группы.
-a -f -t
-aft
.
Если комнада - приложение
- Запросить встроенную документацию
- Запросить документацию из системы руководств.
Большинство хороших консольных приложений готовы рассказать как ими пользоваться если попросить помощи:
КОМАНДА --help
ну или в короткой форме (не у всех есть) КОМАНДА -h
.
Для получения справки из системы руководств необходимо вызывать приложение man
, сокращённое от manual
.
Для запуска man
ему необходимо в качестве аргумента указать приложение, по которому вы ходите получить больше информации:
man ПРИЛОЖЕНИЕ
.
man — это пейджер справочных страниц системы. Каждый параметр страница, переданный man, обычно является названием программы, утилиты или функции. По каждому из этих параметров выполняется поиск и вывод связанной с ним справочной страницы. Если указан параметр раздел, то это заставляет man выполнять поиск только в этом справочном разделе.
Действием по умолчанию является поиск во всех доступных разделах в заранее определённом порядке (по умолчанию в «1 n l 8 3 2 3posix 3pm 3perl 3am 5 4 9 6 7», если не изменено директивой SECTION в /etc/manpath.config) и показ только первой найденной страницы, даже если существуют страницы в нескольких разделах.
В таблице ниже показаны номера справочных разделов и описание их содержимого.
1 Исполняемые программы или команды оболочки (shell)
2 Системные вызовы (функции, предоставляемые ядром)
3 Библиотечные вызовы (функции, предоставляемые программными библиотеками)
4 Специальные файлы (обычно находящиеся в каталоге /dev)
5 Форматы файлов и соглашения, например о /etc/passwd
6 Игры
7 Разное (включает пакеты макросов и соглашения), например man(7), groff(7)
8 Команды администрирования системы (обычно, запускаемые только суперпользователем)
9 Процедуры ядра [нестандартный раздел]
passwd
- приложение, которое позволяет менять пароль пользователя.
Однако для хранения паролей пользователей тоже используется файл passwd
, находящийся в каталоге /etc
.
Полезные приложения вокруг man
Какое приложение позволяет мне решить задачу X. Обычно в кратком описании руковдства содержится необходимая информация. И было бы неплохо иметь возможность ЛОКАЛЬНО (не в интернетах) искать данную информацию.
apropos
. В качестве аргумента ей необходимо передать искомую подстроку. Выводом будет список руководств, соответствующих запросу.
student@PCLINUX223-12:~$ apropos png atril-thumbnailer (1) - create png thumbnails from atril supported documents evince-thumbnailer (1) - create png thumbnails from PostScript and PDF documents libpng-config (1) - get information about installed libpng library libpng16-config (1) - get information about installed libpng library png (3tcl) - PNG querying and manipulation of meta data pngtopnm (1) - convert a Portable Network Graphics file into portable anymap pnmtopng (1) - convert a portable anymap into a Portable Network Graphics file Tk::PNG (3pm) - PNG loader for Tk::Photo xcursorgen (1) - create an X cursor file from a collection of PNG images
whatis
- показывает имя и описание приложения одной строкой из файла руководства.
student@PCLINUX223-12:~$ whatis ls ls (1) - list directory contents
Любому “продвинутому” пользователю командного интерфейса необходимо познакомиться с руковдоством приложения bash
.
Как работать с псевдонимами
Для управления текущим списком псевдонимов используется встроеаная команда alias
.
Решим следующую задачу: я хочу создать псевдоним, который печаатет содержимое всего каталога /usr
.
alias foo=’cd /usr; ls; cd -‘
Для того, чтобы убрать псевдоним необходимо вызывать unalias
А как сделать так, чтобы псевдонимы жили после перезагрузки?
Есть файл ~/.bashrc, который выполняется каждый раз при старте нового процесса Bash. Если мы определим в нём функции, псевдонимы и т.д., то они будут доступны после старта очередной сущности Bash.