이 사이트에서이 질문을 보았 으므로이 질문 을하도록 촉구되었습니다. 유닉스에서 실행 파일과 쉘 스크립트의 차이점이 무엇인지 알고 싶습니다.
이 사이트에서이 질문을 보았 으므로이 질문 을하도록 촉구되었습니다. 유닉스에서 실행 파일과 쉘 스크립트의 차이점이 무엇인지 알고 싶습니다.
답변:
스크립트가 있는 파일입니다 :
쉘 스크립트는 그 인터프리터 A는 스크립트입니다 쉘 . 유닉스 세계에서“쉘”은 Bourne 쉘 과 유사한 쉘 제품군을 나타냅니다 . 현대의 그러한 쉘 (ash, bash, ksh, zsh,…)은 POSIX 쉘 표준을 따릅니다 . 보다 일반적으로“shell”이라는 단어는 csh, tcsh, fish 등과 같은 다른 명령 해석기를 포함 할 수 있습니다.
실행 파일이 실행될 수있는 파일입니다. 효과적으로 실행 가능하려면 파일에는 두 가지 속성이 있어야합니다.
ls -l
: x
권한 열에 문자가 있어야합니다.파일 형식은 시스템이 실행 파일로 인식하는 형식이어야합니다. 실행 가능한 형식은 여러 범주로 나눌 수 있습니다.
#!
하는 파일입니다. 이러한 파일을 실행하기 위해 커널은 인터프리터 프로그램을 실행하고 스크립트 경로를 인수로 전달합니다.실행 파일은 시스템에 따라 다릅니다. 예를 들어, amd64 Linux 바이너리는 amd64 Linux 시스템에서 실행 가능하지만 32 비트 시스템에서는 실행 가능하지 않습니다. Android 용 바이너리는 일반 Linux 설치에서 실행할 수 없습니다. Windows 실행 파일은 Wine이있는 경우 Linux에서만 실행 가능합니다. 로 시작하는 스크립트 #!/usr/local/bin/ruby
는에 위치한 프로그램이있는 경우에만 실행 가능합니다 /usr/local/bin/ruby
.
쉘 스크립트는 일반적으로 실행 가능합니다. 그러나 실행 권한이 없으면 실행 불가능할 수 있습니다. 통역사에게 명시 적으로 전달하여 해석 할 수 있습니다 (예 : bash /path/to/script
"해석")는 "실행"이라고 말하는 멋진 방법입니다.
쉘 스크립트 :
쉘 스크립트는 쉘 (일반적으로 sh 또는 sh 호환 쉘, 때로는 다른 쉘)에 의해 해석되는 일련의 명령입니다.
스크립트 이름은 ".sh"또는 ".bash"또는 ".csh"등으로 끝날 수 있지만 반드시 시작해야하는 것은 아닙니다 (쉘에 대한 힌트 제공).
명확히하기 위해 스크립트 이름은 script
이고 시작해야 할 쉘은 bash
입니다.
쉘을 실행하는 일반적인 방법은 다음과 같다 : bash /absolute/path/to/the/script
나 bash ./relative/path/to/the/script
. 그렇게하면 bash 만 읽을 수있는 실행 비트 세트가 없어도됩니다.
그것은 수 도 설정 + X (실행)와 현재 쉘 세션에서 직접 실행할 수 있도록하려면 : / 절대 / 경로 /에 /은 / 스크립트 (또는 ./relative/path/to/the/script). 주의 : 기본적으로 이런 방식으로 시작하면 입력 한 셸 또는 posix 셸 (동작에 따라 OS에 따라 다름)을 통해 시작되므로 실행되는 셸이 아닐 수 있습니다. 그렇기 때문에 스크립트의 첫 번째 줄로 #! / path / to / good / shell을 지정할 수 있습니다 (/ path / to / good / shell 대신 스크립트를 실행해야한다는 것을 OS에 나타냅니다).
실행 파일 :
실행 파일은 실행할 사용자 / 그룹에 대해 "x"비트가 설정된 파일입니다. 일반적으로 "이진"또는 스크립트 일 수 있습니다.
팁 : file /some/file
파일 내용에 대해 자세히 알려줄 수 있습니다. file /usr/bin/bash
또는 file /etc/profile
몇 가지 예를 보십시오 .