디렉토리를 지정하지 않고 프로그램을 실행할 수 있나요?

디렉토리를 지정하지 않고 프로그램을 실행할 수 있나요?

/etc/init.d/apache2 (args)Apache를 실행하려면 왜 진입해야 하나요 ?

방법이 없나요 apache2 args? ?

답변1

일반적으로 Apache를 실행하기 위해 명령을 입력할 필요는 없습니다. Apache는 시스템이 부팅될 때 시작됩니다. /etc/init.d시스템이 올바르게 설정되어 있으면 시작 시 시작 서비스의 스크립트가 자동으로 실행됩니다. 대부분의 배포판에서 서비스는 기본적으로 활성화되어 있으며 비활성화하기 위한 조치를 취하지 않는 한 시작됩니다.

Apache를 중지하고 다시 시작하려는 경우 /etc/init.d/apache2 start이것이 일반적인 방법이거나 가장 좋습니다 service apache2 start. 더 짧은 명령을 사용하는 것은 일반적인 시스템 사용의 일부가 아니기 때문에 거의 사용되지 않습니다. 일반 명령은 전체 경로를 지정하지 않고 실행할 수 있습니다. 해당 명령은 PATHWindows에서 에뮬레이트하는 환경 변수에 나열된 디렉터리 에 있습니다 .

답변2

service시작하려면 이 명령을 사용해야 할 것입니다 .

service apache2 start

그리고 아파치 매개변수가 /etc/apache2구조에 있어야 합니다.

답변3

이는 $PATH에 /etc/init.d/가 설정되지 않았기 때문입니다.

이는 본질적으로 :로 구분된 디렉토리 목록입니다. 명령을 실행하면 쉘은 실행 파일이 있는 디렉토리를 찾을 때까지 이러한 디렉토리를 한 번에 하나씩 검색합니다. (http://www.cs.purdue.edu/homes/cs348/unix_path.html)

답변4

에 없지만 호출할 수 있는 메서드가 많이 있습니다 PATH.

이러한 방법에 대해 알아두면 좋습니다. 그러나 단지 명령을 실행하기 위해 더 이국적인 묘기를 모두 수행한다면 이는 시스템 설계가 이상적이지 않다는 신호입니다.

이것이 이라는 스크립트이고 s당신이 그것을 넣었다고 가정해 봅시다( 확실히 당신의 것이 아니기 /home때문에 접근할 수 없게 만들기 위해 ):/homePATH

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, .zshrczsh 등의 경우) 에 넣어야 합니다 . 링크를 사용하려면(세 번째 경우) 포함하는 디렉토리에 링크를 배치해야 합니다 PATH. 또는 절대 경로를 사용하여 명시적으로 호출할 수 있습니다(예: 동일한 디렉토리에 있는 경우 ./slink one two).

관련 정보