Uruchamianie konsoli w systemie Windows
Wszystko zaczęło się w 1981 roku, kiedy firma Microsoft wykupiła prawa do systemu operacyjnego QDOS. Po wprowadzeniu poprawek, nowy system pojawił się na rynku pod nazwą MS-DOS i zrewolucjonizował rynek komputerów osobistych.
Dzisiaj 16-bitowy MS-DOS nie jest już popularny, choć jeszcze w czasach Windowsa 95 i 98 był on wykorzystywany do uruchamiania 32-bitowych modułów systemu. W nowych wersjach systemu Windows resztki mechanizmów MS-DOS są dostępne w postaci emulatora konsoli, maszyny wirtualnej systemu DOS, a także w narzędziach diagnostycznych.
Nowsze systemy Windows, w przeciwieństwie do systemów uniksopodobnych, nie są wyposażone w konsole wirtualne w ścisłym znaczeniu tego określenia. Dlatego też jednym z niewielu sposobów tekstowej interakcji z systemem jest skorzystanie z powłoki tekstowej systemu (zwanej też wierszem poleceń). Aby się do niej dostać, należy wcisnąć kombinację klawiszy Win + R, a następnie wprowadzić polecenie cmd
.
Okno Uruchamianie pozwala wywołać (uruchomić) dowolny element znajdujący się na dysku. Podobnie jak w przypadku powłoki Bash, możemy odwoływać się do konkretnych elementów na dysku z użyciem wyłącznie ich nazwy, a nie pełnej ścieżki, jeśli znajdują się one w określonych katalogach. Ten temat poruszymy jeszcze później. To w gestii systemu pozostaje rozpoznanie, do jakiego elementu się odwołujemy i w jaki sposób powinien zostać uruchomiony.
W praktyce, okno Uruchamianie pozwala nam wprowadzić dowolne polecenie tekstowe, w tym takie, które otwiera wiersz poleceń.
W systemie Windows wykonywalne pliki programów mają rozszerzenie .exe
. Do plików o takim rozszerzeniu możemy się odwoływać z jego pominięciem. Dlatego w oknie Uruchamianie możemy napisać cmd
zamiast cmd.exe
. Mimo to oba sposoby są równoważne.
Plik cmd.exe
jest programem wiersza poleceń systemu Windows. Warto zwrócić uwagę na pewne subtelne różnice pomiędzy systemami uniksopodobnymi a systemami z rodziny Windows. Po pierwsze, w systemach z rodziny Windows istotną rolę w interpretacji typu pliku odgrywa jego rozszerzenie. Po drugie, w systemach z rodziny Windows nie ma znaczenia wielkość liter. Nazwy CMD
, cmd
oraz Cmd
są równoważne i użycie każdej z nich spowoduje ten sam efekt.
Tak naprawdę program cmd.exe
jest 32- lub 64-bitową powłoką tekstową systemu Windows, umożliwiającą o wiele więcej działań (związanych też z konstruowaniem programów wsadowych) niż system MS-DOS i nie ma z tym systemem zbyt wiele wspólnego. Systemy z rodziny Windows wyposażono jednak w maszynę wirtualną systemu DOS, o nazwie command.com
, która w pewnym ograniczonym zakresie pozwala uruchamiać 16-bitowe programy stworzone dla systemu MS-DOS.
Na tych i kolejnych ćwiczeniach będziemy wykorzystywać tylko wiersz poleceń systemu Windows.
Uruchom wiersz poleceń systemu Windows korzystając w oknie Uruchamianie z wywołań CMD
, cmd
, Cmd
oraz cMd.EXe
. Jak zmieniał się tytuł okna wiersza poleceń w zależności od sposobu jego wywołania? W jakim katalogu znajduje się plik cmd.exe
?
Podstawowe polecenia
Podobnie jak w systemach uniksopodobnych, każdy element wywoływany z poziomu wiersza poleceń może być wywoływany z argumentami. Wśród nich mogą być zarówno parametry, jak i opcje (zwane też przełącznikami). Te jednak, w odróżnieniu od systemów uniksopodobnych, poprzedzamy zwykle symbolem /
. Każde polecenie da się skategoryzować jako polecenie wewnętrzne lub polecenie zewnętrzne. Pierwsze odwołują się do mechanizmów wbudowanych w wiersz poleceń (np. cd
), drugie zaś do zewnętrznych programów (np. net
).
Poruszanie się po katalogach, ich tworzenie i usuwanie
Zaraz po uruchomieniu wiersza poleceń bieżącym katalogiem roboczym jest albo katalog domowy użytkownika, albo katalog, w którym został wywołany wiersz polecenia, albo katalog System32
na partycji systemowej.
Wejdź do dowolnego katalogu znajdującego się na dysku komputera, korzystając z interfejsu graficznego. Następnie, trzymając wciśnięty klawisz Shift, kliknij w jego wnętrzu prawym przyciskiem myszy i uruchom wiersz poleceń w bieżącym katalogu, wybierając opcję Otwórz okno polecenia tutaj.
Do zmiany bieżącego katalogu roboczego służy polecenie wewnętrzne cd
(lub chdir
). Przyjmuje ono jako argument ścieżkę do katalogu, na który chcemy zmienić katalog roboczy.
Wiele z poznanych poleceń da się wywołać z użyciem dwóch nazw. Wynika to z chęci zachowania wewnątrz wiersza poleceń kompatybilności wstecz.
W systemach z rodziny Windows struktura plików może być podzielona na partycje. Polecenie cd
interpretuje poprawnie ścieżki do katalogów znajdujących się na bieżącej partycji. Wywołanie polecenia cd
tylko z oznaczeniem partycji (np. cd C:
) lub ze ścieżką do katalogu na innej partycji nie spowoduje zmiany bieżącego katalogu.
W ramach ćwiczeń z wiersza poleceń systemu Windows, znak zachęty będziemy oznaczać symbolem >
.
Wykonaj poniższe polecenia. Jak zachowuje się wiersz poleceń? Zwróć uwagę na fakt, że katalogi oddzielane są od siebie symbolem \
, a nie /
.
> C:
> chdir C:\Windows
> cd
> chdir P:
> P:
> cd C:
> C:
> P:
> cd C:\Users
> C:
Jaki efekt przynosi wywołanie jako polecenia oznaczenia partycji? Jak zachowuje się polecenie cd/chdir
wywołane bez parametrów?
Sprawdź, jak zachowa się system Windows, gdy wprowadzisz w wierszu poleceń (jako polecenie) nazwę lub ścieżkę do dowolnego istniejącego pliku (np. pliku tekstowego).
Do wypisywania zawartości katalogu służy polecenie wewnętrzne dir
. Wśród jego najważniejszych opcji należy wymienić:
/A | wyświetl wszystkie elementy |
/A:XYZ | wyświetl elementy o atrybutach XYZ (więcej o atrybutach później) |
/P | podziel listę elementów na strony |
Wykonaj następujące polecenia:
> C:
> cd C:/Windows/System32
> dir
> dir /A
> dir /a
> dir /P
> dir /AP
> dir /A /P
Które polecenie zakończyło się niepowodzeniem? Jak myślisz, dlaczego? Czy polecenie drugie zakończyło się zgodnie z oczekiwaniami pomimo użycia zwykłego ukośnika?
Polecenie dir /AP
zakończy się niepowodzeniem, bo programy systemowe nie obsługują łączenia opcji w jedną.
Sprawdź, czy można wywołać polecenie dir
z dopasowaniem wzorca (symbolem wieloznacznym), tak jak w systemach uniksopodobnych. W tym celu wykonaj polecenia:
> C:
> cd \Windows
> cd \System32
> cd System32
> dir a*
> dir a*l
> dir ?a*
> dir a*.exe
Czy wiersz poleceń rozróżnił wielkość liter? Jak zostało zinterpretowane drugie i trzecie polecenie? Jaki wniosek można stąd wyciągnąć?
Drugie polecenie zmieniło katalog roboczy na katalog znajdujący się w głównym katalogu. Trzecie zakończyło się niepowodzeniem.
Wiersz poleceń systemu Windows jest wyposażony w polecenie wewnętrzne tree
, które rysuje graficzne drzewo struktury plików we wskazanym jako argument katalogu. Jeśli nie podano argumentu, tree
rysuje drzewo struktury plików o korzeniu w bieżącym katalogu.
Do tworzenia nowych katalogów służy polecenie wewnętrzne md/mkdir
. Przyjmuje ono jako argument ścieżkę do katalogu (ścieżka ta może obejmować też oznaczenie partycji), który ma zostać utworzony. Jeśli istnieje taka konieczność, polecenie md/mkdir
utworzy wszystkie katalogi pośrednie.
Wykonaj na komputerze w laboratorium następujące polecenie:
> md P:\Test\Tworzenia\Katalogow
Sprawdź jego efekty. Czy konieczna jest zmiana bieżącej partycji na P:
?
Do usuwania katalogu służy polecenie wewnętrzne rd/rmdir
. Wśród jego najważniejszych opcji należy wymienić:
/S | usuń katalog wraz z zawartością |
/Q | pomiń pytanie z prośbą o potwierdzenie usunięcia katalogu w przypadku wywołania opcji /S |
Wykonaj następujące polecenia:
> md P:\Test\Usuwania\Katalogów
> rd P:\Test
> rd /S P:\Test
Czy usunięty katalog pojawił się w koszu?
Zarządzanie plikami
Jedną z istotnych różnic pomiędzy systemami uniksopodobnymi a systemami z rodziny Windows jest to, że w tych drugich istnieje bardzo wyraźne rozróżnienie pomiędzy katalogami (folderami) a plikami. Mimo to, pewne własności są wspólne dla obu tych rodzajów elementów struktury plików.
Każdy element struktury plików s systemie plików może mieć przypisany podzbiór atrybutów. Wśród nich najpopularniejsze to:
R | element tylko do odczytu |
A | element archiwalny |
S | element systemowy |
H | element ukryty |
Do nadawania i odbierania tych atrybutów służy polecenie wewnętrzne attrib
. Przyjmuje ono następujące opcje:
/S | przetwarzaj elementy rekursywnie |
/D | przetwarzaj również foldery |
Utwórz w swoim katalogu domowym dowolny plik i przetestuj działanie polecenia attrib
. Jeśli nie wiesz, jak wywołać program attrib
, wywołaj go z opcją /?
.
Spróbuj zmodyfikować atrybuty tego samego pliku, korzystając z narzędzia graficznego systemu Windows. Wykorzystaj opcję Właściwości.
Polecenie ren/rename
pozwala zmienić nazwę wskazanego pliku. Warto zauważyć, że nowa nazwa musi się odnosić do tego samego katalogu. Nie można używać polecenia ren
do przenoszenia plików pomiędzy katalogami.
Utwórz plik o dowolnej nazwie, a następnie zmień ją, wykorzystując polecenie ren
. Sprawdź, czy użycie nazwy rename
wpływa na efekt działania polecenia.
Polecenie wewnętrzne del/erase
służy do usuwania pliku lub plików opisanych symbolem wieloznacznym. Przyjmuje ono następujące opcje:
/P | wymuś potwierdzanie usunięcia każdego pliku z osobna |
/F | usuń również pliki z atrybutem "tylko do odczytu" |
/S | usuwanie rekursywne |
Usuń plik utworzony w poprzednim ćwiczeniu.
Sprawdź, co się stanie, jeśli argumentem polecenia del
będzie ścieżka do niepustego katalogu.
Zostanie usunięta zawartość katalogu, ale sam katalog (i jego katalogi podrzędne) pozostanie nietknięty.
Do kopiowania plików służy polecenie wewnętrzne copy
. Należy je wywołać z dwoma argumentami: nazwą pliku źródłowego i docelowego. Jeśli nazwą pliku źródłowego jest grupa plików (opisana symbolem wieloznacznym), to elementem docelowym musi być katalog. Najczęściej wykorzystywane przełączniki to:
/V | wymuś weryfikację poprawności przekopiowania pliku |
/Y | wyłącz pytanie o zastąpienie pliku docelowego, jeśli ten istnieje |
Polecenie copy
daje trochę więcej możliwości niż analogiczne polecenie znane z systemów uniksopodobnych. Pozwala ono choćby skopiować do pliku docelowego dane ze standardowego wejścia lub łączyć pliki w całość – uniksowe polecenie
$ cat a.txt b.txt c.txt > wynik.txt
moglibyśmy zastąpić wówczas poleceniem
> copy a.txt+b.txt+c.txt wynik.txt
W przeciwieństwie do systemów uniksopodobnych, symbole wieloznaczne wykorzystywane w wierszu poleceń systemu Windows nie są interpretowane (rozkładane) na poziomie wiersza poleceń, ale na poziomie samego programu. Tym samym nie każde polecenie musi je obsługiwać. Bądź ostrożny i zwracaj szczególną uwagę na tego typu subtelności.
Przetestuj działanie polecenia copy
. Sprawdź też, czy można za jego pomocą skopiować folder.
Jeśli pierwszym argumentem jest nazwa katalogu, to zostaną skopiowane wszystkie pliki, które znajdują się bezpośrednio w nim.
Sprawdź, jak zachowa się system Windows, gdy wykonasz w wierszu poleceń polecenie
> copy con wynik.txt
Aby zakończyć wprowadzanie danych do programu copy
, naciśnij kombinację klawiszy Ctrl + Z i wciśnij Enter.
Czy można utworzyć na dysku komputera plik o nazwie con
? Zweryfikuj to w wierszu poleceń i w interfejsie graficznym.
Do przenoszenia plików służy polecenie wewnętrzne move
. Przyjmuje ono dwa argumenty – pierwszy z nich okresla nazwę pliku lub grupę plików (w postaci symbolu wieloznacznego), które mają zostać przeniesione, a drugi katalog, do którego mają zostać przeniesione. Jeśli katalog docelowy znajduje się na innej partycji, to polecenie move
najpierw skopiuje plik, a później usunie oryginał.
Przetestuj działanie polecenia move
. Sprawdź, czy możesz użyć programu move
do zmiany nazwy pliku.
Przyjrzyj się poznanym dotąd poleceniom. Czy któreś z nich jest poleceniem zewnętrznym? Jak myślisz, dlaczego tak wiele ważnych funkcjonalności jest dostarczanych jako polecenia wewnętrzne? Czy tak samo było w systemach uniksopodobnych?
Pomoc
Aby uzyskać informacje o poleceniach wewnętrznych wiersza poleceń, można użyć polecenia help
. Wywołane bez argumentów wyświetli listę dostępnych poleceń wewnętrznych, a wywołane z argumentem będącym nazwą polecenia wyświetli informacje o wywołaniu tego polecenia. Drugie podejście jest w większości przypadków równoważne wywołaniu polecenia z przełącznikiem /?
.
Zapoznaj się z pomocą do wszystkich poznanych dotąd poleceń. Porównaj efekty jej wywołania z użyciem polecenia help
oraz przełącznika /?
.