Linux Tryb wiersza poleceń


Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
LINUX
Tryb wiersza poleceń
1
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
Powłoka jest interpreterem poleceń udostępniającym zorientowany wierszowo inte-
raktywny interfejs pomiędzy użytkownikiem i systemem operacyjnym. Ty wprowadzasz
polecenia w wierszu poleceń, a one są następnie interpretowane przez powłokę i przesy-
łane jako instrukcje do systemu operacyjnego.
Dla Linuxa rozwinięto różne rodzje powłok - trzy główne to: powłoka Bourne Again
(BASH), powłoka Public Domain Korn (PDKSH) oraz powłoka TCSH. Wszystkie trzy
powłoki są dostępne, z tym że powłoka Bourne a jest domyślna.
1 Rozpoczęcie pracy z systemem
1.1 Logowanie się do Linuxa
Logowanie się do Linuxa wymaga dwóch kroków: wprowadzenia Twojej nazwy użytkow-
nika (identyfkatora, login name) i Twojego hasła. Po pojawieniu się monitu logowania
wpisz nazwę swojego konta. Następnie zostaniesz poproszony o wprowadzenie hasła (pas-
sword). Wpisywane hasło nie pojawia się na ekranie. Dzieje się tak po to, by zabezpieczyć
je przed podglądaniem przez innych użytkowników.
Jeżeli wprowadzisz błędnie nazwę użytkownika lub hasło, system zasygnalizuje to ko-
munikatem i poprosi Cię o wprowadzenie nazwy użytkownika ponownie, uruchamiając
znów proces logowania. Po poprawnym wprowadzeniu nazwy i hasła pojawi się monit
wiersza poleceń z oczekiwaniem na wprowadzanie przez Ciebie poleceń. Zankiem monitu
dla zwykłego użytkownika jest  $ , natomiast dla administratora (użytkownika uprzy-
wilejowanego, root) znak  # . Najczęsciej monit jest poprzedzony nazwą hosta lub/i
uzytkownika, a także nazwą katalogu, w którym się aktualnie znajdujesz. Nazwy te
będą ujęte w nawiasy kwadratowe np.:
[tom@demeter home]$
1.2 Zmienianie hasła
Po zalogowaniu się do systemu możesz zmienić swoje hasło poleceniempasswd. Po pierw-
sze zdecyduj się, jak ma brzmieć Twoje nowe hasło. Powinno ono być łatwe do zapa-
miętania i mieć co najmniej pięć znaków1. Jeżeli dbasz o bezpieczeństwo, hasło powinno
zawierać duże i małe litery oraz kilka cyfr. Po ustaleniu nowego hasła jesteś gotowy do
jego zmiany. Wpisz poleceniepasswdw wierszu poleceń i naciśnij [ENTER]. Pojawi się
pytanie o Twoje aktualne hasło. Po wprowadzeniu go i naciśnięciu [ENTER] zostaniesz
spytany o nowe hasło. Po wprowadzeniu nowego hasła zostaniesz poproszony o jego po-
wtórne wprowadzenie. Chodzi o to, by upewnić się, że wprowadziłeś hasło, które chciałeś
wprowadzić. Ponieważ znaki hasła nie są wyświetlane w czasie wprowa dzania, łatwo
jest zrobić błąd i wprowadzić zły znak.
$ passwd
1
Wymagania dotyczące hasła w dużej mierze zależą od ograniczeń narzuconych przez administratora
systemu. Na różnych komputerach, nawet z tą samą dystrybucją Linuxa, można się spotkać z innymi
wymaganiami co do budowy hasła.
2
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully
$
Jeżeli zrobisz błąd przy wprowadzaniu nowego hasła, system wyświetli komunikat błędu,
a hasło nie zostanie zmienione. System wykrywa błąd, porównując dwa nowo wprowa-
dzone hasła. Jeżeli nie zgadzają się, wypisywany jest błąd. Jeżeli natomiast zgadzają się,
nowe hasło uznawane jest za obowiązujące. Polecenie passwd od razu rejestruje Twoje
nowe hasło w systemie. Kiedy będziesz logował się po raz kolejny, musisz użyć nowego
hasła.
1.3 Wylogowywanie się
Aby zakończyć sesję, wydajesz polecenielogout. Powoduje to powrót do monitu logo-
wania, a Linux czeka, aż załoguje się następna osoba.
$ logout
2 Wiersz poleceń
Kiedy załogujesz się do Linuxa, pojawia się interfejs wiersza poleceń. Składa się on z
pojedynczego wiersza, w którym wprowadzasz polecenia wraz z opcjami i argumentami.
Linux domyślnie jest instalowany z powłoką Bourne Again, popularnie zwaną powłoką
BASH. Powłoka BASH ma monit w postaci znaku dolara, ale w Linuxie istnieje kilka
innych rodzajów powłok, a każda może mieć własny monit.
Monit wyznacza początek wiersza poleceń. W następnym przykładzie użytkownik wpro-
wadza polecenie datę powodujące wyświetlenie bieżącej daty. Użytkownik wpisuje pole-
cenie w pierwszym wierszu, a następnie naciska [ENTER] i polecenie jest wykonywane.
$ date
Sun July 7 10:30:21 CEST 2002
Kiedy się zalogujesz, znajdujesz się pod kontrolą powłoki, która interpretuje wprowa-
dzane przez Ciebie polecenia i wysyła je do systemu. Powłoka interpretuje wiersz pole-
ceń zgodnie ze specjalną składnią. Pierwszym wprowadzonym w wierszu poleceń słowem
musi być nazwa polecenia. Potem następują opcje i argumenty polecenia. Każde słowo
w wierszu poleceń musi być oddzielone jedną lub kilkoma spacjami, czy też znakami
tabulacji.
$ Polecenie Opcje Argumenty
Po wprowadzeniu polecenia powłoka najpierw odczytuje nazwę polecenia, a następnie
sprawdza, czy rzeczywiście w systemie jest polecenie o takiej nazwie. Jeżeli nie ma
takiego polecenia, powłoka powoduje wyświetlenie komunikatu o błędzie.
3
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
2.1 Opcje i argumenty
Opcja składa się z jednoznakowego kodu poprzedzonego znakiem minus i powoduje
modyfikację działań wykonywanych przez polecenie. Jednym z przykładów polecenia
mającego opcje jestls. Polecenielsbez opcji powoduje wyświetlenie listy wszystkich
plików znajdujących się w bieżącym katalogu. Listowane są jedynie nazwy każdego pliku
bez żadnych dodatkowych informacji. Polecenielsz opcją-lpowoduje taką modyfi-
kację zadania wyświetlania wiersza, że można poznać rozmiar i datę oraz czas ostatniej
modyfikacji pliku. Minus przed literą jest wymagany, aby odróżnić opcję od argumentu.
$ ls -l
Inna opcja,-a, powoduje listowanie wszystkich plików z bieżącego katalogu, włącznie z
tak zwanymi plikami ukrytymi (ang. hiddenfiles). Pliki ukryte są często plikami konfi-
guracyjnymi i ich nazwa zawsze rozpoczyna się od kropki. Z tego powodu często są też
nazywane plikami z kropką (ang. dot files).
W większości przypadków możesz łączyć różne opcje ze sobą. Robisz to, poprzedzając
opcję znakiem minus, a następnie wpisując kolejno wszystkie litery. Na przykład opcja
-alwyświetli wszystkie informacje o plikach w katalogu, włącznie z plikami ukrytymi.
$ ls -al
Kolejną opcją polecenialsjest-F. Dzięki tej opcji polecenielspowoduje wyświetlenie
nazw katalogów ze znakiem ukośnika, tak że można je łatwo odróżnić od plików.
Większość poleceń przyjmuje argumenty. Argument jest słowem, które wpisujesz w wier-
szu poleceń po opcjach. Wiele poleceń zarządzania plikami przyjmuje nazwy plików jako
argumenty. Na przykład, jeżeli chcesz uzyskać jedynie informacje o konkretnym pliku,
możesz podać jego nazwę po opcji-l:
$ ls -l mojadane
W zależności od polecenia, musisz lub nie musisz wprowadzać argumentów. Niektóre po-
lecenia, takie jakls, nie wymagają argumentów. Inne polecenia mogą wymagać minimal-
nej liczby argumentów. Na przykład poleceniecpwymaga co najmniej dwóch argumen-
tów. Jeżeli liczba argumentów nie zgadza się z wymaganą przez polecenie, powłoka wy-
świetla komunikat o błędzie. Pamiętaj, że opcje są wprowadzane w wierszu poleceń przed
argumentami. W pole- ceniu cp opcja -i, sprawdzająca warunek nadpisania, jest wprowa-
dzana przed ar- gumentami z nazwą pliku. Oto kilka przykładów wprowadzania poleceń:
$ ls Polecenie bez opcji
$ ls -F Polecenie z opcją
$ cp -i mojedane nowedane Polecenie z opcją i argumentami
2.2 Cechy wiersza poleceń
Wiersz poleceń w istocie rzeczy jest buforem zawierającym tekst, który możesz edyto-
wać. Zanim naciśniesz klawisz [ENTER], możesz wydawać polecenia edycyjne dotyczące
4
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
wprowadzonego tekstu. Możliwości edycyjne są ograniczone, ale jest to jakiś sposób na
poprawienie błędów. Na przykład klawisze [BACKSPACE] i [DEL] służą do usuwania
właśnie wpisanego znaku. Posługując się nimi, możesz usunąć znaki z całego wiersza i
skasować wszystko, co wprowadziłeś. Kombinacja klawiszy [CTRL+U] powoduje usu-
nięcie całego wiersza i pozwala na wpisanie go od nowa.
Powłoka, w której zaczynasz pracę, to powłoka domyślna BASH. Zapewnia ona specjalne
możliwości edycji wiersza poleceń i możesz stwierdzić, że są one bardzo przydatne przy
nauce Linuxa. Możesz łatwo modyfikować wprowadzone polecenia, zanim je wykonasz,
poruszając się po całym wierszu i wprowadzając lub usuwając znaki. Jest to szczególnie
pomocne przy bardzo skomplikowanych poleceniach.
Możesz używać kombinacji klawiszy [CTRL+F] lub kursora w prawo do przesunięcia
się o znak w przód, kombinacji [CTRL+B] lub kursora w lewo do cofnięcia się o znak.
[CTRL+D] lub [DEL] usuwa znak znajdujący się pod kursorem. Jeżeli chcesz dodać
tekst, po prostu używasz kursorów do przesunięcia się w miejsce, w którym chcesz go
wprowadzić i wpisujesz nowy znak. W dowolnej chwili możesz nacisnąć [ENTER] i wy-
konać polecenie.
Jeżeli zrobisz błąd przy wpisywaniu polecenia, zamiast je od nowa wprowadzać, mo-
żesz posłużyć się edycją do poprawienia błędu. Możesz również używać kursora w górę
(lub [CTRL-P]) w celu wyświetlenia poprzednio wykonanego polecenia. Możesz następ-
nie ponownie wykonać polecenie lub je edytować, jeżeli chcesz wykonać zmodyfikowane
polecenie. Stwierdzisz, że jest to bardzo pomocne przy powtarzaniu wielu podobnych
operacji, takich jak edycja tego samego pliku. Jest to również pomocne, jeśli właśnie
wykonałeś polecenie, które wprowadziłeś nieprawidłowo. W tym przypadku pojawi się
komunikat o błędzie i nowy, pusty wiersz poleceń. Wciśnięcie kursora w górę spowoduje
wyświetlenie ostatniego polecenia, możesz je poprawić i wykonać ponownie. W ten spo-
sób nie musisz wprowadzać całego polecenia od nowa.
Powłoka BASH przechowuje listę zwaną listą historii, która zawiera poprzednio wpro-
wadzone polecenia. Możesz wyświetlić każde polecenie z listy, wciskając kursor w górę.
Kursor w dół (lub [CTRL-N]) spowoduje poruszanie się w drugą stronę listy.
Niektóre polecenia mogą być bardzo złożone i ich wykonanie może zajmować dużo
czasu. Kiedy pomyłkowo wykonasz złe polecenie, możesz je przerwać za pomocą kla-
wiszy [CTRL+C] lub [DEL].
Możesz umieścić więcej niż jedno polecenie w tym samym wierszu, lub możesz użyć kilku
wierszy do wprowadzenia pojedynczego polecenia. Aby wprowadzić więcej niż jedno po-
lecenie w tym samym wierszu, oddziel polecenia średnikiem. W następnym przykładzie
pokazano polecenialsicpwprowadzone w tym samym wierszu.
$ ls -F ; cp -i mojadane nowedane
Możesz wprowadzić polecenie w kilku wierszach, wpisując znak (\) zanim naciśniesz
[ENTER]. Znak backslash maskuje klawisz [ENTER] i pozwala na kontynuowanie wpro-
wadzania polecenia w następnym wierszu. W następnym przykładzie polecenie cp jest
wprowadzane w trzech wierszach. Pierwsze dwa wiersze kończą się znakiem backslash,
powodując, że wszystkie trzy wiersze są interpretowane jako jeden.
cp -i \
5
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
mojadane \
nowedane
2.3 Znaki specjalne i argumenty nazw plików
Nazwy plików są najczęstszymi argumentami stosowanymi w poleceniach. Często mo-
żesz znać jedynie część nazwy pliku lub chcesz odwołać się do kilku nazw plików, które
mają takie samo rozszerzenie lub rozpoczynają się takim samym znakiem. Powłoka ofe-
ruje zestaw znaków specjalnych, które poszukują, dopasowują i generują listę plików.
Tymi znakami specjalnymi są gwiazdka, znak zapytania i nawiasy kwadratowe (*, ?, [
]). Jeżeli zadasz część nazwy pliku, powłoka używa tych operatorów do poszukiwania
plików i wygenerowania listy znalezionych nazw. Powłoka podstawia zamiast argumen-
tów w postaci fragmentów nazw listę pasujących nazw. Lista nazw plików może stać się
argumentami dla poleceń takich jakls, które może działać na wielu plikach.
Gwiazdki (*) możesz używać do oznaczenia plików zaczynających się lub kończących
różnym zestawem znaków. Umieszczasz gwiazdkę przed lub po zestawie znaków tworzą-
cych wzorzec poszukiwany w nazwie pliku. Jeżeli gwiazdka jest umieszczona po wzorcu,
poszukiwane są nazwy rozpoczynające się wzorcem. Każda zgodna z wzorcem nazwa
pliku jest kopiowana do listy nazw plików tworzonej przez tę operację. W następnym
przykładzie poszukiwane są wszystkie nazwy plików rozpoczynające się od wzorca  dok i
tworzona jest ich lista. Następnie poszukiwane są wszystkie nazwy kończące się wzorcem
 ek i również tworzona jest lista.
$ ls
doki dok2 dokument dokumenty mójdokument poniedziałek wtorek
$ ls dok*
doki dok2 dokument dokumenty
$ ls *ek
poniedziałek wtorek
$
Nazwy plików często zawierają rozszerzenie wyszczególnione za kropką i składające się
z jednej litery. Rozszerzenie nie jest niczym szczególnym. Ono także stanowi nazwę
pliku. Za pomocą gwiazdki można łatwo wybrać pliki o zadanym rozszerzeniu. Gwiazdka
umieszczona przed .c stanowi argument dlals.
$ ls *.c
kalkulator.c main.c
Możesz używać znaku specjalnego (*) z poleceniemrmdo usuwania kilku plików jedno-
cześnie. Gwiazdka powoduje najpierw wybieranie listy plików z zadanym rozszerzeniem
lub rozpoczynającej się czy kończącej zadanym ciągiem znaków, a następnie przekazuje
tę listę poleceniurmw celu usunięcia. W następnym przykładzie za pomocą polecenia
rmusuwane są wszystkie pliki rozpoczynające się od wzorca  dok .
$ rm dok*
6
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
Sama gwiazdka oznacza wszystkie pliki. Jeżeli używasz pojedynczej gwiazdki jako argu-
mentu dla poleceniarm, zostaną usunięte wszystkie pliki. Używaj znaku specjalnego (*)
ostrożnie i oszczędnie z poleceniemrm. Ich kombinacja może być bardzo niebezpieczna.
Pomyłkowo użyta (*) w poleceniurmbez opcji-imoże w prosty sposób wykasować
wszystkie pliki. Pierwsze polecenie następnego przykładu usuwa jedynie te pliki, które
mają rozszerzenie .c. Drugie polecenie usuwa wszystkie pliki. Zwróć uwagę na spację
pomiędzy gwiazdką i kropką w drugim poleceniu. Spacja w wierszu poleceń działa jak
ogranicznik, oddzielając argumenty. Gwiazdka jest uznawana jako jeden argument, a .c
jako drugi. Sama gwiazdka oznacza wszystkie pliki i jeżeli stosujesz ją jako argument
dla poleceniarm, nakazuje poleceniu usunięcie wszystkich plików.
$ rm *.c
$ rm * .c
Znak zapytania (?) oznacza jedynie jeden brakujący znak w nazwach plików. Załóżmy,
że chcesz stworzyć wzorzec dla plików doki i dokA, ale nie dla dokument. Podczas gdy
gwiazdka dopasowywuje nazwy dowolnej długości, znak zapytania ogranicza dopasowy-
wanie do jednego znaku. W następnym przykładzie dopasowywane są pliki rozpoczyna-
jące się od słowa  dok , za którym następuje jedna litera.
$ ls
doki dokA dokument
$ ls dok?
doki dokA
Możesz używać więcej niż jednego znaku zapytania we wzorcu, jeżeli chcesz, a także mo-
żesz umieszczać znaki zapytania w dowolnym miejscu wzorca. W nastę pnym przykładzie
poszukiwane są nazwy pasujące do wzorca z trzema różnymi znakami.
$ ls ?oj?ok?
mojdokt mojpoks Wojdoki
Możesz łączyć znak zapytania (?) z innymi znakami specjalnymi, tworząc bardzo precy-
zyjne operacje dopasowywania.
Podczas gdy znaki specjalne (*) i (?) określają niepełną nazwę pliku, nawiasy kwa-
dratowe ([ ]) pozwalają na określenie zestawu dopuszczalnych znaków, jakie mają być
poszukiwane. Dowolne znaki umieszczone w nawiasach będą dopasowywane do nazwy
pliku.
Załóżmy, że chcesz uzyskać listę plików rozpoczynających się od  dok , ale jedynie jeżeli
kończą się na 1 lub A. Nie interesują Cię pliki kończące się na 2, B czy inne znaki. Oto
jak to zrobić:
$ ls
doki dok2 dok3 dokA dokB dokD dokument
$ ls dok[1A]
doki dokA
7
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
Możesz również określić zestaw znaków jako zakres, a nie wpisywać jeden po drugim.
Znak minus umieszczony pomiędzy dolną i górną granicą zestawu powoduje wybór
wszystkich znaków z zadanego zestawu. Zakres jest zwykle określany przez używany ze-
staw znaków. W zestawie znaków ASCII zakres a-g spowoduje wybór wszystkich małych
liter od a do g włącznie. W następnym przykładzie wybierane są pliki rozpoczynające
się od wzorca  dok , a kończące znakami od l do 3. Następnie wybierane są te, które
kończą się literami od B do E.
$ ls dok[1-3]
dok1 dok2 dok3
$ ls dok[B-E]
dokB dokD
Możesz łączyć nawiasy kwadratowe z innymi znakami specjalnymi.
3 Standardowe wejście/wyjście i przekierowanie
Kiedy został stworzony system Unix, ustalono, że należy odróżnić implementację fi-
zyczną i logiczną organizację pliku. Fizycznie pliki Unixa są ułożone jako loso- wo roz-
rzucone bloki. Logicznie wszystkie pliki są zorganizowane jako ciągły strumień bajtów.
Linux, jako wersja Unixa, ma taką samą organizację.
Taka logiczna organizacja plików poszerza się na operacje wejścia i wyjścia. Dane w
operacjach wejścia i wyjścia są zorganizowane jak plik. Dane wejściowe z kla- wiatury są
umieszczane w strumieniu danych jako ciąg bajtów. Dane wyprowa- dzane z polecenia
czy programu są również umieszczane w strumieniu danych w postaci ciągu bajtów. Wej-
ściowy ciąg danych jest w Linuxie nazywany standardowym wejściem, a wyjściowy ciąg
danych standardowym wyjściem. Ponieważ standardowe wejście i wyjście mają taką
samą organizację jak plik, mogą łatwo współdziałać z plikami. Linux ma mechanizm
przekierowań, pozwalający na łatwe przenoszenie danych z plików i do plików. Możesz
przekierować standardowe wyjście, a więc zamiast wyświetlania wyniku na ekranie, za-
pamiętasz go w pliku. Możesz również przekierować standardowe wejście z klawiatury
do pliku, a więc dane wejściowe będą czytane z pliku, zamiast z klawiatury.
3.1 Przekierowanie standardowego wyjścia
Załóżmy, że zamiast wyświetlać listę plików na ekranie, chcesz zachować tę listę w pliku.
Innymi słowy, chcesz skierować standardowe wyjście do pliku, a nie na ekran. Aby tego
dokonać, umieszczasz operator przekierowania>(znak większości) i nazwę pliku w wier-
szu poleceń za poleceniem. W następnym przykładzie wynik poleceniacatjest przekie-
rowany z ekranu do pliku.
$ cat mojlist > nowylist
Operator przekierowania tworzy nowy plik docelowy. Jeżeli plik już istnieje, zostanie
nadpisany danymi ze standardowego wyjścia.
8
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
3.1.1 Tworzenie pliku przekierowania
Mimo że operator przekierowania i nazwa pliku są umieszczane za poleceniem, operator
przekierowania nie jest wykonywany po poleceniu. W rzeczywistości jest on wykonywany
przed poleceniem. Operacja przekierowania tworzy plik i ustawia przekierowanie, zanim
dostanie jakiekolwiek dane ze standardowego wyjścia. Jeżeli plik już istnieje, zostanie
zniszczony i zastąpiony nowym plikiem o tej samej nazwie. W istocie rzeczy polecenie
generujące dane wyjściowe jest wykonywane po tym, jak zostanie stworzony plik prze-
kierowania.
W następnym przykładzie wynik polecenialsjest przekierowywany z ekranu do pliku.
Pierwsze polecenielslistuje pliki, a następne polecenielsprzekierowuje je do pliku
listf. Następnie poleceniecatwyświetla listę plików zapisaną w listf na ekranie. Zwróć
uwagę, że lista plików w listf zawiera nazwę pliku listf. Plik listf jest najpierw tworzony
przez operację przekierowania, a następnie polecenielsspowoduje jego wylistowanie
razem z pozostałymi plikami. Następnie lista plików wygenerowana przezlsjest prze-
kierowywana przez listf, zamiast być drukowana na ekranie.
$ ls
mojedane wstep przedmowa
$ ls > listf
$ cat listf
mojedane wstep listf przedmowa
Błędy pojawią się, jeżeli będziesz próbował używać tej samej nazwy pliku zarówno dla
pliku wejściowego polecenia, jak i dla pliku przeznaczenia przekierowania. W tym przy-
padku, mimo że operacja przekierowania jest wykonywana wcześniej, plik wejściowy,
jeżeli istnieje, zostanie zniszczony i zastąpiony plikiem o tej samej nazwie. Kiedy pole-
cenie zostanie wykonane, stwierdzi, że plik wejściowy jest pusty.
W pokazanym dalej poleceniucatplik mojlist jest nazwą zarówno pliku przeznaczenia
dla przekierowania, jak i pliku wejściowego dla operacjicat. Jak pokazano w następnym
przykładzie, operacja przekierowania jest wykonywana wcześniej, niszcząc plik mojlist i
zastępując go nowym, pustym plikiem mojlist. Następnie operacjacatjest wykonywana
i próbuje odczytać dane z pliku mojlist. Jednak w tym momencie w pliku mojlist nie ma
już nic.
$ cat mojlist > mojlist
3.1.2 Dołączanie standardowego wyjścia
Możesz również dołączać standardowe wyjścia do istniejącego pliku, używając operatora
przekierowania>>. Zamiast nadpisywać plik, dane ze standardowego wyjścia są doda-
wane na końcu pliku. W następnym przykładzie pliki mojlist i starylist są dołączane
do pliku wszystkielisty. Plik wszystkielisty będzie zawierał treści obu plików: mojlist i
starylist.
$ cat mojlist >> wszystkielisty
$ cat starylist >> wszystkielisty
9
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
3.2 Standardowe wejście
Wiele poleceń Linuxa może odbierać dane ze standardowego wejścia. Standardowe wej-
ście odbiera dane z urządzenia lub pliku. Domyślnym urządzeniem dla standardowego
wejścia jest klawiatura. Znaki wpisane na klawiaturze są umieszczane na standardowym
wejściu, które następnie jest przekierowane do polecenia Linuxa. Poleceniecatbez argu-
mentu w postaci nazwy pliku odczytuje dane ze standardowego wejścia. Kiedy wpisujesz
dane na klawiaturze, każdy znak jest umieszczany na standardowym wejściu i kierowany
do poleceniacat. Poleceniecatnastępnie przesyła znaki na standardowe wyjście - urzą-
dzenie ekranu - które wyświetla znaki na ekranie. Jeżeli spróbujesz to zrobić, zauważysz,
że wprowadzony wiersz jest od razu wyświetlany na ekranie. Dzieje się tak w związku ze
sposobem buforowania wiersza stosowanym w wielu systemach linuxowych. Buforowanie
wiersza wymaga od użytkownika wprowadzenia całego wiersza, zanim jakiekolwiek dane
wejściowe zostaną przesłane na standardowe wejście. Poleceniecatodbiera cały wiersz
ze standardowego wejścia i od razu go wyświetla. W następnym przykładzie użytkownik
wykonuje poleceniecatbez argumentów. Kiedy użytkownik wpisuje wiersz, jest on wy-
syłany do standardowego wejścia, które odczytuje poleceniecati wysyła na standardowe
wyjście:
$ cat
To jest nowy wiersz
To jest nowy wiersz
dla polecenia cat
dla polecenia cat
^D
$
Operacjacatbędzie trwała aż do wprowadzenia znaku [CTRL+D] (^D) w wierszu. Znak
[CTRL+D] jest znakiem końca pliku dla dowolnego pliku Linuxa. Pamiętaj,że zarówno
standardowe wejście, jak i standardowe wyjście mają ten sam format co plik w Linuxie.
Jeżeli połączysz poleceniecatz przekierowaniem, masz prosty sposób na zapamiętywa-
nie tego, co wpiszesz w pliku. Jak pokazano w kolejnym przykładzie, wynik polecenia
catjest przekierowany do pliku mojedane. Plik mojedane będzie zawierał wszystkie
wpisane z klawiatury dane. Poleceniecatw tym przypadku ciągle nie ma pliku jako
argumentu. Będzie odbierało dane ze standardowego wejścia, czyli klawiatury. Operator
przekierowania przekieruje wynik poleceniacatdo pliku mojedane. Poleceniecatnie
ma bezpośredniego kontaktu z żadnymi plikami. Po prostu odbiera dane wejściowe ze
standardowego wejścia i wysyła wynik na standardowe wyjście.
$ cat > mojedane
To jest nowy wiersz
dla polecenia cat
^D
$
10
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
3.3 Przekierowanie standardowego wejścia
Tak jak standardowe wyjście, możesz również przekierowywać standardowe wejście.
Standardowe wejście może być odbierane z pliku, a nie tylko z klawiatury. Operatorem
przekierowywania standardowego wejścia jest znak mniejszości<. W następnym przy-
kładzie standardowe wejście jest przekierowane tak, żeby odbierać dane z pliku mojlist,
a nie z klawiatury. Zawartość pliku mojlist jest odczytywana ze standardowego wejścia
przez operację przekierowania. Następnie poleceniecatodczytuje standardowe wejście
i wyświetla zawartość pliku mojlist.
$ cat < mojlist
Witaj KOLEGO
Jak się masz
$
Możesz łączyć operacje przekierowań zarówno standardowego wejścia, jak i standardo-
wego wyjścia. W następnym przykładzie poleceniecatnie ma argumentów w postaci
plików. Bez argumentów w postaci nazw plików poleceniecatodbiera dane ze standar-
dowego wejścia i wysyła je na standardowe wyjście. Jednak standardowe wejście zostało
przekierowane tak, by odbierać dane z pliku, a standardowe wyjście zostało przekiero-
wane tak, by umieszczać dane w pliku.
$ cat < mojlist > nowylist
3.4 Potoki
Z pewnością znajdziesz się w sytuacjach, w których trzeba przesłać dane z jednego pole-
cenia do drugiego. Innymi słowy, będziesz chciał przesłać standardowe wyjście polecenia
do innego polecenia, a nie do pliku wynikowego. Załóżmy, że chcesz wysłać listę nazw
plików na drukarkę, aby ją wydrukować. Aby tego dokonać, potrzebujesz dwóch poleceń:
polecenialsdo stworzenia listy nazw plików i polecenialprdo wysłania tej listy na
drukarkę. W istocie rzeczy potrzebujesz wyniku polecenialsdo wykorzystania go jako
danych wejściowych dla polecenialpr. Aby utworzyć takie połączenie w Linuxie, wy-
starczy wykorzystać tak zwany potok. Operator potoku|(pionowa kreska), umieszczony
pomiędzy poleceniami, tworzy połączenie między nimi. Standardowe wyjście jednego
polecenia staje się standardowym wejściem drugiego. Operacja potoku odbiera wynik
polecenia umieszczonego przed operatorem i wysyła te dane jako dane wejściowe do
polecenia umieszczonego za operatorem potoku. Jak pokazano w następnym przykła-
dzie, możesz połączyć polecenialsilprw potok. Lista nazw plików utworzona przez
polecenielsjest przesyłana do polecenialpr.
$ ls | lpr
Możesz łączyć operację potoku z innymi cechami powłoki, takimi jak znaki specjalne.
W następnym przykładzie drukowane są jedynie pliki z rozszerzeniem .c. Poleceniels
jest używane wraz z gwiazdką i  .c do utworzenia listy nazw plików z rozszerzeniem  .c .
Następnie ta lista jest przekazywana do polecenialpr.
11
Instytut Sterowania i Inżynierii Systemów
Zakład Komputerowo Wspomaganego Projektowania
Laboratorium Podstaw Informatyki
$ ls *.c | lpr
Podczas gdy przekierowanie po prostu umieszcza wynik w pliku, potok wysyła wynik do
innego polecenia Linuxa. Możesz zdziwić się, że nie można tego zreali- zować za pomocą
przekierowania. Musisz pamiętać, że istnieje różnica pomiędzy plikiem a poleceniem:
plik jest nośnikiem danych. Możesz zachowywać dane w pliku lub je stamtąd odczyty-
wać. Polecenie jest programem wykonującym instrukcje. Polecenie może odczytywać lub
zachowywać dane w pliku, ale samo polecenie nie jest plikiem. Z tego powodu operacja
przekierowania działa na plikach, a nie poleceniach. Przekierowanie może przesyłać dane
z programu do pliku, ale nie może przesyłać danych z programu do innego programu.
Jedynie pliki, a nie inne programy mogą być celem operacji przekierowania.
Mimo to możesz zasymulować potok za pomocą szeregu operacji przekierowań. Możesz
wysłać wynik polecenia do pliku. Następnie, w kolejnym wierszu, możesz wykonać pole-
cenie, wykorzystując plik jako przekierowane wejście. W następnym przykładzie użyto
dwóch operacji przekierowań w dwóch oddzielnych poleceniach do wydrukowania listy
nazw plików. To samo zadanie było wykonywane w poprzednim przykładzie za pomocą
operacji potoku. Operacja potoku bierze dosłownie standardowe wyjście jednego pole-
cenia i używa go jako standardowego wejścia drugiego polecenia.
$ ls *.c > pliktymcz
$ lpr < pliktymcz
Do tego momentu używaliśmy listy nazw plików jako danych wejściowych, ale ważne
jest, by zauważyć, że potoki działają na standardowym wyjściu poleceń bez względu na
to, czym ono jest. Zawartość całego pliku lub nawet kilku plików może być przesłana
przez potok z jednego polecenia do drugiego. W następnym przykładzie poleceniecat
odczytuje i wyprowadza zawartość pliku mojedane, który następnie jest przesłany przez
potok do polecenialpr.
$ cat mojedane | lpr
Niniejsze opracowanie powstało w oparciu o książkę Richarda Petersena: Arkana -
Linux
12


Wyszukiwarka

Podobne podstrony:
Uruchom wiersz poleceń, a powiem ci, kim jesteś XP
Ćwiczenie 2 4 Użytkowanie wiersza poleceń cz2
wiersz polecen 4
Praca z Wierszem polecenia
Ćwiczenie 2 3 Podstawy użytkowania wiersza poleceń systemu Windows 2000;XP;2003
Ćwiczenia Active Directory i wiersz polecen teoria
łączenie plików przez wiersz polecenia
wiersz polecen 3
Wiersz polecen w Xp 1
Udostępnianie z wiersza poleceń
informatyka wiersz poleceń ip itp
Wiersz polece
Dodatkowe komendy wiersza poleceń systemu Windows XP Professional
Informator poleceń systemu Unix Linux (tabela)
informatyka linux komendy i polecenia wydanie iii lukasz sosna ebook

więcej podobnych podstron