Docsity
Docsity

Przygotuj się do egzaminów
Przygotuj się do egzaminów

Studiuj dzięki licznym zasobom udostępnionym na Docsity


Otrzymaj punkty, aby pobrać
Otrzymaj punkty, aby pobrać

Zdobywaj punkty, pomagając innym studentom lub wykup je w ramach planu Premium


Informacje i wskazówki
Informacje i wskazówki

Linux - Notatki - Programowanie, Notatki z Informatyka

Informatyka: notatki z zakresu programowania dotyczące

Typologia: Notatki

2012/2013

Załadowany 12.04.2013

Norbert_88
Norbert_88 🇵🇱

4.5

(30)

322 dokumenty

Podgląd częściowego tekstu

Pobierz Linux - Notatki - Programowanie i więcej Notatki w PDF z Informatyka tylko na Docsity! Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 1 Linux Podstawy używania systemu Spis Treści Strona Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 2 Rozdział 1 : Wprowadzenie Rozdział 2 : Sesja 2.1 Zalogowanie 2.2 Pierwsze polecenia 2.3 Użycie klawiatury 2.4 Ćwiczenia Rozdział 3 : Pliki i Katalogi 3.1 Polecenia zarządzania plikami 3.2 Polecenia zarządzające katalogami 3.3 Ćwiczenia Rozdział 4 : Bash 4.1 Znaki uogólniające 4.2 Protekcja znaków uogólniających 4.3 Zgrupowanie poleceń 4.4 Przkierowania 4.5 Potoki 4.6 Ćwiczenia Rozdział 5 : Prawa 5.1 Zarządzanie prawami 5.2 Prawa pliku 5.3 Modyfikacja praw pliku (1) 5.4 Modyfikacja praw pliku (2) 5.5 Prawa katalogów 5.6 Zarządzanie grupami 5.7 Ćwiczenia Rozdział 6 : Filtry – do czego służą ? 6.1 Ćwiczenia Rozdział 7 : Zarządzanie procesami 7.1 Skrypty – pierwsze kroki w programowaniu 7.1.1 Przekazywanie parametrów do skryptu 7.1.2 Struktury kontrolne powłoki Bash 7.2 „background”/ „foreground” Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 5 i metod z epoki zdawałoby się dawno minionej i zapomnianej. Przytoczone przykłady – a tak naprawdę cała metodologia, na której oparty jest podręcznik - stawiają na ostrzu noża podstawowy problem związany z nauczaniem informatyki : czy możliwe jest skuteczne obsługiwanie narzędzi informatycznych bez jednoczesnego zrozumienia mechanizmów ich działania? Czy w XXI wieku dychotomiczne rozdzielenie wiedzy i umiejętności nie jest sprzeczne z zasadami regulującymi dużą część rynku pracy? Na czym rzeczywiście polega praca w społeczeństwie informacyjnym? Podstawowe prawa elektronicznej ekonomi Przeżywamy prawdziwą eksplozje informacji. Według ankiety przeprowadzonej przez uniwersytet Berkley w 2001 roku, poprzez Internet możemy dotrzeć do 550 miliardów dokumentów. Stronic internetowych przybywa codziennie 7.3 mln. Produkcja dobowa e-mail jest 500 razy większa od produkcji stronic. Przedsiębiorstwa mają dostęp do różnych – praktycznie – niepoliczalnych danych do których szybki dostęp jest warunkiem niezbędnym ich funkcjonowania i przetrwania w stale zmieniającym się otoczeniu ekonomicznym. Elektroniczna ekonomia polega na umiejętnym wyszukiwaniu danych potrzebnych przedsiębiorstwu i na ich jak najszybszym przetworzeniu, organizowaniu i uporządkowaniu. Jaki typ pracownika jest do tego typu zajęć potrzebny? Przede wszystkim musi on być wykształcony i – co istotniejsze – musi być zdolny do podejmowania samodzielnych inicjatyw i decyzji. Istnienie małych i dużych przedsiębiorstw zależy – o wiele bardziej niż w przeszłości – od stopnia autonomii ich personelu. Znikają hierarchiczne struktury, upowszechnia się coraz bardziej horyzontalny typ relacji organizacyjnych, w których zakres odpowiedzialności każdego pracownika wzrasta niepomiernie w porównaniu z zasadami pracy obowiązującymi w przedsiębiorstwie XX wieku. W tych warunkach wartość pracownika nie jest wyznaczona tylko przez studia wyższe, lecz także przez typ otrzymanej w szkole edukacji. W elektronicznej ekonomi pracownik musi umieć przystosować się do ciągle zmieniającego się kontekstu ekonomicznego i technologicznego, co wymaga stałego podnoszenia kwalifikacji. Warunkiem skutecznej pracy jest szybkość z jaką analizuje się i absorbuje zmianę, ponieważ zmiana jest cechą charakterystyczną naszej cywilizacji. Paradoksalnie, doskonała znajomość i ciągłe używanie tylko jednego systemu operacyjnego utrudnia – a czasami wręcz uniemożliwia – naukę innych opartych na odmiennych zasadach oprogramowań. Ekonomiści nazywają to zjawisko blokadą innowacyjną. Dlatego pluralizm metodologiczny w nauczaniu informatyki jest konieczny właśnie z punktu widzenia praw rządzących ekonomią elektroniczną. Szkoła powinna uczyć uczenia się. Ciągła nauka – to jest aksjomat XXI wieku - stała się częścią naszego życia zawodowego i codziennego. W opinii ekonomistów, to system edukacyjny decyduje o miejscu zapóźnionych cywilizacyjnie społeczeństw – takich jak Polska – w światowym podziale pracy. Czy jest jednak możliwe – biorąc pod uwagę ilość godzin przeznaczoną na naukę informatyki w szkole – zaznajomienie uczniów z dwoma systemami operacyjnymi, co oprócz ewidentnie korzystnej dla pedagogiki wykładu różnorodności metodologicznej, umożliwiłoby również praktyczne zrozumienie przez młodzież zasady konkurencji na której oparta jest współczesna ekonomia? Byłby to niewątpliwie eksperyment, ale nauczanie informatyki jest ciągłym eksperymentem. Konkurencja informatyczna – gdyż używając różnych systemów uczniowie porównują je i oceniają – w szkole jest ważna także z innego powodu: gwarantowałaby niezależność programów szkolnych od strategi marketingowej przedsiębiorstw produkujących oprogramowania oparte na prawie własności. Powszechnie wiadomo, że przedsiębiorstwa te traktują systemy edukacyjne jako doskonałe narzędzia do zaznajamiania i – co gorsza – do przyzwyczajania uczniów do używania w przyszłości swoich produktów. Jeżeli uważamy, że celem nauki informatyki w szkole nie jest wychowywanie konsumentów używających automatycznie – czyli bezmyślnie – oprogramowań potężnych firm takich jak Microsoft, lecz kształcenie podstaw metodologicznych informatyki i nabywania umiejętności obsługiwania narzędzi informatycznych zbudowanych według różnorodnych zasad, to wniosek wydaje się być oczywisty. Opodatkowanie przyszłości Dlaczego w takim razie autorzy podręcznika ‘’Technologia Informacyjna’’ prezentują tylko narzędzia informatyczne firmy Microsoft ? Odpowiedź – jaką można zrekonstruować na podstawie lektury książki Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 6 jest następująca : system Windows jest powszechnie używany , łatwy do nauczenia i jego znajomość jest podstawowym warunkiem znalezienia pracy. Argumentacja ta oparta jest jednak na fałszywych przesłankach. Przeanalizujmy je po kolei: 1.Autorzy podręcznika podkreślają, że system Windows jest powszechnie używany, ponieważ według zgodnej opinii jego użytkowników jest on łatwy do nauczenia. Otóż w rozumowaniu tym przesłanka z konkluzją powinny zamienić się miejscami (jest on uważany za łatwy ponieważ jest powszechnie używany). Aby stwierdzić, że coś jest łatwiejsze czy trudniejsze musimy dysponować jakąkolwiek skalą porównawczą. W wypadku systemów operacyjnych skala taka – z przyczyn historycznych - nie istnieje. 2. Autorzy są zwolennikami stanowiska, które można przedstawić w sposób następujący: co istnieje teraz, będzie także trwało w przyszłości. Otóż jest to założenie – jeżeli weźmie się pod uwagę historie rozwoju technologi informatycznych - fałszywe. W latach 70-80 supremacja IBM, była przygniatająca, jednak kierownictwo firmy zlekceważyło pojawienie się na rynku komputera domowego i przegrało konkurencje z Microsoft. Dzisiaj role się odwróciły. IBM wykorzystuje system Linux do budowania nowych narzędzi informatycznych mogących zagrozić monopolowi Microsoft.. 3. Podręcznik ‘’Technologia Informacyjna’’ prezentuje wyłącznie narzędzia informatyczne firmy Microsoft, ponieważ dobra – wg jego autorów - ich znajomość ułatwi absolwentom szkół znalezienie pracy. Błąd, za który zapłaci całe polskie społeczeństwo. Za kilka lat, albo pracodawca będzie zmuszony wydać pieniądze na przekwalifikowanie pracowników, albo pracobiorca będzie sam musiał nauczyć się innych wymaganych na rynku pracy narzędzi informatycznych. Jednokierunkowość w nauczaniu informatyki jest formą dodatkowego opodatkowania społeczeństwa przez państwo. * Czy jest jakiekolwiek wyjście z sytuacji – biorąc pod uwagę - że tylko kilka procent nauczycieli informatyki ukończyła wyższe studia informatyczne, reszta natomiast uczęszczała na różnego rodzaju studia podyplomowe? Myślę, że sposobem na poprawę nauczania informatyki jest stworzenie oprogramowania edukacyjnego w Internecie umożliwiającego naukę Linuxa. Internetowe Studium Wolnego Oprogramowania (ISWO) jest właśnie takim narzędziem stworzonym przez informatyków związanych z ruchem „wolnego oprogramowania” oraz partią polityczną Prawo i Sprawiedliwość. Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 7 Rozdział 2 : Sesja 2.1 Zalogowanie Linux – jest systemem wielozadaniowym i wielodostępnym. Wynika z tego, że może z niego korzystać jednocześnie wielu użytkowników i każdy z nich może uruchomić wiele programów. Aby rozpocząć prace, użytkownik musi się zalogować do systemu podając swoją nazwę (w tym celu trzeba stworzyć konto użytkownika) oraz przypisane mu hasło, umożliwiające zalogowanie się do systemu. Dodajmy, że system identyfikuje każdego użytkownika na podstawie niepowtarzalnego numeru UID. Mechanizm logowania możemy przedstawić w następujący sposób. Login : $ who Login :  $ date  $ exit  Password : $ cal Password 3.2 Pierwsze polecenia • date  wyświetla na ekranie datę i aktualną godzinę • who  wyświetla liste zalogowanych użytkowników • who am i  kim jestem ? • cal  wyświetla kalendarz • uname  wyświetla nazwę i atrybuty systemu operacyjnego • passwd  zmiana hasła • echo  wyświetla na ekranie argument polecenia Wiersz poleceń - czyli to co znajduje się za znakiem zachęty „#” lub „$” służy do wprowadzania poleceń. Co rozumiemy pod wyrażeniem „wprowadzanie poleceń” ? Rozumiemy przez to wystukanie (wpisanie jego treści) polecenia i następnie naciśnięcia klawisza [Enter]. Polecenie składa się z następujących elementów : nazwa polecenia opcje argumenty Opcje – nielicznymi wyjątkami – poprzedzone są znakiem minusa : „-”. Trzeba uważać gdyż pomiędzy literą opcji i „-” nie może być spacji. Argumentami są zazwyczaj nazwa lub nazwy plików. Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 10 Rozdział 3 : Pliki i katalogi System plików Linuksa tworzy jedno spójne i nierozdzielne drzewo (dokładniej w kształcie odwróconego drzewa). Struktura plików porządkuje sposób w jaki pliki przechowywane są w pamięci masowej. Pliki uporządkowane są w katalogach. Każdy z nich może zawierać dowolna liczbę podkatalogów, z których każdy może zawierać pliki. Przedstawione poniżej katalogi znajdują się w katalogu głównym „/”. Linux dzieli pliki na trzy kategorie 1. katalogi, które zawierają pliki. 2. pliki specjalne które nie zawierają danych (np. plik urządzeń) 3. pliki regularne (normalne), które zawierają dane, tekst itd Skrócony schemat organizacji katalogów root / ------------------------------------------------------------------------------- | | | | | home dev usr tmp etc | | | | | --------------- ---------------- ----------------- | | | | | | pierre cathty bin lib passwd group | | | .profile vi lp Przedstawimy teraz to co niektóre katalogi zawierają – stanie sie to bardziej zrozumiałe po opanowaniu całości materiału. /bin  katalog zawierający tzw pliki wykonywalne, które mogą być egzekwowane przez zwykłych użytkowników /tmp  katalog zawierający pliki tymczasowe /etc  katalog zawierający pliki dzięki którym możemy skonfigurować system Linux /usr  katalog zawierający wszystkie aplikacja użytkowe Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 11 3.3 Atrybuty plików $ ls -l plika -rwxr-x--- 1 piotr nauka 265 maj 17 14:45 plika !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! nazwa pliku (8) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!data i godzina ostatniej modyfikacji pliku (7) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! objętość (6) !!!!!!!!!!!!!!!!!!!!!!!!!!! grupa (5) !!!!!!!!!!!!!!!!! właściciel (4) !!!!!!!!!!!!!!!! liczba łączy (3) !!!!!!!!!!!! prawa (2) ! type pliku „-” kreska oznacza plik normalny „d” plik jest katalogiem. (1) Podstawowe atrybuty plików mogą być wyświetlone przy pomocy polecenia „ls” z dodatkiem opcji „-l”, która oznacza „długie” (long). 1. Pierwsza zona licząca tylko jeden znak „ –„ wskazuje typ pliku. Symbole najczęściej spotykane są następujące : 1. - dla oznaczenia plików zwykłych 2. d dla oznaczenia katalogów 3. c dla oznaczenia plików specjalnych (urządzenia znakowe) 4. b dla oznaczenia plików specjalnych przypisanych (urządzenia blokowe) 5. l dla oznaczenia łączy symbolicznych (2) Druga zona („rwxrx---”) składająca się z 9 znaków, Przykłady : -rwxr-xr-x 1 piotr oracle 3432 Maj 14 2002 15:51 plikb Plik regularny plikb liczący 3432 octet, ostatnia jego zmiana miała miejsce 14 maja, właścicielem pliku jest piotr, który należy do grupy oracle drwxr-xr-x 2 piotr windows 512 maj 4 2001 14:14 bin Katalog „bin’’ liczący 512 octet , ostatnia jego zmiana miała miejsce 4 maja 2001, właścicielem jego jest piotr, który należy do grupy windows Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 12 Wzór linii poleceń Pierwsze słowo linii poleceń jest zawsze poleceniem. Polecenia do zarządzania plikami Polecenie ls Wzór ogólny - ls opcja nazwa pliku opcje podstawowe -l  wyświetla cechy pliku -a  wyświetla wszystkie pliki -b  wyświetla znaki, które nie mogą być wydrukowane -R  wyświetla zawartość drzewa katalogowego -p  rozróżnia katalogi -s  wyświetla liczbę bloków Polecenie ls wyświetla nazwy plików i zgodnie z zaznaczoną opcją, niektóre ich atrybuty. Polecenie ls w formie najprostszej (to znaczy bez żadnej opcji ani nazwy pliku) Przykłady : (zakładamy, że znajdujemy się w katalogu domowym /home/piotr) - lista nazw plików, które znajdują się w katalog $ ls - najważniejsze cechy pliku mbox $ ls -l mbox - najważniejsze cechy plików znajdujących się w katalogu /home $ ls -l /home - wyróżnic nazwy katalogów w wyświetlonych plikach $ ls -p - liczba bloków zajętych przez pliki $ ls –s - wyświetlenie nazw wszystkich plików znajdujących się w katalogu Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 15 * rmdir  usuwa katalog * rm –r  usuwa drzewo katalogowe * cp  kopiuje pliki do katalogu cp –r  wykonuje kopie drzewa katalogowego * du  wyświetla objętość katalogu bieżącego * find  poszukuje plików w drzewie katalogowym Polecenie pwd („print working directory”) wyświetla ścieżkę dostępu do katalogu bieżącego. Polecenie cd / -------------------------------------------------------------- | | usr home | | -------------------------- | | | pierre # znajdujesz się tutaj bin lib | ----------------------------- | | bin src Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 16 Polecenie cd („Change Directory”) pozwala zmienić katalog. Można przejść do innego katalogu używając adresu bezwzględnego np cd /home/piotr lub stosując znaki skrótowe. Egzekucja polecenie cd bez argumentu, powoduje powrót do twojego katalogu domowego. Przykłady : $ pwd /home/piotr $ cd src $ pwd /home/piotr/src $ cd $ pwd /home/piotr 3.2 Ćwiczenia Ćwiczenie 1. W katalogu domowym utwórz katalog o nazwie – atelier -, a w nim utwórz dwa podkatalogi o nazwach : seria_1 i seria_2 Ćwiczenie 2. Wyświetl strukturę drzewa katalogowego co dopiero utworzonego używając dwóch różnych poleceń. Ćwiczenie 3. Wyświetl, w swoim katalogu domowym, listę plików, używając dwóch różnych poleceń, które umożliwią rozpoznanie katalogów. Ćwiczenie 4. Wykonaj kopie pliku /etc/passwd zmieniając jego nazwę na plik_pass. Ćwiczenie 5. Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 17 Zmień nazwę pliku plik_pass na password Ćwiczenie 6. Przenieś plik password do katalogu seria_1 (przypominam, że jest on podkatalogiem katalogu atelier) Ćwiczenie 7. Wykonaj kopie plików /etc/passwd i /etc/group do katalogu seria_2 (przypominam, że jest on podkatalogiem katalogu – atelier) znajdując się a) w katalogu /etc. b) w katalogu seria_2 c) w obojętnie jakim katalogu Ćwiczenie 8. Wyselekcjonuj podkatalog seria_1 jaka katalog pracy i wyświetl – znajdując się w nim – pliki znajdujące się w podkatalogu seria_2 Ćwiczenie 9. Aby utworzyć plik o nazwie „dokument” wykonaj następujące polecenie $ touch dokument Wyświetl jego atrybuty używając poleceń : ls i file Ćwiczenie 10. Znajdujesz się w katalogu domowym – wyświetl atrybuty, w tym także wielkość liczoną w blokach, wszystkich plików, także tych, których nazwa zaczyna się od „.” Ćwiczenie 11. Wyświetl atrybuty twojego katalogu domowego. Ćwiczenie12. Jakie znasz polecenia które umożliwiają porównanie plików ? Użyj jednego z nich do porównania pliku zawierającego twój profil użytkownika z plikiem profilu innego użytkownika. Ćwiczenie 13. Utwórz w swoim katalogu domowym, katalog o nazwie „przykłady” i skopiuj do niego drzewo katalogowe Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 20 2. polecenia zewnętrzne , które są niezależne od basha i które znajdują sie w różnych katalogach (/usr/sbin, /sbin,...), egzekucja każdego polecenia zewnętrznego prowokuje powstanie procesu w pamięci komputera. Bash uzywa tzw znaków specjalnych, których znaczenie uzytkownik systemu operacyjnego musi rozumieć, a które służą do generowania nazw plików (*,?, []) lub do modyfikacji postępowania danego polecenia (<,>, |). W momencie logowania bash interpretuje pliki inicjalizujące sesje: /etc/profile i .bash_profile, ten ostatni plik każdy użytkownik – pod warunkiem, że opanował wystarczająco Linuksa – może zmodyfikować, dorzućić do niego nowe funkcje itd. 4.1 Znaki uogólniające Znaki uogólniające – jeden lub wiele znaków używanych do tworzenia nazw plików – pozwalają użytkownikowi wystukać w linii poleceń niekompletną nazwę pliku. Innymi słowy przy pomocy znaków uogólniających tworzy się symboliczny wzorzec pasujący do większej liczby plików. Wyróżniamy trzy rodzaje znaków uogólniających : *  oznacza dowolnej – również zerowej – długości łańcuch znaków ?  dowolny pojedynczy znak [..]  użycie nawiasów kwadratowych może przybrać wiele form [azs]  oznacza, literę „a” lub literę „z” lub literę „s” poszukiwany ciąg znaków musi zawierać jedną z tych liter [0-9]  oznacza liczbę całkowitą ze zbioru od 0 do 9 [!rty]  oznacza każdy znak oprócz litery r, t, y [!0-9]  oznacza każdy znak, który nie jest liczbą Przykłady : Przypuśćmy, że w nasz katalog domowy zawiera następujące pliki : p1 p2 p3 p58 p45 pb pz a1kb2lc4k art54lnm012 p+ $ ls p[1-3] p1 p2 p3 Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 21 $ ls p[123] p1 p2 p3 Jak widzimy ten sam rezultat możemy uzyskać stosując różne formy znaków uogólniających. Czy rezultat widoczny powyżej można uzyskać w jeszcze inny sposób? $ ls [!123bz] p+ $ ls a*b*c* a1kb2lc4k $ ls p[0-9]* p1 p2 p3 p58 p45 $ echo p* p1 p2 p3 p58 p45 pb pz p+ $ echo p? p1 p2 p3 pb pz p+ 4.2 Protekcja znaków uogólniających i specjalnych Znaki uogólniające są podgrupą znaków specjalnych, które dla powłoki shella mają inne znaczenie niż znak literowy. Wyróżniamy następujące znaki specjalne : * ? [ ] < > & | / | ‘ ` ” $ ! % ( ) { } @ \ Manipulowanie znakami specjalnymi, których znaczenie będziemy stopniowo poznawać, jest umiejętnością trudną i wymagającą dużo ćwiczeń i praktyki, dlatego też poświecimy im – jak już wspomniałem we wstępie - dużo miejsca i czasu, bowiem ich dobra znajomość jest niezbędna do sprawnego posługiwania się systemem Unix, Linux, a także językami używanymi do programowania w Internecie (HTLM, Perl, PHP itd). Znaki specjalne mogą wyrażać swoje znaczenie lateralne pod warunkiem, że są neutralizowane. Wyróżniamy następujące znaki neutralizujące, \  znak ten neutralizuje każdy znak znajdujący się natychmiast po nim np \* czyli wyszukuje nie obojętnie jaki ciąg znaków, lecz szuka „*” ”…….. ”  neutralizuje wszystkie znaki specjalne oprócz : $ \ ‘ Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 22 ‘……..‘  neutralizuje wszystkie znaki specjalne oprócz niego samego Przykłady : $ echo \*\*\* dzien dobry \*\*\* *** dzien dobry ***  rezultat polecenia – czy możesz odpowiedzieć dlaczego ? $ echo \\ \  rezultat polecenia $ echo ’<<< dzien dobry>>>’ <<<dzien dobry>>> $ echo ’ podwoje ‘’ ’ podwoje ‘’ $ echo ‘’***ekran jest typu $TERM’’ 4.3 Przekierowania Jak już pisaliśmy na początku tego rozdziału proces powstaje w momencie egzekucji programu. Powstanie procesu odpowiada egzekucji pliku umieszczonego w pamięci centralnej. W momencie powstania procesu interpretator poleceń tworzy automatycznie mechanizm umożliwiający wprowadzanie danych z klawiatury (wejście standardowe) oraz mechanizm pojawiania się tych danych na ekranie (wyjście standardowe). Interpreter tworzy także wyjście standardowe dla błędów. Wyjściem standardowym błędów jest również ekran. Standardowe wejścia-wyjścia mogą być skierowane do pliku, potoku (mechanizm potoku poznamy w następnym podrozdziale). Skierowanie standardowego wyjścia polega na wysłaniu tekstu wyświetlanego na ekranie do pliku. Wszystkie standardowe wejścia-wyjścia każdego procesu można także skierować do odpowiednich plików i proces zamiast szukać informacji w sygnałach wysyłanych z klawiatury, będzie ich poszukiwał w odpowiednich plikach. Mechanizm ten przedstawiamy na rysunku. Wejściu standardowemu przypisany jest przez system numer 0. Wyjściu standardowemu przypisany jest numer 1. Wyjściu błędów przypisany jest numer 2. Zdefiniujmy teraz podstawowe operatory kierujące (przełączające) standardowe wejścia-wyjścia : > plik_k  wyjście standardowe jest skierowane do pliku plik_k. Jeśli plik_k wcześniej nie istniał, to zostanie to zostanie utworzony. Jeśli już istniał to jego zawartość zostanie wymazana (ziszczona). Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 25 Mechanizm funkcjonowania potoków wymaga od użytkownika zapamiętania nie tylko znaczeń poszczególnych poleceń, ale także pamiętania ich rezultatów. Podamy teraz kilka „potoków’’, których interpretacje rezultatów pozostawiamy czytelnikowi. $ who | wc -l $ cat /etc/passwd | wc -l $ cat /etc/group | wc -l $ cat /etc/passwd | grep /bin/bash | wc -l $ ls -l | grep ‘’rwxr-xr-x’’ | more Zgrupowania poleceń Linux umożliwia nam wystukanie wielu poleceń jednocześnie, pod warunkiem, że polecenia te będą oddzielone między sobą „ ; ”. Polecenia są wykonywane w takim przypadku po kolei, niezależnie od siebie. Przykład : $ ls; pwd; date #polecenia są wykonywane po kolei od lewej do prawej strony drwxr-xr-x 2 piotr oracle 1024 May 15 2003 test drwxr-xr-x 2 ola oracle 512 May 25 2003 katalog5 drwxr-xr-x 5 piotr oracle 1024 May 17 2003 test1 -rwxr-xr-x 1 piotr oracle 1536 May 18 2003 plikb -drwxr-xr-x 2 piotr oracle 1325 May 15 2003 plikc /home/piotr Fri May 15 15:14:38 GMT-0100 2003 Polecenie te mogą być zgrupowane przy pomocy nawiasów i skierowane do pliku lub użyte w mechanizmie „potoku” $ ( ls ; pwd ; date ) > plik_wyjscie Istnieją także w Linuksie operatory, które warunkują wykonanie danego polecenia w zależności od tego jaki rezultat przyniesie wykonanie polecenia je poprzedzającego. Operator && pozwala wykonać polecenie tylko w tym wypadku jeżeli egzekucja polecenia je poprzedzającego została wykonana bez błędu. Przykład : Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 26 $ cd projekt && ls * Operator || umożliwia wykonanie danego polecenia tylko w tym wypadku jeżeli egzekucja polecenia je poprzedzającego została wykonana z błędem Przykład : $ cd projekt || mkdir projekt Wyjaśnienie : chcemy przejść do katalogu „projekt” , lecz jeżeli on nie istniej to go tworzymy 4.5 Ćwiczenia Ćwiczenie 1. Przemieszcz się ze swego katalogu bieżącego do katalogu /usr/bin i wyświetl listę plików których nazwa składa się dokładnie z 4 znaków. Ćwiczenie 2. Wyświetl listę plików, których nazwy zaznają się tylko na litery od a do e. Ćwiczenie 3. Wyświetl listę plików, których nazwy posiadają literę „t” na drugiej pozycji. Ćwiczenie 4. Użyj polecenia „echo” do wyświetlenia następującej informacji na ekranie twojego komputera : Ćwiczenie 5. Wyświetl na ekranie zdanie „dzień dobry pani” wprowadzając trzy polecenia na trzech liniach Ćwiczenie 6. Wróć do swego katalogu domowego i utwórz plik o nazwie info.txt zawierający datę i godzinę. Wykonaj polecenie „cat info.txt” aby wyświetlić na ekranie zawartość pliku info.txt. Ćwiczenie 7. Używając tego samego mechanizmu, umieść rezultat polecenia „ls” w pliku info.txt. Wyświetl plik. Co zobaczysz ? Ćwiczenie 8 Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 27 Wykonaj powtórnie ćwiczenie 6 i dorzuć do zawartości pliku info.txt, rezultat polecenia „ls”, wyświetl plik powtórnie. . Ćwiczenie 9. Użyj polecenia „mail” Ćwiczenie 10. Wyświetl na ekranie, strona po stronie listę plików z katalogu /etc. Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 30 x  prawo jego egzekucji Przykłady : Likwidujemy prawo modyfikacji pliku dla jego właściciela : $ chmod u-w plik1 Dorzucamy prawo modyfikacji dla grupy do której jest przypisany plik : $ chmod g+w plik1 5.4 Modyfikacja praw pliku (2) $ chmod 740 plikb 400  prawo czytania dla właściciela pliku 200  prawo pisania dla właściciela pliku 100  prawo egzekwowania pliku przypisane jego właścicielowi 040  prawo czytania dla grupy użytkowników 020  prawo pisania dla grupy użytkowników 010  prawo egzekwowania pliku przypisane grupie użytkowników 004  prawo czytania przypisane innym użytkownikom 002  prawo pisania przypisane innym użytkownikom 001  prawo egzekwowania przypisane innym użytkownikom Polecenie chmod pozwala zmienić prawa przy pomocy wartości wyrażonych w kodzie binarnym np jak nadać wszystkie prawa właścicielowi pliku plikb, prawa do czytania i egzekwowania tego pliku grupie do której należy jego właściciel i prawo do czytania pliku innym użytkownikom systemu ? $ chmod 754 plikb System dziesiętny rózni się zasadniczo od swoich poprzedników (np zapisu rzymskiego, systemu Azteków opartego na 5 itd) . Za Charlesem Petzold można go scharakteryzować w następujący sposób : 1. dziesiętny system liczbowy jest systemem pozycyjnym co oznacza, że określona cyfra reprezentuje różną wartość zależnie od swego miejsca w liczbie. Miejsce cyfry jest więc równie, jak jej rzeczywista wartość.. Zarówno liczba 200 jak i 20000 mają na początku tylko jedną dwójkę, jednak wiemy, że dwadzieścia tysięcy jest większe od dwustu Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 31 2. praktycznie wszystkie systemy powstałe przed systemem dziesiętnym (lub indoarabskim), mają coś czego on nie ma, a mianowicie specjalny symbol oznaczający liczbę 10 (np X w rzymskim). W systemie dziesiętnym nie ma specjalnego symbolu 10. 3. Wszystkim systemom liczbowym brakuje symbolu 0. System dziesiętny natomiast posługuje się – jako jedyny – symbolem zera. Zero – choć może nam to się wydawać dziwne – jest bez wątpienia jednym z najważniejszych wynalazków w historii liczb i matematyki. Dzięki niemu możemy rozróżniać liczby biorąc pod uwagę ich zapis pozycyjny, 45 od 405 czy od 450. Zero ułatwia także wiele operacji matematycznych, które są niewygodne w innych systemach : np mnożenie czy dzielenie. Rozłóżmy na czynniki pierwsze liczbę 5854 którą wymawia się jako „pięć tysięcy osiemset pięćdziesiąt cztery” co można zapisać w następujący sposób : pięć tysięcy osiemset Przedstawienie I pięćdziesiąt cztery W postaci liczbowej możemy naszą liczbę przedstawić w następujący sposób : Przedstawienie II 5854 = 5000 + 800 + 50 + 4 Zapis ten może być jeszcze bardziej szczegółowy : 5854 = 5×1000 + Przedstawienie III 8×100 + 5×10 + 4×1 Można ten zapis przedstawić używając potęg 5854 = 5×10³ + Przedstawienie IV 8×10² + 5×10¹ + 4×10º Pamiętaj, że dowolna liczba do potęgi 0 równa się 1 Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 32 Każda pozycja w wielocyfrowej liczbie ma szczególne znaczenie, przypatrz się uważnie poniższemu rysunkowi Potęga 6 5 4 3 2 1 0 5 | 8 | 5 | 4 | 8 | 9 | 3 !!!!!!!!!!!!!!!!!!!!  liczba jedności !!!!!!!!!!!!!!!!  liczba dziesiątek !!!!!!!!!!!!!  liczba setek Przedstawienie V !!!!!!!!!  liczba tysięcy !!!!!!  liczba dziesiątek tysięcy !!!  liczba setek tysięcy !  liczba milionów Każda pozycja - i jest to zasada najważniejsza - odpowiada określonej potędze dziesięciu. Jednak wniosek jest następujący : notacja pozycyjna, którą powyżej przedstawiliśmy działa także w innych nie dziesiętnych systemach. System dziesiętny posługuje się dziesięcioma symbolami : 2. 1 2 3 4 5 6 7 8 9 (podstawa systemu = 10) System binarny tylko dwoma 0 1 (podstawa systemu = 2) Spróbujmy zastosować zasady notacji pozycyjnej do jakiejkolwiek liczby wyrażonej kodem binarnym. Podstawą systemu dziesiętnego jest liczba dziesięć (10 cyfr). Podstawą systemu binarnego jest liczba dwa (dwie cyfry) Stąd wniosek, że wartość Potęga 3 2 1 0 1 0 1 0 5854 = 5×10³ + 8×10² + 5×10¹ + 4×10º 1×2³ + 0×2² + 1×2¹ + 0×2º = 10 Powróćmy teraz do nadawania praw przy pomocy wartości wyrażonych przez kod binarny Prawa dla użytkownika, prawa dla grupy, prawa dla innych użytkowników systemu wyrażane są w formie trzech liter np. nadanie wszystkich możliwych praw właścicielowi pliku zapisujemy rwx  które w formie binarnej będzie miało wartość 111 = rw-  w formie binarnej będzie miało wartość 110 r--  100 ---  000 Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 35 Jeżeli wykonamy polecenie ls $ ls katalog1 W jaki sposób go usunąć? Otóż do usuwania katalogów z zawartością służy polecenie rm -r nazwa katalogu  jest to polecenie bardzo niebezpieczne w wypadku jeżeli po opcji -r zapomnisz wpisać nazwę katalogu, który chcesz usunąć Czy wiesz co się może wtedy stać ? 5.7 Zarządzanie grupami Polecenia : ls –l  polecenie to wskazuje grupę do której przynależy plik chgrp  polecenie to zmienia przynależność pliku z np grupy a d o grupy b newgrp  polecenie to umożliwia, podczas sesji, zmienić przynależność pliku z grupy zdefiniowanej w pliku /etc/passwd, na początku sesji id  pozwala poznać aktualną grupę Użytkownicy przynależą do jednej lub wielu grup i prawa dostępu do plików, których nie są właścicielami, zależą od tej przynależności. Pliki utworzone przez użytkownika należą do jego aktualnej grupy. Grupa ta jest inicjalizowana w momencie otwarcia sesji, dzięki plikowi etc/passwd Plik użytkowników /etc/passwd Lista użytkowników systemu znajduje się w pliku /etc/passwd , który jest dostępny dla wszystkich użytkowników (to znaczy może być wyświetlony na ekranie przez wszystkich) i który składa się z następujących kolumn : 1. nazwa użytkownika 2. znak x 3. numer użytkownika 4. numer grupy 5. komentarz 6. katalog domowy Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 36 7. interpreter poleceń (shell) Kolumny rozdziela znak dwukropka : 1 2 3 4 5 6 7 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin shutdown:x:6:0:shutdown:/sbin:/sbin:/shutdown halt:x:7:0:halt:/sbin:/sbin:/halt ftp:x:14:50:FTP User:/home/ftp: nobody:x:99:99:Nobody:/: ola:x:519:504:Ola Pawlak:/home/ola:/bin/bash Gdy przy pomocy polecenia useradd administrator definiuje nowego użytkownika i jego konto, tworzony jest automatycznie jego katalog domowy, o nazwie takiej samej jak nazwa użytkownika oraz definiowane są jednocześnie inne parametry, m.in. określona jest powłoka z jaką użytkownik będzie pracował po zalogowaniu się. Gdy jesteśmy zalogowani jako administrator, możemy wykonać następujące polecenie # useradd piotr Wtedy do pliku /etc/passwd zostanie dorzucone konto o nazwie piotr którego katalogiem domowym będzie /home/piotr root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin: daemon:x:2:2:daemon:/sbin shutdown:x:6:0:shutdown:/sbin:/sbin:/shutdown halt:x:7:0:halt:/sbin:/sbin:/halt ftp:x:14:50:FTP User:/home/ftp: nobody:x:99:99:Nobody:/: piotr:x:518:504:Piotr Pietak:/home/piotr:bin/bash ola:x:519:504:Ola Pawlak:/home/ola:/bin/bash Plik grupy użytkowników /etc/group Grupa użytkowników zawiera pewną liczbę użytkowników którzy mają dostęp do tych samych plików. Grupa ta definiowana jest w pliku /etc/group i składa się z następujących kolumn : nazwa grupy. kolumna pusta lub zawierająca znak x albo * numer grupy lista użytkowników, członków grupy Przykład Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 37 $ cat /etc/group root:x:0:root bin:x:1:root,bin,demon demon:x:2:root,bin,demon sys:x:3:root,bin,adm Modyfikacji tego pliku może dokonywać tylko administrator systemu Przykłady $ id uid=101(piotr) gid=1(inni)  czy wiesz do jakiej grupy należy - piotr ? Jak zmieniamy przynależność pliku do grupy ? $ ls -l plika -rw-r- - r-- 1 piotr inni 99 lipiec 18 14:00 plika $ chgrp studia plika -rw-r—r-- 1 piotr studia 99 lipiec 18 14:00 plika Ćwiczenia 4.1 Ćwiczenie 1. Przy pomocy polecenia touch utwórz plik o nazwie : obraz.txt $ touch obraz.txt Nie poznając uprawnień pliku, nadajcie wszystkim użytkownikom prawa do czytania tego pliku na dwa sposoby (symboliczny i numeryczny), następnie wyświetl te prawa. Ćwiczenie 2. Jakie będą konsekwencje następującego polecenia : $ rm obraz.txt Ćwiczenie 3. Jakie będą uprawnienia pliku obraz.txt, po wykonaniu następującego polecenia : $ chmod u+wx,g+w,o-r obraz.txt Ćwiczenie 4. Przypuśćmy, że polecenie ls -l /home/ola/prog.sh wyświetla na ekranie następującą linie Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 40 Rozdział 6 : Filtry do czego służą ? grep  poszukiwanie ciągu znaków w pliku cut  selekcjonuje (znajduje) pojedyńcze znaki lub zony sort  uporządkowanie, fuzja plików more  wyświetlanie pliku strona po stronie wc  liczy linie, słowa, i znaki tail  wyświetla koniec pliku head  wyświetla koniec pliku nl  numeruje linie pliku tr  prosta modyfikacja pliku Czym jest filtr ? Jest on poleceniem, które wykonuje pewno działanie na plikach zawierających tekst. Rezultat tego działania, który jest także tekstem, wyświetlany jest na ekranie (chociaż nie tylko). Powiązanie między sobą wielu filtrów (czyli jednoczesna egzekucja kilku poleceń) jest możliwa dzięki użyciu metody zwanej przekierowaniem lub innej metody nazywanej „potokiem”. Zapoznamy się teraz z podstawowymi filtrami używanymi w systemie Linux. Przykłady : $ cat poemat Opadają kwasem wina Liście dębu i czereśni I zza wody psi przyleśni Szczekają jak mandolina Bałałajkę psiej tęsknoty Uwiązali na łańcuchu Za to ździerze-mgle na uchu Dynda miesiąc – kolczyk złoty $ wc -l poemat # polecenie to liczy liczbę lin w wierszu „poemat” 8 poemat $ ls | wc -l #liczy liczbę plików znajdujących się w katalogu – dlaczego ? – spróbuj znaleźć polecenie, które wyświetliłoby liczbę znaków w katalogu 5 $ nl poemat #numeruje linie poematu Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 41 1 Opadają kwasem wina 2 Liście dębu i czereśni 3 I zza wody psi przyleśni 4 Szczekają jak mandolina 5 Bałałajkę psiej tęsknoty 6 Uwiązali na łańcuchu 7 Za to ździerze-mgle na uchu 8 Dynda miesiąc – kolczyk złoty $ tail -3 poemat #wyświetla 3 ostatnie linie wiersza „poemat” Uwiązali na łańcuchu Za to ździerze-mgle na uchu Dynda miesiąc – kolczyk złoty $ tail +2 poemat #wyświetla od 2 lini do końca Za to ździerze-mgle na uchu Dynda miesiąc – kolczyk złoty $ head -3 poemat #wyświetla 3 pierwsze linie Opadają kwasem wina Liście dębu i czereśni I zza wody psi przyleśni Uwagi : 1. Liczba linii branych pod uwagę przez polecenie tail i head wynosi 10 2. Polecenie wc (bez opcji) wyświetla liczbę linii, liczbę słów i liczbę znaków zawartych w pliku 3. Co się dzieje gdy wystukamy (polecenie będące filtrem) bez żadnego argumentu, czyli bez nazwy pliku np $ wc + [Enter] * polecenia zwane filtrami oczekują, że wprowadzimy jakieś dane możemy to zrobić i aby powrócić do linii poleceń i przerwać zapełnianie ekranu musimy wystukać jednocześnie [Ctrl]+d Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 42 6.2 Polecenie grep $ grep ‘’psi’’ poemat Opadają kwasem wina Liście dębu i czereśni I zza wody psi przyleśni Szczekają jak mandolina I zza wody psi przyleśni  grep  Bałałajkę psiej tęsknoty Bałałajkę psiej tęsknoty Uwiązali na łańcuchu Za to ździerze-mgle na uchu Dynda miesiąc – kolczyk złoty Polecenie grep selekcjonuje z pliku linie zawierające poszukiwany ciąg znaków – w naszym przykładzie „psi” - i wyświetla wskazane linie na ekranie. Opcja -i znosi różnice między małymi i dużymi literami. Jeżeli wystukamy : $ grep -i ‘’za’’ poemat  to otrzymamy I zza wody psi przyleśni Za to ździerze-mgle na uchu Opcja -c użyta z poleceniem grep umożliwia policzenie liczby lin zawartych w pliku (jakie inne polecenie wykonuje to samo ? ). $ grep -c poemat 8 Opcja -n numeruje linie w pliku (jakie inne polecenie wykonuje to samo ? ). $ grep -n poemat 1 Opadają kwasem wina 2 Liście dębu i czereśni 3 I zza wody psi przyleśni 4 Szczekają jak mandolina 5 Bałałajkę psiej tęsknoty 6 Uwiązali na łańcuchu 7 Za to ździerze-mgle na uchu 8 Dynda miesiąc – kolczyk złoty Opcja -v wyświetla linie, które nie zawierają poszukiwanego ciągu znaków, w naszym pierwszym przykładzie, jeśli przed „psi” dodamy -v to otrzymamy : $ grep -v ‘’psi’’ poemat Opadają kwasem wina Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 45 1,un,one,ein 5,cinq,five,funf 9,neuf,nine,neun 6,six,six,sechs 7,sept,seven,sieben 4,quatre,four,vier 10,dix,ten,zen 2,deux,two,zwei $ sort -t’,’ +1 -2 5,cinq,five,funf 2,deux,two,zwei 10,dix,ten,zen 8,huit,eight,acht 9,neuf,nine,neun 4,quatre,four,vier 7,sept,seven,sieben 6,six,six,sechs 3,trois,three,drei 1,un,one,ein Polecenie sort Polecenie more Ćwiczenia 5.1 Ćwiczenie 1. Wyświetl listę użytkowników uporządkowaną według ich nazwisk Ćwiczenie 2. Wyświetl atrybuty, największego pliku, z twojego katalogu Ćwiczenie 3. Wyświetl zawartość pliku „.profile.” Ćwiczenie 4. Wyszukaj w twoim katalogu wszystkie pliki modyfikowane w ciągu jednego dnia Ćwiczenie 5. Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 46 Wyświetl wszystkie linie pliku „.profile”, które zawierają znak # Ćwiczenie 6. Wyświetl nazwę wszystkich plików tekstowych z twojego katalogu domowego Ćwiczenie 7. Wyświetl nazwiska użytkowników podłączonych do twojego systemu (wyłącznie nazwiska) Ćwiczenie 8. Polecenie ls -l wyświetla znak „-” na pierwszej pozycji linii kiedy mamy do czynienia z plikiem regularnym, zastąp znak „-” przez literę „f’’ ” 6.1 Ćwiczenia Ćwiczenie 1. Wykonaj polecenia : $ cp /etc/passwd passwd2 $ ln passwd passwd2 Jeżeli zmienimy plik passwd2, co się wydarzy ? Ćwiczenie 2 Jaki rezultat otrzymasz po wykonaniu następującego polecenia : $ ln passwd passwd3 . Ćwiczenie 3. Odnajdź wszystkie łącza pliku : passwd Ćwiczenie 4. Wykonaj polecenie „rm passwd”, które znosi wiązanie passwd. Czy plik wskazywany przez wiązanie jest jeszcze dostępny , jeśli tak to w jaki sposób ?Czy można odtworzyć łącze passwd, jeśli tak to w jaki sposób ? Ćwiczenie 5. Wykonaj kopie pliku /etc/group do twojego katalogu domowego, i następnie wykonaj polecenie : $ ln -s group group.lien Wyświetl atrybuty pliku group.lien, czy jego uprawnienia pozwalają na dostęp do pliku group ? Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 47 Rozdział 7 : Zarządzanie procesami 7.1 Skrypty - pierwsze kroki w programowaniu Skrypt jest plikiem tekstowym zawierającym polecenia. Skrypt możemy utworzyć przy pomocy każdego edytora dostępnego w systemie Linux (emacs,vi,vim). Ponieważ, w naszym przypadku, poznaliśmy tylko vi, więc użyjemy tego właśnie edytora do utworzenia kilku skryptów by zilustrować najprostsze zasady programowania w bashu. Zalogujmy się jako administrator systemu (root) i po ukazaniu się na ekranie znaku zachęty (przypominam, że w przypadku administratora jest to #) stworzymy plik o nazwie skrypt1 # vi skrypt1 #!/bin/bash_ cal who date ~ ~ ~ ~ ~ Wyjaśnienie : 1. każdy skrypt musi zaczynać się od wypełnienia pierwszej lini przez #!/bin/bash, która definiuje ścieżkę dostępu do interpretatora, który wykona a raczej zinterpretuje polecenia zawarte w skrypcie. W naszym przypadku jest nim /bin/bash 2. utworzony pliku o nazwie skrypt1 jest plikiem zwykłym, który nie może być egzekwowany. Wykonajmy polecenie # ls -l skrypt1 -rw-r--r-- 1 piotr ola 15 marca 2004 skrypt1 Jak widzimy prawa użytkownika do pliku są ograniczone do jego czytania i modyfikowania, członkowie grupy ola i i pozostali użytkownicy systemu mogą go tylko czytać (czy wiesz dlaczego – jeśli nie – powtórz rozdział …). Utworzony plik skrypt1 musimy uczynić wykonalnym, innymi słowy chcemy mu nadać prawo wykonywania, ale prawo to przypiszemy tylko jego właścicielowi. W tym celu musisz wykonać następujące polecenie : # chmod u+x skrypt1 Po wykonaniu tego polecenia powtórzmy raz jeszcze polecenie ls -l ls -l skrypt1 -rwxr--r-- 1 piotr ola 15 marca 2004 skrypt1 Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 50 innej konsoli wirtualnej i tam możemy uruchamiać kolejne zadania. Innym sposobem postępowania z „długotrwałymi” zadaniami jest uruchamianie ich w tle. Zadanie uruchamiamy jako drugoplanowe wpisując na końcu linii poleceń znak ampresand & . Różnice między zadaniem pierwszoplanowym i drugoplanowym można zilustrować w następujący Sposób who ---------- who ------------ date (najpierw następuje egzekucja i wyświetlenie date rezultatu polecenia „who”, a następnie „date” who& ------ ---------------------- (jednoczesna egzekucja who i date) date& | | | 7.4 Polecenia 9.4.1 Polecenie - ps Polecenie - ps opcje - pozwala otrzymać informacje o odbywających się aktualnie w pamięci komputera, procesach. Jeżeli wykonujemy samo polecenie ps bez opcji to wtedy na ekranie ukazują się procesy użytkownika, który wykonał polecenie ps. Opcja -u nazwa użytkownika pozwala wyselekcjonować procesy tego użytkownika dla wszystkich jego logowań. Inne opcje to -e  wyświetla informacje o wszystkich aktualnie odbywających się procesach -f  wyświetla, dla każdego procesu następujące informacje : - nazwę użytkownika (UID) - numer procesu (PID) - numer ojca procesu (PPID) - godzinę egzekucji procesu (STIME) - imie komputera (TTY) - czas egzekucji procesu (TIME) Przykłady : $ ps PID TTY TIME CMD 3408 pts/1 0:00 ps 10804 pts/1 0:20 -ksh Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 51 $ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 May18 ? 00:00:03 init root 300 1 0 May18 ? 00:00:08 syslogd -m 0 daemon 327 1 0 May18 ? 00:00:00 /usr/sbin/atd root 343 1 0 May18 ? 00:00:00 crond root 359 1 0 May18 ? 00:00:03 inted root 411 1 0 May18 ? 00:00:00 sendmail root 444 1 0 May18 ? 00:00:00 httpd piotr 11736 11731 0 13:45 pts/0 00:00:00 /bin/bash piotr 11737 11732 0 13:45 pts/1 00:00:00 /bin/bash piotr 11738 11733 0 13:45 pts/0 00:00:00 /bin/bash $ ps -e PID TTY TIME COMD 7.4.2 Polecenie - kill Z uruchomionymi procesami możemy komunikować sie przy pomocy sygnałów, to właśnie polecenie kill umożliwia wysyłanie różnych sygnałów do procesów zarówno pierwszo jak i drugoplanowych. Rodzaj sygnału jest określony przez jego numer lub nazwę. $ kill -9  zlikwidowanie procesu $ kill 19  zatrzymanie wykonywania procesu z możliwością późniejszego jego Wznowienia $ kill 2  przerwanie wykonania procesu z klawiatury (Carl +c) Można zlikwidować konkretny proces tylko trzeba znać jego numer PID $ ps -u piotr  wyświetla procesy użytkownika piotr PID TTY TIME COMD 250 pts/1 0:02 bash 259 ? 0:15 plika $ kill 259 $ ps -u piotr  PID TTY TIME COMD Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 52 250 pts/1 0:02 bash 7.5 Zarządzanie „pracami” Zapewne zwróciłeś już uwagę, ze w tym rozdziale wprowadziliśmy nowe pojęcia „zadania”. Czym jest „zadanie” i czym ono się różni od np polecenia procesu. Otóż termin ten Rozpatrujemy nie w kontekście systemu, lecz w kontekście pracy konkretnego użytkownika np uruchomiony edytor tekstowy będzie konkretnym procesem w systemie, ale też jednocześnie zadaniem użytkownika, który realizuje swój cel – napisanie tekstu.. Czyli możemy określić zadanie jako zlecenie systemowi przez użytkownika określonego działania. Zilustrujmy pojęcie zadania na konkretnym przykładzie. Wykonamy następujące polecenie $ ls –R / Jak pamiętasz polecenie ls wyświetla pliki w katalogu (w tym przypadku wyświetli co ?) Zatrzymajmy egzekucję tego polecenia przy pomocy kombinacji klawiszy [Ctrl] + z Na ekranie otrzymamy następującą informacje : [1]+ Stoppel ls -R/ Wykonajmy raz jeszcze : $ ls –R / I raz jeszcze zatrzymajmy egzekucje polecenia. Otrzymamy następujące informacje na ekranie [2]+ Stoppel ls -R/ W tym momencie wykonamy polecenie jobs , które wyświetla listę zadań na ekranie $ jobs [1]+ Stopped ls -R/ [2]+ Stopped ls -R/ Jeżeli zastosujemy w poleceniu jobs opcje -l otrzymamy na ekranie cenne informacje $ jobs -l [1]+ Stopped 122 ls -R/ [2]+ Stopped 123 ls -R/ Liczba 122 I 123 to numery bezwzględnych identyfikatorów procesów PID. Do ponownego uruchomienia zatrzymanego zadania na pierwszym planie używamy polecenia fg. Do ponownego uruchomienia zatrzymanego zadania na drugim planie używamy polecenia bg. Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 55 liczb całkowitych 0-9. Jednak jeśli numer rozdziału będzie większy od 9 np 10-1 lub 1-10 to wyrażenie regularne \d-\d go nie odnajdzie, dlatego też musimy je uogólnić na wszystkie liczby całkowite. W tym celu po literze d dorzucamy znak +, który oznacza ‘’wyszukaj jedną lub wiele liczb zawartych w zbiorze 0-9’’, otrzymujemy zapis \d+-\d+ spełniający wymogi naszego uogólnienia. Tak więc w przeciwieństwie do ciągu literalnego typu 1-1, 100, abcd, FBR, wyrażenia regularne mogą w sposób abstrakcyjny przedstawić dowolny ciąg znaków.. Oto kilka typowych sytuacji w których symbole wyrażeń regularnych są często używane. - wyszukanie określonego ciągu znaków – np w tekście dotyczącym chemii organicznej odnalezienie wszystkich terminów zaczynających się przedrostkiem ortho lub w spisie plików znalezienie tych, które kończą się na .doc - zmiana tekstu w stronice Internetową - zmiana w tekście formy pewnych słów np dużo-literowych na mało-literowe lub odwrotnie - analiza prawomocności wartości przekazanej : np oczekujemy, że użytkownik wystuka na klawiaturze adres elektroniczny lub liczbę o szczególnej formie : wyrażenie regularne umożliwi wykrycie błędu - przeformatowanie ustrukturalizowanego tekstu : np bibliograficzna baza danych przedstawiona jest w formie, którą chcemy zmienić umiejscawiając datę publikacji po nazwisku autora a nie po tytule jak było dotychczas. Przedstawię teraz tzw podstawowe symbole wyrażenia regularne (BRE , Basic Regular Expression) .  kropka : odpowiada dowolnemu pojedynczemu znakowi z wyjątkiem znaku przedstawiającego koniec linii – np wyrażenie regularne b.l przedstawia zarówno słowo bal jak bol jak i każdą inną kombinacje typu bel, bil, bpl, etc [ ]  pozwala dopasować dowolny znak ze zbioru zawartego między nawiasami, wszystkie znaki występujące między nawiasami mają zwykłe znaczenie oprócz myślnika - , który jest używany do tworzenia zakresu znaków np [a-z] oznacza każdą małą literę alfabetu. Znak ^, który umiejscowiony na początku nawiasów [^ ] wyznacza negacje zbioru zdefiniowanego między nawiasami np [^0-9] oznacza wszystkie znaki oprócz 0,1,2,3,4,5,6,7,8,9 etc *  gwiazdka dopasowuje zero lub więcej wystąpień znaków poprzedzających *. Zwracamy uwagę, że gwiazdka w wyrażeniach regularnych ma inne znaczenie niż gwiazdka w generowaniu nazwy plików, w tym przypadku * oznacza dowolnie długi – także pusty – ciąg różnych znaków. W wyrażeniach regularnych dowolny ciąg dowolnych znaków zapisujemy jako .* ^  akcent w formie daszka wskazuje,że ciąg znaków występujący po nim znajduje się na początku linii. $  dolar jest przeciwieństwem ^ i wskazuje, że ciąg znaków , który go bezpośrednio poprzedza znajduje się na końcu wiersza \  neutralizuje znaczenie znaku specjalnego np \$ będzie oznaczał znak dolara $ a nie znak wyrażenia regularnego wskazującego, że ciąg znaków go poprzedzający znajduje się na końcu wiersza Interpretacja „wyrażenia regularnego’’ Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 56 Przeanalizujmy kilka wyrażeń regularnych aby lepiej zrozumieć ich działanie. Wyrażenie, które pozwala w tekście wyszukać linie białe (niezapisane) ,ma postać następującą : ^$ używamy w nim tylko znaku ^ i $, które oznaczają początek i koniec linii (wiersza).Wyrażenie wskazuje, że pomiędzy początkiem i końcem linii nie ma nic, co odpowiada linii całkowicie niezapisanej. Porównajmy teraz dwa wyrażenia regularne i spróbujmy dokładnie określić różnice zachodzące pomiędzy nimi. WR1  ^.*$ : WR2  ^.+$ W wyrażeniu WR1 na 3 pozycji znajduje się gwiazdka natomiast w wyrażaniu WR2 na tej samej pozycji znajduje się znak plus, co zmienia radykalnie zakres działania obu wyrażeń : WR1 wyszuka zarówno linie zapisane jak i niezapisane natomiast WR2 selekcjonuje tylko linie zapisane. Dlaczego? (spróbuj odpowiedzieć na to sam) Spróbujmy znaleźć znaczenie następującego wyrażenia regularnego : ^\* [0-9]*\. [0-9][0-9]\$.*$ Jak widzimy powyższe „wyrażenie regularne”, biorąc pod uwagę, że jest ono skomponowane z samych wieloznacznych symboli, może stać się całkowicie niezrozumiałe : jedyna metoda by odszyfrować (jak w podanym przykładzie) jego znaczenie polega na dekompozycji wyrażenia na mniejsze fragmenty poczynając od strony lewej i posuwając się w prawo. Postępując w ten sposób nasz przykład możemy przedstawić w następującej formie : 1 2 3 4 5 6 7 8 9 ^ \* [0-9]* \. [0-9][0-9] \$ .* $ 1. Na pierwszym miejscu ^, który oznacza, że poszukiwany ciąg znaków znajduje się na początku wiersza (linii) 2. Na drugim miejscu znajdujemy wyrażenie \*, które znaczy, że pierwszy znak z tego ciągu jest „* ” (czy wiesz dlaczego ?) 3. Na trzecim miejscu w szukanym ciągu znaków znajduje się spacja 4. Na czwartym miejscu wyrażenie [0-9]* oznacza obojętnie jaką liczbę lub jej brak 5. Na piątym miejscu znajdujemy wyrażenie \., które oznacza że piątym znakiem ciągu jest „.” 6. Na szóstym miejscu powinniśmy znaleźć liczbę dwucyfrową 7. Na siódmym miejscu wyrażenie \$ oznacz, że w tym miejscu musi koniecznie znajdować się znak monetarny dolara : „$” 8. Na ósmym miejscu znajdujemy wyrażenie, które oznacza jakakolwiek liczba znaków (może być zero) 9. Na dziewiątym miejscu znajdujemy $, który oznacza koniec linii znak ten powinniśmy rozpatrywać wspólnie z poprzedzającym go wyrażeniem .*, które jak pamiętamy oznacza : Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 57 jakąkolwiek liczbę znaków z tego wynika, że wyrażenie .*$ oznacza jakąkolwiek liczbę znaków do końca wiersza Z powyższej analizy wynika jeden bardzo ważny wniosek : wyrażenie .* można używać jako wyrażenie regularne, lecz trzeba mieć świadomość, że używane w formie wyizolowanej, jego użyteczność nie ma większego znaczenia, ponieważ odpowiada ono poszukiwaniu pustego ciągu znaków. Inaczej mówiąc poszukiwania ciągu znaków korespondującego wyrażeniu .* zanim się rozpoczną już się kończą znajdując pusty ciąg znaków Rozszerzone wyrażenia regularne +  znak plus służy do wyszukania co najmniej jednego go poprzedzającego, tak więc a+ oznacza jedna lub wiele liter a, natomiast a* wyszykuje 0 lub więcej znaków a ( )  nawiasy służą do grupowania wyrażeń regularnych n.p (bla)* pozwala znaleźć w tekście bla i blabla blablabla etc. ?  pozwala wyszukać 0 lub jedną obecność zdefiniowanego ciągu znaków. Tak więc wyrażenie (\.com)? pozwala wyszukać nazwy plików kończące się na .com, przy czym nieobecność pliku o takim zakończeniu jest dopuszczalna (0 lub…) |  pozwala wyszukiwać ciągi znaków alternatywne Przykłady : $ cat plik 123 plik służy 45 do przedstawienia 678 podstawowych założeń wyrażeń regularnych $ grep ‘sluzy$’ plik #szukamy „sluzy” na końcu linii 123 plik sluzy $ grep ‘i.*i’ plik #szukamy linii, która zawiera co najmniej dwie litery „i” 45 do przedstawienia $ grep `^[a-zA-Z]* plik #wyszykujemy linie zawierające tylko litry alfabetu wyrażeń regularnych $ sed `s/^[0-9]*//` plik #znosimy numerowanie linii plik służy Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 60 Cregcent CE Mariusz Pol 19 .54. \1\ 25 przypominam, że po wpisaniu danych naciskamy przycisk [Esc] następnie wystukujemy :, który ukazuje się w dolnym lewym rogu i wprowadzamy polecenie :wq. Plik dataplik jest utworzony i możemy go zacząć testować przy pomocy polecenia grep zawierającego lub nie zawierającego wyrażenia regularne. Przykłady : $ grep WK dataplik regwielko WK Marian Kluska 35 .98. \4\ 91 Wyjaśnienie : Na ekranie wyświetlają się linie zawierające wyrażenie regularne WK znajdujące się w pliku dataplik $ grep ‘^C’ dataplik Cregcent CE Jola Kruk 19 .74 \1\ 65 Cregcent CE Mariusz Pol 19 .54. \1\ 25 Wyjaśnienie : Na ekranie wyświetlają się wszystkie linie zaczynające się od „C” $ grep ‘4$’ dataplik Pregpod PO Zygmunt Malina 25 .45. \2\ 54 Wyjaśnienie : Na ekranie wyświetlają się linie kończące się cyfrą „4” $ grep ‘4\. ’ dataplik Cregcent CE Jola Kruk 19 .74. \1\ 65 Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85 Cregcent CE Mariusz Pol 19 .54. \1\ 25 Wyjaśnienie : Na ekranie wyświetlają się linie zawierające cyfrę „4” po której następuje kropka „.” i następnie spacja „ ” $ grep ‘\\3\\’ dataplik Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 61 Kregkato KA Jan Kowalski 23 .98. \3\ 88 Kregkato KA Piotr Pawlak 23 .98. \3\ 88 Wyjaśnienie : Na ekranie wyświetlają się linie zawierające cyfrę „3” obramowaną przez \3\ $ grep ‘^[KW]’ dataplik Kregkato KA Jan Kowalski 23 .98. \3\ 88 Kregkato KA Piotr Pawlak 23 .98. \3\ 88 Wregwielko WK Marian Kluska 35 .98. \4\ 91 Wyjaśnienie : Na ekranie wyświetlają się wszystkie linie zaczynające się o litery „K” albo „W”. $ grep ‘[A-Z][A-] [A-Z][A-Z] Kregkato KA AB Kowalski 23 .98. \3\ 88 Greggda GD DA Polak 58 .69. \9\ 87 Wyjaśnienie : Na ekranie wyświetlają się linie zawierające dwie duże litery następujące natychmiast po sobie po których występuje spacja i znów dwie duże litery następujące natychmiast po sobie. $ grep ‘ll* ‘ dataplik Cregcent CE Jola Krul 19 .74 \1\ 65 Cregcent CE Mariusz Poll 19 .54. \1\ 25 Wyjaśnienie : Na ekranie wyświetlają się linie zawierające małą literę „l” po której występuje zero lub więcej razy także mała litera „l” po której następuje spacja 9.3 Edytor sed Edytor sed czyli edytor strumienia linii jest narzędziem informatycznym używanym do wyszukiwania - wg wzorca opartego zazwyczaj na regułach zdefiniowanych w wyrażeniach regularnych – linii w pliku, do ich zmieniania wyświetlania na ekranie czy też skierowywania rezultatów manipulacji do nowego pliku . Ogólny wzorzec polecenia sed wygląda następująco : sed opcja ‘wyszukiwany wzorzec’ nazwa_pliku Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 62 sed posiada następujące funkcje, których zastosowanie przetestujemy w ćwiczeniach : Opcje -e wielokrotne wyświetlanie linii -n nie wyświetla na ekranie linii, które nie były zmodyfikowane -f ,plika> plik plika zawiera program z wyrażeniami sed Znaki specjalne używane przez edytor sed ^ wyszukuje linie zaczynające się od wyrazu poprzedzonego tym znakiem n.p ^love wyświetla wszystkie linie w pliku, które na początku maja love $ wyszukuje linie kończące sie wyrazem zakończonym tym znakiem np love$ wyświetla wszystkie linie w pliku, które na końcu mają love . wyszukuje linie z jednym znakiem np /l..e/ wyszukuje linie zawierające l po Nim dwa obojętnie jakie znaki zakończone znakiem e * wyszukuje zero lub więcej linii poszukiwanego ciągu znaków / *love/ wyszukuje linie z Zerem lub więcej spacji po której następuje słowo love [] wyszukuje jeden znak w danym zbiorze n.p /[Ll]ove/ wyszukuje linie, które zawierają Słowo love lub Love [^ ] wyszukuje jeden znak nie zawarty w zbiorze n.p /[^A-KM-Z]ove/ wyszukuje linie nie Zawierające zbioru od A do Z lub od M do i zakończone ove Funkcje s zmiana jednego ciągu znaków na inny n.p $ sed ‘s/root/adm/g’ /etc/passwd zmiana w pliku /etc/passwd słowa “root” na „adm” d usuwanie linii c zmiana tekstu w danej linii na nowy tekst a dorzucenie nowych linii p wyświetlenie wszystkich linii zawartych w pliku g dotyczy całości pliku Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 65 Greggda GD DA Polak 58 .69. \9\ 87 Cregcent CE Mariusz Poll 19 .54. Wyjaśnienie : usunięcie linii zawierających ciąg znaków KA $ sed ‘2,3d’ dataplik Kregkato KA AB Kowalski 23 .98. \3\ 88 Cregcent CE Jola Krul 19 .74 \1\ 65 Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85 Pregpod PO Zygmunt Malina 25 .45. \2\ 54 Wregwielko WK Marian Kluska 35 .98. \4\ 91 Greggda GD DA Polak 58 .69. \9\ 87 Cregcent CE Mariusz Poll 19 .54. \1\ 25 Wyjaśnienie : usunięcie 2 i 3 linii $ sed ‘s/KA/KT/’ dataplik Kregkato KT AB Kowalski 23 .98. \3\ 88 Kregkato KA Piotr Pawlak 23 .98. \3\ 88 Pregpod PO Krzysztof Wrak 25 .45. \2\ 77 Cregcent CE Jola Krul 19 .74 \1\ 65 Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85 Pregpod PO Zygmunt Malina 25 .45. \2\ 54 Wregwielko WK Marian Kluska 35 .98. \4\ 91 Greggda GD DA Polak 58 .69. \9\ 87 Cregcent CE Mariusz Poll 19 .54. \1\ 25 Wyjaśnienie : zmiana ciągu znaków KA na KT ale tylko w pierwszej napotkanej sekwencji Czy wiesz jaką opcje trzeba dorzucić by w linii drugiej też dokonać analogicznej zmiany ? $ sed ‘s/KA/KT/g’ dataplik Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 66 Kregkato KT AB Kowalski 23 .98. \3\ 88 Kregkato KT Piotr Pawlak 23 .98. \3\ 88 Pregpod PO Krzysztof Wrak 25 .45. \2\ 77 Cregcent CE Jola Krul 19 .74 \1\ 65 Mregmazu MA Urszula Kropiuk 14 .54. \5\ 85 Pregpod PO Zygmunt Malina 25 .45. \2\ 54 Wregwielko WK Marian Kluska 35 .98. \4\ 91 Greggda GD DA Polak 58 .69. \9\ 87 Cregcent CE Mariusz Poll 19 .54. \1\ 25 Wyjaśnienie : właśnie opcje „g” $ -n ‘s/^Cre/Ine/p’ dataplik Inegcent CE Jola Krul 19 .74 \1\ 65 Inegcent CE Mariusz Poll 19 .54. \1\ 25 Wyjaśnienie : jak pamiętamy opcja –n oznacza wyświetlenie tylko linii zmodyfikowanych, w Tym wypadku tych w zamieniono ciąg znaków Cre na Ine $ sed ‘/Kowalski/,/Kropiuk/d’ dataplik Pregpod PO Zygmunt Malina 25 .45. \2\ 54 Wregwielko WK Marian Kluska 35 .98. \4\ 91 Greggda GD DA Polak 58 .69. \9\ 87 Cregcent CE Mariusz Poll 19 .54. \1\ 25 Wyjaśnienie : usunięcie linii od linii zawierającej ciąg znaków Kowalski do linii zawierającej ciąg znaków Kropiuk $ sed -n ‘/^Pre/p’ dataplik Pregpod PO Krzysztof Wrak 25 .45. \2\ 77 Pregpod PO Zygmunt Malina 25 .45. \2\ 54 Wyjaśnienie : wyświetlamy tylko linie zawierające na początku ciąg znaków Pre $ sed -n ‘s/Krul/Wrak/gp’ dataplik Cregcent CE Jola Wrak 19 .74 \1\ 65 Autor : Piotr Piętak Linux jjjj-07-tt GR PiS ds. informatyzacji Podstawy używania systemu strona 67 Wyjaśnienie : wyświetlamy tylko linię gdzie dokonano zamiany ciągu znaków Krul na Wrak Reszta przykładów jest bardziej skomplikowana musisz wiedzieć, że wyrażenie \(…)\ numerowanie ciągu znaków, które chcesz zamienić. Spróbuj rozszyfrować poniższe przykłady $ sed -n ‘s/\Pa\)wlak/\liwoda/p’ datafile Kregkato KA Piotr Paliwoda 23 .98. \3\ 88 Wyjaśnienie : $ sed ‘/Kowalski/,/Kropiuk/d’ dataplik Pregpod PO Zygmunt Malina 25 .45. \2\ 54 Wregwielko WK Marian Kluska 35 .98. \4\ 91 Greggda GD DA Polak 58 .69. \9\ 87 Cregcent CE Mariusz Poll 19 .54. \1\ 25 Wyjaśnienie : $ sed ‘s/\\[0-9]\\/\*[0-9]\*/p’ dataplik Kregkato KA AB Kowalski 23 .98. *3* 88 Kregkato KA Piotr Pawlak 23 .98. *3* 88 Pregpod PO Krzysztof Wrak 25 .45. *2* 77 Cregcent CE Jola Krul 19 .74 *1* 65 Mregmazu MA Urszula Kropiuk 14 .54. *5* 85 Pregpod PO Zygmunt Malina 25 .45. *2* 54 Wregwielko WK Marian Kluska 35 .98. *4* 91 Greggda GD DA Polak 58 .69. *9* 87 Cregcent CE Mariusz Poll 19 .54. *1* 25 Wyjaśnienie : $ sed ‘/Kato/,/pod/s/$/@@/’ dataplik Kregkato KA AB Kowalski 23 .98. \3\ 88@@ Kregkato KA Piotr Pawlak 23 .98. \3\ 88@@ Pregpod PO Krzysztof Wrak 25 .45. \2\ 77@@ Nazwa symbol Imie i nazwisko Liczba wykonanie liczba liczba
Docsity logo


Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved