1 / 110

Wprowadzenie do systemu UNIX

Wprowadzenie do systemu UNIX. dr inż. Mariusz Kopeć pok. 217a, D-10 tel. 617 3778 mariusz@novell.ftj.agh.edu.pl. Program wykładów. Podstawowe wiadomości o Uniksie Rozpoczynamy pracę z systemem Gdzie szukać pomocy? Poznajemy podstawowe polecenia systemu Podstawy pracy w powłoce bash

semah
Download Presentation

Wprowadzenie do systemu UNIX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wprowadzenie do systemu UNIX dr inż. Mariusz Kopećpok. 217a, D-10tel. 617 3778mariusz@novell.ftj.agh.edu.pl (C) Mariusz Kopeć, WFiTJ AGH, 2004

  2. Program wykładów • Podstawowe wiadomości o Uniksie • Rozpoczynamy pracę z systemem • Gdzie szukać pomocy? • Poznajemy podstawowe polecenia systemu • Podstawy pracy w powłoce bash • Poznajemy filtry • Tworzymy własne skrypty • Przetwarzamy pliki • Programy komunikacyjne i narzędzia sieciowe (C) Mariusz Kopeć, WFiTJ AGH, 2004

  3. 1969 AT&T Bell Labs wycofuje się z projektu; Ken Thompson i Dennis Ritchie (Bell Labs) pracując na własną rękę, tworzą w oparciu o idee MULTICSa nowy system UNICS, (UNiplexed Information and Computing Service), który implementują na PDP-7 Początki UNIXa • 1965 MULTICS (MIT+ AT&T Bell Labs + GE) MULTiplexed Information and Computing Service (C) Mariusz Kopeć, WFiTJ AGH, 2004

  4. Początki UNIXa, cd • 1971 AT&T UNIX First Edition (11/3/1971) pierwsza oficjalna wersja systemu, zawierająca procesor tekstu, zaimplementowana na PDP-11 • 1973 3-th Edition UNIX (3/73) pojawiły się potoki(pipes) i filtry oraz kompilator języka C. Jądro systemu napisane w asemblerze. • 1973 4-th Edition UNIX (11/73) jądro systemu napisane w C. • 1975 6-th Edition UNIX (V6 UNIX) pierwsza wersja systemu powszechnie dostępna poza Bell Labs. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  5. 1977 Bill Joy z Uniwersytetu Kalifornijskiego w Berkeley wydaje pierwszą wersję Berkeley Software Distribution, znaną jako 1BSD. BSD UNIX • Na skutek problemów prawnych AT&T nie mogło zarabiać na sprzedaży UNIXa – postanowiło więc udostępnić go uniwersytetom, gdzie system był dalej rozwijany. • 1980 W następstwie otrzymania kontraktu DARPA (Defense Advanced Research Projects Agency) Bill Joy tworzy w Berkeley kolejną dystrybucję: 4.1BSD. • 1984 Powstaje 4.2BSD zawierająca TCP/IP. Rok wcześniej Bill Joy odchodzi, by stworzyć Sun Microsystems. • 1986 Powstaje poprawiona wersja 4.3BSD. • 1994 Powstaje ostatnia wersja z Berkeley: 4.4BSD. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  6. AT&T UNIX • 1982 UNIX System Group (AT&T) wypuszcza System III UNIX. • 1983 UNIX System Development Labs (AT&T) wypuszcza System V UNIX Release 1(SVR1). • 1984 Powstaje System V UNIX Release 2(SVR2). • 1985 Pojawia się SVR3 zawierająca m.in. NFS (Network File System). • 1992 UNIX System Labs (AT&T) wypuszcza SVR4.2. • 1993 Novell kupuje USL od (AT&T) i wypuszcza SVR4.2MP. • 1995 SCO (Santa Cruz Operation) kupuje Uniksa od Novella. • 2001 Caldera (dystrybutor Linuxa) kupuje Uniksa od SCO. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  7. Xenix – Microsoft HP-UX – HP IRIX – SGI SunOS – Sun Unicos – CRAY UnixWare - SCO Ultrix – DEC AIX – IBM Mac OS X – Apple Solaris – Sun OpenServer – SCO ... Free • NetBSD • OpenBSD – Theo de Raadt • Linux – Linus Torvalds • 386/BSD – Bill Jolitz • FreeBSD – Jordan Hubbard • Minix – Andy Tannenbaum • GNU – Richard Stallman Inne wersje UNIXa (wybrane) Komercyjne (C) Mariusz Kopeć, WFiTJ AGH, 2004

  8. Linux • Kernel • Linus Torvalds, Univ. Helsinki, 1991 • właściwy LINUX to kernel • Narzędzia (utilities) • Głównie z Free Software Foundation • GNU/Linux (GNU’s Not UNIX) • Dystrybucje • kernel + narzędzia + programy pomocnicze i instalacyjne • Red Hat – najpopularniejszy pakiet dystrybucyjny • Caldera OpenLinux – również w pakietach komercyjnych • Debian – projekt całkowicie niekomercyjny • SuSE – dystrybucja w języku niemieckim • Mandrake – zbliżona do Red Hat; łatwa instalacja i konfiguracja (C) Mariusz Kopeć, WFiTJ AGH, 2004

  9. System operacyjny UNIX • System operacyjny – zespół programów pośredniczących pomiędzy użytkownikiem komputera a warstwą sprzętową (hardware), organizujący całość pracy komputera, a w szczególności: • zarządzanie zasobami sprzętowymi; • obsługę urządzeń wejścia-wyjścia; • zarządzanie systemem plików; • obsługę kont użytkowników i kontrolę dostępu. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  10. Powłoki, polecenia, aplikacje (programy, kompilatory, interpretery, ...) Biblioteki systemowe (open, read, write, ...) Jądro systemu (kernel) (zarządzanie procesami, pamięcią, zasobami, ...) Interfejs warstwy sprzętowej Interfejs wywołań systemowych Interfejs bibliotek Interfejs użytkownika Użytkownik Warstwa sprzętowa (hardware) (CPU, pamięć, dyski, terminale, sterowniki, ...) Warstwy systemu UNIX (C) Mariusz Kopeć, WFiTJ AGH, 2004

  11. Zaczynamy pracę • Rodzaje i uprawnienia użytkowników • superuser • user • Identyfikacja użytkownika • username • password • Zmieniamy hasło • poleceniepasswd • zasady doboru hasła (długość, zestaw znaków) • Kończymy pracę • exit • logout (C) Mariusz Kopeć, WFiTJ AGH, 2004

  12. Nazwy i polecenia • Nazwa • case sensitive • długość – zależna od implementacji (max. 255) • zestaw znaków • znaki alfanumeryczne [A-Z], [a-z], [0-9] • inne znaki: .=@#%^_+-:, • znaki specjalne: `!$&*(){}[];”|’\<>?/spacja • wprowadzanie znaku specjalnego, np.: Mój\ Plik • Polecenie • nazwa-polecenia opcje parametry • opcje najczęściej poprzedza „-” • parametry oddzielane spacjami • przykład: ls-l (C) Mariusz Kopeć, WFiTJ AGH, 2004

  13. Rozwijanie nazw • Rozwijanie nazw plików przez system: • znak * zastępuje dowolną grupę znaków, np.: • *  plik1.dat plik2.dat test.out wyniki.dat wyniki.txt • wyjątek: „.” na początku • znak ? zastępuje jeden dowolny znak, np.: • plik?.dat  plik1.dat plik2.dat • nawias kwadratowy [] określa grupę znaków z której może być wybrany jeden znak, np.: • [pt]*.*  plik1.dat plik2.dat test.out • [p-t]*.*  plik1.dat plik2.dat test.out • klamra {} podaje pasującą grupę znaków, np.: • w*.{dat,txt}  wyniki.dat wyniki.txt (C) Mariusz Kopeć, WFiTJ AGH, 2004

  14. Pomoc on-line • info • info –-usage • info passwd • man • man passwd • man 5 passwd • whatis (man –f) • whatis –h • whatis passwd • apropos (man –k) • apropos –h • apropos passwd (C) Mariusz Kopeć, WFiTJ AGH, 2004

  15. Zmiany danych użytkownika • Zmiana hasła • passwd • Zmiana danych osobistych użytkownika • chfn • Zmiana defaultowej powłoki (shell) użytkownika • chsh (C) Mariusz Kopeć, WFiTJ AGH, 2004

  16. Przydatne informacje • Informacje o systemie • uname -a • Kim jesteśmy w sieci? • hostname • dnsdomainname • Kim jesteśmy w systemie? • whoami • who am i (who mom likes) • Kto pracuje w systemie? • who • w (C) Mariusz Kopeć, WFiTJ AGH, 2004

  17. System plików • wszystko jest plikiem: • pliki zwykłe • katalogi (zawierają inne pliki) • pliki urządzeń • struktura drzewa • wszystko zaczyna się od „/” (root – katalog główny) • podkatalogi zawierają się w katalogach lub podkatalogach • kolejne poziomy katalogów oddzielamy przez „/”,a nie przez „\” jak w Windows lub DOS • katalog bieżący oznaczamy „.” • katalog „rodzicielski” (parent directory) oznaczamy „..” • każdy plik posiada pełną ścieżkę dostępu, np.: /home/jan/prog/program1.c (C) Mariusz Kopeć, WFiTJ AGH, 2004

  18. / usr bin home lib dev etc bin local jan ewa adam dane prog System plików - przykład program1.c (C) Mariusz Kopeć, WFiTJ AGH, 2004

  19. Operacje na katalogach • pwdwypisanie katalogu bieżącego • ls wypisanie zawartości katalogu > pwd /home/stud/kowalski > ls (tu to samo co ls /home/stud/kowalski) plik1.dat prog.e testy > ls -a . .. plik1.dat prog.e testy > ls –a * plik1.dat prog.e testy: . .. Zauważ: 1. * nie rozwija nazw . i .. 2. testy to katalog; listowana jest jego zawartość (C) Mariusz Kopeć, WFiTJ AGH, 2004

  20. Operacje na katalogach, cd • mkdir utworzenie nowego katalogu > ls –d * plik1.dat prog.e testy > ls -l -rw-r--r-- 1 kowalski stud 10 Oct 10 2002 plik1.dat -rwxr-xr-x 1 kowalski stud 445 Jul 21 2001 prog.e drwxr-xr-x 2 kowalski stud 4096 Jul 21 2001 testy > mkdir zajecia1;ls –d * plik1.dat prog.e testy zajecia1 > mkdir /home/stud/kowalski/zajecia1 (C) Mariusz Kopeć, WFiTJ AGH, 2004

  21. Operacje na katalogach, cd • cd zmiana katalogu bieżącego > cd /usr/local;pwd /usr/local > cd ..;pwd /usr > cd;pwd /home/stud/kowalski > cd -;pwd /usr > cd ~/zajecia1;pwd /home/stud/kowalski/zajecia1 (C) Mariusz Kopeć, WFiTJ AGH, 2004

  22. Operacje na katalogach, cd • rmdir usunięcie katalogu (pustego) > cd > rmdir zajecia1; ls plik1.dat prog.e testy > mkdir zajecia1 > mkdir zajecia1/zadanie1; ls zajecia1 zadanie1 > rmdir zajecia1 rmdir: `zajecia1’: Directory not empty • Katalog nie jest pusty – trzeba inaczej: > rm –r zajecia1; ls plik1.dat prog.e testy Ostrożnie! (C) Mariusz Kopeć, WFiTJ AGH, 2004

  23. read wartość = 4 (r albo -) write wartość = 2 (w albo -) u g o execute wartość = 1 (x albo -) others group user - zwykły plikd katalog... typ Prawa dostępu do pliku -rwxr--r-- 1 usergroup ... prog1.e modtegopliku= 744 execute: zwykły plik – program, script katalog – wykonanie cd (C) Mariusz Kopeć, WFiTJ AGH, 2004

  24. Zmiana praw dostępu • Zmiana modu • chmod [-R] [kto]op[zezw][,...] plik • kto - grupa znaków ugoa: • u – user • g – group • o – other • a – all (a=ugo) • op - operacja: • + - dodaj zezwolenie • - - odbierz zezwolenie • = - zastąp zezwolenie • zezw - typ zezwolenia: • r – czytanie • w – pisanie • x – wykonanie(cddo katalogu) (C) Mariusz Kopeć, WFiTJ AGH, 2004

  25. Zmiana praw dostępu, cd • Przykłady: • chmod a+x plik1.e • chmod o-w plik1.e • chmod u=rw,go=r plik1.e • chmod [-R] kod_oktalny plik • kod_oktalny – suma kodów oktalnych w grupach: • user - r=400 w=200 x=100 • group - r=040 w=020 x=010 • others - r=004 w=002 x=001 • Przykłady: • chmod 644 plik1.e • chmod 777 plik1.e (C) Mariusz Kopeć, WFiTJ AGH, 2004

  26. Zmiana praw dostępu, cd • Zmiana właściciela • chown [-R] user[:group] plik • user – właściciel pliku • group - właściciel grupowy • opcja –R - zmiany rekurencyjne w podkatalogach • Przykład: • chown jan:stud plik1.e Ostrożnie! • Zmiana właściciela grupowego • chgrp [-R] group plik • group - właściciel grupowy • opcja –R - zmiany rekurencyjne w podkatalogach • Przykład: • chgrp stud plik1.e (C) Mariusz Kopeć, WFiTJ AGH, 2004

  27. Operacje na plikach • Utworzenie pliku • touch > touch plik2.dat; ls –l plik2.dat -rwxr-xr-x 1 kowalski stud 0 ... plik2.dat • cat > cat > plik2.dat Linia1 wprowadzonego tekstu<Enter> Linia2 wprowadzonego tekstu<Enter> Ctrl-D > ls –l plik2.dat -rwxr-xr-x 1 kowalski stud 56 ... plik2.dat • dowolny edytor, np. vi > vi plik2.dat (C) Mariusz Kopeć, WFiTJ AGH, 2004

  28. Operacje na plikach, cd • rm - usuwa jeden lub wiele plików (katalogów) > rm plik usuwa plik > rm –r katalog usuwa rekurencyjnie katalog > rm –i * usuwa po potwierdzeniu • cp - kopiuje pliki (katalogi) > cp plik1 plik2 kopiuje plik1 do plik2 > cp –R katalog1 katalog2 kopiuje rekurencyjnie katalog1 do katalog2 • mv – przenosi lub przemianowuje pliki (katalogi) > mv plik1 plik2 przemianowuje plik1 na plik2 > mv plik1 katalog1 przenosi plik1 do katalogu1 (C) Mariusz Kopeć, WFiTJ AGH, 2004

  29. Operacje na plikach, cd • Wypisanie zawartości pliku • cat – wypisanie zawartości jednego lub kilku plików > cat plik2.dat Linia1 wprowadzonego tekstu Linia2 wprowadzonego tekstu • more – wypisanie zawartości pliku strona po stronie > more plik3.dat • less – wypisanie zawartości pliku strona po stronie > less plik3.dat • tac – wypisanie zawartości pliku od końca > tac plik2.dat Linia2 wprowadzonego tekstu Linia1 wprowadzonego tekstu (C) Mariusz Kopeć, WFiTJ AGH, 2004

  30. Operacje na plikach, cd • Wypisanie fragmentu pliku • head – wypisanie początkowych linii pliku (plików) • head plik1 pierwsze 10 linii pliku • head –n plik1 plik2 pierwsze n linii każdego pliku • tail – wypisanie końcowych linii pliku (plików) • tail plik1 ostatnie 10 linii pliku • tail –n plik1 ostatnie n linii pliku • tail +n plik1 10 linii poczynając od n-tej linii • Wypisanie zawartości pliku w kolumnach • column – tworzenie tabeli • column –t plik1 separatorem jest „biały znak” • column –t –s: plik1 separatorem jest : (C) Mariusz Kopeć, WFiTJ AGH, 2004

  31. Operacje na plikach, cd • Dzielenie plików • cut – wycina kolumny lub pola z pliku • cut –c10-15 plik1 wypisuje 10.-15. znak z linii pliku • cut –f3 –d\ plik1 wypisuje 3. pole z linii pliku • csplit – dzieli plik na części • csplit plik1 10 30 tworzy trzy pliki: xx00, xx01, xx02 zawierające linie: 1 do 9, 10 do 29, od 30 • csplit plik1 /wz1/ /wz2/ tworzy trzy pliki: xx00 – od pierwszej linii, xx01 – od linii zawierającej wzorzec wz1 xx02 – od linii zawierającej wzorzec wz2 (C) Mariusz Kopeć, WFiTJ AGH, 2004

  32. Operacje na plikach, cd • Łączenie plików • cat – łączy kilka plików w jeden (konkatenacja) • cat p1 p2 p3 łączy kolejno p1, p2, p3 • paste – łączy równolegle linie plików • paste plik1 plik2 wypisuje w jednej linii odpowiednie linie plików plik1 i plik2 • join – łączy równolegle linie plików z polem łączącym • Przykład:plik1: rok1 anna plik2: rok1 jan rok2 ewa rok3 tom > join plik1 plik2 rok1 anna jan (C) Mariusz Kopeć, WFiTJ AGH, 2004

  33. Operacje na plikach, cd • Sortowanie plików i ich przetwarzanie • sort – sortuje jeden lub kilka plików (konkatenacja) • sort plik1 sortuje plik1 • sort –k 2 p1 p2 dołącza p2 do p1 a następnie sortuje wg pola 2 • uniq – usuwa powtarzające się linie • uniq plik1 • uniq –t: -W2 plik1 bada tylko 2 pierwsze pola „:” jest separatorem pól • comm – wypisuje takie same linie z dwóch plików • comm plik1 plik2 (C) Mariusz Kopeć, WFiTJ AGH, 2004

  34. Operacje na plikach, cd • Porównywanie plików • cmp – porównuje dwa pliki lub ciągi bajtów • cmp plik1 plik2 pokazuje pierwszą różnicę • sdiff – wypisuje różnice między plikami • sdiff -s p1 p2 wypisuje różniące się linie • sdiff –i -s p1 p2 ignoruje wielkość liter • diff3 – wypisuje różnice między trzema plikami • diff3 p1 p2 p3 wypisuje różniące się linie (C) Mariusz Kopeć, WFiTJ AGH, 2004

  35. Ustalanie charakteru pliku • file – określenie trybu pliku: • > file ls.txtls.txt: ASCII English text, ... • > file /bin/ls/bin/ls: ELF 32-bit LSB executable, ... • stat – wypisanie statusu pliku: • > stat ls.txtFile: „ls.txt”Size: 7132Device: 851h/2129hAccess: (0744/-rw-r—r-) Uid: (751/.) Gid: (700/.)Access: Tue Nov 4 14:02:00 2003Modify: Mon Oct 27 11:48:40 2003Change: Mon Oct 27 11:50:45 2003 (C) Mariusz Kopeć, WFiTJ AGH, 2004

  36. Filtry • Przetwarzają w określony sposób pliki wejściowe, np: • wyszukują wzorce • sortują • wycinają fragmenty linii • edytują • zliczają znaki, słowa, linie • Działają zazwyczaj w trybie potokowym • Potoki (pipes) – przesyłają wyjście jednego poleceniabezpośrednio na wejście następnego: • polecenie1 | polecenie2 [ | polecenie3 ...]> ls -l | sort> cat ls.txt | head –n20 | wc (C) Mariusz Kopeć, WFiTJ AGH, 2004

  37. Filtry: wc (word count) • Wypisuje liczbę linii, słów, znaków w pliku • wc [opcje] [plik] [...] • wc ls.txt wypisuje liczbę linii, słów i znaków w ls.txt • wc -l ls.txt wypisuje tylko liczbę linii w pliku ls.txt • wc -w ls.txt wypisuje tylko liczbę słów w pliku ls.txt • wc -c ls.txt wypisuje tylko liczbę znaków w pliku ls.txt • wc -l *.txt wypisuje liczbę linii w każdym z plików o zakończeniu „.txt” oraz ich sumę • wc jako filtr • > ls –l /usr/games | wc –l50 (C) Mariusz Kopeć, WFiTJ AGH, 2004

  38. Filtry: grep • Wyszukuje linie zawierające wzorzec • grep [opcje] wzór [plik ...] • grep ‘wz’ * wypisuje linie zawierające łańcuch ‘wz’, poprzedzone nazwą pliku • grep –v ‘wz’ * wypisuje linie nie zawierające łańcucha ‘wz’, poprzedzone nazwą pliku • grep –c ‘wz’ * wypisuje tylko nazwy plików i liczby linii zawierających łańcuch ‘wz’ • grep –inr ‘wz’ * wypisuje nazwy plików i numery linii zawierających ‘wz’ ignorując różnice wielkości liter. Badane są pliki w katalogu bieżącym i rekurencyjnie w podkatalogach. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  39. Filtry: grep – wzorce • wzorzec – wyrażenie regularne: • . dowolny znak • ‘plik.a’  plik1a, plikaa12, ale nie plika • \ następny znak nie jest traktowany jako specjalny • ‘plik\.’  plik.12, plik., ale nie plik1 • * zero lub więcej powtórzeń poprzedniego znaku • ‘plik.*a’  plik.12a, plika123a, plik1a, ... • [...] dowolny znak (jeden) z podanej listy • [Pp]lik  Plik, plik, ... • [^...] dowolny znak nie występujący na liście • [^Pp]lik  klik, ale nie plik (C) Mariusz Kopeć, WFiTJ AGH, 2004

  40. Filtry: grep – wzorce, cd • ^ początek linii • ‘^plik’  plik1a, plikaa12, ale nie replika • $ koniec linii • ‘plik$’  nowyplik, ale nie plik1 • \b łańcuch na krawędzi słowa • ‘\bplik’  plik.12a, plika123a, ale nie replika • ‘plik\b’  nowyplik • \(...\) określenie podwyrażenia • \(plik\)  plik jest pierwszym podwyrażeniem • \n odwołanie do n-tego podwyrażenia • \(plik\).*\1  plik.*plik (C) Mariusz Kopeć, WFiTJ AGH, 2004

  41. Filtry: grep • Przykłady zaawansowanego użycia wzorców: • > grep –v ’^$’ ls.txt • Wypisuje wszystkie niepuste linie • > grep ’\(time\).*\1’ ls.txt • Wypisuje wszystkie linie, w których „time” występuje więcejniż jeden raz • > grep ’\btime\b’ ls.txt • Wypisuje wszystkie linie, w których „time” występuje jakosamodzielne słowo • > file /etc | grep ’English text.*with’ • Wypisuje z katalogu /etc nazwy plików zawierających tekstangielski z dodatkowymi atrybutami (C) Mariusz Kopeć, WFiTJ AGH, 2004

  42. Filtry: sed – edytor strumieni • Wykonuje ciąg poleceń edycyjnych na pliku • sed [-e skrypt] [...] [-f plikskryptu] [...] plik • skrypt – ciąg poleceń; może być kilka skryptów • plikskryptu – plik zawierający skrypt; może być ich kilka • Wybrane przykłady: • > sed ’11,174d’ ls.txtKasuje z pliku ls.txt linie 11-174 • > sed –n ’1,/Sort/p’ ls.txtWypisuje z ls.txt tylko linie od 1 do zawierającej „Sort” • > sed –n ’/file/p’ ls.txtWypisuje z ls.txt tylko linie zawierające „file” (C) Mariusz Kopeć, WFiTJ AGH, 2004

  43. Filtry: sed – przykłady • > sed –n ’s/character/file/p’ ls.txtZamienia w ls.txt „character” na „file” i wypisuje tylko linie w których dokonano zmian • > sed –n –e’s/character/file/g’ \? –e’s/file/FILE/p’ ls.txtZamienia w ls.txt „character” na „file” a następnie „file” na „FILE” i wypisuje linie w których dokonano drugiej zmiany • > sed –n ’/mod/s/time/TIME/p’ ls.txtZamienia „time” na „TIME” tylko w liniach zawierających „mod”, po czym wypisuje linie w których dokonano zmian • > ls –1 /usr/games | sed –n ’/^[crw].*s$/p’ Wypisuje z katalogu /usr/games nazwy plików zaczynające się na „c” lub „r” lub „w”, a kończące się na „s”. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  44. Filtry: tr – zamienia znaki • Usuwa lub zamienia określone znaki innymi • tr [opcje] zestaw1 zestaw2 • zestaw1 – znaki do usunięcia lub zastąpienia • zestaw2 – znaki zastępujące odpowiednio znaki z zestawu1 • Wybrane przykłady: • tr –d eEoO < ls.txt | headUsuwa z pliku ls.txt znaki „e”, „E”, „o” i „O” • tr ”[A-Z]” ”[a-z]” < ls.txt | headWypisuje plik ls.txt zamieniając duże litery na małe • ls –l /usr | tr –s ”[:space:]” Wypisuje zawartość katalogu /usr zastępując ciąg spacji jedną spacją • echo J mpwf Vojy | tr B-z A-y ? (C) Mariusz Kopeć, WFiTJ AGH, 2004

  45. Filtry: awk (gawk) Polecenie to zostanie omówione dokładniej w dalszej części wykładów • Przetwarza w określony sposób plik wejściowy • gawk ’wzór {akcja}’ [plik] [...] • Wybrane przykłady: • > gawk ’/Andrzej/’ /etc/passwdWypisuje z pliku /etc/passwd linie zawierające łańcuch „Andrzej” • > cat /etc/passwd | gawk ’/^[m-s].*\/csh$/’ Wypisuje z pliku /etc/passwd linie użytkowników zaczynających się na litery od „m” do „s”, używających csh jako login shell (ale nie tcsh) • > cat /etc/passwd | gawk –F: \? ’length($1)<7 {print $1,”\t”,$5}’Wypisuje z pliku /etc/passwd pierwsze i piąte pole każdej linii, przyjmując za separator pól znak „:”. Pomiędzy polami wpisywany jest znak tabulacji. Wypisywanie następuje jeżeli pierwsze pole liczy mniej niż 7 znaków. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  46. Filtry: tee • Kopiuje wejście na wyjście i dodatkowo do pliku • tee [-a] plik [...] • -a – dołącz do istniejącego pliku • Wybrane przykłady: • cat ls.txt | tee kopia1 kopia2 | lessWypisuje na ekranie plik ls.txt (strona po stronie) i tworzy dwie kopie: kopia1 i kopia2 • ls –l /usr/games | tee usr.games | wcWypisuje ilość plików w katalogu /usr/games, którego zawartość zachowana zostaje w pliku usr.games • who | sort | tee users Wypisuje posortowaną listę zalogowanych użytkowników i zachowuje ją w pliku users (C) Mariusz Kopeć, WFiTJ AGH, 2004

  47. Filtry: przykłady • who | tr –s ”[:space:]” | cut –f5 –d’ ’ | sortCiągi spacji na wyjściu komendy zamieniane są na jedną spację, następnie wycinane jest piąte pole z linii, przyjmując, że spacja jest separatorem. Posortowane wyjście wypisywane jest na ekran. • ls –la /etc | grep ’^d’ | wc -lWypisywana jest liczba podkatalogów w katalogu /etc. (Gdzie można sprawdzić czy jest poprawna?) • cat /etc/passwd | column –s: -t | sort | lessLista zarejestrowanych w systemie użytkowników wypisywana jest strona po stronie w formie posortowanej tabeli. • sort ls.txt | uniq | tee linie | wc -lZ posortowanego pliku ls.txt usuwane są powtarzające się kolejne linie, a wynik zapisywany jest w pliku „linie”. Na ekran wyświetlana jest ilość linii. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  48. Kompresja plików • gzip – kompresja/dekompresja zawartości plików • gzip [opcje] [plik] [...] • Wybrane przykłady: • gzip ls.txtKompresuje plik ls.txt, na którego miejsce tworzony jestls.txt.gz. • gzip –d ls.txt ( gunzip ls.txt)Dekompresuje plik ls.txt.gz, przywracającls.txt. • gzip –r *Kompresuje wszystkie pliki w bieżącym katalogu i w podkatalogach • gzip –dr * ( gunzip –r *)Dekompresuje wszystkie pliki w bieżącym katalogu i w podkatalogach. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  49. Archiwizacja plików • tar – archiwizuje i odtwarza pliki • tar [opcje] [plik] [...] • -c tworzy nowe archiwum • -r dodaje pliki do istniejącego archiwum • -x wyciąga pliki z archiwum • -f nazwa podaje nazwę archiwum • -t listuje zawartość archiwum • -v informuje o wykonywanych operacjach • Wybrane przykłady: • tar –cvf mojkatalog.tar *Tworzy archiwum mojkatalog.tar z bieżącego katalogu. • tar –tvf mojkatalog.tarListuje zawartość archiwum mojkatalog.tar. (C) Mariusz Kopeć, WFiTJ AGH, 2004

  50. Powłoki (shells) • Podstawowe zadania powłoki: • interfejs między użytkownikiem a jądrem • interpreter poleceń • język programowania • Najważniejsze rodzaje powłok: • sh (Bourne shell) • bash (Bourne again shell)  • csh (C shell) • tcsh (C shell improved) (C) Mariusz Kopeć, WFiTJ AGH, 2004

More Related