Вопрос про (грамотно и подробно) OS Linux

почему в одних случаях, приложение запускается из командной строки просто по своему имени, например, user@machine$: gedit; а в других случаях надо набирать дополнительно ". /", например, user@machine$: . /start-tor-browser
5 года назад от Daycosh

3 Ответы

0 голосов
Когда система получает команду на запуск программы, состоящую только из имени программы (т. е, без пути) , она ищет программу с таким именем во всех каталогах, перечисленных в переменной окружения $PATH. Если текущий каталог (. /) не указан в $PATH, система не будет искать программу в текущем каталоге и для того, чтобы е запустить, каталог надо будет указать открыто (. /myProgram) .

Проведите эксперимент с командной строкой в двух частях:

1. echo $PATH

Эта команда выведет на экран содержимое переменной $PATH.

2. whereis gedit

Эта команда покажет полные (с путями) имена файлов, которые называются gedit.

В потоке вывода первой команды будет по крайней мере один каталог из тех, что перечислены в потоке вывода второй команды (например, в $PATH будет /usr/bin, а whereis выдаст /usr/bin/gedit) .
5 года назад от Елена
0 голосов
для этого частного случая - если текущей директории нет в PATH, то надо . /. це не вендавс.
обобщенно, если файл не находится в PATH, надо полный путь к нему.
5 года назад от Анна Чурилова
0 голосов
Это такая защита от запуска всякой фигни.
Если у тебя что-то лежит в PATH, значит, ты сам захотел, чтобы оно запускалось.
А если хочешь запустить что-то другое, нужно указать полный путь. Во избежание.
5 года назад от PaigeStandis

Связанные вопросы