Moduł 9

Materiały do zajęć z Systemów operacyjnych prowadzonych na Wydziale Matematyki i Informatyki Uniwersytetu im. Adama Mickiewicza w Poznaniu.

« Wróć do spisu materiałów

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ć:

/Awyświetl wszystkie elementy
/A:XYZwyświetl elementy o atrybutach XYZ (więcej o atrybutach później)
/Ppodziel 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?

Zobacz odpowiedź

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ąć?

Zobacz odpowiedź

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ć:

/Susuń katalog wraz z zawartością
/Qpomiń 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:

Relement tylko do odczytu
Aelement archiwalny
Selement systemowy
Helement ukryty

Do nadawania i odbierania tych atrybutów służy polecenie wewnętrzne attrib. Przyjmuje ono następujące opcje:

/Sprzetwarzaj elementy rekursywnie
/Dprzetwarzaj 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:

/Pwymuś potwierdzanie usunięcia każdego pliku z osobna
/Fusuń również pliki z atrybutem "tylko do odczytu"
/Susuwanie rekursywne

Usuń plik utworzony w poprzednim ćwiczeniu.

Sprawdź, co się stanie, jeśli argumentem polecenia del będzie ścieżka do niepustego katalogu.

Zobacz odpowiedź

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:

/Vwymuś weryfikację poprawności przekopiowania pliku
/Ywyłą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.

Zobacz odpowiedź

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 /?.