linux podstawy JO2K455FRRRG2WQTZUB3PF4UX2W4PQ5TCPG6KCQ

background image

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

background image

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”

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 3

(operacja w tle/operacja pierwszoplanowa)
7.3 Polecenia
7.3.1 polecenie - ps
7.3.2 polecenie - kill
7.3.3 polecenie - jobs

7.4 Zarządzanie „pracami’’
7.5 Ćwiczenia

Rozdział 8 : Wyrażenia regularne
8.1 Polecenie find

8.2 Polecenie grep z wyrażeniami regularnymi
8.3 edytor sed

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 4

Rozdział 1 : Wprowadzenie

We Francji, Meksyku, Anglii, Peru nauczyciele, uczniowie i ich rodzice, wspólnie zastanawiają się i
próbują rozwiązać jeden z podstawowych dylematów społeczeństwa informacyjnego: jak uczyć
informatyki wiedząc, że narzędzia informatyczne aktualnie używane mogą – biorąc pod uwagę
błyskawiczne tempo zmian technologicznych – być bezużyteczne po skończeniu szkoły przez
dzisiejszych licealistów? Czy w takim razie uczyć raczej obsługiwania oprogramowań, czy zrozumienia
jak one działają? Czy w procesie nauczania korzystać z narzędzi informatycznych firmy Microsoft które
dostarczane są użytkownikowi w formie uniemożliwiającej ich przeczytanie i zrozumienie? Pytań jest
wiele i – co warto podkreślić- niektóre państwa udzieliły na nie już odpowiedzi. W 1997 r. rząd
meksykański wprowadza radykalną reformę systemu nauczania informatyki instalując w 140 000 szkół
system operacyjny Linux, który – w przeciwieństwie do narzędzi firmy Microsoft – umożliwia czytanie
i zrozumienie oprogramowań z których jest zbudowany
. Finlandia, której radykalna reforma
ekonomiczna sprzed kilku lat, polegała głownie na całkowitym zreorganizowaniu systemu edukacji w
szczególności systemu nauczania informatyki. Efekty są znane. Boom gospodarczy. Francja w której
liczne asocjacje skupiające rodziców licealistów i wybitnych informatyków wymusiły na
wszechpotężnym Ministerstwie Edukacji Narodowej wprowadzenie do szkół nauki Linuxa. A Polska?

Dwa kroki do tyłu
W 2002 PWN wydał podręcznik do przedmiotu – technologia informacyjna – przeznaczony dla
uczniów liceów ogólnokształcących. Podręcznik ‘’Technologia Informacyjna’’ jest znakomity, obiema
rękoma podpisuje się pod stwierdzeniami reklamującymi książkę: ‘’prosty, przystępny język, itd ’’ tylko
jego tytuł powinien brzmieć ‘’Technologia Informacyjna Windowsa’’. Przyznają to zresztą sami autorzy
pisząc na str 11 ‘’W podręczniku, omawiając konkretne bloki tematyczne, wykorzystano głównie
platformę systemową Windows’’. Znajduje się w nim także krótki 10-stronicowy rozdział poświęcony
Linuxowi, na którego poznanie autorzy proponują poświęcić 3 godziny dodając:’’…poznanie systemu
Linux jest bez wątpienia pożyteczne, jednak nie ma kluczowego znaczenia dla osiągnięcia celów
zawartych w podstawie programowej przedmiotu technologia informacyjna’’. Dlaczego? Dlatego, że
system Linux umożliwia zrozumienie działania narzędzi informatycznych, natomiast celem przedmiotu
technologia informacyjna jest nauka ich obsługiwania. Czy jest jednak możliwe w informatyce
automatyczne oddzielenie wiedzy od umiejętności ?
Podam dwie definicje Internetu: pierwsza jest umieszczona w podręczniku na str 79 : cytuje ‘’…Ważne,
żebyś rozumiał, że istotą Internetu stanowi infrastruktura sieciowa, /../ oraz zbiór zasad normujących
jego działanie’’ i porównajmy ją z określeniem Internetu jakie znajdujemy w książce S.Lema pt.
‘’Tajemnica chińskiego pokoju’’ : ‘’Dopiero niedawno dowiedziałem się, że zaczątek Internetu jako
sieci komputerowej bez ośrodkowej, czyli takim sposobem rozgałęzionej, że nie posiada ona
żadnego centrum
wymyślili fachowcy Pentagonu..’’. Wybitny pisarz w krótkim zdaniu, przedstawił
podstawową zasadę funkcjonowania cyberprzestrzeni. Natomiast z definicji umieszczonej w
podręczniku informatyki nie dowiadujemy się w nic, bo cóż to znaczy, że ‘’istotą Internetu stanowi
infrastruktura sieciowa’’, określenie to, przypomina sławne marksistowskie ‘’istota człowieka to
całokształt stosunków społecznych’’ i dziwić się należy, że autorzy konstruują definicje używając pojęć

background image

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

background image

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ść.

background image

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.

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 8

Przykłady zastosowania

$ uname
Linux

$ uname –a

Linux goubet 1.2.1 #3 Sun Mar. 19 12:19:15 CST 1995 I 486

$ who

root tty2 May 15 15:41
piotr tty1 May 15 15:14

$ who am i

piotr tty1 May 15 15:14

$ date

Fri May 9 15:36 GMT-0100 2001

$ cal 8 1953
August 1953
S M Tu W TH F S
1
2 3 4 5 6 7 8
9 1 0 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

$ passwd

Old passwd :
New passwd :
Reenter password :

Linux, w przeciwieństwie do DOS-a, rozróżnia małe i duże litery, dlatego też w wielu sytuacjach może
nie być obojętne, czy naciskając konkretny klawisz wprowadzamy kod małej, czy dużej litery. Np zapisy
„a” i „A” oznaczają fizyczne ten sam klawisz na klawiaturze (chociaż by uzyskać na ekranie „A”
musimy wystukać tą literę przyciskając jednocześnie klawisz z napisem „Shift”). Zapis „a” ma wartość
w kodzie ASCII = 97 natomiast zapis „A” ma w tym samym kodzie równowartość 65.

2.3 Użycie klawiatury

Użycie klawiatury komputera jest proste i (z nielicznymi wyjątkami) dość klasyczne :

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 9

Klawisz [Enter] zatwierdza wykonanie polecenia

Kombinacja – czyli jednoczesne nawiśnięcia klawisza [Ctrl] i [c] przerywa wykonanie
Polecenia

Kombinacja [Ctrl] i [d] kończy wystukiwanie danych, kiedy używamy takich poleceń jak
write które zmuszają użytkownika do wystukiwania danych na ekranie.

Kombinacja [Ctrl] i [s] przerywa wyświetlanie listingu na ekranie

Kombinacja [Ctrl] i [q] umożliwia kontynuowanie wyświetlania listingu na ekranie

Kombinacja [Ctrl] i [z] przerywa egzekucje polecenia

Kombinacja [Ctrl] i [u] wymazuje linię poleceń, którą właśnie zapełniamy

2.5 Ćwiczenia

Ćwiczenie 1.

Wyświetl na ekranie kalendarz roku 1997.

Ćwiczenie 2.

Wyświetl kalendarz miesiąca września z roku 1752 i użyj polecenia „man” do objaśnienia informacji
otrzymanych na ekranie.

Ćwiczenie 3.

Wyświetl date w formie dd-mm-rr (przykład : 05-02-95)

Ćwiczenie 4.

Objaśnij funkcje polecenie „touch”.

Ćwiczenie 5.

Przed rozpoczęciem następnego rozdziału opuść system, a następnie zaloguj się powtórnie

background image

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

background image

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

background image

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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 13

$ ls –a

- zobaczyć czy nazwa pliku nie zawiera tzw „znaku kontroli”

$ cat plik

cat : cannot open plik

$ ls -b p*

p\030lik f45 f451 f847

- wyświetlenie całości drzewa katalogowego

$ ls -R systeme

- wyświetlenie cech katalogu /home

$ ls -ld /home

Kopia pliku – jego zniszczenie – zmiana nazwy pliku.

Polecenie cp stosuje się do skopiowania pliku do pliku o innej nazwie lub w inne miejsce, a także do
skopiowania wielu plików do katalogu.

Polecenie rm służy do usuwania plików i katalogów

Polecenie mv służy do zmiany nazwy lub przeniesienia pliku (plików)

Przykłady :

$ ls -l f*

-rw-r--r-- 1 piotr sers 52 Maj 12 2002 17:41 fin1

(wyświetlenie plików, których nazwy zaczynają się od litery „f”)

$ cp fin1 fin2 (utworzenie pliku fin2

 czyli skopiowanie pliku fin1 do pliku fin2)

$ cp /etc/passwd fin2

$ ls -l f*

-rw-r--r-- 1 piotr users 52 Maj 12 2002 17:41 fin1
-rw-r--r-- 1 piotr users 692 Maj 12 2002 17:58 fin2

$ cp -i fin1 fin2

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 14

cp : overwrite ‘f2’ ?y

 ,,y’’ oznacz ,,tak’’ to znaczy, że zamieniliśmy zawartość pliku fin2, który

znowu jest identyczny z plikiem fin1

$ chmod a=r fin2

polecenie chmod patrz Aneks lub rozdział 3

$ ls -l f*

-rw-r--r-- 1 piotr users 52 Maj 12 2002 17:41 fin1
-r--r--r-- 1 piotr users 52 Maj 12 2002 17:41 fin2
(czy widzisz zmianę w definicji plików fin1 fin2 ? jeśli tak to jaki ?)

$ cp fin1 fin2
cp : cannot cerat regular file ,,fin2’’ : Permission denied
(nie można zmienić pliku protegowanego)

$ cp -f fin1 fin2

Polecenie cat


Polecenie cat (catenate) umożliwia wyświetlenie zawartości pliku na ekranie. Może być także użyte
do złączenia (konkatenacji) wielu plików.

Polecenie file

Polecenie file wyświetla typ zawartości pliku.

Przykłady :

$ file /etc/passwd
/etc/passwd : ascii text

$ file /usr/bin
/usr/bin: directory

$ file /usr/bin/banner
/usr/bin/banner: i386 executable

3.1 Polecenia do zarządzania katalogami

* pwd

 wyświetla katalog (bieżącego) w którym aktualnie pracujemy

* cd

 służy do przemieszczania się w drzewie katalogów

* ls

 wyświetla zawartość katalogu

* ls -R

 wyświetla pliki drzewa katalogowego

* mkdir

 tworzy katalog

background image

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

background image

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.

background image

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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 18

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 19

Rozdział 4 : Bash

Po zalogowaniu się każdy użytkownik współpracuje z systemem operacyjnym przy pomocy poleceń,
które zanim zostaną wyegzekwowane są interpretowane przez tzw interpretator poleceń, który w
wypadku Linuxa nazywa się bash. Interpreter poleceń jest pośrednikiem (nazwa informatyczna interfejs)
między użytkownikiem i systemem operacyjnym i jego rolą jest tłumaczenie poleceń wystukiwanych
przez użytkownika tak aby system operacyjny je zrozumiał. Bash posiada do swojej dyspozycji język
programowania, którego zasady będziemy stopniowo poznawali i który różni się zasadniczo od
klasycznych języków informatycznych takich jak Pascal, Java czy C++. Na czym ta różnica polega ?
Fazy powstawania program informatycznego pisanego w klasycznych językach programowania
(wymienionych powyżej) można przedstawić w następujący sposób :

Algorytm jest precyzyjnym opisem operacji, które tworzą program, pisany jest
w języku macierzystym twórcy programu np polskim, francuskim ,
algorytm można porównać do scenariusza lub treści książki
Kod źródłowy jest zapisem algorytmu w języku zrozumiałym przez komputer, kod
źródłowy jest formą w jakiej wyrażono algorytm
kompilacja jest automatycznym tłumaczeniem kodu źródłowego na język macierzysty
komputera który składa się tylko z dwóch znaków : 0 i 1, tylko program
skompilowany może być egzekwowany system operacyjny
Dekompilacja polega na odtworzeniu kodu źródłowego – lub algorytmu – na
podstawie kodu bitowego

W bashu mamy do czynienia tylko z dwoma fazami :

1. Pisanie algorytmu

(1) Pisanie kodu źródłowego

Czyli program pisany w bashu nie podlega fazie kompilacji i dlatego bash nazywamy interpretowalnym
językiem programowania. Programy napisane w bashu nazywamy skryptami. W tym momencie
naszego wykładu wprowadzimy – centralne do zrozumieniu funkcjonowania systemu Linux – pojęcie
procesu. Proces powstaje w momencie egzekucji programu (ale nie każdego o czym ponżej). Powstanie
procesu odpowiada egzekucji pliku umieszczonego w pamieci centralnej. Każdy użytkownik w
momencie logowania się do systemu prowokuje powstanie procesu. Ten proces, zdefiniowany w pliku /
etc/passwd, jest interpreterem poleceń basha.
Każdy proces ma przypisany numer, nazywany PID (Process Identifier). Proces interpretera poleceń
będąc wylansowany w momencie zalogowania się użytkownika umożliwia wykonywanie innych
poleceń. W tym wypadku, proces odpowiadający egzekucji polecenia X nazywamy procesem syna,
natomiast proces interpretatora poleceń, procesem rodzicielskim.

Polecenia w Linuksie dzielą sie na:

1. polecenia wewnętrzne, które są częścia integralną basha: egzekucja polecenie wewnętrzne nie
prowokuje powstania procesu w pamięci komputera

background image

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

background image

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 : $ \

background image

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).

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 23

>> plik_k

 w tym wypadku wyjście standardowe zostanie dołączone do plik_k jeśli on już istniał.

< plik_k

 wejściem standardowym nie będzie klawiatura, tylko plik_k

2> plik_k

 wyjście standardowe błędów będzie skierowane do pliku_k. Jeśli plik wcześniej nie istniał

to zostanie utworzony. Jeśli istniał jego zawartość zostanie wymazana .

2>> plik_k

 jeśli plik_k istniał to jego zawartość nie będzie wymazana

2>&1 skierowuje wyjście standardowe błędów do tego samego pliku co wyjście standardowe

Przykłady :

$ ls > tymczasowy #zapisanie listy plików katalogu bieżącego do pliku „tymczasowy”

$ ls >> plikb # dopisanie do pliku plikb listy plików z katalogu bieżącego

$ echo =================== > rezultat

$ date >> rezultat

$ echo =================== > rezultat

#plik „rezultat’’ będzie zawierał następujące informacje

$ cat rezultat

===================

Sun May 15 22:41:48 GMT-0200 2001
===================

4.4

Potoki

Potok jest ciągiem poleceń prostych lub złożonych, które są odseparowane od siebie przez znak |.
Rezultat każdego polecenia – z wyjątkiem ostatniego – jest traktowane przez polecenie następne, jako
jego standardowe wejście. Innymi słowy - potok – jest mechanizmem komunikacji pomiędzy
różnymi poleceniami, który im pozwala wymieniać między sobą dane.
Prześledźmy funkcjonowanie
mechanizmu potoków na konkretnych przykładach.

Wykonajmy następujące polecenie :

$ ls -l /home

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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 24

Rezultatem egzekucji polecenia - ls -l - jest lista zarówno plików jak katalogów, otóż chcielibyśmy
wiedzieć ile ich jest ? Zastosowanie mechanizmu potoków umożliwi nam ich policzenie. Wiemy, że
powyższa lista jest wejściem standardowym następnego polecenia, które wykona stosowne obliczenie.
Tym poleceniem – jak by może pamiętacie – jest : wc -l . Tak więc by policzyć pliki katalogu
domowego musimy wykonać następujące polecenie „potok” :

$ ls - l | wc -l

5

Wyobraźmy sobie teraz, że chcemy wyświetlić na ekranie wszystkie pliki zawarte w katalogu /usr,
podejrzewamy (dlaczego ?), że może być ich dużo. Co zrobić by ich lista nie „przedefilowała”, bez
zatrzymania na ekranie co uniemożliwiłoby nam spokojne jej odczytanie. Otóż w tym wypadku też
możemy zastosować mechanizm potoku :

$ ls –l /usr | more #jak inaczej możemy obejrzeć w/w listę stronicę po stronicy ?

Jak zapewne zauważyliście na ekranie wyświetlany jest tylko rezultat końcowy „potoku”, dane pośrednie
np rezultat polecenia : ls –l z „potoku” : ls -l | wc -l , giną. Czy nie ma żadnego sposobu ich
zapisania np w jakimś oddzielnym pliku ? Mechanizm zapisywania w plikach rezultatów
poszczególnych poleceń wchodzących w skład „potoku” uzyskujemy przy pomocy polecenia : tee
nazwa_pliku
.
Jeśli chcemy zapisać rezultat polecenia : ls -l to nasz potok przybierze formę następującą :

$ ls -l | tee plikb | wc -l

Mechanizm zapisywania w plikach rezultatów poszczególnych poleceń wchodzących w skład
„potoku” nazywamy rozgałęzieniem „potoku”.

Rezultat „potoku” może być uzyskany także przy pomocy odpowiednich skierowań :

Skierowanie do pliku Użycie „potoku”

$ polecenie1 > plik1
polecenie1 | polecenie2
$ polecenie2 < plik1

$ rm plik1

$ polecenie1 > plik_a

$ polecenie2 < plik_a > plik_b polecenie1 | polecenie2 | polecenie3

$ polecenie3 < plik_b

background image

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 :

background image

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

background image

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.

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 28

Rozdział 5 : Prawa

Po przestudiowaniu tego rozdziału, czytelnik powinien umieć rozpoznawać i modyfikować uprawnienia
wszystkich rodzajów plików oraz definiować prawa automatycznie. Szczególną uwagę poświęcimy
prawom katalogów. W rozdziale tłumaczymy także zarządzanie grupami użytkowników.

5

.1 Zarządzanie prawami


System Linux jest systemem wielodostępnym w którym dostęp do plików jest regulowany przez
prawa

Polecenia umożliwiające zarządzaniem uprawnieniami plików, katalogów, użytkowników :

ls -l

: wyświetla praw plików

chmod

: umożliwia zmienienie praw przydzielonych plikowi

umask

: automatyczne przydzielanie uprawnień

chgrp

:

id

: wyświetla identyfikacje użytkownika

su

: umożliwia zmianę identyfikacji użytkownika

newgrp

: umożliwia zmienienie grupy użytkownikowi

5.2 Poznanie atrybutów pliku (ls –l)

$ ls -l plika

(1)

-rwx|r-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 (8)
!!!!!!!!!!!!!!!! liczba łączy (3)
!!!!!!!!!!!! prawa (2)
! typ pliku „-” kreska oznacza plik normalny „d” plik jest katalogiem. (1)

a b c
(1
) -|rwx|r-x|---

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 29

a

prawa właściciela pliku

b

prawa grupy do której należy właściciel

c

prawa reszty użytkowników systemu

Jak widzimy aby kontrolować dostęp do plików, Linux dzieli użytkowników systemu na trzy kategorie :

6. właścicieli plików
7. członków grupy do której należy właściciel grupy
8. innych użytkowników systemu

Każda kategoria użytkowników dysponuje trzema prawami :

9. prawem lektury („read”), które umożliwia czytanie pliku, prawo te umożliwia np. wykonanie

kopi pliku

10. prawem pisania („write”), które umożliwia modyfikacje pliku
11. prawem egzekucji pliku („execute”)które umożliwia traktowanie pliku jako polecenia (lub jego

zbioru). Prawo to ma sens tylko dla skryptów i programów.

5. 3 Modyfikacja praw pliku (1)

Polecenie chmod umożliwia właścicielowi pliku lub administratorowi systemu zmienić uprawnienia
pliku. Jego forma jest następująca

$ chmod u-w plik1

Ciąg znaków u-w symbolizuje zmianę praw pliku , na pierwszym miejscu (w naszym przykładzie „u”)
określa się kto ma prawo korzystać z pliku, dysponujemy następującymi symbolami

u

 symbolizuje właściciela pliku

g

 symbolizuje grupę do której plik jest przypisany

o

 reszta użytkowników systemu

a

 symbol ten oznacz : wszystkich  u+g+o

Na drugim miejscu umieszcza się symbole zmiany praw :

+

 dorzucamy prawo

-

 likwidujemy prawo

=

 przypisujemy prawo

Na trzecim miejscu umieszczamy symbole, czego dotyczy prawo :

r

 prawo czytania pliku


w

 prawo modyfikacji pliku

background image

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

background image

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

background image

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³ + 2² + 2¹ + 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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 33

Podsumujmy :

Potęga 2 1 0

2 1 0 2 1 0

1 1 0 | 1 1 1| 0 0 1 = 671

1 1 0

1 4 + 2 + 0 = 6

1 1 1

4 +2+ 1 = 7

0 0 1

0 + 0+1 = 1

System dziesiętny

system binarny

system octal

system hexa

0

0

0 0

1

1

1 1

2

10

2 2

3

11

3 3

4

100

4 4

5

101

5 5

6

110 6 6

7

111

7 7

8

1000

10 8

9

1001

11 9

10

1010

12 A

11

1011

13 B

12

1100

14 C

13

1101

15 D

14

1110

16 E

15

1111

17 F

16

10000

20 10

5.5 Prawa katalogów

$ ls –ld katalog

drwxr-x--- 1 piotr grupa 265 czerwiec 20 14:00 katalog

r

prawo lektury plików zawartych w katalogu

w

prawo tworzenia i usuwania plików w katalogu

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 34

x

prawo dostępu do plików w katalogu

Mechanizm lektury i nadawania praw katalogowi jest analogiczny do tego, który używamy w

stosunku do plików. Jednak prawa katalogów interpretujemy inaczej i zrozumienie tego jest
konieczne do odczytywania, usuwania i tworzenia plików, które katalog zawiera.

4 Prawo lektury katalogu pozwala poznać listę plików, które katalog zawiera, przy pomocy

polecenia ls możemy (posiadając to prawo) wyświetlić pliki na ekranie.

5 Prawo egzekucji pozwala na uzyskanie dostępu do plików zawartych w katalogu

6 Prawo tworzenia plików – ma sens tylko wtedy gdy posiadamy jednocześnie prawo dostępu do

plików (czy możesz wytłumaczyć dlaczego ?) . Prawo to umożliwia usuwanie starych i tworzenie
nowych plików

Możemy wyróżnić następujące kombinacje praw które może posiadać użytkownik

*

rwx

 użytkownik posiada wszystkie prawa

*

r-x

 użytkownik ma prawo dostępu do plików katalogu

*

---

 użytkownik nie ma żadnych praw

* --x

 użytkownik posiada prawo dostępu do plików, których nazwy zna

Przypomnijmy teraz podstawowe polecenia używane do zarządzania katalogami :

mkdir (make direktory ) – przy pomocy tego polecenia tworzymy katalogi.

Załóżmy, ze znajdujemy się w katalogu domowym /home/piotr

$ mkdir katalog1 katalog2 (utworzyliśmy katalogi, które znajdują się w katalogu
Domowym)

Chcemy teraz utworzyć w katalogu - katalog1 - podkatalog o nazwie cwiczenia, ale nadal
Będąc w katalogu domowym

$ mkdir katalog1/cwiczenia

Czy wiesz jak można to zrobić inaczej ?

rmdir (remove direktory) - przy pomocy tego polecenia usuwamy katalogi

Załóżmy, że chcemy usunąć katalog o nazwie katalog2 , który przed chwilą utworzyliśmy

$ rmdir katalog1 katalog2

 po egzekucji tego polecenia otrzymamy na ekranie następujący

napis

$ rmdir: katalog1: Directory not empty

 czyli polecenie rmdir usunęło tylko katalog2

Pusty

background image

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

background image

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

background image

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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 38

-r-xr-x—x 2 ola personel 452460 maj 25 2002 /home/ola/prog.sh
Kto może wyegzekwować ten program ?

Ćwiczenie 5.

Polecenie ls -ld /home/piotr wyświetla na ekranie :
drwxrwxr-x 2 piotr konto 512 maj 15 2002 /home/piotr
Jacy użytkownicy mają uprawnienia do tworzenia lub wymazywania plików w tym katalogu ?

Ćwiczenie 6.

Czy Piotr ma prawo wymazać ze swego katalogu domowego plik, który posiada następujące atrybuty :
-r--------- 2 ola konto 2416 Maj 2 2002 plik.txt

Ćwiczenie 7.

Utwórz katalog o nazwie „prywatne” w ten sposób by inni użytkownicy, należący do tej samej grupy, nie
mieli do niego dostępu

Ćwiczenie 8.

Wykonaj polecenie, które umożliwi użytkownikom z twojej grupy „czytanie” katalogu „prywatne”.

Ćwiczenie 9.

Czy możesz zmienić nazwę swego katalogu domowego ? dlaczego ?

Ćwiczenie 10.

Jaką wartość oktalną użyć by w momencie nadawania praw otrzymać :
drwxr-x--- dla katalogu
-rw-r----- dla pliku

Ćwiczenie 11.

Podłącz się do grupy „bin”. Wytłumacz rezultat polecenia.

Ćwiczenie 12.

Katalog „prywatne” posiada następujące atrybuty :
$ ls -ld prywatne
drwxr-x--- 2 piotr konta 1024 czerwiec 20 10:35 prywatne
Wykonaj polecenie, które dołącza grupę „zaliczka” (której jesteś członkiem) do katalogu „prywatne”

Ćwiczenie 13.

Czy Piotr może zmienić grupę pliku plik.txt, który się znajduje w jego katalogu domowym ?
$ ls -l plik.txt
-r-------- 2 ola konto 2416 Maj 10 2002 plik.txt

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 39

Ćwiczenie 14.

Jakich informacji dostarczają następujące polecenia :
$ who am i
$ id

Ćwiczenie 15.

Sprawdź czy w twoim systemie możesz pisać na ekranie operatora „/dev/console”

background image

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

g

rep

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

background image

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


background image

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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 43

Liście dębu i czereśni

Szczekają jak mandolina

Uwiązali na łańcuchu

Za to ździerze-mgle na uchu

Dynda miesiąc – kolczyk złoty

Opcja -l jest użyteczna kiedy poszukujemy ciągu znaków w wielu plikach.

6.3 Polecenie cut

$ cut –f1,3 -d’,’

1,un,one,ein

1,one

2,deux,two,zwei

2,two

3,trois,three,drei

3,three

4,quatre,four,vier

4,four

5,cinq,five,funf

 cut 

5,five

6,six,six,sechs

6,six

7,sept,seven,sieben

7,seven

8,huit,eight,acht

8,eight

9,neuf,nine,neun

9,nine

10,dix,ten,zen

10,ten

Polecenie cut

6.4 Polecenie sort

$

sort +3 –t’,’ liczba

1,un,one,ein

8

, huit,eight,acht

2,deux,two,zwei

3,trois,three,drei

3,trois,three,drei

1,un,one,ein

4,quatre,four,vier

5,cinq,five,funf

5,cinq,five,funf

 sort 

9,neuf,nine,neun

6,six,six,sechs

6,six,six,sechs

7,sept,seven,sieben

7,sept,seven,sieben

8,huit,eight,acht

4,quatre,four,vier

9,neuf,nine,neun

10,dix,ten,zen

10,dix,ten,zen

2,deux,two,zwei

Przykłady :

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 44

$ cat liczba

2,deux,two,zwei
8,huit,eight,acht
3,trois,three,drei
4,quatre,four,vier
1,un,one,ein
5,cinq,five,funf
10,dix,ten,zen
6,six,six,sechs
7,sept,seven,sieben
8,huit,eight,acht
9,neuf,nine,neun

$ sort liczba

1,un,one,ein

10,dix,ten,zen
2,deux,two,zwei
3,trois,three,drei
4,quatre,four,vier
5,cinq,five,funf
6,six,six,sechs
7,sept,seven,sieben
8,huit,eight,acht
9,neuf,nine,neun

$ sort –n liczba

1,un,one,ein

2,deux,two,zwei
3,trois,three,drei
4,quatre,four,vier
5,cinq,five,funf
6,six,six,sechs
7,sept,seven,sieben
8,huit,eight,acht
9,neuf,nine,neun
10,dix,ten,zen

$ sort -t’,’ +3 liczba

8

,

8,huit,eight,acht
3,trois,three,drei

background image

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.

background image

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 ?

background image

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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 48

Czy widzisz różnice ? 1, 2, 3 znak wyświetlonej informacji pozostają bez zmiany, natomiast czwarty
zmienia się z „-” na „x”. Oznacza to, że skrypt1 jest plikiem wykonywalnym przez jego właściciela.
Reszta wyświetlonej informacji pozostaje bez bez zmian co oznacz, że członkowie grupy oraz inni
użytkownicy nie mają prawa wykonywać tego skryptu. Pytanie : w jaki inny sposób możesz przypisać
prawa wykonywania pliku tylko przez jego właściciela ?

7 Po wykonaniu polecenia z punktu 2, nasz skrypt może być wyegzekwowany jako polecenie skrypt1.

# skrypt1

7.1.1 Przekazywanie parametrów do skryptu

Utwórzmy plik o nazwie katalog1, który będzie zawierał tylko jedno polecenie :

# vi katalog1

#!/bin/bash_

ls -aCF
~
~
~
~
~

Następnie nadajmy wszystkim użytkownikom prawo do jego wykonywania :

# chmod a+x katalog1

W tym momencie skrypt katalog1 możemy wyegzekwować, wiemy jednak, że lista plików i
podkatalogów wyświetlona na ekranie dotyczyłaby tylko katalogu bieżącego. Co możemy zrobić by
otrzymać listę plików z innych katalogów bez każdorazowego poprawiania skryptu katalog1 ? Aby
zautomatyzować (przynajmniej częściowo) wyświetlanie plików w różnych katalogach, zastosujemy
mechanizm przekazywania parametrów do skryptu. Jak pamiętamy polecenie w linuksie składa się z
samego polecenia np. ls , opcji np. –l i argumentów n.p /usr. Zarówno opcje jak argumenty
możemy nazwać parametrami. Nazwa skryptu jest też poleceniem, któremu możemy przekazać
parametry, z tym że parametry przekazywane do skryptu przypisywane są zmiennym, które oznaczamy
jako $1, S2……S9. $1 odpowiada pierwszemu argumentowi polecenia, $2 drugiemu itd. Co to w
praktyce oznacza ? Przypuśćmy, że chcemy wyświetlić na ekranie – egzekwując skrypt katalog1 –
zawartość katalogu /tmp, w tym celu wykonamy następujące polecenie :

# katalog1 /tmp

Jest to wartość, którą przyjmuje zmienna $1 (pierwszy argument

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 49

polecenia katalog1), z czego wynika, że nasz skrypt musimy zmienić

w następujący sposób :

#!/bin/bash_

ls -aCF $1
~
~
~
~
~

$1 przybiera zawsze wartość pierwszego argumentu polecenia w tym
wypadku /tmp, jeżeli chcielibyśmy obejrzeć zawartość katalogu /usr

to musimy wykonać polecenie

# katalog1 /usr

$1 przybierze w tym wypadku wartość /usr

Dodajmy, że istnieje także zmienna $0 zawiera nazwę skryptu (polecenia). Wiemy, że możemy
skryptowi przekazać 9 parametrów od $1 do $9, Linux dostarcza nam także inne zmienne zdefiniowane
w systemie, które ułatwiają programowanie w bashu :

#

zmienna ta zawiera liczbę parametrów przekazanych do skryptu

*

zmienna ta zawiera listę parametrów przekazanych do skryptu


?

zmienna ta zawiera kod zwrotu ostatniego polecenia wykonanego przez skrypt

$

zmienna ta zawiera numer procesu – PID

7.3 Klasyfikacja procesów

Linux jest systemem wielozadaniowym, który umożliwia wykonywanie wielu poleceń jednocześnie.
Egzekucja polecenia jest identyfikowana przez system przy pomocy numeru identyfikacyjnego PID
przypisanego każdemu procesowi, który jest egzekwowany (egzekucja polecenia uruchamia
proces). System otrzymując od użytkownika polecenie,uruchamia, czekając na jego zakończenie. O
takim poleceniu mówimy, że jest pierwszoplanowe (foreground). Terminal jest zablokowany do
momentu zakończenia zadania. Wyobraźmy sobie (a nie jest to bynajmniej rzadkie), że wykonanie
naszego polecenia (np polecenia find) może trwać wiele minut. Rzecz jasna możemy zalogować się na

background image

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

background image

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

background image

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.

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 53

Jeżeli chcemy uruchomić , których z zatrzymanych procesów ls –R / to należy wykonać

$ fg %1

Lub

$ fg %2

7. 6 Ćwiczenia

Ćwiczenie 1

Wykonaj polecenie „ps” i wyjaśnij znaczenie każdej wyświetlonej kolumny

Ćwiczenie 2

Utwórz skrypt, który wyświetla co 30 sekund „dzien dobry’’. Możesz tego dokonać używając polecenia
: cat

$ cat > dzien dobry
#!/bin/bash
While true

do
Banner dzien dobry
done

Ctrl-D

$

Wyegzekwuj ten skrypt poza planem i wyświetl jego PID, a następnie numer wykonywanego zadania

Ćwiczenie 3

Zlikwiduj egzekucje tego skryptu używając jego nr. PID albo nr. zadania

Ćwiczenie 4
Wykonaj polecenie :

$ ps aux

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 54

Co otrzymasz na ekranie ?

Ćwiczenie 5

[123]+ Stopped 522
[122]+ Stopped 523

Dzięki jakiemu poleceniu otrzymamy powyższe informacje ?

Rozdział 9 : Wyrażenia Regularne

Do tego celu wyrażenia regularne – będące podstawą konstrukcji systemu Unix i Linux są idealnym
narzędziem. Warto się z nimi zaznajomić gdyż wbrew pozorom ich opanowanie nie jest zbyt trudne.
Przedstawię tzw podstawowe symbole wyrażenia regularne (BRE , Basic Regular Expression) oraz
rozszerzone wyrażenia regularne (ERE, extender Regular Expressions).
Odkrycie wyrażeń regularnych związane jest z pierwszymi teoretycznymi pracami nad opisowymi
językami symbolicznymi prowadzonymi przez matematyka Stephen Kleene (1909-1994). Sformułował
on pierwszy założenia umożliwiające zdefiniowanie tzw zbiorów regularnych, wykorzystanych
początkowo do przekazywania w sieciach neuronów informacji, a następnie zastosowanych do budowy
kompilatorów. Trzeba jednak podkreślić, że wyrażania regularne mają zastosowanie także poza
informatyką; stosuje się je w lingwistyce do tzw analizy tekstowej oraz do definiowania praw w
gramatyce teoretycznej; w biologi do odszyfrowania sekwencji ludzkiego genomu, w neurologii; w
elektronice do modelowania obwodów elektrycznych itd. Interdyscyplinarny aspekt wyrażeń regularnych
jest szczególnie ważny w procesie nauczania.
Spróbujmy odpowiedzieć na pytanie : dlaczego praktyczne poznanie wyrażeń regularnych jest tak ważne
nie tylko dla informatyków, ale także np dla tych, którzy zajmują się przerabianiem, wyszukiwaniem -
w Internecie - informacji?
Aby przybliżyć czytelnikowi problem przedstawiony w tym rozdziale wyobraźmy sobie następującą
sytuacje : jakiś autor zredagował tekst, którego kolejne rozdziały ponumerował w następujący sposób:

1-1, 1-2, 1-3,

itd

i chce następnie zmienić formę ich numeracji na

§ 1.1, § 1.2, § 1.3.

Wyszukanie i zmienienie nazw rozdziałów wymaga przejrzenia całego tekstu co wiąże się z utratą
sporej ilości czasu i zmęczeniem, a więc możliwością popełnienia błędu. Wyrażenia regularne – czasami
nazywane wyrażeniami racjonalnymi – dostarczają nam reguł, które umożliwiają zdefiniowanie
symboliczne tego czego szukamy, w tym wypadku liczby po której następuje myślnik po którym znów
następuje liczba. Wyrażenie typu

1-1, 1-2, 1-3,

itd

jest wyrażeniem znakowym (lub literalnym) . Natomiast wyrażenie typu \d-\d jest opisem abstrakcyjnym
w/w wyrażeń znakowych, \d jest konwencją używaną w wyrażeniach regularnych do oznaczenia zbioru

background image

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’’

background image

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 :

background image

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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 58

do przedstawienia
podstawowych założeń

wyrażeń regularnych

$ ls -l | grep ‘^d’ #wyszykujemy katalogi

drwxrwxr-x 2 piotr 1024………………….

$ ls -p | grep ‘/$’ #wyszukujemy katalogi

$ ls –a | grep ‘^\.’ #wyświetlamy tylko pliki zaczynające się od „.”
.
..
.profile

9.1 Polecenie find

Polecenie find służy do wyszukiwania, według ściśle określonych kryteriów, pliku (lub plików) w
drzewie katalogowym. Jeżeli kryteria są pozytywnie zweryfikowane (to znaczy plik lub pliki są
znalezione) to wtedy możemy wykonać na nich określone działania. Ogólny wzór polecenia find
wygląda następująco :

find katalog [kryteria wyszukiwania] [kryteria egzekucji]

Wyliczmy najpierw kryteria wyszukiwania

-name plik szukany plik musi nazywać się plik.txt

-type plik plik może przyjmować następujące wartości
f - plik regularny
d - katalog
c,b - pliki specjalne

-size plik musi mieć odpowiednia objętość

-user piotr plik ma właściciela który nazywa się piotr

-group ada plik przynależy do grupy ada

Wyliczmy teraz kryteria egzekucji

-print #wyświetla ścieżkę dostępu do znalezionego pliku

-exec cmd {} \; wykonuje polecenie cmde z argumentem pliku

Operacje logiczne wyrażenie w poleceniu find

ET

-a

OU

-b

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 59

NON

!

Posłużmy się kilkoma prostymi przykładami :

$ find /home -name ‘*.c’ -print #objaśnienie : szukamy w katalogu /home czyli szukamy pliku
znajdujących się u wszystkich użytkowników - kryterium
wyszukiwania dotyczy nazwy plików (wskazuje na to –name)

nazwy te wyznaczone są przez ‘*.c’ – (czy mógłbyś sam

objaśnić to wyrażenie ? ), następnie jeżeli kryteria
wyszukiwania są pozytywnie zweryfikowane, wyświetlamy je
(-print –kryterium egzekucji) na ekranie

$ find . –type d -print #wyświetla tylko nazwy katalogów


$ find /home -name ‘*c’ -print # wyświetla z katalogu domowego tylko te pliki których sufiks
Równa się c

$ find /home/piotr ! –group users –prinr # poszukiwanie plików które nie należą do grupy

users

9.2 Polecenie grep z wyrażeniami regularnymi

Do nauki polecenia grep, które używane jest z wyrażeniami regularnymi musimy utworzyć plik

pozwalający zaprezentować wszystkie możliwości zarówno polecenia grep jak i wyrażeń regularnych.
Dane zawarte w tym pliku mogą wydawać się sztuczne lecz umożliwią nam one z względnie
wystarczającym zapoznaniem się z omawianym tematem. Przy pomocy edytora vi (patrz rozdział IX)
utwórzmy plik o nazwie dataplik :

$ vi dataplik

i wprowadźmy następujące dane :


Znaczenie danych zawartych w kolumnach

Nazwa symbol Imie i nazwisko Liczba wykonanie liczba liczba
regionu regionu dyrektora per. Pododdziałów planu w % towarów personelu

Kregkato

KA

Jan Kowalski 23

.98. \3\

88

Kregkato

KA

Piotr Pawlak

23

.98. \3\ 88

Pregpod

PO

Krzysztof Wrak

25

.45. \2\

77

Cregcent

CE

Jola Kruk

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

Katarzyna Polak

58

.69. \9\

87

background image

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

background image

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

background image

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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 63

Przetestujemy teraz funkcjonowanie sed używając do tego celu tego samego pliku dataplik którego
zawartość drukujemy poniżej.

Nazwa symbol Imie i nazwisko Liczba Plan liczba liczba
regionu regionu dyrektora per. Pododdziałów w % towarów personelu

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

$ sed ‘4q’ 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

Wyjaśnienie : wyświetlamy tylko 4 pierwsze linie

$ sed ‘/KA/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 : wyświetlamy z opcja p całość pliku mimo istnienia /KA/

$ sed -n ‘/KA/p’ dataplik

Kregkato

KA

AB Kowalski 23

.98.

\3\

88

Kregkato

KA

Piotr Pawlak

23

.98.

\3\ 88

Wyjaśnienie : to opcja –n umożliwia nam wyświetlenie linii zawierających poszukiwany ciąg znaków
W tym wypadku /KA/

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 64

$ sed ‘2d’ dataplik

Nazwa symbol Imie i nazwisko Liczba wykonanie liczba liczba
regionu regionu dyrektora per. Pododdziałów planu w % towarów personelu

Kregkato

KA

AB Kowalski 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 : usunięcie drugiej linii z pliku

$ sed ‘5,$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 wszystkich linii do piątej linii od końca

$ sed ‘$d’ 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

Wyjaśnienie : usunięcie ostatniej linii

$ sed ‘/KA/d’ dataplik

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

background image

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

background image

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

background image

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

background image

Autor : Piotr Piętak Linux

jjjj-07-tt

GR PiS ds. informatyzacji Podstawy używania systemu strona 68

regionu regionu dyrektora per. Pododdziałów planu w % towarów personelu

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

-rw-r—r-- 1 piotr Oracle 0 May 3 15:14 2003, plik1
-rwxr—r-- 1 root sys 514 May 15 16:14 2003, plik1
10 blocks


Wyszukiwarka

Podobne podstrony:
Komendy DOS, Win98, Linux, Podstawowe polecenia systemau DOS, Podstawowe polecenia systemu DOS
linux podstawy
polecenia linuxa, Linux, Linux - podstawy
Instalacja serwera na linux - instrukcja, Linux, Linux - podstawy
Linux Dla Każdego, Linux, podstawy
cwiczenia z systemu linux podstawy obslugi systemu
Linuks, Linux, podstawy
Linux, Podstawy
linux podstawy RM5VKLA2O64PLLDUL3Z5NXOEQFNIYPBVM3CCQRA
Linux podstawy (Piotr Stykowski)
cwiczenia z systemu linux podstawy obslugi systemu
SO Linux Podstawowe Polecenia i Filtry
Linux Podstawowe Komendy
Red Hat Linux podstawy, instalacja
Podstawowe komendy i polecenia w Linux
LINUX, SZKOLNE PLIKI-mega zbiory (od podstawówki do magisterki), Systemy operacyjne

więcej podobnych podstron