Konsola, terminal, CLI (Command Line Interface), czy cmd to synonimy interface’u do komunikacji z systemem operacyjnym. Niektórzy, starsi wiekiem, mogą mylić to z DOS’em, który miał bardzo podobną funkcjonalność. Przy użyciu wiersza poleceń możemy wykonywać takie same operacje jak w trybie graficznym. Nie mówię tutaj o surfowaniu po internecie czy tworzeniu pięknych prezentacji w powerpoincie- tutaj okienka są bezkonkurencyjne. Ale jeżeli chodzi o uruchamianie programów, zarządzanie systemem plików i wszelkiego rodzaju automatyzację, terminal nie ma sobie równych.

Chciałbym tylko zaznaczyć, że intencjonalnie rozpoczynam od wiersza poleceń systemu Windows. Jest prosty, nie posiada tak władczych możliwości jak jego następca PowerShell czy jakakolwiek inna powłoka systemu Unix/Linux (sh, bash). Mimo to warto znać jego podstawy, aby ułatwić sobie życie programując, ponieważ, podobnie jak w przypadku polityki, uciec od konsoli jest niepodobna.

Dostęp do wiersza poleceń

W systemie Windows do wiersza poleceń można dostać się na kilka sposobów:

  • Skrót klawiaturowy super+r (super czyli znaczek windows na klawiaturze): w uruchomionym oknie wpisujemy cmd.
  • Wariancja powyższego: start, uruchom… i wpisujemy cmd.
  • Odnajdź wiersz poleceń w programach…

Po uruchomieniu pojawi się piękne okienko z czarnym tłem. Możemy zacząć wydawać polecenia.

Wbudowane polecenia

Tak szczerze, to to nie są żadne polecenia tylko programy, które znajdują się w odpowiednim miejscu (w tzw. Ścieżce poleceń, zwyczajowo PATH). Terminal jest tak skonfigurowany, że po wpisaniu nazwy programu, najpierw szuka poleceń w ścieżce. Gdy natrafi na program, który zgadza się z podaną nazwą, uruchamia go i już. Niezależnie od tego, gdzie się obecnie znajdujemy, zawsze mamy możliwość skorzystania z programów, które dostępne są w ścieżce. PATH możemy dowolnie modyfikować, dzięki czemu dostajemy możliwość podpięcia tam naszych programów albo programów innych. Jeżeli chodzi o wbudowane programy, to możemy wyświetlić ich pełną listę za pomocą polecenia (programu)

help
. Aby dowiedzieć się jak działa konkretne polecenie, można użyć programu help z nazwą programu, który nas interesuje,
help type
. Polecenia wykonujemy wpisując jego nazwę. Dodatkowo każde polecenie może przyjąć zero lub wiele parametrów (argumentów), które podaje się oddzielając spacjami po nazwie polecenia, czyli: polecenie parametr1 parametr2 parametr3. W przypadku, gdy podane polecenie nie zostało odnalezione w ścieżce, przeszukiwany jest aktualnie otwarty katalog (czytaj niżej). Jeżeli tworzymy program i skompilowaliśmy go do katalogu, w którym aktualnie się znajdujemy, wystarczy, że wpiszemy nazwę pliku wykonywalnego, aby go uruchomić, np.
hello_world.exe
.

Gdzie ja jestem

Posługując się wierszem poleceń, nie jesteśmy oderwani od systemu. Można powiedzieć, że zawsze znajdujemy się w jakimś miejscu, które jest wyświetlane przed znakiem zachęty. Czyli po prostu rezydujemy w jakimś katalogu. Trochę tak jakbyśmy otworzyli go w okienku, mamy dostęp do tych samych możliwości z tym, że posługujemy się poleceniami, aby wykonywać operacje. Podstawową czynnością, którą powinniśmy wykonać, gdy zdarzy się, że nie wiemy gdzie aktualnie jesteśmy, to wykonanie polecenia

cd
, które wyświetli aktualnie otworzony katalog. Polecenie
cd
(skrót od Change Directory, “zmień katalog”), po przekazaniu mu nazwy katalogu jako parametru. Nowy katalog można utworzyć za pomocą
mkdir
podając nazwę katalogu jako parametr. Np.
mkdir test_terminala
. Teraz, dzięki
cd
możemy wejść do tego katalogu:
cd test_terminala
. Wyjść z katalogu poziom wyżej można za pomocą dwóch kropek jako nazwy katalogu:
cd ..
. Ostatecznie, można zmienić katalog podając pełną ścieżkę do niego, np.
cd "c:\Program Files\Internet Explorer"
. Zwróć uwagę, że w przypadku, gdy w nazwie katalogu jest spacja, należy ją podać w cudzysłowie. I trik na koniec: zmiana wolumenu (partycji): wystarczy wpisać literę partycji z dwukropkiem, np.
d:
. Krótka lista poleceń do przemieszczania się po katalogach:

  • cd nazwa - wchodzi do katalogu o podanej nazwie, gdy nie podano nazwy- wyświetla aktualnie otwarty katalog. Dwie kropki powodują wyjście do katalogu nadrzędnego. Ścieżkę można łączyć, np.
    cd ../test2
    wejdzie do katalogu test2, który znajduje się w katalogu nadrzędnym.
  • dir nazwa - wyświetla zawartość katalogu o podanej nazwie, gdy nie podano nazwy, wyświetla zawartość aktualnie otwartego katalogu.
  • mkdir nazwa - tworzy katalog o podanej nazwie.
  • rmdir nazwa - usuwa katalog o podanej nazwie.
  • type nazwa - wyświetla zawartość pliku o podanej nazwie.
  • del nazwa - usuwa plik o podanej nazwie.

Wyjście/wejście

Podstawy. Wszystko to co wyświetlane jest na ekranie to wyjście. To co wypluwa na ekran Twój program to wyjście. Wejściem jest wszytko to, co wpisujesz z klawiatury (bez znaczenia czy jest to polecenie dla systemu operacyjnego czy wartość, którą wpisujesz do jakiegoś programu). Dodatkowo wejściem mogą być także dane, które znajdują się w jakimś pliku- tak samo jak mogą być wyjściem programu. W przypadku danych do/z pliku wszystko zależy od kontekstu użycia, a dokładnie od tego jak skierujemy strumień danych. Uruchamiając polecenie dir, na ekranie (wyjściu) pojawia się informacja od programu dir. Wyjście jest strumieniem, który można przekierować, zamiast na ekran, np. do pliku. Do manipulacji strumieniem wyjścia/wejścia służą symbole:

  • > przekierowuje strumień wyjścia, nadpisując aktualną zawartość celu, np.
    dir > test.txt
    spowoduje utworzenie pliku test.txt, którego zawartością będzie wyjście programu dir. Ponieważ strumień został przekierowany, na ekranie nic się nie pojawi (pojawi się w zamian za to w pliku).
  • >> przekierowuje strumień wyjścia, doczepiając dane do aktualnej zawartości, np.
    dir >> test.txt
    spowoduje, że w pliku test.txt będą informacje z poprzedniego wykonania dir oraz z obecnego.
  • < przekierowuje strumień wejściowy. Np. w pliku test2.txt znajdują się następujące linie:
Katalog1
Katalog2
Katalog3

Uruchomienie

mkdir < test2.txt
spowoduje, że program mkdir otrzyma listę katalogów do utworzenia i stworzy trzy katalogi. Za pomocą przekierowania strumienia wejściowego można np. tworzyć zestawy parametrów do programów i uruchamiać program z odpowiednim zestawem, zamiast pisać je cały czas od zera.

Dajcie mi terminal, a opanuję świat

Terminal to potężne narzędzie. Powyżej przedstawiłem jedynie przedsmak, skromne możliwości, które oferuje. Na co dzień jest moim podstawowym narzędziem pracy- mam uruchomione minimum trzy okna (ale te z powłoką bash a nie cmd). W jaki sposób korzystasz z terminala? Masz swoje ulubione tricki? Podziel się koniecznie w terminalu. Ja np. pisząc ten artykuł dopiero natrafiłem na polecenie type... lepiej późno niż później!

Dobry kontent!

Piotr Poźniak

Piotr Poźniak

Programuję od ponad 15 lat. Prowadzę software house. Angażuję i zachęcam wszystkich do programowania w ramach inicjatywy Programowanie jest łatwe.

Bądź pierwszy, podziel się swoją opinią!