как я могу сделать программу исполняемой отовсюду

<p>что мне делать, если я хочу иметь возможность запускать определенную программу независимо от моего текущего каталога? должен ли я создать символическую ссылку на программу в <code>/bin</code> папка?</p>

<p>если вы просто наберете <code>export path=$path:</path/to/file> в командной строке это будет продолжаться только на протяжении сеанса.если вы хотите изменить его навсегда, добавьте export path=$path:</path/to/file></code> к вашему ~/.bashrc файлу (просто в конце все нормально).</p>

<p>короткий ответ заключается в том, что для запуска программы, независимо от того, какой у вас каталог, вам нужно иметь каталог программы в вашем пути поиска. проблема может быть решена путем помещения программы в папку, которая уже находится в этом пути, или путем добавления новой папки в путь - все будет работать. лучший ответ зависит от:</p><p><strong>является ли эта программа загруженной программой, которую вы сами скомпилировали из исходного кода?</strong></p><p><em> вполне вероятно, уже будет установлен механизм установки. в папке, с которой вы скомпилировали программу, от имени пользователя root запустите 'make install' </em></p><p><strong>является ли эта программа загруженной программой, которую вы хотите сделать доступной как часть стандартных программ на компьютере?</strong></p><p><em> имеет смысл поместить приложение такого типа в стандартную папку. для таких программ довольно часто используют каталоги, такие как/usr/local/bin. для этого вам понадобится root-доступ. </em></p><p><strong>это программа, которую вы написали для себя и/или у вас нет специальных привилегий на компьютере.</strong></p><p><em> создание папки в вашем домашнем каталоге с именем 'bin' и размещение в ней программы. вам может понадобиться отредактировать скрипт входа в систему, чтобы добавить полный путь к этой папке (например,/usr/home/jeremy/bin) </em></p><p>хотя вы можете просто добавить его текущий каталог в путь поиска, вам придется продолжать делать это с каждой новой программой - и это больше работы в долгосрочной перспективе.</p>

<p>размещение ссылки на файл в <code>/bin</code> каталог не лучшая вещь по нескольким причинам.</p><ul> <li>если фактический исполняемый файл находится в месте, которое некоторые пользователи не могут увидеть или выполнить, они считают его плохой ссылкой или недействующей программой.</li> <li><code>/bin</code> каталог должен быть зарезервирован для программ, необходимых для работы системы (например, <code>chmod</code>, <code>mkdir</code> и т. д.).</li> </ul><p>вы действительно можете поместить (установить) исполняемый файл в <code>/usr/bin/</code> или даже <code>/usr/local/bin/</code>. конечно, вы вручную установили программу в этот момент; ваш дистрибутив не будет отслеживать его так же, как остальные ваши программы - вам придется вручную обновлять его, когда это необходимо, и удалять его вручную, если вы этого хотите. кроме того, вам нужно знать, от каких пакетов это зависит (похоже, вы уже используете программу, так что об этом позаботились, но в целом ...).</p><p>если я не настраиваю программу, которую, как я ожидаю, будут использовать другие пользователи, я обычно этого не делаю: я создаю каталог bin только для себя в своем домашнем каталоге и редактирую свой профиль shell, добавляя <code>~/bin/</code> к моей <code>path</code> переменной среды. мне легче отслеживать программы, которые я установил таким образом, потому что они отделены от остальной системы.</p>

<p>если вы хотите запустить команду <code>foo</code> в каталоге, в котором находится ваша оболочка, у вас есть два варианта:</p><ol> <li> <p>тип <code>./foo</code> в командной строке.</p> </li> <li> <p>добавить <code>.</code> каталог (<code>.</code> - это имя для "текущего каталога") переменной окружения <code>path</code>; как это сделать, зависит от используемой вами оболочки:</p> <ul> <li> <p>для оболочек типа борна (bash, zsh, ksh и т. д.) вы пишете (см. <a href="http://www.codecoffee.com/tipsforlinux/articles/030.html">эта страница</a> для получения дополнительной информации):</p> <pre><code>export path=$path:.   для оболочек типа csh (tcsh, csh) вы пишете (см. <a href="http://www.stat.rice.edu/~helpdesk/howto/cshell.html">эта страница для получения дополнительной информации): set path = ( $path .) </code></pre></li> </ul> </li> </ol><p>обратите внимание, что 2. это угроза безопасности в многопользовательских системах: представьте, что вы <code>cd</code> в каталог <code>/tmp</code> и злонамеренный пользователь создал двоичный файл вредоносного по с именем <code>ls</code> там ..</p>

<p>возникновение <code>path</code> по ошибке открывает вам возможность запуска вредоносных программ. стандартно установить "локальный" материал под <code>/usr/local</code> (см. <a href="http://www.pathname.com/fhs"> fhs </a> , который кодирует использование unix: немного устарел, но дает обоснование)., <code>/usr/local/bin</code> обычно находится в <code>path</code> для всех пользователей.</p><p>мои "локально установленные" программы находятся в <code>$home/bin, установите в стандартном танце ./configure --prefix=$home ...</code>, в сочетании с несколькими (bash) псевдонимами, например, для выбора. самодельный git поверх системного (не конфликтующие находятся в <code>path</code> в самом конце.</p>