커맨드 라인에서 나는 종종 같은 “간단한”명령을 사용
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─────────┘
-
명령 이름 (리디렉션 또는 변수 지정이 아닌 별칭이 확장 된 후 명령 줄의 첫 단어 또는 토큰).
-
명령에 대한 토큰, 단어 또는 인수. 남자 배쉬에서 :
단어 : 쉘에서 단일 단위로 간주되는 일련의 문자. 토큰이라고도합니다.
-
일반적으로 : 인수
- 명령 줄.
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────────────────────┘
위의 숫자 외에 :
- 리디렉션.
- 변수 할당.
- 간단한 명령.
이것은 명령 행이 가질 수있는 모든 요소의 목록이 아닙니다. 이러한 목록은이 짧은 대답에 비해 너무 복잡합니다.
답변
위의 @isaac 답변이 좋습니다.
일부 소스로 이것을 확장하고 싶습니다.
나는 추측 는 POSIX 표준 어떤 의미에서 힘이 고려 될 정규 . 다른 출처는 man bash
및 일 수 있습니다 man proc
.
┌1┐ ┌──2───┐
git checkout master
│ └──────3──────┘
└───────4─────────┘
POSIX는 다음을 제안합니다.
- 는 IS 명령 이름이 (오히려 명령에 비해, 심지어는이 문서의 사용 장소에 명령하지만)
- 논의
- 인수
- 명령 ( 명령 행을
man proc
사용 하지만 )
또한 더 복잡한 명령에 대한 용어도 있습니다.
나는 명령이 매우 모호하다고 생각하므로 아마도 명령 이름 과 명령 줄 이라는 용어 는 명확성을 위해 좋습니다 .j