Запуск программ на C в Linux / MacOSX - PullRequest
1 голос
/ 29 марта 2011

Вот еще один (наверное) нубский вопрос.Давайте предположим, что у меня есть простая 1-файловая программа (называемая myProg.c), написанная на C. Когда я хочу скомпилировать эту программу в Linux / MacOSX, я набираю «gcc -o haha ​​myProg.c».Созданный исполняемый файл теперь называется "ха-ха".Когда я захочу запустить эту программу, мне нужно будет набрать «./haha» в консоли.

Что мне нужно сделать, чтобы прекратить вводить "./" всегда?Как я могу убедиться, что, просто набрав «хаха», моя программа будет запущена?Я проверил права доступа к файлу "ха-ха", и он исполняемый.Правильно ли я считаю, что «./» указывает на то, что путь к исполняемому файлу, т.е. к файлу, присутствует в текущем каталоге («.») ??

1 Ответ

5 голосов
/ 29 марта 2011

Текущий каталог по умолчанию не является частью PATH в unix-производных ОС. Это мера безопасности, которую вы можете, но не должны изменять, изменяя PATH в .bash_profile или .bashrc

Причина, по которой текущий каталог не включается в путь: Предположим, что вы являетесь пользователем root и у вас есть злонамеренный пользователь. Этот пользователь создает, например, ls исполняемый файл в его домашнем каталоге, который делает что-то нехорошее. Если вы посмотрите, чем занимается этот пользователь, и наберите ls, находясь в его домашнем каталоге, то будет выполняться ls.

Если вы хотите просто изменить его, добавьте PATH="${PATH}:." к своим .bashrc и .bash_profile

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...