Marias-MacBook-Air:~ marias$ ls --help
ls: illegal option -- -
usage: ls [-ABCFGHLOPRSTUWabcdefghiklmnopqrstuwx1] [file ...]
답변1
Mac OS X 버전은 ls
BSD를 기반으로 하며 ls
include를 지원하지 않습니다 --help
.ls
맨페이지또는 man ls
시스템에 대해 자세히 알아보세요.
답변2
다양한 명령은 다양한 옵션 스타일을 지원합니다. 주요 동향은 다음과 같습니다.
getopt()
:getopt()는 옵션 구문 분석을 위한 30년 된 프로그래밍 API입니다. 널리 사용되며 유일한 POSIX 표준입니다.단일 문자 옵션만 지원하며 그 중 일부는 매개변수를 사용할 수 있습니다. 단순화를 위해 여러 옵션을 함께 결합할 수 있습니다.
예:
tail -fn -2
:parameterless option(-f
) 뒤에-n
인수가 옵니다( 또는-2
로 쓸 수도 있음 ). 옵션의 끝을 표시하는 데 사용됩니다.tail -fn-2
tail -f -n -2
--
XrmParseCommand()
: (1980년대) 예: 에서 전화함XtOpenApplication()
.전통적으로 사용되는 API(읽기구식오늘) X11 응용 프로그램입니다. 옵션은 일반적
-option
으로 (또는 ) 전통적으로 단일 인수입니다+option
.옵션은 인수를 허용할 수 있지만 for처럼 결합할 수는 없습니다 ( for 약어
getopt()
와 같이 한 글자 옵션으로 정의된 경우에도 ).-d
-display
그누
getopt_long
. (1980년대 후반). GNU는getopt()
API를 확장하여 호환 가능한 방식으로 긴 옵션에 대한 지원을 추가했습니다.GNU는 이러한 옵션의 기원입니다
--long
. 이것이 GNU 시스템에서는 흔하지만 다른 곳에서는 흔하지 않은 이유입니다.여기에는 긴 옵션과 짧은 옵션의 두 가지 유형이 있습니다. 긴 것은
--foo
. 매개변수를 허용하는 매개변수는--foo=arg
또는 로 작성할 수 있습니다--foo
arg
.-o
또 다른 확장은 인수( or-oarg
,--opt
or ) 를 허용하는 옵션이지만--opt=arg
, 짧은 변형에서는 빈 인수 전달을 허용하지 않습니다. 긴 옵션은 축약될 수도 있습니다. 와 마찬가지로 or를--help
전달할 수 있습니다 (또는로 시작하는 유일한 옵션인 경우 ). GNU 옵션 구문 분석을 사용하면 옵션 인수와 옵션 인수가 아닌 인수를 인터리브할 수도 있습니다(비록 옵션의 끝을 표시하는 데 여전히 사용할 수 있음).--he
--h
h
--
GNU 스타일 옵션은 이제 새로운 사실상의 표준이 되고 있으며 대부분의 언어에는 이를 구문 분석하는 API가 있습니다(때로는 전체 기능 세트가 없거나 때로는 확장 기능이 있음).
- Wild West: 이제 많은 애플리케이션이 옵션을 수동으로 구문 분석하거나 대체 구문을 사용하여 덜 일반적인 라이브러리를 사용합니다. 그들이 표준을 고수하지 않는 한, 그들이 원하는 일을 하는 것을 막을 수 있는 것은 아무것도 없습니다. 물론 일부 명령은 옵션을 전혀 허용하지 않습니다.
이제 명령에 도움말을 인쇄하거나 메시지를 사용하는 옵션이 있는지 여부는 전적으로 응용 프로그램 작성자의 재량에 달려 있습니다.
많은 응용 프로그램이 인쇄됩니다.용법옵션이 인식되지 않을 때의 메시지(옵션이 있는 명령의 경우) 일부는 ,,,, -h
... 에 메시지를 인쇄할 수도 있습니다.-?
-help
--help
--usage
--long-help
이제 어떤 일을 할지 알지 못한 채 임의의 인수를 사용하여 명령을 호출하는 것은 위험한 일입니다. -h
아마도돕다아니면 다른 것. 예 shutdown -h
를 들어시간시스템을 바꾸세요. or ...를 사용하는 명령의 경우 (or or ...) -help
의 약어 입니다.-h -e -l -p
-h -e lp
-h elp
--host=elp
getopt()
getopt_long()
명령 승인 옵션을 알고 있는 경우 비교적 안전한 선택은 -?
또는 입니다 -:
. 셸에서:
cmd -\?
cmd -:
getopt()
API 의 경우 :
특별한 ?
의미를 가지므로 유효한 옵션이 아닐 수 있습니다. 그러면 도움을 받기 위한 유효한 옵션이 있는 경우 이를 묻는 오류 메시지가 표시됩니다.
$ xterm -:
xterm: bad command line option "-:"
usage: xterm [-/+132] [-C] [-Sccn] [-T string] [-/+ah] [-/+ai] [-/+aw]
[...]
Type xterm -help for a full description.
$ dd -:
dd: invalid option -- ':'
Try 'dd --help' for more information.
$ ls -:
ls: illegal option -- :
usage: ls -1RadCxmnlogrtucpFbqisfL [files]
모든 명령에 사용할 수는 없습니다.
어쨌든 가장 좋은 방법은 man
이미 언급했듯이 먼저 시도해 보는 것입니다.
일부 명령은 쉘에 내장되어 있으므로(찾아보십시오 type the-command
) 해당 문서는 쉘 매뉴얼에서 찾을 수 있습니다.
그러나 이것은 일반적으로 사실이 아닙니다 ls
.