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.
W systemie Windows do wiersza poleceń można dostać się na kilka sposobów:
Po uruchomieniu pojawi się piękne okienko z czarnym tłem. Możemy zacząć wydawać 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
.
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 ../test2
wejdzie do katalogu test2, który znajduje się w katalogu nadrzędnym.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:
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).dir >> test.txt
spowoduje, że w pliku test.txt będą informacje z poprzedniego wykonania dir oraz z obecnego.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.
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!
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ą!