이해하려고 노력 info who
하지만 단어를 전혀 이해하지 못합니다."비옵션 인수". 누군가 이 용어를 간단한 단어나 예를 들어 설명해 줄 수 있나요?
고쳐 쓰다: 에서 info who
:
주어진다면옵션이 아닌 매개변수 없음,
who
현재 로그인한 각 사용자에 대해 로그인 이름, 터미널 줄, 로그인 시간, 원격 호스트 이름 또는 X 표시 등의 정보를 인쇄합니다.주어진다면옵션이 아닌 매개변수,
who
기본 시스템 유지 관리 파일(일반적/var/run/utmp
으로 또는/etc/utmp
) 대신 이를 로그인된 사용자 기록이 포함된 파일 이름으로 사용합니다. 일반적으로 이전에 누가 로그인했는지 확인하기 위한/var/log/wtmp
매개변수로 사용됩니다 .who
주어진다면옵션이 아닌 매개변수 2개,
who
실행하는 사용자에 대한 항목(표준 입력에 따라 결정됨)만 인쇄하고 호스트 이름이 앞에 붙습니다. 전통적으로 주어진 두 매개변수는 다음과 같습니다am i
.who am i
저는 매개변수와 옵션의 차이점을 알고 싶었지만, 이는 [다시] 많은 것을 무효화합니다.
답변1
용어가 완전히 고정되어 있지 않기 때문에 문서마다 다른 용어를 사용하거나, 심지어 동일한 용어라도 다른 의미를 갖습니다. 당신이 읽고 있는 매뉴얼 페이지의 용어는 일반적으로 사용되는 용어입니다. 이 시간은POSIX기준. 간단히 말해서, 명령 뒤에 오는 모든 단어는 인수이고, 로 시작하는 인수 -
는 옵션입니다.
토론
쉘 명령 언어에서 유틸리티에 전달된 인수는 exec 함수 중 하나에 의해 생성된 argv 배열의 단일 문자열과 동일합니다. 인수는 명령 이름 뒤에 오는 옵션, 옵션 매개변수 또는 피연산자 중 하나입니다.
피연산자
일반적으로 처리를 완료하는 데 필요한 정보를 유틸리티에 제공하는 개체로 사용되는 명령에 대한 인수입니다. 피연산자는 일반적으로 명령줄의 옵션을 따릅니다.
옵션
일반적으로 유틸리티의 기본 동작에 대한 변경 사항을 지정하는 데 사용되는 명령에 대한 인수입니다.
"유틸리티"는 일반적으로 "명령"이라고 불리는 것입니다(이 단어의 표준 사용은유용매개변수 또는 복합 쉘 명령을 포함하는 "명령"의 의미와 모호함을 피하기 위해).
대부분의 명령은 다음과 같습니다표준 유틸리티 인수 구문, 여기서 옵션은 -
(대시, 마이너스 기호라고도 함)로 시작됩니다. 따라서 옵션은 -a
(POSIX 지침을 따르는 짧은 옵션) 또는 --all
(긴 옵션, GNU 확장) 과 같습니다 . 옵션이 아닌 인수는 으로 시작하지 않거나 -
로만 구성되는 인수입니다( 리터럴 파일 이름으로 -
생각 하지만 많은 명령에서는 이를 표준 입력 또는 표준 출력으로 처리합니다).who
또한 일부 옵션은 그 자체로 논란의 여지가 있습니다. 이 매개변수는 다양한 방법으로 전달될 수 있습니다.
- 단일 문자 옵션의 경우 유틸리티에 대한 동일한 인수:
foo -obar
:bar
는 단일 문자 옵션에 대한 인수입니다-o
. - GNU 긴 매개변수 구문에서는 동일한 매개변수 내에서 등호로 구분됩니다
foo --option=bar
. - 별도의 인수:
foo -o bar
또는foo --option bar
. 옵션-o
(또는--option
)이 인수를 취하는 경우 이는bar
옵션(또는)에 대한 인수입니다. (or)가 매개 변수를 사용하지 않으면 피연산자입니다.-o
--option
-o
--option
bar
더 긴 예는 다음과 같습니다.
tail -n 3 myfile
-n
는 옵션 3
이고 는 옵션의 매개변수 -n
이며 myfile
는 피연산자입니다.
용어가 다르므로 다음을 사용하는 문서를 찾을 수 있습니다.토론POSIX 사용법의 의미에서피연산자. 그러나 이러한 의미에서는 "비옵션 논증"이 두 용어보다 더 일반적입니다.
답변2
문제는 옵션(또는 스위치나 플래그 등 무엇이라고 부르든)도 매개변수로 간주된다는 것입니다. 실제로 명령 이름 자체 뒤에 제공하는 모든 것은 명령의 인수(예: 셸에서 사용하는 구조(예: 리디렉션))를 구성합니다.
프로그램/스크립트는 모든 것을 인수로 받으며 옵션 인수(옵션에 대한 인수)는 다른 인수와 분리되어야 합니다... 짐작하셨을 겁니다! ...옵션이 아닌 매개변수.
따라서 정보 페이지에서 말하는 것은 who
수신된 인수가 옵션이 아닌 경우 이를 로그인 정보를 쿼리하는 기본 파일에 대한 대안으로 간주한다는 것입니다.
답변3
나는 아직도 이것이 형편없는 표현이라고 생각하고 끊지 않으려고 노력할 것입니다. 그들이 말하고 싶은 것은 프로토타입 선언에 다음과 같은 내용이 포함된다는 것입니다.
`who' [OPTION] [FILE] [am i]
따라서 "옵션이 아닌 인수가 제공되지 않은 경우"라고 말하면 [FILE]
및 를 참조하는 것입니다 [am i]
.
이 논리에 따라 "옵션이 아닌 인수가 주어진 경우"라고 말하면 해당 위치를 [FILE]
재정의합니다 .[FILE]
/var/run/utmp
마지막으로 "옵션이 아닌 두 개의 인수가 제공되는 경우"라는 이 설명에서는 [am i]
방금 명령을 실행한 사용자에 대한 정보를 요청합니다.
$ who am i
saml pts/5 2013-10-18 16:29 (:0.0)
-or-
$ who mom likes
saml pts/5 2013-10-18 16:29 (:0.0)
이 설명은 적절하지만 "비옵션 인수 없음"이라는 용어를 사용하여 확실히 혼동하고 있습니다.
저자의 의견으로는 다음과 같은 옵션이 있습니다.
-a, --all same as -b -d --login -p -r -t -T -u
-b, --boot time of last system boot
-d, --dead print dead processes
-H, --heading print line of column headings
-l, --login print system login processes
--lookup attempt to canonicalize hostnames via DNS
....
그리고 예/아니요 옵션도 [FILE]
있습니다 . 하지만 이것들은[am i]
[mom likes]
모두옵션이 있으므로 차이점은 이 도구로 제한됩니다!
답변4
대개옵션이 아닌 매개변수
- 명령줄 문자열의 명령 따르기
-
또는 으로 시작하지 않습니다 .--
- 인수가 필요한 옵션을 따르지 않습니다.
- (명령 문자열의 일부인 경우) 일반적으로 유일한 필수 인수
예:
option non-option arg
command --verbose /dir/file.txt
또는:
option argument of -o non-option arg
command -o /dst /src/file.txt
인수와 옵션이 아닌 항목을 쉽게 구별할 수 있나요?아니요. 특정 명령이 옵션을 구문 분석하는 방법에 따라 다르므로 해당 설명서를 읽어야 합니다.
option argument of -a
command_A -a /dir/file.txt
option non-option arg
command_B -a /dir/file.txt
참고: 드문 경우지만 옵션이 아닌 항목은 -
다음으로 시작됩니다.
non-option arg non-option arg
set -- -a