Blog IT, Blog Marketing

Commands w Linuksie - czyli tak właściwie co?

Commands w Linuksie - czyli tak właściwie co?

Marcin Sarna , 02.11.2021 r.

O różnicach między command i utility.

Rozumienie potoczne

W wielu ogłoszeniach rekrutacyjnych można znaleźć wymóg sprawnego posługiwania się command-line, który to wymóg dotyczy głównie administratorów Linuksa, ale nie tylko. Wszyscy jakoś intuicyjnie rozumiemy ten termin i wiemy, że chodzi o wklepywanie czarodziejskich zaklęć w czarne okienko pozbawione jakiejkolwiek grafiki (chyba, że w Ascii-Art). Ale czy nie lepiej byłoby w końcu dokładnie wiedzieć co oznacza to całe command?

Słowo command jest najczęściej wymiennie stosowane na określenie dwóch różnych koncepcji w Linuksie, tj. na:

  • program wykonywalny, taki jak grep (lub wbudowany w powłokę, taki jak cd). Przykładowe użycie: []Here are the top 10 Linux commands you should learn[/]
  • Pełny tekst wysyłany do powłoki w celu wykonania, czyli cała linijka. Na przykład: grep com /etc/hosts czy Type a Linux command and press Enter.

To jednak nie jest prawidłowe podejście.

Command to coś innego niż utility

Standard POSIX używa pojęć commandutility i nie robi tego zamiennie. Polecenia takie jak grep czy cd są określane mianem utilitiescommand jest używane dla instrukcji (poleceń). Gdyby oba te wyrazy były przez wszystkich używane konsekwentnie (czytaj: gdybyśmy częściej czytali standardy), nie byłoby pomyłek.

programista

Utility

Program wykonywalny, taki jak grep jest właśnie utility. Utility oznacza każdy program, z wyłączeniem specjalnych wbudowanych narzędzi dostarczanych jako część języka poleceń powłoki, który można wywołać podając w powłoce jego nazwę a to w celu wykonania określonego zadania lub powiązanego zestawu zadań.

W Posix czytamy, że The system may implement certain utilities as shell functions or built-in utilities, co następnie jest wytłumaczy bliżej. Dowiadujemy się więc że pojęcie to obejmuje zwykłe narzędzia, takie jak true, które są powszechnie używane jako polecenia wbudowane powłoki.

A więc takie specjalne, wbudowane narzędzia są oddzielone terminologicznie od narzędzi, które nie zostały szczegółowo określone. Takimi narzędziami są na przykład break, eval, set czy trap, które wpływają na stan wewnętrzny powłoki, ale nie ma tu już na przykład cd, które jest wbudowane w powłokę. Elementy składni powłoki, takie jak if czy while, w ogóle nie są narzędziami.

Command

Jest to pełny ciąg tekstowy wysłany do powłoki w celu wykonania czyli taka dyrektywa do powłoki, aby ta wykonała określone zadanie. [i]Commands zawierają proste polecenia, potoki i polecenia złożone, takie jak konstrukcje z if czy grupowanie poleceń ale słowo command nigdy nie odnosi się do samego narzędzia.

Oznacza to, że słowo command powinno być używane wyłącznie w kontekście powłoki (ponieważ powłoka z definicji jest interpreterem poleceń, stąd właśnie command-line), czy to w użyciu interaktywnym, czy w programowaniu skryptowym. Na przykład command stanowi exec 2>errs.out albo każda jedna linijka napisanego przez Ciebie bashowego skryptu.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej