W wierszu poleceń często używam „prostych” poleceń, takich jak
mv foo/bar baz/bar
ale nie wiem, jak nazwać wszystkie części tego:
┌1┐ ┌──2───┐
git checkout master
│ └──────3──────┘
└───────4─────────┘
Wiem (chyba) wiem, że 1 to polecenie, a 2 to argument, i prawdopodobnie nazwałbym 3 argumentem (czy to prawda?).
Nie wiem jednak, jak zadzwonić 4 .
Jak oznaczane są bardziej złożone „polecenia”?
find transcripts/?.? -name '*.txt' | parallel -- sh -c 'echo $1 $2' {} {/}
Byłbym wdzięczny za odpowiedź, która zawiera podział na to, co nazwać 1,2,3,4 i jak nazwać każdą część np. Tego „polecenia” powyżej.
Byłoby wspaniale dowiedzieć się także o innych wyjątkowych / zaskakujących rzeczach, których tutaj nie uwzględniłem.
command-line
command
parameter
terminology
theonlygusti
źródło
źródło
man
strony,git
afind
zwłaszcza sekcję streszczenia?git
lubfind
raczej ogólną terminologię dla systemu Linux.A | B
,A | B
to rurociąg ,A
iB
są polecenia (jest to niefortunne, że to ma taką samą nazwę jak tylko pierwszego świata w poleceniu). Mogę nazwać pierwszy argument plikiem wykonywalnym, ale nie mogę znaleźć źródła, które by się ze mną zgadzało.git checkout ...
,checkout
to komenda , aw kontekściesh -c ...
,-c
jest to opcja .Odpowiedzi:
Wspólne nazwy dla każdej części są następujące:
Nazwa polecenia (pierwsze słowo lub token wiersza poleceń, który nie jest przekierowaniem ani przypisaniem zmiennej i po rozwinięciu aliasów).
Token, słowo lub argument polecenia. From man bash:
Ogólnie: Argumenty
Łączenie dwóch prostych poleceń za pomocą a
|
jest sekwencją potoku lub potokiem:Pamiętaj, że istnieją również przekierowania i przypisania zmiennych:
Gdzie (oprócz liczb z góry):
To nie jest wyczerpująca lista wszystkich elementów, które może mieć wiersz poleceń. Taka lista jest zbyt skomplikowana dla tej krótkiej odpowiedzi.
źródło
!
do zanegowania jego stan). pipe wolałby raczej odwoływać się do mechanizmu IPC używanego przez większość powłok do implementacji potoków (potoki nie muszą używać potoków, na przykład w niektórych systemach ksh93 używa par gniazd). Niektóre muszle zawierają więcej słów kluczowychtime
,noglob
których można użyć zamiast lub dodatkowo!
tutaj.cat $file
, tutaj powiedziałbym, że$file
jest tokenem, ale wartością pliku jest argument.argv
Powyższa odpowiedź @ isaac wydaje się dobra.
Chcę to rozszerzyć o niektóre źródła.
Myślę, że standard POSIX może w pewnym sensie być uznany za kanoniczny . Inne źródła mogą być
man bash
iman proc
.POSIX sugeruje, że:
man proc
używa wiersza polecenia )Ma także terminologię dotyczącą wielu bardziej skomplikowanych poleceń.
Myślę, że polecenie jest dość dwuznaczne, więc być może termin nazwa polecenia i wiersz polecenia są dobre dla clarity.j
źródło
proc
to system plików specjalnego przeznaczenia (zbiór plików), który dostarcza informacji o stanie wewnętrznym jądra. Wierzę, że oznacza procesy (patrz także sysfs, który dostarcza informacji o rzeczach innych niż procesy). Powód, dla którego jest odpowiedni, został napisany przez programistów jądra , więc może dobrze odzwierciedlać używany przez nich język, który może być nieco bardziej formalny.