Мы уже сталкивались с различными командами, их параметрами и аргументами. Попробуем разобраться как все устроено.
Введенное что-либо в командной строке воспринимается как инструкция к выполнению. Она может быть как указанием к запуску другой программы, так и внутренней командой Linux Shell (мы работает с программой bash в качестве командной строки). Для нас в большинстве случаев важен лишь результат исполнения.
Команды Linux Shell можно поделить на 4 группы:
- Исполняемая программа. В качестве примера можно взять любой файл из директории /usr/bin. Программы могут быть представлены в виде скомпилированных двоичных файлов или текстовых скриптов. Они дают возможность расширения набора доступных возможностей (команд) при установке новых приложений или разработке собственных.
- Внутренняя команда Linux Shell. В самой программе, выполняющей функции Linux Shell (в нашем случае программа bash) имеется фиксированный набор своих команд. В отличии от исполняемых программ, они позволяют изменять настройки Linux Shell. Например, при помощи команды cd можно изменить рабочую директорию.
- Внутренние функции Shell. Это миниатюрные скрипты, включаемые в окружение внутри Linux Shell. Пока мы с ними еще не сталкивались. Подробно мы познакомимся с ними в материалах программирования и разработки скриптов для Linux Shell.
- Псевдонимы или алиасы. Это команды, которые можно задать на основе других доступных команд.
- Управляющие конструкции. Являются частью языка Shell для написания инструкций и управляют выполнением команд. Подробно мы познакомимся с ними в материалах программирования и разработки скриптов для Linux Shell.
Разморозим виртуальную машину и познакомимся с командами поближе 🙂
Определение типа команд
Если мы знаем только имя команды, но не знаем с чем столкнулись и нам любопытно узнать, то можно воспользоваться командой type, которая определит тип интересуемой нас команды. Для этого после команды type указывается имена интересуемых команд. Сама команда type является внутренней командой Linux Shell (программы bash). Убедимся в этом.
1 2 3 4 5 |
Попробуем опытным путем получить информацию по ранее известным нам командам cd, pwd, ls, less, file, mkdir, rmdir, cp, mv, rm и kshkqskskjskafege (первая команда, которую мы ввели).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[[email protected] ~]$ type cd pwd ls less file mkdir rmdir cp mv rm kshkqskskjskafege cd is a shell builtin pwd is a shell builtin ls is aliased to `ls --color=auto' less is hashed (/usr/bin/less) file is hashed (/usr/bin/file) mkdir is hashed (/usr/bin/mkdir) rmdir is hashed (/usr/bin/rmdir) cp is hashed (/usr/bin/cp) mv is hashed (/usr/bin/mv) rm is hashed (/usr/bin/rm) bash: type: kshkqskskjskafege: not found [[email protected] ~]$ |
Как мы видим, команды cd и pwd, встроенные в Shell, less, file, mkdir, rmdir, cp, mv и rm — исполняемые программы из директории /usr/bin, ls — псевдоним команды ls с ключом --color=auto
(теперь мы знаем, почему папки выводятся синим цветом, а программы зеленым), а команды kshkqskskjskafege не существует.
Поиск исполняемого файла
Иногда бывает несколько разных версий выполняемой программы, установленной в разных местах. Для домашних компьютеров это несколько необычно, но на больших серверах совсем в порядке вещей. Чтобы определить точное расположение выполняемого файла по имени, существует команда which, После команды which следует указать имя интересуемой нас программы. Попробуем определить расположение программ less и rmdir.
1 2 3 4 5 6 7 |
[[email protected] ~]$ which less /usr/bin/less [[email protected] ~]$ which rmdir /usr/bin/rmdir [[email protected] ~]$ |
Документация к командам
Зная название команды, можно попытаться поискать к ней документацию. Для этого есть различные инструменты.
Команда справки help
Для внутренних команд bash можно запросить справку через команду help. Для этого после команды help следует через пробел указать имя интересуемой команды, по котой требуется справка. Почитаем информацию о команде pwd.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[[email protected] ~]$ help pwd pwd: pwd [-LP] Print the name of the current working directory. Options: -L print the value of $PWD if it names the current working directory -P print the physical directory, without any symbolic links By default, `pwd' behaves as if `-L' were specified. Exit Status: Returns 0 unless an invalid option is given or the current directory cannot be read. [[email protected] ~]$ |
Параметр справки --help
Многие программы поддерживают ключ --help
. При его использовании, программа выводит описание, доступные параметры и ожидаемые аргументы. Запросим справку у команды mkdir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[[email protected] ~]$ mkdir --help Usage: mkdir [OPTION]... DIRECTORY... Create the DIRECTORY(ies), if they do not already exist. Mandatory arguments to long options are mandatory for short options too. -m, --mode=MODE set file mode (as in chmod), not a=rwx - umask -p, --parents no error if existing, make parent directories as needed -v, --verbose print a message for each created directory -Z, --context=CTX set the SELinux security context of each created directory to CTX --help display this help and exit --version output version information and exit Report mkdir bugs to [email protected] GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> For complete documentation, run: info coreutils 'mkdir invocation' [[email protected] ~]$ |
К сожалению, некоторые программы не поддерживают параметр --help
. Но имеет смысл попытаться таким образом получить информацию о программе, если иных возможностей нет. В большинстве случаем, когда ключ --help
не распознан программой, программа выведет сообщение об ошибке и отобразит информацию по её использованию, которая нас интересует.
Страницы руководства
Большинство программ, предназначенных для работы с интерфейсом командной строки, снабжены формальной документацией, называемой руководством по использованию. Для её поиска и просмотра в Linux присутствует специальная программа man. Чтобы получить информацию по интересуемой нас программе или файлу, после команды man следует указать имя команды или файла. Для отображения самой документации программа man запускает инструмент просмотра файлов (обычно это знакомая нам программа less). Почитаем руководство по использованию команды rmdir (для выхода из less после окончания чтения нажмем на клавиатуре клавишу «q»).
1 2 3 |
Теперь мы знаем где искать информацию по незнакомым и знакомым командам 🙂
А пока вновь заморозим виртуальную машину и дадим ей отдохнуть немножко.