Выполнение программ без указания каталога?

Почему я должен набирать /etc/init.d/apache2 (args) для запуска apache?

Разве нет способа просто apache2 args ??

4 Solutions collect form web for “Выполнение программ без указания каталога?”

Обычно вы не вводите команду для запуска Apache: она запускается при загрузке системы. Сценарии в /etc/init.d запускают службы и выполняются автоматически во время загрузки, если ваша система настроена правильно. В большинстве дистрибутивов службы включены по умолчанию и начнутся, если вы не сделали что-то, чтобы их отключить.

Если вы остановили Apache и хотите его перезапустить, /etc/init.d/apache2 start – это обычный способ – или, желательно, service apache2 start . Было бы бесполезно иметь более короткую команду, поскольку это не то, что вы делали бы как часть обычного использования системы. Команды, предназначенные для общего использования, могут быть выполнены без указания их полного пути; эти команды указаны в каталогах, перечисленных в PATH среды PATH (которую имитирует Windows).

Вероятно, вы должны использовать service команду для ее запуска.

service apache2 start

И аргументы apache должны быть в вашей структуре /etc/apache2 .

Это связано с тем, что /etc/init.d/ не установлен в $ PATH.

Это, по сути,: -сепаратированный список каталогов. Когда вы выполняете команду, оболочка ищет по каждому из этих каталогов один за другим, пока не найдет каталог, в котором существует исполняемый файл. ( http://www.cs.purdue.edu/homes/cs348/unix_path.html )

Существует много способов вызвать команду (скрипт или бинарный исполняемый файл), недоступный для вашего PATH .

Эти методы полезны для понимания, но если вы обнаружите, что вы тянете все более причудливые трюки только для выполнения команд, это будет означать менее оптимальный дизайн системы.

Скажем, это ваш сценарий, называемый s , и вы помещаете его в /home (чтобы сделать его недоступным, поскольку /home безусловно, не входит в ваш PATH ):

 echo "The first argument is: $1" echo "The second argument is: $2" 

Три способа достичь этого, не давая абсолютного пути, таковы:

Псевдоним: alias salias='/home/s'

Функция: sfunc () { /home/s $@ }

Ссылка: ln -s /home/s slink

Первые два, если вы будете использовать их снова, вы поместили бы в свой файл инициализации оболочки ( .bashrc для bash, .zshrc для zsh и т. Д.). Чтобы использовать ссылку (третий случай), вам придется поместить ее в каталог, включенный в ваш PATH , или вы будете явно ссылаться на него с абсолютным путем (например, если вы находитесь в том же каталоге, ./slink one two ).

  • inotifywait различные действия по файлу или директории
  • logrotate переименовывает исходный файл в mylog.log.1, но затем не использует mylog.log
  • Проблема с сетью в IBM x3650 после установки Ubuntu 14.04.1
  • rs232 для usb не работает
  • Вставка с vim сжимает содержимое между предыдущим контентом и маржей
  • Скраб ZFS не завершается
  • двойной ботинок солярис с ubuntu?
  • Не удалось создать pygobject с jhbuild
  • Обновление приложений без метапакетов?
  • Переносная загрузочная установка Ubuntu, синхронизированная с моим основным компьютером
  • Удаленный перезапуск службы с ошибками ssh и sudo
  • Linux и Unix - лучшая ОС в мире.