Что мне делать, если я хочу иметь возможность запускать определенную программу независимо от моего текущего каталога? Должен ли я создать символическую ссылку на программу в /bin
папке?
command-line
aneuryzm
источник
источник
~/bin/
папку, добавить ТО к своему пути и создать символические ссылки в этой папке на все, что вы хотите, чтобы оно выполнялось из любого места.Ответы:
Если вы просто наберете
export PATH=$PATH:</path/to/file>
в командной строке, это будет продолжаться только на протяжении сеанса.Если вы хотите изменить его навсегда, добавьте его
export PATH=$PATH:</path/to/file>
в файл ~ / .bashrc (просто в конце все в порядке).источник
Короткий ответ заключается в том, что для запуска программы, независимо от того, какой у вас каталог, вам нужно иметь каталог программы в вашем пути поиска. Проблема может быть решена путем помещения программы в папку, которая уже находится в этом пути, или путем добавления новой папки в путь - все будет работать. Лучший ответ зависит от:
Является ли эта программа загруженной программой, которую вы сами скомпилировали из исходного кода?
Вполне вероятно, уже будет установлен механизм установки. В папке, с которой вы скомпилировали программу, от имени пользователя root запустите 'make install'
Является ли эта программа загруженной программой, которую вы хотите сделать доступной как часть стандартных программ на компьютере?
Имеет смысл поместить приложение такого типа в стандартную папку. для таких программ довольно часто используют каталоги, такие как / usr / local / bin. Вам понадобится root-доступ для этого.
Это программа, которую вы написали для себя и / или у вас нет специальных привилегий на компьютере.
Создайте папку в вашем домашнем каталоге с именем «bin» и поместите в нее программу. Вам может понадобиться отредактировать скрипт входа в систему, чтобы добавить полный путь к этой папке (например, / usr / home / jeremy / bin)
Хотя вы можете просто добавить его текущий каталог в путь поиска, вам придется продолжать делать это с каждой новой программой - и это больше работы в долгосрочной перспективе.
источник
Размещение ссылки на файл в
/bin
каталоге не является лучшим решением по нескольким причинам./bin
каталог зарезервирован для программ, необходимых для работы системы (напримерchmod
,mkdir
и т. Д.).Вы можете фактически поместить (установить) исполняемый файл в
/usr/bin/
или даже/usr/local/bin/
. Конечно, вы вручную установили программу в этот момент; ваш дистрибутив не будет отслеживать его так же, как остальные ваши программы - вам придется вручную обновлять его, когда это необходимо, и удалять его вручную, если вы этого хотите. Кроме того, вы должны будете знать, от каких пакетов это зависит (похоже, вы уже используете программу, так что об этом позаботились, но в целом ...).Если я не настраиваю программу, которую, как я ожидаю, будут использовать другие пользователи, это обычно не то, что я делаю: я создаю каталог bin только для себя в своем домашнем каталоге и редактирую свой профиль оболочки, добавляя его
~/bin/
в своюPATH
переменную среды. Мне легче отслеживать программы, которые я установил таким образом, потому что они отделены от остальной системы.источник
Если вы хотите выполнить команду
foo
в каталоге, в котором находится ваша оболочка, у вас есть два варианта:Введите
./foo
в приглашении оболочки.Добавьте
.
каталог (.
это имя для «текущего каталога») вPATH
переменную окружения; как вы это сделаете, зависит от используемой вами оболочки:для оболочек типа Борна (bash, zsh, ksh и т. д.), которые вы пишете (см. эту страницу для получения дополнительной информации):
для оболочек типа csh (tcsh, csh), которые вы пишете (см. эту страницу для получения дополнительной информации):
Обратите внимание, что 2. это угроза безопасности в многопользовательских системах: представьте, что вы находитесь
cd
в каталоге,/tmp
и злонамеренный пользователь создал двоичный файл вредоносного ПО, названныйls
там.источник
Возмущение
PATH
открывает вам возможность запуска вредоносных программ по ошибке. Стандарт заключается в том, чтобы установить «локальный» материал/usr/local
(см. FHS , который кодифицирует использование Unix: немного устарело, но дает обоснование)./usr/local/bin
Обычно используетсяPATH
для всех пользователей.Мои «локально установленные» программы
$HOME/bin
установлены стандартным танцем./configure --prefix=$HOME ...
, в сочетании с несколькими (bash) псевдонимами, чтобы выбрать, например, самодельный git поверх системной (не конфликтующие находятся вPATH
самом конце.источник