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

Почему я должен набирать /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 ).

  • SSH Соединение закрыто удаленным сервером для одного клиента, но без проблем с другими!
  • losetup / dev / loop0 исчезает через некоторое время
  • Экран Ubuntu невелик в VMware
  • rsync mkstemp failed Неверный аргумент (22) с поддержкой davfs облака Box.com
  • Пользовательские разрешения TCP-порта
  • Какую программу я использую для проверки почты?
  • Как APT справляется с разными программами с тем же именем?
  • Простая система и резервное копирование / восстановление файлов для Linux?
  • FTP Upload Hook
  • l, ls & la - каковы различия, и есть ли еще эти команды?
  • объяснение команды вывода «ifconfig ppp0»
  • Linux и Unix - лучшая ОС в мире.