Trochę historii

137
Trochę historii Lata 50 – początki systemów operacyjnych, programy batch, minimalizacja przestojów między kolejnymi programami Lata 60 – pierwsze systemy operacyjne interaktywne. Kilku użytkowników korzystało z tego samego komputera równocześnie. Podział czasu Wiele różnych zespołów, wiele projektów, jednym z nich był Multics 1

description

1. Trochę historii. Lata 50 – początki systemów operacyjnych, programy batch, minimalizacja przestojów między kolejnymi programami Lata 60 – pierwsze systemy operacyjne interaktywne. Kilku użytkowników korzystało z tego samego komputera równocześnie. Podział czasu - PowerPoint PPT Presentation

Transcript of Trochę historii

Page 1: Trochę historii

Trochę historii

Lata 50 – początki systemów operacyjnych, programy batch, minimalizacja przestojów między kolejnymi programami

Lata 60 – pierwsze systemy operacyjne interaktywne. Kilku użytkowników korzystało z tego samego komputera równocześnie. Podział czasu

Wiele różnych zespołów, wiele projektów, jednym z nich był Multics

1

Page 2: Trochę historii

Trochę historii Bell Labs opuścił zespół pracujący nad systemem

Multics i stworzył własny system operacyjny, Unix. Początkowo rozprowadzany za darmo, zdobył dużą popularność w uniwersytetach

Lata 90 – pozycja Unixa stała się mocna, ale został produktem komercyjnym i drogim.

Tani, podobny do Unixa system Minix był ubogi, napisany w celach dydaktycznych. 386BSD, prekursor systemów NetBSD, FreeBSD, OpenBSD był niedojrzały i potrzebował mocnego sprzętu

2

Page 3: Trochę historii

Trochę historii

Październik 1991 Linus Torvalds używał Unixa na uniwersytecie w Helsinkach, chciał mieć podobny system w domu. Próbował systemu Minix, ale chciał coś lepszego. Rozpoczął pisanie własnego systemu operacyjnego

Po opublikowaniu pierwszej działającej wersji system przyciągnął uwagę innych programistów. Zaczął się dynamicznie rozwijać

3

Page 4: Trochę historii

Trochę historii

Linux to tylko jądro systemu (zarządzanie pamięcią, drivery urządzeń, zarządzanie wielozadaniowością itp). Pozostałe oprogramowanie systemowe, w tym najaważniejszy – kompilator C pochodziły z Free Software Foundation's GNU project.

Free Software Foundation's GNU project rozpoczął sie w 1984 roku, ma za cel stworzenie kompletnego farmowego wzorowanego na Unixie systemu operacyjnego. Linux czasami jest nazywany GNU/Linux.

4

Page 5: Trochę historii

Trochę historii Lata 92 i 93 – Linux wzbogacił się o protokół

TCP/IP i środowisko graficzne (X Window), mogł zastąpić w stacjach roboczych Unixa. Wiele małych firm zajęło się rozwojem i dystrybucją Linuxa, pojawiły się grupy użytkowników

Początek 1994 – rozpoczęto wydawanie Linux Magazine

Marzec 1994 – jądro 1.0 1997 rok – Netscape udostępniło swoje

oprogramowanie bezpłatnie. Powstał model oprogramowania typu “open source”

5

Page 6: Trochę historii

Co to takiego Linux to wzorowany na systemie Unix

wielozadaniowy i wielodostępny system operacyjny dla 32 i 64 bitowych procesorów, działający na wielu platformach. Programy pisane dla UNIX działają na Linux po rekompilacji

Linux, podobnie jak Unix był od początku projektowany jako wielozadaniowy. Wielozadaniowość musi być brana pod uwagę w całym systemie operacyjnym, systemy do których dodano ja później, robią to gorzej (przykład: win95 – win NT)

6

Page 7: Trochę historii

Co to takiego

Dobra ochrona pamięci, program użytkowy nie może zniszczyć innego

Linux był pisany na Intel 386, teraz działa na Sun SPARC i UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64, DEC VAX, AMD x86-64 and CRIS – procesory 32 i 64 bitowe

7

Page 8: Trochę historii

Co to takiego

Skalowalność – działa w komputerach wbudowanych, telefonach komórkowych, mainframe, ....

Dzięki technologii cluster np. Beowulf działa na superkomputerach

8

Page 9: Trochę historii

Co to takiego

Pierwsze aplikacje to oprogramowanie naukowe, bazy danych, sieci komputerowe. Interfejs z linii komend.

Pierwsze poważne zastosowania – jako serwery plików, poczty, baz danych

Środowisko graficzne - KDE, Gnome pozwoliło na powstanie aplikacji dla zwykłych użytkowników, na przykład Open Office.

9

Page 10: Trochę historii

Dystrybucje

Linux i jego oprogramowanie rozwijane jest przez wiele zespołów

Możliwe jest samodzielne zebranie oprogramowania i jego zainstalowanie

Wygodniej jest skorzystać z gotowego zestawu, dystrybucji

10

Page 11: Trochę historii

Dystrybucje

Dystrybucja to jądro systemu, program instalacyjny i zestaw programów użytkowych

Istnieją setki dystrybucji, ogólnego przeznaczenia i wyspecjalizowane. Różnią się programem instalacyjnym, konfiguracją jądra, zestawem programów użytkowych i ich wersją

Najważniejsze dystrybucje ogólnego przeznaczenia - Red Hat, SuSE, Debian ....

11

Page 12: Trochę historii

UNICS 1969

Siódma edycja 1978

Szósta edycja 1976

Piąta edycja 1973

BSD 1979SYSV (5) 1983

Solaris/SUNOS 5.x (SUN)

AIX (IBM)IRIX (SGI)

HP-UX (HP)Digital Unix (DEC)SCO UNIX (SCO)

SUNOS 4.x (SUN)NextStep (NeXT)FreeBSD (Open

Source)OpenBSD (Open

Source)NetBSD (Open

Source)

Linux (Open Source)

1991

Page 13: Trochę historii

Użytkownicy

Aplikacje Programysystemowe

Shell, GUI

Biblioteki systemowe

Jądro (kernel)

Sprzęt (procesor, pamięć, dyski itp.)

Page 14: Trochę historii

Budowa systemu - jądro Jądro systemu – tworzy wirtualny komputer dla

procesów użytkowych Interfejs do sprzętu (kart sieciowych, pamięci RAM,

dysków itp) Ładowalne moduły do obsługi urządzeń, sieci,

systemu plików itp. Pracuje w trybie uprzywilejowanym Cały kod i struktury danych w jednej przestrzeni

adresowej Interfejs do bibliotek systemowych (system libraries)

14

Page 15: Trochę historii

Budowa systemu - jądro

Pięć głównych podsystemów: PSHED(process sheduler) odpowiada za dostęp

do CPU MM (memory manager) odpowiada za

bezpieczne użycie pamięci przez wiele procesów, obsługuje pamięć wirtualną

NET (network interface) zapewnia dostęp do urządzeń sieciowych w różnych standardach

15

Page 16: Trochę historii

Budowa systemu - jądro

Pięć głównych podsystemów: VFS (virtual filesystem) ukrywa dla procesów

szczegóły fizycznego dostępu do urządzeń pamięci zewnętrznej. Obsługuje wiele formatów, kompatybilnych z innymi systemami operacyjnymi (vfat, cdfs, ntfs itp.)

IPC (inter process communication) dostarcza mechanizmów do komunikacji między różnymi procesami na tej samej maszynie

16

Page 17: Trochę historii

Budowa systemu – biblioteki systemowe Procesy użytkowe chcąc skorzystać z jadra wywołują

funkcje bibliotek systemowych. Biblioteki systemowe nie działają w trybie

uprzywilejowanym, wykonują te funkcje systemu, które tego trybu nie wymagają, na przykład buforowanie wejścia/wyjścia

Pełnią też zadania, które nie mają odpowiedników w funkcjach jądra, np. sortowanie, operacje matematyczne

Zapewniają zgodność ze standardami – POSIX, UNIX itp.

17

Page 18: Trochę historii

Budowa systemu – programy użytkowe

Interpretatory poleceń – sh, csh, tcsh, bash Programy obsługujące zewnętrzne polecenia

systemowe – ls, ps, netstat, grep .... Programy działające w tle – daemony Kompilatory i biblioteki Aplikacje użytkowników

18

Page 19: Trochę historii

System plików 19

FHS 2.3.1

Page 20: Trochę historii

System plików - / (Root)

Musi zawierać wszystko, co potrzebne do uruchomienia systemu, jego odtworzenia lub naprawienia

Nie powinien być duży Musi umożliwić zamontowanie pozostałych

systemów plików

20

Page 21: Trochę historii

System plików - /bin

Zawiera podstawowe polecenia używane przez administratora i wszystkich użytkowników

Musi zawierać polecenia niezbędne do zamontowania filesytemów

21

Page 22: Trochę historii

System plików - /boot

Zawiera wszystko, co niezbędne do uruchomienia systemu, dane potrzebne zanim jądro systemu rozpocznie działanie

Jadro systemu może być w kartotece /boot lub w kartotece /

22

Page 23: Trochę historii

System plików - /dev

Zawiera pliki specjalne lub pliki urządzeń Jeśli w kartotece /dev możliwe jest tworzenie

nowych plików urządzeń, musi zawierać polecenie MAKEDEV do ich tworzenia

23

Page 24: Trochę historii

System plików - /etc

Zawiera pliki konfiguracyjne Nie może zawierać programów binarnych Zawiera podkartoteki na konfiguracje aplikacji

24

Page 25: Trochę historii

System plików - /home

Zawiera pliki użytkowników Nie musi występować w systemie

25

Page 26: Trochę historii

System plików - /lib

Zawiera podstawowe biblioteki systemu Musi występować w systemie Musi zawierać zbiory: libc.so.* podstawowa biblioteka C ln (linker/loader)

26

Page 27: Trochę historii

System plików - /media

Zawiera punkty montowania dla mediów wymiennych, CDROM, dyskietki, taśmy itp.

27

Page 28: Trochę historii

System plików - /mnt

Zawiera punkty montowania dla filesystemów montowanych tymczasowo

28

Page 29: Trochę historii

System plików - /sbin

Programy używane przez administratora systemu Inne lokalizacje tych programów - /usr/sbin,

/usr/local/sbin

29

Page 30: Trochę historii

System plików - /tmp

Kartoteka na zbiory tymczasowe Dostępna do zapisu dla wszystkich

użytkowników Podczas przeładowania systemu jej zawartość

może i powinna być usunięta Alternatywnym miejscem dla zbiorów

tymczasowych jest /var/tmp – zawartość tej kartoteki nie jest kasowana przy przeładowaniu systemu

30

Page 31: Trochę historii

System plików - /usr

Kartoteka na pozostałe zbiory systemu Nie powinna być używana do zapisu przez

użytkowników i aplikacje Podkartoteki bin, sbin, share, lib, include, local Może zawierać inne podkartoteki, np, X11R6,

src

31

Page 32: Trochę historii

System plików - /var

Kartoteka na zmieniające się pliki, np. logi systemowe, kolejki drukarek, kolejki poczty

Zawiera podkartoteki cache, lib, local, lock, log, opt, run, spool, tmp

Może zawierać opcjonalnie np. mail, games

32

Page 33: Trochę historii

System plików - /proc

Opcjonalny, lecz często występujący w systemach Unix

Zawiera informacje o stanie systemu – procesach, urządzeniach, pamięci, przerwaniach itp.

Wirtualny, tworzony podczas pracy systemu. Poprzez modyfikację zbiorów w tym systemie

plików można zmienić działanie systemu, np. włączyć routing

33

Page 34: Trochę historii

System plików - rodzaje plików

Kartoteki Zwykłe pliki Link symboliczny, zwykły Pipe Pliki urządzeń – znakowych i blokowych

34

Page 35: Trochę historii

System plików - prawa do plików

Prawo do zapisu, odczytu, wykonania Grupy praw dla właściciela, grupy i pozostałych

użytkowników Zapisywane często ósemkowo, kolejne bity

oznaczają kolejno czytanie, zapis, wykonanie. Kolejne cyfry ósemkowe odnoszą się do właściciela, grupy i pozostałych. Na przykład754 oznacza:7 – czytanie, zapis i wykonanie dla właściciela5 – czytanie i wykonanie dla grupy4 – czytanie dla pozostałych użytkowników

35

Page 36: Trochę historii

System plików - prawa do plików

Sticky bit Dla plików dawniej nakazywał przechowywanie

w swap, obecnie w Linuxie ignorowany Dla kartotek – kasować i zmieniać nazwę

zbiorów w nich może tylko root lub właściciel. Używane np. w kartotece /tmp

36

Page 37: Trochę historii

System plików - prawa do plików

set-UID set-GID uruchomienie pliku przez zwykłego użytkownika

spowoduje nadanie procesowi praw jego właściciela (grupy)

Niezbędne dla niektórych programów, np. passwd – modyfikuje shadow

Niebezpieczne, jeśli użytkownik podstawi własny program (np. shell) z set-UID

37

Page 38: Trochę historii

System plików - prawa do plików

Kolejne bity:4 set-UID2 set-GID1 sticky bit4 odczyt – właściciel2 zapis – właściciel1 wykonywanie – właściciel4 odczyt – grupa2 zapis – grupa1 wykonywanie – grupa4 odczyt – wszyscy2 zapis – wszyscy1 wykonywanie - wszyscy

38

Page 39: Trochę historii

System plików - prawa do plikówInny zapis:chmod [ugoa...][[+-=][rwx]

u – user – właściciel

g- group – grupa

o, a other, all – pozostali

r, w, x – odczyt, zapis, wykonywanie (dostęp do kartoteki)

+ dodaj

- usuń

= usuń wszystkie i pozostaw tylko te podane

39

Page 40: Trochę historii

System plików – montowanie i odmontowanie 40

W dowolnym miejscu hierarchii systemu plików dołączyć możemy kolejny system plików

miejsce, gdzie nowy system plików dołączymy nazywa się punktem montowania.

Punkt montowania musi być kartoteką, po zamontowaniu jej ewentualna zawartość zostanie przesłonięta nową zawartością.

Zamontować można dyskietkę, partycję dysku, cdrom, dysk udostępniany przez sieć itp

Page 41: Trochę historii

System plików – montowanie i odmontowanie 41

Do zamontowana systemu plików służy komenda mount, do odmontowania - umount

Typowe użycie:mount -t typ urzadzenie punkt_montowaniaumount urzadzenieumount punkt montowania

urzadzenie to plik specjalny w /devpunkt to kartoteka, w której chcemy zamontować system plików

Page 42: Trochę historii

System plików – montowanie i odmontowanie 42

typ określa fizyczny format zapisu na montowanym nośniku, może to być fat, vfat, cdfs, ntfs, ufs, ext2, ext3, nfs ....

Odmontować system plików można podając urządzenie lub punkt jego zamontowania. Nie można odmontować systemu plików, jeśli jest używany

Page 43: Trochę historii

System plików – montowanie i odmontowanie 43

Podczas startu systemu automatycznie montowane są systemy wskazane w zbiorze /etc/fstab:

LABEL=/1 / ext3 defaults 1 1none /dev/pts devpts gid=5,mode=620 0 0none /proc proc defaults 0 0none /dev/shm tmpfs defaults 0 0LABEL=/usr1 /usr ext3 defaults 1 2LABEL=/var1 /var ext3 defaults 1 2/dev/hda2 swap swap defaults 0 0/dev/hda7 /home ext3 defaults 1 2

Page 44: Trochę historii

System plików – tworzenie filesystemu 44

fdisk – program do podziału dysku na partycje

fdisk urządzenie (np. /dev/hda)p – wyświetla istniejącą tablicę partycjin – tworzy nową partycjęd - kasuje partycjęl – wyświetla listę znanych typów partycjim – wyświetla helpt – zmienia typ partycjiw- zapisuje tablicę partycji na dyskuq – wyjście bez zapisania zmian

Page 45: Trochę historii

System plików – tworzenie filesystemu 45

mke2fs – program do tworzenia w partycji filesystemu ext2/ext3mkfs – program do tworzenia w partycji filesystemu. Jeśli nie podamy typu, utworzy ext2. Potrafi utworzyć filesystemy msdos, vfat, reiserfs, jfs... Wszystkie, dla których zainstalowano programy mkfs.typUżycie:

mke2fs urzadzenie (np. /dev/hda0)mkfs -t typ urzadzenie

Page 46: Trochę historii

System plików – tworzenie filesystemu 46

fdformat – program do formatowania dyskietki w formacie dosfdformat [-n] urzadzenieurzadzenie to /dev/fd0 (/dev/fd1) lub/dev/fd0d360 (minor = 4)/dev/fd0h1200 (minor = 8).../dev/fd0H1440 (minor = 28)n – bez weryfikacjiw niektórych systemach urządzenia inne niż fd0 trzeba utworzyć przez MAKEDEV

Page 47: Trochę historii

System plików – użyteczne polecenia 47

ls – wyświetla zawartość kartoteki cp – kopiuje pliki i kartotekimv – przenosi plik w inne miejsce lub zmienia nazwę plikumore – wyświetla zawartość pliku znakowegood – wyświetla zawartość pliku ósemkowo, dziesiętnie, szesnastkowo lub znakowo df – wyświetla zajętość systemu plikówdu – wyświetla wielkość podkartotekmount – (bez parametrów) wyświetla zamontowane systemy plików

Page 48: Trochę historii

System plików – użyteczne polecenia 48

touch – tworzy nowy, pusty zbiór cat - wyświetla zawartość pliku lub plików, umożliwia łączenie plikówgrep – wyszukuje wzorcowy łańcuch w plikachtail – wyświetla koniec plikurm – usuwa plik lub kartotekęrmdir – usuwa kartotekę mkdir – tworzy kartotekęln – tworzy symboliczny linkmkfifo – tworzy pipechmod – zmienia prawa plikuchown – zmienia właściciela pliku

Page 49: Trochę historii

ln plik nazwa_linku – tworzy twardy link do wskazanego pliku

ln -s plik nazwa_linku – tworzy miękki link do wskazanego pliku

Twardy link tworzy nowy wpis w kartotece wskazujący na zbiór, musi wskazywać na istniejący plik w tym samym filesystemie, usunięcie oryginału nie spowoduje usunięcia linku

49

Page 50: Trochę historii

? * - zastępują jeden i wiele znaków w nazwie

[abxeo3-8] zastępuje pojedynczy znak jednym z wymienionych w nawiasach(znak '-' podaje przedział znaków)

{ala,ola}.txt – iloczyn kartezjański łańcuchów w nawiasach

. .. - bieżąca kartoteka, nadrzędna kartoteka

50

Page 51: Trochę historii

Pewne znaki mają znaczenia specjalne. Aby to znaczenie specjalne wyłączyć, należy:

poprzedzić go znakiem \

ująć tekst w pojedynczych apostrofach ' ' - wyłącza specjalne znaczenie wszystkich znaków

ująć tekst w podwójnych apostrofach ” ” - wyłącza specjalne znaczenie większości znaków

Uwaga, apostrofy ` ` działają inaczej!

51

Page 52: Trochę historii

Postawy języków shell 52

Jeden z podstawowych programów systemu Unix Interpreter języka poleceń wydawanych w linii

komend lub ze zbioru Klasyczna wersja – sh, odmiany csh, tcsh, bash, ksh W systemach Linux używany jest jako podstawowy

bash - GNU Bourne-Again Shell, kompatybilny z SH

Tworzy interfejs użytkownika do systemu Unix, do jego jądra, dlatego nazywany często powłoką

Page 53: Trochę historii

Postawy języków shell - bash 53

Separator (blank) – jedna lub więcej spacji lub znaków tabulacji Potok (pipeline) – znak | kieruje wyjście z jednego polecenia do wejścia następnego, na przykład: cat moj_list | grep Aniawyświetli te linie w zbiorze moj_list w których występuje wyraz Ania Lista (lists) – jeden lub więcej potoków oddzielonych operatorem ; & && lub ||, zakończonych opcjonalnie przez ; & lub nową linię

Page 54: Trochę historii

Postawy języków shell - bash 54

Potoki oddzielone operatorem ; wykonywane są sekwencyjnie – po skończeniu jednego wykonuje się kolejny

Potoki oddzielone operatorem & wykonywane są równolegle – po uruchomieniu pierwszego wykonuje się kolejny. Będą pracowały równocześnie

pipeline1 && pipeline2 – pipeline2 wykona się tylko wtedy, jeśli pipeline1 zakończy działanie bez błędu (status 0)

pipeline1 || pipeline2 – pipeline2 wykona się tylko wtedy, jeśli pipeline1 zakończy działanie błędem (status <>0)

Page 55: Trochę historii

Postawy języków shell – bash. Polecenia złożone 55

for name [ in word ] ; do list ; doneLista word jest rozwijana, każde wystąpienie przypisywane jest zmiennej name i wykonywana jest lista listPrzykład:

>$ for I in a* ; do file $I ; done

aaa: ASCII textaaa.zip: Zip archive data, at least v2.0 to extractaplik: directory

Page 56: Trochę historii

Postawy języków shell – bash. Polecenia złożone 56

if list; then list; [ elif list; then list; ] ... [ else list; ] fiWykonywana jest lista po if. Jeśli zakończy się sukcesem, wykonywana jest lista po then, w przeciwnym wypadku wykonywane są kolejne elif. Jeśli żadna lista po if i elif nie zakończy się sukcesem, wykonywana jest lista po else.Przykład:>$ if ls | grep -q zip; then echo "jest"; else echo "brak"; fibrak>$ touch aaa.zip>$ if ls | grep -q zip; then echo "jest"; else echo "brak"; fijest

Page 57: Trochę historii

Postawy języków shell – bash. Quoting 57

Pewne znaki i wyrazy mają specjalne znaczenie dla bash. Aby to zmienić, należy użyć 'quoting':znak \ wyłącza specjalne znaczenie następnego znaku. Jeśli następnym znakiem jest nowa linia, to sekwencja taka oznacza kontynuację linii. Dwa kolejne znaki \ oznaczają pojedynczy \Ujęcie sekwencji znaków w parę ' wyłącza specjalne znaczenie wszystkich znaków w tej sekwencjiUjęcie sekwencji znaków w parę “ wyłącza specjalne znaczenie wszystkich znaków w tej sekwencji za wyjątkiem $, ` i \. Znaki * i @ uzyskują nowe znaczenie

Page 58: Trochę historii

Postawy języków shell – bash. Parameters 58

Parameter służy do przechowywania wartości. Może być to nazwa, liczba albo znak specjalny.Zmienna to parameter który jest nazwą. Tworzymy ją:nazwa=[wartosc]Jesli wartosc nie wystąpi, to tworzona jest zmienna, której wartością jest zerowy łańcuchPrzykład:>$Imie=”Ewa”>$echo $ImieEwa

Page 59: Trochę historii

Postawy języków shell – bash. Parameters 59

Positional parameter – określony jedną cyfrą różną od 0 lub kilkoma cyframi. Ich wartościami są kolejne parametry wywołania komendy.Przykład:>$cat -> aaaecho $1:$2:$3>$chmod 777 aaa>$./aaa Nic nie rozumiemNic:nie:rozumiem

Page 60: Trochę historii

Postawy języków shell – bash. Special Parameters 60

? - status ostatnio wykonanego potoku$ - nasz numer procesu0 – nazwa programu, który uruchomił nasz proces

Przykład:>$cat -> aaaecho $0__$1:$2:$3>$chmod 777 aaa>$./aaa Nic nie rozumiem./aaa__Nic:nie:rozumiem

Page 61: Trochę historii

Postawy języków shell – bash. Expansion 61

mkdir /tmp/{kart1,kart2,kart3} tworzy trzy kartoteki o nazwach kart1, kart2, kart3 w kartotece /tmpecho ~uzytkownik wyświetla domyślną kartotekę użytkownika. Bez podania nazwy użytkownika wyświetla domyślną kartotekę aktualnego użytkownika${parameter} – zostaje rozwinięte jako wartość parameter. Nawiasy są konieczne, jeśli po nazwie są znaki, które do niej nie należą, na przykład:>$Imie=Ewa>$echo ${Imie}12Ewa12

Page 62: Trochę historii

Postawy języków shell – bash. Expansion 62

`polecenie` lub $(polecenie) – wykonywane jest polecenie, a to, co wyświetli, staje się częścią linii polecenie, w której konstrukcja została użyta. Na przykład:

>$touch /tmp/{a,b,c,akuku}>$ls /tmpa b c akuku>$cat -> aaaa b c>$rm `cat aaa`>$la /tmpakuku

Page 63: Trochę historii

Postawy języków shell – bash. Przekierowanie wejścia i wyjscia

63

Każdy proces w unixie, jeśli tego nie zmienimy, pobiera dane ze standardowego wejścia (stdin), wysyła na standardowe wyjście (stdout). Ewentualne komunikaty o błędach kierowane są na standardowe wyjście błędów (stderr).W interaktywnym shell stdin to klawiatura, a stdout i stderr to ekran. Te trzy strumienie w sh można przekierować:> przekierowuje stdout< przekierowuje stdinstdin, stdout i stderr mają odpowiednio file descriptor 0, 1 i 2

Page 64: Trochę historii

Postawy języków shell – bash. Przekierowanie wejścia

64

[n]<wordFile descriptor n będzie pobierał dane z pliku word. Jeśli n zostanie pominięte, zostanie przyjęte 0, czyli stdin.

Page 65: Trochę historii

Postawy języków shell – bash. Przekierowanie wyjścia

65

[n]>wordUżycie >> spowoduje dopisanie wyjścia do istniejącej zawartości zbioru.Wyjście do file descriptor n zostaje przekierowane do pliku word. Jeśli n zostanie pominięte, zostanie przyjęte 1, czyli stdout. Na przykład:ps ax >aaa 2>/dev/nullspowoduje wyświetlenie stanu wszystkich procesów i zapisanie tego wydruku w zbiorze aaa. Ewentualne komunikaty o błędach zostaną zniszczone.

Page 66: Trochę historii

Postawy języków shell – bash. Alias 66

Pozwala na zastąpienie słowa ciągiem znaków. Słowo to użyte jako pierwsze w poleceniu zostanie zastąpione tym ciągiem znaków. Używane tylko w trybie interaktywnym.

alias ll='ls -l'unalias ll

alias bez parametrów wyświetla listę zdefiniowanych aliasów.

Page 67: Trochę historii

Postawy języków shell – bash. Operatory arytmetyczne i logiczne

67

i++ i-- ++i –i zwiększenie/zmniejszenie zmiennej i po/przed operacją o 1+ - znak (unary + -)! ~ negacja logiczna i bitowa** potęgowanie+- dodawanie, odejmowanie<< >> przesunięcie bitowe w lewo i prawo<= >= < > porównanie== != równość i nierówność

Page 68: Trochę historii

Postawy języków shell – bash. Operatory arytmetyczne i logiczne

68

= *= /= %= += -= <<= >>= &= ^= |= przyporządkowanie wartości& ^ | bitowe and, xor, or&& || logiczne and, orexpr1?expr2:expr3 obliczenie warunkowe – jeśli expr1 = 1, to wykonywane expr2, jeśli 0, to expr3expr1 , expr2 wyrażenie przecinkowe – wykonywane kolejno expr1, expr2, ale pozostaje tylko wynik expr2

Page 69: Trochę historii

Postawy języków shell – bash. Zadania (jobs) 69

Wykonując potok shell uruchamia zadanie. Może ono byś wykonywane w pierwszym planie (foreground) lub w tle (background). ^z przeniesienie zadania do background (jego wykonywanie zostanie wstrzymane)jobs – wyświetlenie zadań w backgroundfg – przeniesienie zadania do foregroundbg %n – uruchomienie wstrzymanego zadania w backgroundkill %n – usunięcie zadania z background

Page 70: Trochę historii

Postawy języków shell – bash. Historia poleceń 70

Bash pamięta historię wydawanych poleceń (domyślnie 1000) w zbiorze ~/.bash_history!n !-n, !! – powtórz linię n, bieżącą minus n, poprzednią!lancuch – powtórz linię zaczynającą się od łańcucha!?lancuch[?] - powtórz linię zawierającą łańcuch^lancuch1^lancuch2^ powtórz ostatnią linię, zastąp lańcuch1 łańcuchem2klawisze starzałek w górę i w dół wyświetlają kolejne polecenia

Page 71: Trochę historii

Postawy języków shell – bash. Funkcje wbudowane 71

break [n] opuść pętlę for, while, until, select (lub n poziomów)cd dir – zmień kartotekęcontinue n – kontynuuj wykonywanie for, while, until (n – który poziom w górę)echo [arg ...] wyświetl argumenty oddzielone spacjami, zakończone nową liniąexit [n] zakończenie pracy shell z kodem nhelp [wzór] – podpowiedź.history – wyświetla historię poleceńpwd – wyświetl bieżącą ścieżkę

Page 72: Trochę historii

Postawy języków shell – bash. Funkcje wbudowane 72

test expr lub [ expr ] - wylicza wyrażenie expr i zwraca wartość 0 lub 1! expr - negacjawyrazenie1 -a wyrazenie2 – and (-o - or)lancuch1 = lancuch2 łańcuchy równe (!= - nierówne)stala1 -eq stala2 – stałe równe (-ge, -gt, -le, -lt, -ne)plik1 -ef plik2 – plik1 nowszy (-ot – starszy) niż plik2-c plik – istnieje plik i jest znakowy (-d – kartoteka, -e – po prostu istnieje)-r plik – istnieje i jest do odczytu (-w – do zapisu)

Page 73: Trochę historii

Postawy języków shell – bash. Przykład 73

#!/bin/sh

echo "*******************************************"echo -e "Poczatek archiwizacji `date`"

cd /home/automaty/kopie

# usun stare kopie, zostanie jeden zestaw, z# ostatniego przebiegurm *.gz

NAME=fksa`date +%d%m%y`echo $NAMEtar -cf $NAME /reszta1/fkdbfsa/*.dbf /reszta1/fkdbfsa/*.mem 2>/dev/nullgzip $NAME

Page 74: Trochę historii

Postawy języków shell – bash. Przykład 74

echo Skladowanie na tasme:

tar -cvf /dev/nst0 *.gz 2>/dev/nullmt -f /dev/nst0 rewoffl

# przeslij ftp do innego komputeraftp alpha.huta

echo -e "Koniec archiwizacji `date`"

Page 75: Trochę historii

Uruchamianie i zatrzymywanie systemu 75

Pierwszy uruchamiany program - manager bootowania (boot loader).

Lilo, GNU Grub – używane w LinuxiePrzekazują sterowanie do jądra systemu (lub innego systemu operacyjnego)

zbiory konfiguracyjne - /etc/lilo.conf, /etc/grub.confzmiany w lilo.conf trzeba zapisać poleceniem /sbin/lilo

Grub jest nowszy, ma większe możliwości

Page 76: Trochę historii

Uruchamianie i zatrzymywanie systemu 76

Pierwszym procesem uruchamianym po załadowaniu jądra jest init. Jest on ojcem wszystkich innych procesów

Odczytuje plik /etc/inittab opisujący jakie procesy uruchomić

Linia zawierająca initdefault podaje, w jakim trybie uruchomić system, np:id:5:initdefault:

Page 77: Trochę historii

Uruchamianie i zatrzymywanie systemu 77

0 – halt (zatrzymanie systemu, nie używac w inittab)1 – single user – tryb jednoużytkownikowy2 – wieloużytkownikowy, bez NFS3 – wieloużytkownikowy4 – nie używany5 – X116 – reboot (przeładowanie systemu)tryby 7 – 9 są poprawne, ale nie używaneZmiana trybu pracy – tellinit n n = 0, 1, 2, 3, 5 lub 6 – przełączenie do innego trybun= s lub S – do trybu 1n = Q lub q - ponowne odczytanie inittab

Page 78: Trochę historii

Uruchamianie i zatrzymywanie systemu 78

W linuxie skrypty startowe są w kartotece /etc/rc.dPierwszym uruchamianym skryptem jest rc.sysinit. Inicjuje on nazwę komputera, urządzenia, parametry jądra, ustawia czas systemowy, montuje swap i filesystemy, łąduje moduły jądra itp.Po jego skończeniu uruchamiane są skrypty w kartotece /etc/rc.d/rcn.d (n to numer poziomu). Uruchamiane są tylko te, których nazwa zaczyna się od litery S. Skrypty te to linki do plików w kartotece /etc/rc.d/init.d

Page 79: Trochę historii

Uruchamianie i zatrzymywanie systemu 79

Skrypty w kartotece /etc/rc.d/init.d pozwalają na zatrzymanie, uruchomienie, restart, sprawdzenie stanu zainstalowanych w systemie składników oprogramowania:# ./syslog stopShutting down kernel logger: [ OK ]Shutting down system logger: [ OK ]# ./syslog startStarting system logger: [ OK ]Starting kernel logger: [ OK ]#./syslog statussyslogd (pid 571) is running...klogd (pid 575) is running..

Page 80: Trochę historii

Uruchamianie i zatrzymywanie systemu 80

Skrypty startowe systemu czytają konfigurację ze zbiorów w /etc/sysconfig. Są tam informacje o strefie czasowej, języku, układzie klawiatury, wyglądzie konsoli, ustawieniach sieci itp.Są tam również skrypty do konfigurowania urządzeń, na przykład interfejsów sieciowych

Page 81: Trochę historii

Uruchamianie i zatrzymywanie systemu 81

Procesy uruchamiane podczas startu systemu mogą zakończyć swoje działanie po wykonaniu swojego zadania, albo pracować przez cały czas.Procesy które działają ciągle, świadcząc pewne usługi nazywamy daemonami.Niektóre procesy obsługujące usługi internetowe, które są potrzebne czasami uruchamiane są na żądanie przez superdaemon xinetd (inetd)

Page 82: Trochę historii

Monitorowanie stanu systemu 82

ps – procesy w systemiew – aktywni użytkownicytop – najaktywniejsze procesyvmstat – pamięć wirtualna, plik wymiany, obciążenie we/wy, procesoralsof – otwarte plikidf – zamontowane filesystemy i ich zajętośćdu – rozmiar podkartoteklast – historia logowania użytkowników (zbiór wtmp)

Page 83: Trochę historii

Monitorowanie stanu systemu 83

dmesg - komunikaty jądra systemulsmod – załadowane moduły jądralspci – sprzęt przyłączony do szyny PCIlsusb – urządzenia przyłączone do USBfilesystem /proc – informacje o procesach, zajętych zasobach, sprzęcie itp.

Page 84: Trochę historii

Monitorowanie stanu systemu 84

find – wyszukuje pliki o wskazanej nazwie, wielkości, czasie utworzenia, właścicielu (grupie), bez właściciela (grupy), prawach. Umożliwia dla znalezionych plików wykonanie dodatkowych operacji, na przykład:

find . -mtime +14 -name "*.gz" -exec rm -f {} \;

wyszukaj w bieżącej kartotece pliki modyfikowane (utworzone) dawniej niż 14 dni, z nazwą *.gz” i usuń je.

Page 85: Trochę historii

Funkcje sieciowe 85

Sterowniki urządzeń sieciowych ładowane jako moduły jądra, przez skrypt:

/etc/rc.d/rc.sysinit

Sterowniki użytkownika zdefiniowane w:/etc/sysconfig/modules

Page 86: Trochę historii

Funkcje sieciowe 86

/etc/sysconfig/networkuruchamiany przez /etc/rc.d/rc.sysinit, ustawia zmienne środowiskowe, czytane później przez skrypty startowe /etc/rc.d/init.d/network i skrypty w /etc/sysconfig/network-scripts

NETWORKING=yesHOSTNAME=kempnyGATEWAY=195.164.200.62GATEWAYDEV=eth0FORWARD_IPV4="yes"

Page 87: Trochę historii

Funkcje sieciowe 87

/etc/sysconfig/network-scriptsskrypty startowe i konfiguracja interfejsów sieciowych

$>more ifcfg-eth0# Broadcom Corporation|BCM4401 100Base-TDEVICE=eth0BOOTPROTO=staticBROADCAST=195.164.200.255HWADDR=00:02:E3:3A:52:FCIPADDR=195.164.200.52NETMASK=255.255.255.0NETWORK=195.164.200.0ONBOOT=yesTYPE=Ethernet

Page 88: Trochę historii

Funkcje sieciowe 88

Interfejs sieciowy może mieć więcej niż jeden adres:

$>more ifcfg-eth0:0# Broadcom Corporation|BCM4401 100Base-TDEVICE=eth0:0BOOTPROTO=staticBROADCAST=195.164.199.255IPADDR=195.164.199.5NETMASK=255.255.255.0NETWORK=195.164.199.0ONBOOT=yesTYPE=Ethernet

Page 89: Trochę historii

Funkcje sieciowe 89

Ifconfig – programuje interfejsy sieciowe, wyświetla ich ustawienia i statystyki:

ifconfig eth0eth0 Link encap:Ethernet HWaddr 00:02:E3:3A:52:FC inet addr:195.164.200.52 Bcast:195.164.200.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:152 errors:0 dropped:0 overruns:0 frame:0 TX packets:132 errors:0 dropped:0 overruns:0 carrier:4 collisions:0 txqueuelen:1000 RX bytes:20858 (1.9 Mb) TX bytes:988724 (965.5 Kb) Interrupt:3

Page 90: Trochę historii

Funkcje sieciowe 90

Ifconfig – programuje interfejsy sieciowe, wyświetla ich ustawienia i statystyki:

ifconfig eth0:0 195.164.199.52 netmask 255.255.255.0

Tworzy wirtualny interfejs eth0:0 i przypisuje mu adres IP 195.164.199.52 z maską 255.255.255.0

Page 91: Trochę historii

Funkcje sieciowe 91

Ścieżka default i ścieżki do sieci przyłączonych bezpośrednio do interfejsów tworzone są przy starcie systemu lub po zaprogramowaniu nowego interfejsuPozostałe ścieżki dodać (usunąć) możemy poleceniem route:route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]

route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]

Page 92: Trochę historii

Funkcje sieciowe 92

Wyświetlenie tablicy routingu – polecenie route lub netstat -rn

Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface195.164.199.0 * 255.255.255.0 U 0 0 0 eth0195.164.200.0 * 255.255.255.0 U 0 0 0 eth0169.254.0.0 * 255.255.0.0 U 0 0 0 eth0127.0.0.0 * 255.0.0.0 U 0 0 0 lodefault 195.164.200.250 0.0.0.0 UG 0 0 0 eth0

Page 93: Trochę historii

Funkcje sieciowe 93

Dynamiczne tworzenie tablicy routingu – daemony routed (protokół RIP) i gated (protokoły RIP, BGP, EGP, OSPF)

Nie uruchamiać bez wyraźnej potrzeby!!

Aby Linux pracował jako router, potrzebny wpis FORWARD_IPV4="yes" w /etc/sysconfig/network. Czasami ten wpis jest ignorowany, wtedy:

echo 1 > /proc/sys/net/ipv4/ip_forward

Page 94: Trochę historii

Funkcje sieciowe 94

$> cat /etc/host.conforder hosts,bind

$> cat /etc/resolv.confdomain stanpol.com.pl#nameserver 195.164.200.3nameserver 195.164.200.62

W /etc/resolv.conf zdefiniowane jest nazwa domeny DNS. Polecenie domainname wyświetla i ustawia nazwę domeny NIS/YP !

Page 95: Trochę historii

Funkcje sieciowe 95

$> cat /etc/hosts127.0.0.1 localhost.localdomain localhost

$> cat /etc/servicestelnet 23/tcptelnet 23/udp# 24 - private mail systemsmtp 25/tcp mailsmtp 25/udp mailtime 37/tcp timservertime 37/udp timserver

Page 96: Trochę historii

Funkcje sieciowe 96

netstat – stan połączeń sieciowych. Z opcjami alp wyświetla, które programy słuchają na portachping - diagnostyka sieci, wysyła ramki ICMP. Opcje - -n bez DNS, -f flood, -s rozmiar ramki, -b na adres broadcast, -R zapis trasytraceroute, mtr - wyświetlenie trasy ramek. Traceroute używa domyślnie UDP (można zmienić na ICMP)nslookup, host – konwersja adresów IP i nazw z użyciem DNS

Page 97: Trochę historii

Funkcje sieciowe 97

ipchains – filtrowanie pakietów z dokładnością do interfejsu, adresów nadawcy i odbiorcy, portówiptables – firewallarpwatch – śledzi przyporządkowanie adresów IP adresom MACnmap – narzędzie do skanowania zasobów sieciowych i wykrywania luk w bezpieczeństwieettercap – sniffer, man in the middle – czasami przydatny dla administratoraarp – wyświetla i modyfikuje tablicę ARP

Page 98: Trochę historii

Funkcje sieciowe 98

Serwery sieciowe działają jako samodzielne daemony, albo uruchamiane na żądanie przez daemon xinetdsendmail – poczta elektroniczna SMTPapache – serwer WWWsquid – serwer w3cachevuftpd, vsftpd – serwery ftptftp – serwer tftppop3d, imap.d – serwery po3, imap4lpd, cups – serwery drukareksamba – serwer (i klient) plików w sieciach Microsoftntpd – serwer czasutelnetd, sshd – serwery telnet, ssh ....

Page 99: Trochę historii

Kopie bezpieczeństwa systemu 99

Dump – składuje filesystem lub jego część na taśmę (opcjonalnie do zbioru lub pipe)Poziomy 0-9. 0 - składuj wszystkie pliki, n<>0 składuj tylko te pliki, które zostały utworzone lub zmienione od ostatniego dump niższego poziomuZbiór /etc/dumpdates zawiera informacje które filesystemy, kiedy i z jakim poziomem były składowaneTypowe użycie dump -0u -f /dev/st0 /usr

Page 100: Trochę historii

Kopie bezpieczeństwa systemu 100

restore – odtwarza filesystem lub pojedyncze zbiory z kopii utworzonej przez dumpz opcją -i wchodzi w tryb interaktywny umożliwiając odtworzenie pojedynczych zbiorówTypowe użycie:mke2fs /dev/sda1mount /dev/sda1 /mntcd /mntrestore rf /dev/st0

Jeśli były wykonywane częściowe dumpy, najpierw należy odtworzyć dump poziomu 0, później kolejno dumpy wyższych poziomów

Page 101: Trochę historii

Kopie bezpieczeństwa systemu 101

tar – program do składowania zbiorów na taśmę i odtwarzania ich. Może też składować do pliku.Użycie:tar opcje zbiory_do skopiowaniatypowe opcjec – utwórz archiwumx – odtwórz zbiory z archiwumt – wyświetl zbiory z archiwumv – verbose, wyświetlaj co jest wykonywanef – zbiór z archiwum (domyślnie /dev/rmt0)C kartoteka – odtwórz pliki do wskazanej kartoteki

Page 102: Trochę historii

Kopie bezpieczeństwa systemu 102

Typowe użycie:

tar -cvf /tmp/kopia /etcw zbiorze /tmp/kopia zostanie utworzone archiwum wszystkich zbiorów z kartoteki (i podkartotek) /etc

tar -vxf /tmp/kopiaw bieżącej kartotece odtworzy wszystkie zbiory z archiwum w /tmp/kopia

Page 103: Trochę historii

Kopie bezpieczeństwa systemu 103

Polecenia tar i dump mogą opcjonalnie poddawać pakowane zbiory kompresji. Jeśli składowanie odbywa się do zbioru, lepiej jest jednak poddać kompresji archiwum, jednym z dostępnych programów:compress, gzip, bzip2, zip, arj

Page 104: Trochę historii

Kopie bezpieczeństwa systemu 104

Polecenia tar i dump w przypadku składowania na taśmę działają powoli. Niewielkie ilości danych wygodnie jest zarchiwizować do pliku na dysku lokalnym i przesłać na dysk innego komputera (samba, nfs, ftp), składując na taśmie jedynie okresowe kopie.Składowanie najlepiej uruchamiać daemonem cronWażnym jest opracowanie i opisanie szczegółowych procedur wykonywania kopii bezpieczeństwa. Jest to bardzo przydatne podczas odtwarzania systemu po awarii.

Page 105: Trochę historii

Edytory ed, vi - ed 105

Ed – edytor liniowy

operuje zawsze na pojedynczej linii tekstuoperuje na kopii zbioru w buforze, oryginalny zbiór

jest modyfikowany dopiero podczas zapisu buforadwa tryby pracy – komend i wprowadzaniaPrzydatny do obróbki bardzo dużych zbiorów, do

wielokrotnej zamiany tekstu w dużej części zbioru lub kiedy nie jest dostępny tryb pełnoekranowy (niektóre awarie systemu)

użycie – ed plik

Page 106: Trochę historii

Edytory ed, vi - ed 106

W trybie wprowadzania wszystko, co wprowadzimy z klawiatury jest wpisywane do pliku

wejście w tryb wprowadzania: i – przed zaadresowaną linią, a – za zaadresowaną linią

wyjście z trybu wprowadzania i powrót do trybu komend – linia zawierająca tylko jedną kropkę

Page 107: Trochę historii

Edytory ed, vi - ed 107

W trybie komend wszystko, co wprowadzimy z klawiatury traktowane jest jako polecenia.

Adresowanie linii:. bieżąca linia$ ostatnia linian linia n (liczona od 1)- poprzednia linia (-n – n-ta poprzednia linia)+ następna linia (+n – n-ta kolejna linia)/re/ (?re?) następna (poprzednia) linia zawierająca regular expression

Zakres linii – dwa adresy linii oddzielone znakiem ,

Page 108: Trochę historii

Edytory ed, vi ed 108

Przykładowe komendy(.)a – dodaj tekst za zaadresowaną linią(.,.)d – usuń linie z zakresu(.)i - dodaj tekst przed zaadresowaną linią(.,.)s/wzor1/wzor2/ – w podanym zakresie w każdej linii zamienia pierwsze wystąpienie wzor1 na wzor2.(.,.)s/wzor1/wzor2/g – jak wyżej, ale zamienia wszystkie wystąpienia w każdej linii z zakresu.

Page 109: Trochę historii

Edytory ed, vi - ed 109

Podstawowe komendy

q – opuszczenie edytoraw [plik] - zapisanie zmian, opcjonalnie do innego pliku r plik -wczytanie zbioru i dopisanie za bieżącą linią

Page 110: Trochę historii

Edytory ed, vi - ed 110

Przykładowa sesja

>$ cd /etc>$ ed inittab1666/\:initdefaultid:5:initdefault:s/5/3/w1666q>$

Page 111: Trochę historii

Edytory ed, vi - vi 111

vi - edytor ekranowy (vim, vi IMproved) potężne możliwości rozumie składnię wielu języków programowania możliwość pracy w trybie liniowym makropolecenia pracuje na każdym terminalu ze sterowaniem

kursorem

Page 112: Trochę historii

Edytory ed, vi - vi 112

Uruchomienie:vi plik

:q! wyjście z anulowaniem zmian:wq lub ZZ – zapis zmian i wyjście:r zbiór wczytanie zbioru i dopisanie za bieżącą linią:w [plik] zapisanie zmian, opcjonalnie w innym pliku

Page 113: Trochę historii

Edytory ed, vi - vi 113

tryb wprowadzania tekstu tryb komend tryb liniowy

Page 114: Trochę historii

Edytory ed, vi - vi 114

W trybie liniowym można wprowadzać polecenia edytora ed

Wejście w tryb liniowy – poprzedzenie polecenia znakiem :

Przykłady::1,45s/zmienna_c/stala_c/g w liniach 1 – 45 zamieni łańcuch zmienna_c na stala_c:1,.d usunie linie od pierwszej do bieżącej:= wyświetli numer bieżącej linii:5 przeniesie kursor do linii 5

Page 115: Trochę historii

Edytory ed, vi - vi 115

Poruszanie się po tekście – strzałki lub klawisze:k – w góręh – w lewo l – w prawoj – w dół

w niektórych wersjach vi poruszanie się w górę i w dół nie działa w trybie wprowadzania tekstu

Wyszukiwanie tekstu:/wzor przeniesie kursor na początek wzoru. Kolejne pojedyncze / wyszukają jego kolejne wystąpienia

Page 116: Trochę historii

Edytory ed, vi - vi 116

Podstawowe komendyi – wejdź w tryb wprowadzania tekstu, ustaw kursor przed bieżącym znakiem (a – za nim, I – na początku linii, A – na końcu linii)esc – wyjście z trybu wprowadzania tekstur – zastąp jeden znak nowym[n]s – zastąp n znaków nowymi, pozostań w trybie wprowadzania[n]x – usuń znak (n znaków) pod kursorem (X – na lewo od niego) zapamiętaj je w buforze. powtórz ostatnia komendę:h – wyświetl help

Page 117: Trochę historii

Edytory ed, vi - vi 117

Podstawowe komendy

[n]dd usuń n linii (zapamiętaj je w buforze)[n]yy skopiuj do bufora n liniip - wstaw zawartość bufora pod bieżącą linię (P – nad nią). Jeśli w buforze są znaki usunięte komendą x, to wstaw zawartość bufora za kursorem (P - przed)

Page 118: Trochę historii

Edytory ed, vi – vi 118

Makropolecenia

Zapamiętanie makropolecenia:q{rejestr}ciag komend do zapamietaniaqjako rejestr może być użyta dowolna litera a -zWykonanie makropolecenia[n] @{rejestr}wykonane zostaną wszystkie zapamiętane poprzednio w rejestrze polecenia. n wskazuje, ile razy makropolecenie ma zostać wykonane

Page 119: Trochę historii

Pakiety rpm 119

Klasyczny sposób instalacji oprogramowania w Unix -programy w wersji źródłowej, spakowane tar>$ tar -vxf pakiet.tar>$ cd pakiet>$ ./configure>$ make>$ make install>$ make clean

Podstawowa wada – po zainstalowaniu trudno zapanować, gdzie zostały skopiowane poszczególne komponenty

Page 120: Trochę historii

Pakiety rpm 120

Pakiety rpm zawierają archiwum plików i dane pomocnicze używane do instalowania i usuwania plików z archiwum

Po zainstalowaniu pakietu w bazie danych pamiętana jest informacja o zainstalowanych składnikach – gdzie zostały zainstalowane, jaka powinna być ich suma MD5 i atrybuty – umożliwia to dokładne odinstalowanie oprogramowania i sprawdzenie jego zgodności z oryginałem

Page 121: Trochę historii

Pakiety rpm 121

Pakiety rpm występują w dwu wariantach, zawierających skompilowane, binarne programy do zainstalowania (binary rpm) lub programy źródłowe i zasady ich kompilacji (source rpm)

Do zarządzania pakietami rpm służy program rpmBaza danych zainstalowanych pakietów przechowywana jest w /var/lib/rpm

Page 122: Trochę historii

Pakiety rpm 122

Instalowanie nowych pakietówrpm {-i|--install}[install-options] PACKAGE_FILE ...

Uaktualnianie pakietów:rpm {-U|--upgrade}[install-options] PACKAGE_FILE ...

PACKAGE_FILE może być podane jako URL - http lub ftp.

Ważniejsze opcje:--force – wymuszaj instalację nawet gdy jest konflikt z innymi pakietami--nodeps – nie sprawdzaj zależności od innych pakietów

Page 123: Trochę historii

Pakiety rpm 123

Usuwanie pakietówrpm {-e|--erase}[--nodeps] [--test] PACKAGE_FILE ...

--test – nie usuwaj pakietu, symuluj usuwanie

Page 124: Trochę historii

Pakiety rpm 124

Pytania o pakiety rpm {-q|--query} [select-options] [query-options]

Ważniejsze select-options:PACKAGE_FILE – zainstalowany pakiet o tej nazwie-all – wszystkie zainstalowane pakiety-f PLIK – pakiet do którego należy PLIK-p PACKAGE_FILE nie zainstalowany pakiet o tej nazwieWażniejsze query-options:-i, --info – podaj nazwę, wersję i opis pakietu-l, --list – wyświetl pliki w pakiecie

Page 125: Trochę historii

Pakiety rpm 125

Pytania o pakiety

Przykład:rpm -q -all -i |grep Name

wyświetli nazwy wszystkich zainstalowanych pakietów

rpm -q ethtool -i

wyświetli informacje o zainstalowanym pakiecie ethtool

Page 126: Trochę historii

Pakiety rpm 126

Weryfikacja pakietów rpm {-V|--verify} [select-options] [verify-options]

select-options jak przy query, verify-options umożliwia wyłączenie niektórych sprawdzeń

Sprawdza rozmiar, sumę MD5, pozwolenia, typ, właściciela i grupę każdego pliku z pakietu porównując z zapamiętaną w bazie danych.Przykład:rpm -V -f /etc/inittab..5....T c /etc/inittabS.5....T c /etc/rc.d/rc.local

Page 127: Trochę historii

Pakiety rpm - yum 127

yum [opcje] [komenda] pakiet...]komendy:installupdate (upgrade)remove (erase)localinstall, localupdate (instaluj z lokalnego rpm, ewentualne zależności z repozytorium)

Page 128: Trochę historii

Interfejsy graficzne 128

Protokół X opracowano w połowie lat 80, pierwotnie dla Unix

Obecnie wersja X11R6.8.2Architektura klient-serwerInaczej niż w Windows, klient i serwer mogą komunikować się przez sieć

Serwer obsługuje ekran, klientem jest aplikacja, która z niego korzysta

Page 129: Trochę historii

Interfejsy graficzne 129

Serwer:

Wyświetla informację na ekranieOdpowiada na pytania klienta Wysyła komunikaty o błędachWysyła komunikaty o zdarzeniachObsługuje mysz, klawiaturę i ekranTworzy i zamyka okienka, wyświetla informacje w okienkach

Page 130: Trochę historii

Interfejsy graficzne 130

Klient:

Wysyła polecenia do serweraOdbiera informacje o zdarzeniach od serwera (np. o kliknięciu myszką)

Odbiera informacje o błędach od serwera

Page 131: Trochę historii

Interfejsy graficzne 131

Konfiguracja Xserwera w zbiorze /etc/xorg.conf (dawniej - /etc/X11/XF86config)

Opisuje:monitor (typ, częstotliwości odchylania)mysz (liczba klawiszy, rolka)klawiaturę (liczba i układ klawiszy, wersja językowa)kartę wideosposób korzystania z czcionek

Page 132: Trochę historii

Interfejsy graficzne 132

Czcionki obsługuje serwer czcionek, xfs

Konfiguracja xfs w zbiorze /etc/X11/fs/config

Komunikacja pomiędzy xfs i X serwerem poprzez sieć

Page 133: Trochę historii

Interfejsy graficzne 133

Serwer czcionek uruchamiany jest skryptem /etc/rc.d/init.d/xfs

X-serwer uruchamia skrypt /usr/X11R6/bin/startx

Startx ustawia konfigurację (zbiory /etc/X11/xinit/xinitrc i .xinitrc), po czym uruchamia program binarny /usr/X11R6/bin/xinit

Page 134: Trochę historii

Interfejsy graficzne 134

Managery windows – programy zarządzające oknami w X serwerze

FVWM, AfterStep, Enlightenment, IceWM, Sawfish...Umożliwiają zmianę tła, wyglądu okien itp.

Page 135: Trochę historii

Interfejsy graficzne 135

Managery pulpitu – programy zapewniające pełniejszy interfejs do systemu operacyjnego, zawierają własne wbudowane narzędzia i aplikacje

KDE i Gnome

Page 136: Trochę historii

Interfejsy graficzne 136

KDE – nowoczesny manager pulpitu utworzony w QTZawiera własny manager okien – kwmPosiada przeglądarkę WWW, wbudowany help, przeglądarkę PDF, HTML, klienta poczty i wiele innych

Przetłumaczony na ponad 50 języków

Page 137: Trochę historii

Interfejsy graficzne 137

GNOME – nie posiada własnego managera okien, najczęściej używany jest Sawfish, ale działa też z innymi (Icewm, enlightenment)

Zawiera własny manager okien – kwmZdobywa coraz większą popularnośćDo współpracy z GNOME powstaje coraz więcej aplikacji