명령 줄 용어 : 명령의 이러한 부분은 무엇입니까? 을 인수 목록 이라고

커맨드 라인에서 나는 종종 같은 “간단한”명령을 사용

mv foo/bar baz/bar

그러나 나는 이것의 모든 부분을 어떻게 부를지 모른다.

┌1┐ ┌──2───┐
git checkout master
│   └──────3──────┘
└───────4─────────┘

나는 (나는 생각한다) 1 은 명령이고 2 는 인수 라는 것을 알고 , 아마도 3 을 인수 목록 이라고 부를 것이다 (정확한가?).

그러나 4을 무엇을 해야할지 모르겠습니다 .

더 복잡한 “명령”은 어떻게 표시됩니까?

find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}

나는 1,2,3,4라고 부르는 것과 위의이 “명령”의 각 부분을 부르는 것을 세분화하는 대답에 감사드립니다.

내가 여기에 포함시키지 않은 독특하고 놀라운 다른 것들에 대해서도 배우는 것이 좋을 것입니다.



답변

각 부분의 공통 이름은 다음과 같습니다.

┌1┐ ┌──2───┐
git checkout master
│   └──────3──────┘
└───────4─────────┘
  1. 명령 이름 (리디렉션 또는 변수 지정이 아닌 별칭이 확장 된 후 명령 줄의 첫 단어 또는 토큰).

  2. 명령에 대한 토큰, 단어 또는 인수. 남자 배쉬에서 :

    단어 : 쉘에서 단일 단위로 간주되는 일련의 문자. 토큰이라고도합니다.

  3. 일반적으로 : 인수

  4. 명령 줄.

a와 함께 두 개의 간단한 명령을 연결 하는 |것은 파이프 시퀀스 또는 파이프 라인입니다.

┌─1┐ ┌──────2──────┐ ┌─2─┐ ┌──2──┐   ┌──1───┐ ┌2┐┌2┐┌2┐┌────2─────┐ ┌2┐ ┌2┐
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2'  {} {/}
│    └────────────3──────────────┘            └────────────3──────────────┘
└───────────────────────────────────4─────────────────────────────────────┘

리디렉션 및 변수 할당도 있습니다.

┌──5──┐ ┌1┐ ┌─2─┐ ┌─2─┐   ┌───6──┐ ┌1┐ ┌─5─┐
<infile tee file1 file2 | LC_ALL=C cat >file
└─────────7───────────┘   └───────7────────┘
└─────────────────────4────────────────────┘

위의 숫자 외에 :

  1. 리디렉션.
  2. 변수 할당.
  3. 간단한 명령.

이것은 명령 행이 가질 수있는 모든 요소의 목록이 아닙니다. 이러한 목록은이 짧은 대답에 비해 너무 복잡합니다.


답변

위의 @isaac 답변이 좋습니다.

일부 소스로 이것을 확장하고 싶습니다.

나는 추측 는 POSIX 표준 어떤 의미에서 힘이 고려 될 정규 . 다른 출처는 man bash및 일 수 있습니다 man proc.

┌1┐ ┌──2───┐
git checkout master
│   └──────3──────┘
└───────4─────────┘

POSIX는 다음을 제안합니다.

  1. 는 IS 명령 이름이 (오히려 명령에 비해, 심지어는이 문서의 사용 장소에 명령하지만)
  2. 논의
  3. 인수
  4. 명령 ( 명령 행을man proc 사용 하지만 )

또한 더 복잡한 명령에 대한 용어도 있습니다.

나는 명령이 매우 모호하다고 생각하므로 아마도 명령 이름명령 줄 이라는 용어 는 명확성을 위해 좋습니다 .j