8

Когда я компилирую egxc:

GCC x.c -o x

Для выполнения результата я должен написать:

./x

И просто печатать:

x

Сбой с этим сообщением:

x: команда не найдена

Это означает, что Linux не ищет его в текущем каталоге! Есть ли (я уверен, что есть) какая-либо разумная проблема за этим поведением?

3 ответа3

13

Потому что по умолчанию текущий рабочий каталог отсутствует в переменной PATH .

Это мера безопасности / удобства. Если в вашем текущем рабочем каталоге есть бинарные файлы / скрипты, называемые, например, cd , ls и т.д., Было бы очень неприятно, если бы они запускались по умолчанию.

1

Это означает, что текущий каталог отсутствует в переменной $ PATH.

1

Это можно исправить, добавив текущий каталог (представленный одной точкой) в переменную среды PATH .
Способ сделать это зависит от используемой вами оболочки.
если вы используете bash, вы можете добавить строку export PATH=$PATH:. в файл .bashrc в вашем домашнем каталоге.
если вы используете csh или tcsh, добавьте строку set PATH = ($PATH .) в файл .cshrc в вашем домашнем каталоге.
ИМХО, для домашнего настольного компьютера это приемлемая вещь - с точки зрения безопасности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .