Запуск программ
Трудно сделать что либо, без выполнения программ; можно использовать ваш компьютер в качестве подпорки для чего-то, например, для открытой двери, и он будет замечательно жужжать, пока включён, но не больше. И наверное, большинство согласиться со мной, что использование компьютеров в качестве жужжащей подпорки для двери не принесло бы им такой популярности, какую они сейчас приобрели.
Итак, помните, что в Linux почти всё является файлом? Так вот, для программ это тоже справедливо. Каждая команда, которую вы выполняете (если она не встроена в вашу оболочку), соответствует файлу. Вы можете запустить программу, указав полный путь к ней.
Например, помните команду su? Так вот, на самом деле она является файлом, расположенным в /bin каталоге: /bin/su запустит её.
Почему же тогда простой набор su так же работает? Вы ведь не указывали путь /bin. Ведь она могла находится и в /usr/share? откуда же компьютер узнал? Ответ в переменной PATH; большинство оболочек имеет PATH или что-то похожее. Она содержит список каталогов, в которых искать программы, которые вы пытаетесь выполнять. Таким образом, когда вы выполнили su, ваша оболочка прошлась по списку каталогов, ища в каждом из них выполняемый файл su и как только она нашла такой файл, она выполняет его. Это случается каждый раз, когда вы запускаете какую либо программу без указания полного пути к ней; если вы получаете сообщение ''Command not found'', это означает, что программы, которую вы пытаетесь запустить нет в каталогах, перечисленных в PATH переменной. (Это так же будет истиной, если программа вообще не существует...) Мы обсудим переменные окружения более детально в разделеthe Bourne Again Shell (bash).
Запомните так же, что ''.'' это сокращение для ''каталог, в котором я сейчас нахожусь'', так что если вы в каталоге /bin, ./su сработает, как полный путь к файлу.