background image

Podstawowe operacje 

systemu Linux 3

Na podstawie książki
Systemy operacyjne i sieci 
komputerowe. 
Podręcznik z płytą CD-ROM. Wydanie 
zmienione
Krzysztof Pytel, Sylwia Osetek, 

background image

Przekierowanie strumienia 

danych 

Każdy  uruchomiony  w  Linuksie  proces 

pobiera z pewnego miejsca dane, a w inne 

wysyła 

wyniki 

swojego 

działania 

komunikaty o błędach. Dane są przesyłane 

między urządzeniami w postaci strumieni. 

background image

Przekierowanie strumienia 

danych 

Strumienie  danych  przypisane  każdemu 

procesowi są pokazane na schemacie. 

Proces

stdi
n

stdo
ut

stde
rr

std - 
standard

background image

Przekierowanie strumienia 

danych 

stdi
n

(standard 

input), 

czyli 

standardowe 

wejście,  z  którego  proces  pobiera  dane 

(domyślnie jest to klawiatura), 

stdo
ut

(standard  output)  to  standardowe  wyjście, 

do  którego  jest  wysyłany  wynik  działania 
procesu (domyślnie jest to ekran), 

stde
rr

(standard  error)  to  standardowe  wyjście 
błędów, 

gdzie 

trafiają 

wszystkie 

komunikaty o błędach (domyślnie ekran).

background image

Przekierowanie strumienia 

danych 

Linux wszystkie urządzenia traktuje jak pliki, niezależnie 

od  tego,  czy  jest  to  plik,  katalog,  urządzenie  blokowe 

(klawiatura,  ekran),  czy  strumień.  Powłoka  Linuksa 

identyfikuje  je  za  pomocą  przyporządkowanych  im  liczb 

całkowitych, tak zwanych deskryptorów plików:

0 to plik, z którego proces pobiera dane (stdin), 

1  to  plik,  do  którego  proces  zapisuje  wyniki  swojego 

działania (stdout), 

2  to  plik,  do  którego  trafiają  komunikaty  o  błędach 

(stderr). 

background image

Przekierowanie strumienia 

danych 

Za pomocą operatorów przypisania można 

manipulować 

strumieniami, 

przez 

przypisanie  deskryptorów:  0,  l,  2  innym 

plikom  niż  tym,  które  reprezentują 

klawiaturę i ekran. 

background image

Przekierowanie strumienia 

danych 

Standardowe  wejście  i  wyjście  (strumienie  danych)  można 

przekierować. Do tego celu przygotowano trzy operatory: 

• znak  „<”  umożliwia  przekierowanie  zawartości  pliku  do 

standardowego wyjścia, 

np. 

more  <  plik

• znak  „>”  umożliwia  przekierowanie  strumienia  danych  ze 

standardowego  wyjścia  do  pliku;  jeżeli  plik  istnieje,  to  jego 

poprzednia zawartość zostaje usunięta, 

np. 

ls  >  plik

• znaki  „>>”  umożliwiają  przekierowanie  strumienia  danych  ze 

standardowego wyjścia do pliku; jeżeli plik istnieje, to nowe dane 

zostają dopisane na końcu pliku. 

background image

Przełączanie standardowego 

wejścia 

Jako  standardowe  wejście  można  zamiast 

klawiatury użyć pliku: 

< plik

background image

Ćwiczenie

Przekierowanie strumienia danych z pliku 

1. W  pierwszej  kolejności  należy  stworzyć 

plik lista o następującej zawartości: 

slackware 

redhat 

debian 

caldera 

background image

Ćwiczenie

Przekierowanie strumienia danych z pliku 

2. Następnie  należy  użyć  polecenia  sort,  dla  którego 

standardowym wejściem będzie plik lista: 

# sort < lista

Wynikiem będzie wyświetlenie na ekranie posortowanej 

zawartości pliku lista: 

caldera 

debian 

redhat 

slackware 

background image

Przełączanie standardowego 

wyjścia 

Wynik  dowolnego  polecenia  można  wysłać 

do pliku, a nie na ekran. Do tego celu używa 

się operatora: 

> plik

background image

Przełączanie standardowego 

wyjścia 

Przykład

# ls -la /usr/bin > ~/wynik

Rezultat działania polecenia ls -la /usr /bin 

trafi do pliku o nazwie wynik, jeśli wcześniej 

nie  istniał  plik  o  takiej  samej  nazwie,  to 

zostanie  utworzony,  jeśli  istniał,  cała  jego 

poprzednia zawartość zostanie nadpisana. 

background image

Przełączanie standardowego 

wyjścia 

Jeśli  użytkownik  chce,  aby  dane 

wyjściowe  dopisywane  były  na  końcu 

pliku, 

bez 

wymazywania 

jego 

wcześniejszej  zawartości,  to  powinien 

stosować operator:

 

>> plik

background image

Przełączanie standardowego 

wyjścia 

Przykład 

# free -m >> ~/wynik 

Wynik  polecenia  free  -m  (pokazuje 

wykorzystanie  pamięci  RAM  i  swap) 

zostanie  dopisany  na  końcu  pliku 

wynik, 

nie 

naruszając 

jego 

wcześniejszej zawartości. 

background image

Ćwiczenie

Przekierowanie strumienia danych do pliku 

Standardowym  urządzeniem,  do  którego 

kierowane  są  wyniki  działania  poleceń, 

Jest  ekran.  Strumień  danych  może  być 

skierowany 

do 

innego 

miejsca 

przeznaczenia, np. do pliku. Aby skierować 

strumień danych zawierający listę zbiorów 

z katalogu /etc do pliku, należy: 

background image

Ćwiczenie

Przekierowanie strumienia danych do pliku 

1. Zalogować  się  na  konto  użytkownika 

root

2. Wpisać polecenie 

# ls /etc > ~/lista_plikow.txt

Uwaga

Jeżeli  plik  lista_plikow.txt  istniał  w  katalogu  domowym,  to 

zostanie usunięty i utworzony nowy plik o tej samej nazwie. 

background image

Ćwiczenie

Przekierowanie strumienia danych do pliku 

3. Wpisać polecenie 

# date >> ~/lista_plikow.txt.

 

4. Na  końcu  pliku  lista_plikow.txt  zostanie 

dopisana  informacja  o  czasie  wywołania 

polecenia. 

5. Sprawdzić  zawartość  pliku  lista_plikow.txt 

poleceniem 

# cat ~/lista_plikow.txt

background image

Przełączanie standardowego 

wyjścia błędów 

Do pliku można też kierować strumień 

diagnostyczny: 

2> plik

background image

Przełączanie standardowego 

wyjścia błędów 

Przykład 

# ls -y 2> ~/error 

W  powyższym  skrypcie  polecenie  ls  jest  użyte  z 

błędną  opcją  -y;  komunikat  o  błędzie  trafi  do  pliku 

error

Za pomocą operatora >> plik, można dopisać do tego 

samego pliku kilka komunikatów o błędach, dopisanie 

kolejnego  nie  spowoduje  skasowania  wcześniejszej 

zawartości pliku. 

background image

Potokowanie strumienia 

danych

Zastosowanie  znaku  |  pozwala  na  łączenie 

wyjścia jednego polecenia z wejściem innego. 

Dane  wygenerowane  za  pomocą  pierwszego 

polecenia  przekazane  zostaną  na  wejście 

następnego  polecenia  i  po  przetworzeniu 

przekazane na wejście kolejnego lub na ekran.

Tego 

typu 

przetwarzanie 

danych 

jest 

nazywane potokiem.

background image

Potokowanie strumienia danych

more - służy do przeglądania tekstu strona po 

stronie,  jeden  ekran  na  raz, przewijanie  stron 

możliwe tylko "do przodu", np. 

# ls -la | more

less  -  podobnie  jak  more,  ale  przewijanie 

stron możliwe w obu kierunkach, np.

# ls -la | less

background image

Potokowanie strumienia danych

cat  -  polecenie  wyświetla  na  ekranie  zawartość 

pliku tekstowego, np.

# cat /etc/passwd | less

grep  -  przeszukuje  wskazany  strumień  danych, 

szukając linii zawierających ciąg znaków pasujących 

do podanego wzorca, np.

# cat /etc/passwd | grep uczen

wc - wypisuje liczbę bajtów, słów lub linii w plikach, 

np. 

# ls -la | wc -1

background image

Potokowanie strumienia danych

sort - sortuje, zlepia lub porównuje wszystkie linie z 

podanych plików, np.

# cat /etc/passwd | sort

tee  -  rozgałęzienie  strumienia.  Pobiera  dane  ze 

strumienia  wejściowego  i  tworzy  dwa  strumienie 

wyjściowe  -  jeden  podłączony  do  standardowego 

wyjścia, a drugi do wskazanego pliku, np. 

# cat /etc/passwd | sort | tee konta_alfabetycznie

background image

Potokowanie strumienia danych

Przykład 

# ls -la | grep plik | wc -l 

W  tym  przykładzie  polecenie  ls  -la  wygeneruje  zestaw 

danych,  będący  listą  zbiorów  w  katalogu  bieżącym  (każdy 

zbiór  w  nowej  linii).  Dane  te  przekazane  zostaną  na  wejście 

polecenia  grep.  Polecenie  to  wyszuka  linie  zawierające  ciąg 

znaków  "plik".  Polecenie  wc  zliczy  linie  w  zbiorze  danych 

uzyskanych  na  wyjściu  polecenia  grep.  W  wyniku 

przetwarzania  danych  przez  cały  potok  zostanie  uzyskana 

liczba plików zawierających w nazwie ciąg znaków "plik". 

background image

Ćwiczenie

Tworzenie potoków danych 

Należy utworzyć plik zawierający informacje 

o  liczbie  zbiorów  w  określonym  katalogu. 

Dodatkowo  w  pliku  należy  umieścić  wykaz 

zbiorów  spełniających  określone  kryteria 

oraz  liczbę  tych  zbiorów.  Aby  wykonać 

zadanie, należy: 

1. Zalogować się na konto użytkownika root

background image

Ćwiczenie

Tworzenie potoków danych 

2.

Wpisać w konsoli polecenie 

# ls -la | wc -l > lista.txt

Polecenie  ls  utworzy  listę  zbiorów  w 

aktualnym 

katalogu 

przekaże 

do 

przetworzenia  przez  polecenie  wc.  Polecenie 

to  zliczy  liczbę  wierszy  w  liście  i  przekieruje 

wynik do pliku lista.txt

background image

Ćwiczenie

Tworzenie potoków danych 

3. Wpisać w konsoli polecenie 

# ls -la | grep .txt >> lista.txt

Polecenie ls utworzy listę zbiorów w aktualnym 

katalogu  i  przekaże  do  przetworzenia  przez 

polecenie  grep.  Polecenie  to  odfiltruje  zbiory 

posiadające  w  nazwie  ciąg  znaków  txt  i 

dopisze ich wykaz do pliku lista.txt

background image

Ćwiczenie

Tworzenie potoków danych 

4. Wpisać w konsoli polecenie 

# ls -la | grep .txt | wc -l >> lista.txt

Polecenie  ls  utworzy  listę  zbiorów  w  aktualnym 

katalogu i przekaże do przetworzenia przez polecenie 

grep.  Polecenie  grep  odfiltruje  zbiory  posiadające  w 

nazwie ciąg znaków .txt i przekaże do przetworzenia 

przez polecenie wc. Polecenie wc zliczy liczbę wierszy 

w liście i dopisze wynik do pliku lista.txt


Document Outline