2009-07-13 3 views
2

Я довольно новичок в программировании для Linux-сред, поэтому я точно не знаю, что искать, чтобы ответить на этот вопрос для себя. Мне нужно понять, как приложения устанавливают оболочку для принятия определенной команды для их запуска. Например, вы можете запустить Firefox из командной строки, выполнив команду: firefox.Настройка командной строки командной строки bash для запуска моего приложения

Я не знаю, где это определено. Makefile? Настроить скрипт? В самом исходном коде?

Любые ресурсы/чтение на Linux программирование подобным образом было бы очень полезно!

спасибо.

ответ

5

Firefox запускается командой «firefox», потому что в одной из папок переменной среды PATH, называемой «firefox», есть исполняемый файл.

2

Вы говорите о переменной PATH? Похоже, вы.

В linux вы должны указать тип "echo $ PATH" (без кавычек) и получить ":" - список адресов, где находятся программы (например, firefox).

Если вам нужно что-то добавить в свой путь, вы должны быть в состоянии сделать:

export PATH=$PATH:/another/directory 

В вашей оболочке (который, скорее всего, Баш)

Вы также можете ввести:

which firefox 

Чтобы отобразить местоположение исполняемого файла firefox.

2

Обычно оболочка будет иметь переменную среды, называемую $ PATH. Это всего лишь упорядоченный список всех каталогов для поиска, когда кто-то вводит команду. Как только он находит исполняемый файл (под которым я подразумеваю файл, для которого у вас есть разрешения на выполнение, а не файл, заканчивающийся на .exe) с тем же именем, что и все, что было напечатано, он запустит этот файл. Общие каталоги в $ PATH могут быть/bin,/usr/local/bin, ~/bin и т. Д.

Итак, когда вы вводите «firefox», оболочка просматривает все каталоги в $ PATH, пока не найдет/usr/local/bin/firefox, который затем запускается. Чтобы ваши собственные программы выполнялись одинаково, вам нужно либо поместить их (или символическую ссылку на них) в каталог, который, вероятно, будет на каждом пути пользователя (/ usr/local/bin/- хороший выбор), или вам нужно будет заставить своих пользователей добавить каталог вашей программы в их $ PATH.

Для получения более полного описания см. Wikipedia article о переменной $ PATH.

0

В качестве альтернативы модификации $ PATH, упомянутой ранее, вы также можете скопировать или связать свой исполняемый файл в одной из каталогов, уже находящихся в вашей $ PATH. более конкретно, /usr/local/bin/ доступен в большинстве систем UNIX для этой цели (установка программного обеспечения за пределами стандартного управления пакетами операционной системы).

0

Он должен быть в пути, как и все остальное упоминается, но вы также должны сделать его исполняемым с чем-то вроде этого:

chmod +x /path/to/file 

И если это сценарий обычно есть притон в верхней части этой говорит ОС, что использовать для его выполнения:

#! /usr/bin/python 
0

Часто крупные пакеты устанавливаются в /opt со сценарием обертку или ссылку где-нибудь в PATH. Например, в моей системе, Google Picasa устанавливается в /opt/google/picasa и есть символическая в /usr/bin/picasa к /opt/google/picasa/3.0/picasa

Firefox находится в /usr/bin/firefox на моей системе, и это символическая к /usr/bin/firefox-3.0, который сам по себе является символической ссылкой на /usr/lib/firefox-3.0.11/firefox.sh - это файл оболочки шарит вокруг, пока он наконец не запустит /usr/lib/firefox-3.0.11/firefox (если только он не найдет причину сделать что-то еще). Это, наконец, бинарный исполняемый файл. Итак, /usr/lib есть где firefox, для меня.

Вы можете использовать эту команду, чтобы узнать, где программа:

type -a firefox 

Затем, вы можете выяснить, какой тип файла он использует это:

file /usr/bin/firefox 

см также Filesystem Heirarchy Standard для получения дополнительной информации о рекомендуемых местах для файлов и программ.

Смежные вопросы