명령 대 프로그램? 명령입니다 adduser펄 스크립트입니다. 나는 펄 스크립트가 무엇인지

나는 사이의 차이 찾는 한 adduser과를 useradd, 그리고 설명은useradd동안 명령입니다 adduser펄 스크립트입니다. 나는 펄 스크립트가 무엇인지 이해하지만, 내가 이해하지 못하는 것은 command그때 정확히 무엇 인지입니다.

난 항상 명령이 좋아 생각 ls, ln, cd단순히 하나의 일을하는 것이 어떤 언어로 작성된 모든 간단한 프로그램 등이다. 이 “간단한 프로그램”과 펄 스크립트의 차이점은 무엇입니까?

물론 (perl) 스크립트가 컴파일되지 않고 런타임에 해석된다는 것을 알고 있지만 이것이 유일한 차이점은 아니라고 생각합니까?



답변

간단히 말해서, 명령은 컴퓨터에 의해 수행되는 명령 (또는 일련의 명령)입니다.

독립형 명령

같은 기본 유닉스 유틸리티 ls, ln등 (보통) C로 작성 및 독립 실행 형 실행으로 컴파일 된 프로그램을 실행하는 인터프리터를 필요로하지 않는다; 일반적으로 시스템에 특정 라이브러리 파일을 설치 해야 하지만 다른 질문에 대한 답변입니다.

스크립트

스크립트는 명령 모음이며 실제로 스크립트 자체는 명령으로 간주됩니다.

펄 스크립트는 펄 문장의 순서이며, 필요 perl실행 파일 (독립형 및 컴파일 된) 프로그램 펄 문을 해석 할 수 있습니다.

때로는 크고 복잡한 해석 스크립트 (Perl, Python 및 Ruby와 같은 언어)는 해석 프로그램 이라고도 하며, 스크립트 라는 용어 는 더 짧고 간단한 스크립트를 위해 사용됩니다.

쉘 스크립트는 다른 일련의 명령 (명령의 모든 유형)이며 유닉스 스크립트를 해석하는 등 배쉬로 쉘이 필요합니다. Bash 매뉴얼 페이지에서 :

Bash는 표준 입력 또는 파일에서 읽은 명령을 실행하는 sh 호환 명령 언어 인터프리터입니다.

쉘 내장

쉘에는 일반적으로 독립형 프로그램이나 스크립트가 아닌 내장 명령이 있습니다. 대신 이들은 쉘 자체의 일부이며 쉘에 의해 직접 실행됩니다. cd이러한 내장 명령의 예입니다.

때때로 쉘 내장 및 독립형 명령으로 존재하는 명령이 있습니다 (예 : echo명령).

$ type -a echo
echo is a shell builtin
echo is /usr/bin/echo

echo 자체적으로 쉘 내장을 실행하는 반면 독립형 명령은 전체 경로를 제공하여 실행될 수 있습니다.

내장 에코 버전을 실행하십시오.

$ echo --version
--version

독립형 echo프로그램을 실행하십시오 .

$ /usr/bin/echo --version
echo (GNU coreutils) 8.23
Packaged by Cygwin (8.23-4)
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

참고 : 위의 내용은 Unix 환경과 관련이 있지만 Windows 환경에도 동일한 원칙이 적용됩니다.


답변

내장 명령은 쉘의 일부입니다. 프로그램은 쉘에 의해 실행됩니다.

내장 명령은 쉘 자체에 포함되어 있습니다. 내장 명령의 이름이 단순 명령의 첫 단어로 사용되면 ( 단순 명령 참조 ) 쉘은 다른 프로그램을 호출하지 않고 명령을 직접 실행합니다. 내장 된 명령은 별도의 유틸리티로는 얻을 수 없거나 불편한 기능을 구현하는 데 필요합니다.

http://www.gnu.org/software/bash/manual/bashref.html#Shell-Builtin-Commands


답변

명령 은 응용 프로그램이나 시스템에 무언가를하도록 지시하는 방법을 의미합니다.

응용 프로그램은 일반적으로 GUI,에서 또는 다른 많은 명령을 받아들이지 stdin만 UNIX 소켓 또는 명명 된 파이프, 일종의 웹 API, RPC 연결 또는 다른 사용자 지정 프로토콜과 같은 다른 방법도 가능합니다.

하나의 작업 만 수행 한 다음 일반적으로 GUI없이 종료되는 응용 프로그램을 명령이라고도합니다.이 응용 프로그램에 의미있는 “명령”을 하나만 “주실”수 있기 때문입니다. 이것이 작은 프로그램들이 좋아하는 방식 ls이며 작동하는 이유입니다.

그러나 Photoshop을 명령이라고 부르지는 않지만 GUI를 통해 명령을 내릴 것입니다.

그러나이 용어는 사람들마다 다른 의미를 가질 수 있습니다. 예제에서 명령 은 스크립트 인터프리터가 작동해야하는 파일과 직접 실행되는 실행 파일을 설명하는 데 사용됩니다. Perl 스크립트를 실행할 때 /usr/bin/perl실제로 실행중인 바이너리 이기 때문에 구별이 중요 할 수 있습니다. 따라서 장기간 실행되는 Perl 스크립트를 종료하려면에서 찾아야합니다 ps. 그러나 대부분의 셸에는 셸 자체에 대한 명령 인 “내장”명령이 있으며 외부 실행 파일이 실행되지 않습니다. 예를 들어, 자체적 cd으로 처리되며 bash호출 /sbin/cd하거나 유사 하지 않습니다 .


답변