명령인가요 아니면 유틸리티인가요?

명령인가요 아니면 유틸리티인가요?

저는 Unix/Linux "명령"에 대한 올바른 용어를 찾으려고 노력 중입니다. 특히, 저는 항상 기술적으로 그것을 이해해 왔습니다.주문하다(예: cd)는 셸에 내장되어 있으며, 다른 "명령"(예: rm, ls, mkdir, cp) mv은 더 잘 호출됩니다.유용, 독립된 프로그램이기 때문입니다. (내가 아는 한 rm등은 모두 에 있습니다 /bin.) 또한 어떤 것이 명령인지 확인하는 한 가지 방법은 맨페이지가 있는지 확인하는 것입니다. 명령은 그렇지 않지만 유틸리티는 그렇습니다. 그러나 Google을 통해 찾은 모든 소스는 구체적으로 "명령어"를 사용합니다. 누군가 나에게 이 사실을 직접 말하거나 적절한 참고 자료를 알려줄 수 있습니까?

exit매뉴얼 페이지도 없고 에도 없기 때문에 실제 명령 /bin입니까 ?cd

답변1

이것오픈그룹 기본사양(POSIX)은 유틸리티를 다음과 같이 정의합니다.

셸 명령 언어의 일부로 제공되는 특수 내장 유틸리티를 제외하고 특정 작업이나 관련 작업 집합을 수행하기 위해 셸에서 이름으로 호출할 수 있는 프로그램입니다.

이 부분특수 내장 유틸리티그런 다음 내장 유틸리티가 나열됩니다.

명령은한정된처럼:

특정 작업을 수행하도록 셸에 지시하는 지침입니다.

이 섹션의쉘 명령, 이는 단순 명령, 파이프, 목록 복합어, 복합 명령 및 기능 정의의 다섯 가지 범주 중 하나로 나뉩니다.

따라서 "명령"은 위의 의미에서 "유틸리티"(외부 프로그램) 또는 내장 프로그램과 다릅니다. 유틸리티나 내장 함수에 대한 호출은 명령의 일부일 수도 있습니다.

답변2

명령은 명령 프롬프트에 입력할 때 실행되는 것입니다. 일부는 케이스에 내장되어 있고 일부는 외부 수집품이며 일부는 둘 다입니다. 이에 대한 기술 용어는 "내장" 및 "외부"입니다. "true" 명령과 false 명령은 없습니다(일부 명령은 true 또는 false를 반환할 수 있음).

"유틸리티"는 Unix에서 특별한 기술적 의미가 없으며 특별한 것을 구별하지 않습니다.

답변3

명령 대 유틸리티 논쟁은 DOS(Microsoft) 시대로 거슬러 올라갑니다. DOS 이전에는 대부분의 "명령"이 터미널이나 "모니터"(키보드 I/O)에 입력되었습니다. 프로그램 및 유틸리티는 펀치 카드, 카트리지 또는 디스크와 같은 미디어에서 로드되는 것입니다.

Unix/Linux/VMS/CPM이 작업을 수행하는 방식은 좁은 작업을 잘 수행하는 많은 명령을 제공하는 것입니다. 처음부터 IBM과 Microsoft는 다목적 "유틸리티"를 사용하여 Swiss Army Knife 방식으로 데스크탑 컴퓨터를 지원했습니다.

실제적이거나 공식적인 구별은 없지만 "유틸리티"는 종종 범용 프로그램으로 언급되는 반면 "명령"은 좁은 목적의 프로그램을 나타냅니다.

예를 들어디스크 드라이브다목적 역할로 인해 "디스크 유틸리티"라고도 합니다.체재목적이 좁기 때문에 일반적으로 명령으로 취급됩니다. (그러나 사람들이 가끔 FORMAT 유틸리티라고 말하는 곳을 보여드릴 수 있습니다!)

새로운 프로그래머는 전통적인 이름을 매우 빨리 배웁니다. 비록 꽤 임의적이긴 하지만 말입니다.

관련 정보