Pamięć
pomocnicza powinna móc trwale przechowywać duże ilości danych
Składowe
systemu: zarządzanie
plikami
Pliki
- sposób przechowywania informacji
Plikach
zawierają
programy
(w postaci źródłowej lub wynikowej)
dane
Dla
ułatwienia użytkowania pliki są organizowane w katalogi
Składowe
systemu:
zarządzanie procesami
Proces
- program wykonywany przez procesor wraz z jego otoczeniem
Otoczenie
- zbiór zasobów, z których proces musi korzystać, aby wypełnić
swoje zadanie
Zasoby
- np. czas jednostki centralnej, pamięć, pliki, urządzenia We/Wy
Interpreter
poleceń
Interpreter
poleceń - interfejs między użytkownikiem a systemem operacyjnym
Interpreter
może być (w zależności od systemu operacyjnego)
zawarty
w jądrze systemu
specjalny
program
Zadania
systemu operacyjnego
Zarządzanie
pamięcią operacyjną
Nadzorowanie
pracy programów
Tworzenie
struktury dysków (katalogów i
plików)
Nadzorowanie
współpracy wszystkich dostępnych w systemie urządzeń
Sygnalizacja
błędów
Zapewnienie
komunikacji użytkownika z
komputerem
Rodzaje
systemów operacyjnych
MS-DOS
Windows
95/98/Me
Windows
NT
OS/2
WARP - pierwszy wielozadaniowy graficzny system operacyjny dla
komputerów IBM PC
Unix/Linux
Różnice
między BSD i System V
Najważniejsza
różnica - standardowa powłoka systemu
System
V - powłoka Bourne’a
BSD
UNIX - powłoka C
Niektóre
polecenia jednej wersji są niedostępne w drugiej lub działają
nieco inaczej
Standaryzacja
systemu Unix
SVID
(System
V Interface Definition)
– zgodność z Unixem AT&T.
POSIX
norma IEEE (Institute
for Electrical and Electronic Engineers)
i ANSI (American
National Standards Institute)
nr P1003 – międzynarodowy standard oparty na Systemie V i BSD.
Standaryzacja
Systemu Unix
X/OPEN
– standard utworzony przez organizacje wytwórców systemu UNIX,
Europa.
X-Consortium
- standaryzacja interfejsów działających w oparciu o technologie
X-Window.
SIGMA
–normy niezależne od rodzaju sprzętu, Japonia.
Posługiwanie
się systemem
System
Unix - uniwersalny, bardzo rozbudowany
Komercyjne
odmiany mają zwykle po kilka tysięcy stron dokumentacji (kilka
tysięcy poleceń)
Podczas
wykładu omawiane będą ogólne cechy systemów unixowych
Przykłady:
HP-UX, Solaris
Konfiguracje
sprzętowe
Pod
kontrolą Unixa mogą pracować różne komputery, np.
- PC - komputery
przeznaczone dla jednego użytkownika
(stacje
robocze,
ang. workstations) -
instalacje wieloterminalowe
Instalacje
wieloterminalowe
Składniki
instalacji wieloterminalowej -
komputer
centralny
(tzw. serwer) -
terminale
podłączone do serwera
Przez
łącza (np. kable sieci lokalnej) do serwera można podłączyć
inne komputery (np. PC), pełniące rolę terminali
Terminale
Terminale
(końcówki)
- urządzenia do komunikacji użytkowników z systemem
Podstawowe
elementy terminala
monitor
klawiatura
Terminale
można łączyć do serwera
bezpośrednio
przez łącza szeregowe
przez
okablowanie lokalnej sieci LAN
Terminale
W
charakterze terminali mogą być użyte
klasyczne
terminale znakowe
specjalne
terminale graficzne (np. X-terminale),
komputery
(zwykle klasy PC) używane do naśladowania (emulowania
terminali)
Konsola
systemowa (konsola operatora) - wyróżniony rodzaj terminala
System
operacyjny Unix
Pierwsze
kroki w systemie Unix
Podstawowe
informacje
Unix
rozróżnia duże i małe litery
Naciśnięcie
<Ctrl-C> zwykle przerywa wykonywanie dowolnego programu
Konto
użytkownika
W
systemie Unix może pracować jednocześnie wielu użytkowników
Każdy
użytkownik musi mieć swoje konto
Konto
zakłada administrator systemu
Konto
zabezpieczone jest hasłem
Sesja
Sesja
- praca z systemem Unix
zgłoszenie
chęci pracy (login)
zakończenie
(exit, logout)
Aby
przyłączyć się do systemu, należy podać nazwę konta
użytkownika i hasło
Często
na początku sesji są wyświetlane komunikaty od administratora
systemu
Terminal
W
trybie tekstowym polecenia mogą być wydawane bezpośrednio w
wierszu poleceń
W
trybie okienkowym - należy najpierw uruchomić okno terminala
(nazwy różne w zależności od producenta)
Gotowość
interpretera sygnalizuje znak zachęty - zwykle %, $ lub #
Identyfikacja
terminali
Każdy
terminal zgłaszający się w systemie Unix otrzymuje unikalną
nazwę systemową,
Wyświetlenie
systemowej nazwy danego terminala - polecenie tty
Polecenie
wyświetla nazwę pliku specjalnego związanego z terminalem (np.
/dev/tty01)
Emulatory
terminali znakowych
Emulatory
terminali znakowych - tylko do uruchamiania programów pracujących
w trybie tekstowym
Najczęściej
używane tryby pracy terminali znakowych - vt100, vt220, ansi,
wyse60
Do
emulacji terminala na PC służy np. wersja programu telnet dla
Windows
Znaki
ASCII
Podstawowy
zestaw znaków ASCII (ang. American
Standard Code for Information Interchange)
zawiera 128 znaków: -
litery a - z, A - Z -
cyfry 0-9 -
znaki specjalne ` ~ ! @ # $ % ^ & * ( ) - _ = + [
]{ } ; : ' " , . / < > ? -
znak odstępu -
znaki sterujące (o kodach 0-31)
Polecenia
na początek
Wyświetlenie
spisu zawartości katalogu: ls
Opcje
zmieniające zachowanie polecenia umieszcza się po znaku ‘-’
,np. ls
-l
Polecenia
na początek
Tworzenie
pliku o zawartości wczytywanej z klawiatury terminala: cat
> nazwa_pliku
Zakończenie
wpisywania: <Control-D> Jeśli
plik już istnieje, nowa zawartość zamaże starą
Wyświetlanie
zawartości pliku: cat
nazwa_pliku
Polecenia
na początek
Wyświetlenie
bieżącej daty i godziny: date
Informacja,
kto w tej chwili pracuje w
systemie (nazwa użytkownika, numer terminala i czas rejestracji w
systemie): who
Informacja
wyłącznie o sobie: who
am i
Zmiana
hasła
Zmiana
hasła passwd
Nowe
hasło należy powtórzyć 2 razy
Ograniczenia
na postać hasła (eliminacja haseł zbyt łatwych do odgadnięcia)
Pomoc
systemowa
Unix
ma wbudowany interakcyjny podręcznik
Wyświetlenie
strony podręcznika z informacją na temat danego polecenia man
nazwa_polecenia
Polecenie
cat
- do wyświetlania zawartości pliku lub kilku plików jednocześnie
Przykłady cat
plik1.txt plik2.txt cat
*lab.txt
Wyświetlanie
pliku stronami
Polecenie
more
wyświetla
zawartość pliku do zapełnienia ekranu
czeka
na naciśnięcie klawisza
Składnia
polecenia: more
plik
Katalogi
standardowe
W
większości instalacji Unixa - podobne podkatalogi katalogu
głównego: /etc
/dev /lib /tmp /bin
Katalogi
o specjalnym znaczeniu dla administratora /etc
-
z programami konfiguracyjnymi /dev
- z plikami specjalnymi
(dostęp do urządzeń We/Wy)
Polecenia
dotyczące katalogów
Tworzenie
katalogu mkdir
katalog
Usuwanie
katalogu (pustego) rmdir
katalog
Zmiana
katalogu bieżącego cd
katalog Polecenie
cd
bez parametrów zmienia katalog bieżący na katalog osobisty
Polecenia
dotyczące katalogów
Wyświetlanie
nazwy katalogu bieżącego wraz z pełną ścieżką (print
working directory) pwd
Polecenie
ls
Składnia:
ls
[opcje]
plik
Opcje: -a
wyświetla też pliki ukryte -d
wyświetla tylko nazwy katalogów,
bez ich zawartości -F
zaznacza katalogi (/) i pliki
wykonywalne (*) -l
wyświetla pełną informację -R
wyświetla (rekurencyjnie) podkatalogi
Przechodzenie
drzewa katalogów
Postać
polecenia find find
katalog
warunek
Polecenie
przeszukuje
katalog
wraz z podkatalogami
dla
każdego znajdującego pliku w katalogach sprawdza prawdziwość
warunku
Składniki
parametru warunek
kryteria
selekcji
operacje
wykonywalne
Przechodzenie
drzewa katalogów
Niektóre
możliwe warunki: -atime
n z
pliku korzystano w ciągu
ostatnich n
dni -mtime
nplik
modyfikowano w ciągu ostatnich
n
dni -print
wypisanie ścieżki i nazwy pliku -name
nazwa
plik ma podaną nazwę -user
użytkownikplik
należy do
wskazanej osoby
Przechodzenie
drzewa katalogów
Szukanie
w całym drzewie katalogów pliku o nazwie pass find
/ -name pass -print
Szukanie
w systemie plików, których właścicielem jest użytkownik
root find
/ -user root -print
Zwykle
bez warunku -print
polecenie nie wypisuje nazw znalezionych plików
Przechodzenie
drzewa katalogów
Wypisanie
plików w katalogu bieżącym, do których pasuje wzorzec *.txt find
. -name "*.txt" -print
Kryteria
selekcji są analizowane według kolejności w wierszu poleceń
Przykład
- dwukrotne wypisanie nazw niektórych plików find
-print . -name "*.txt"
Prawa
dostępu do katalogów
Prawa
dostępu do katalogów - inne, niż dla plików
‘r’ użytkownik
może obejrzeć spis
plików zawartych w katalogu (np.
poleceniem ls)
‘w’
użytkownik może modyfikować
zawartość katalogu
‘x’ użytkownik
ma dostęp do plików w
tym katalogu i podkatalogach
System
operacyjny Unix
Edytor
vi
Standardowe
edytory Unixa
Różne
edytory Unixa - np. ed, emacs
Pełnoekranowy
edytor vi
- dostępny w każdym systemie Unix
Istnieje
wiele wersji edytora vi
Wykład
omawia wersję podstawową
Tryby
pracy
Poleceń
(command
mode)
naciskane
klawisze są interpretowane jako polecenia
kolejno
wpisywane znaki pojawiają się w
ostatnim wierszu ekranu
tryb
poleceń kończy naciśnięcie <i>
Wstawiania
tekstu (insert
mode)
tryb
wstawiania kończy naciśnięcie <Esc>
Tryby
pracy
Sygnał
dźwiękowy po naciśnięciu <Esc>
oznacza, że pracujemy już w trybie wydawania komend
Niektóre
wersje vi
umożliwiają poruszanie się po tekście przy pomocy klawiszy
kursora także w trybie wstawiania tekstu
Uruchamianie
edytora
Uruchomienie
edytora vi
Uruchomienie
edytora z jednoczesnym otwarciem pliku vi
nazwa_pliku
Polecenia
Wszystkie
polecenia edytora vi-
na stronach programu man
Każda
litera oznacza jakieś polecenie
Duże
i małe litery mają różne znaczenie
Wiele
poleceń można poprzedzić cyfrą - liczbą powtórzeń: x
- usuwa jeden znak pod kursorem 10x
- usuwa 10 znaków
Otwieranie
pliku
W
wierszu poleceń: nazwa_pliku
Gdy
plik nie istnieje - wyświetla ekran wypełniony wierszami ze
znakiem tyldy (~)
w pierwszej kolumnie
Gdy
plik istniał - wyświetla zawartość pliku (wiersze po końcu
pliku zawierają tylko tyldę)
Zachowywanie
pliku
Zachowanie
pliku (write) :w
<Return>
Opuszczenie
programu (quit) :q
<Return>
Obie
operacje można połączyć :wq
lub ZZ
Opuszczenie
bez zachowywania :q!
Przesuwanie
kursora
Przesuwanie
kursora o wiersz w górę i
w dół oraz o znak w lewo i w prawo: - <k>,
<j>,
<h>,
<l>
lub klawisze kursora
Przesuwanie
kursora na koniec lub na początek wiersza - <$>
i <^>
Przesuwanie
kursora na górę i dół ekranu - <H>
i <L>
Przewinięcie
tekstu o jeden pełny ekran: <Ctrl-F>,
<Ctrl-B>
Wstawianie
tekstu
Po
naciśnięciu klawisza <i>
kolejne znaki są dodawane przed kursorem
Dodanie
znaku za kursorem - <a>
Dodawanie
tekstu na początku lub na końcu wiersza - <I>
i <A>
Usuwanie
znaków - <Backspace>
Dodanie
linii poniżej kursora - <o> Dodanie
linii powyżej kursora - <O>
Zamienianie
znaków
Zmiana
znaku pod kursorem - należy nacisnąć <r>,
a następnie nowy znak
Zmiana
większej liczby znaków - należy nacisnąć <R>,
ciąg znaków, <Esc>
Usuwanie
tekstu
Usunięcie
jednego znaku spod kursora - klawisz <x>
Usunięcie
znaku na lewo od kursora - klawisz
<X>
Usunięcie
całego słowa - należy ustawić kursor na pierwszej literze i
nacisnąć <dw>
Operacje
na blokach tekstu
Edytor
vi
ma wewnętrzny schowek, w
którym jest umieszczany usuwany lub kopiowany tekst
Kursor
można następnie umieścić w
nowym położeniu i wkleić tam zawartość schowka
Operacje
na blokach tekstu
Usunięcie
jednego wiersza: dd
Usunięcie
kilku wierszy: liczba
dd
Kopiowanie
wierszy: [liczba]
yy
Wklejenie
zawartości schowka do tekstu -
na prawo od kursora: p -
na lewo od kursora: P
Wyszukiwanie
tekstu
Wyszukiwanie
tekstu /wzorzec
<Enter>
Po
znalezieniu wzorca tekst zostanie tak przewinięty, żeby wzorzec
był widoczny na ekranie
Zamiana
tekstu
Zastąpienie
ciągu znaków - polecenie
:s :wiersz_pocz,wiersz_koncs/wzorzec/zamiennik
Symbol
$
oznacza ostatni wiersz
W
każdym wierszu zostanie zamienione tylko pierwsze wystąpienie
wzorca
- jeśli na końcu nie zostanie dodana opcja /g
Przykład :1,$s/file/plik/g
Inne
przydatne polecenia
Włączenie
numerowania wierszy :set
number
Wyłączenie
numerowania wierszy :set
nonumber
Odświeżenie
ekranu <Ctrl-L>
Cofnięcie
ostatniego polecenia <u>
System
operacyjny Unix
Powłoka
(shell)
Interfejs
użytkownika z systemem
Interfejs
odczytuje
naciśnięte klawisze
szuka
w pamięci żądanego programu lub polecenia systemu
ładuje
program do pamięci
wykonuje
go
W
systemie Unix interfejsem użytkownika z systemem jest powłoka
(shell)
Powłoka
program
część
systemu Unix, z którą styka się użytkownik
Powłoka
jest automatycznie ładowana po wejściu do systemu
To
powłoka wyświetla wszystkie znaki zachęty i komunikaty
Rodzaje
powłok
Najpopularniejsze
powłoki Unixa
Bourne'a
(Bourne
Shell)
-sh
C
(C-Shell)
-csh
Korna
(Korn
Shell)
- ksh
Powłoki
różnią się składnią niektórych poleceń i zestawem
oferowanych narzędzi
Dotychczas
omówione polecenia są wspólne dla najpopularniejszych powłok
Rodzaje
powłok
Nazwa
powłoki uruchamianej w chwili przyłączenia się użytkownika do
systemu - przechowywana w pliku /etc/passwd
Decyduje
o tym - administrator
Mechanizm
działania powłoki
Powłoka
czyta z klawiatury to, co wpisze użytkownik, do naciśnięcia
<Enter>
Tekst
może zawierać kilka poleceń
Polecenia
w jednym wierszu - oddzielone znakiem ‘;’
Powłoka
analizuje
wczytany tekst
w
razie błędu wypisuje komunikat
Mechanizm
działania powłoki
Powłoka
uruchamiając program
czeka,
aż program się wykona
wyświetla
znak zachęty - może znów przyjmować komendy
Typowe
znaki zachęty
w
csh%
w
sh
i ksh$
Powłoka
może uruchomić program w tle
Rodzaje
poleceń użytkownika
Wbudowane
polecenia powłoki (wewnętrzne) - np. cd
Wykonywalne
programy:
większość
poleceń (tzw. zewnętrznych) -
np. ls,
find
kody
wynikowe powstałe w rezultacie kompilacji programu (np. w języku
C)
Pliki
wsadowe (skrypty, shell
scripts)
z poleceniami do wykonania przez powłokę
Opcje
poleceń
Rodzaje
opcji poleceń:
jedna
litera po znaku ‘-’
(np. -l)
kilka
znaków po znaku ‘-’
(np. -d2
); znaki
po literze są wartością opcji (wartością opcji -d
ma być 2)
jedna
litera po znaku -,
a po spacji wartość (np. -f
moj_plik
)
Opcje
poleceń
Zwyczajowo
opcje powinny być podawane
bezpośrednio
po nazwie polecenia
przed
nazwami jakichkolwiek plików
Uruchamianie
plików
Powłoka
szuka pliku (polecenia)
jeśli
w nazwie pliku występuje ścieżka - tylko w podanym katalogu
jeśli
nie - we wszystkich katalogach występujących w zmiennej środowiska
PATH
Jeśli
katalog bieżący nie występuje w zmiennej PATH,
nie jest przeszukiwany - wyraźne żądanie, np. ./oblicz
Przekazywanie
parametrów
Powłoka
zastępuje
metaznaki w parametrach pasującymi nazwami plików
przekazuje
parametry programowi
nie
interpretuje metaznaków w parametrach otoczonych cudzysłowem
Przykład
- wyświetlenie zawartości pliku *.txt cat
"*.txt"
Klawisze
redakcyjne
Klawisze
redakcyjne - używane do redagowania zawartości wprowadzanego
wiersza
Możliwość
redagowania - dopóki nie zostanie naciśnięty klawisz <Enter>
Klawisze
redakcyjne
erase
- usuwa poprzedzający znak
w
zależności od konfiguracji terminala - <BackSpace>,
<Delete>
lub <Ctrl-H>
kill
- usuwa cały wiersz
<Ctrl-U>
escape
- znak ucieczki (znak wpisany po nim traci specjalne znaczenie)
‘\’
Klawisze
specjalne
stop
- zatrzymuje wypisywanie danych na ekran (standardowo <Ctrl-S>)
start
- ponownie uruchamia wypisywanie (standardowo <Ctrl-Q>)
intr
- przerywa wykonywanie programu (standardowo
<Ctrl-C>)
Klawisze
specjalne
quit
- zatrzymuje wykonywanie, jeśli program blokuje użycie
intr (standardowo
<Ctrl-\>
-
system tworzy specjalny plik core
(obraz wykonywanego procesu)
Polecenie
stty
Polecenie
stty
- do zmiany ustawień klawiszy specjalnych i redakcyjnych
Wyświetlenie
bieżących ustawień stty (czasem
stty
all
lub stty
-a)
Ustawienia
zmienia polecenie: stty
klawisz
kombinacja_klawiszy
Przykład: stty
erase '^G' lub: stty
erase ^G
Zmienne
środowiska
Zmienna
środowiska - część środowiska, przekazywanego procesom
Ustawienia
standardowych zmiennych środowiska - zwykle w skrypcie (pliku
wsadowym), uruchamianym w chwili przyłączania się do systemu
Zmienne
środowiska
Standardowe
zmienne środowiska to: PATH
- określa ścieżki wyszukiwania
plików uruchamialnych MAIL
- określa nazwę pliku z pocztą SHELL -
określa typ powłoki HOME -
określa adres katalogu
osobistego użytkownika TERM -
określa typ terminala
Zmienne
środowiska
Sposób
zmieniania wartości zmiennej środowiska zależy od rodzaju powłoki
w
sh
i ksh zmienna=wartość export
zmienna
w
csh setenv
zmienna
wartość
Jeśli
parametr wartość
zawiera odstępy lub znaki specjalne, trzeba go ująć w cudzysłów
Zmienne
środowiska
Odwołanie
do wartości zmiennej: $zmienna
Wyświetlenie
wartości zmiennej: echo
$zmienna
Spis
zmiennych środowiska printenv
(dla csh) printenv
lub export
(dla sh
i ksh)
Zmienne
środowiska
Przykład
- kontrola ustawienia typu terminala: echo
$TERM
Zmiana
typu terminala na vt100
dla
csh setenv
TERM vt100
dla
sh
i ksh TERM=vt100 export
TERM
Skrypt
inicjujący
Skrypt
inicjujący - plik znajdujący się w
katalogu osobistym użytkownika, uruchamiany po wejściu do systemu
w
sh
i ksh .profile
w
csh.login
i .cshrc
Zawartość
pliku jest ustalana wstępnie przez administratora systemu, ale może
być zmieniana przez użytkownika
Procesy
Program
- plik zawierający wykonywalny kod (plik, do którego ktoś ma
prawo ‘x’)
Polecenie
wykonania programu - powoduje powstanie procesu (ang.
process)
Strumienie
Do
otoczenia każdego procesu należą dwa strumienie (ang. stream)
strumień
wejściowy
- do czytania poleceń, parametrów itp.
strumień
wynikowy
- do zapisywania wyników działania programu
Strumienie
Domyślnie
oba strumienie odpowiadają konsoli
Standardowy
strumień wejściowy (standardowe wejście) odpowiada klawiaturze
Przykład cat
pl1.txt pl2.txt > spis.txt cat
pl3.txt >> spis.txt
Przeadresowywanie
wejścia
Znakiem
przeadresowania wejścia jest ‘<‘
Przykład: program
< dane > wyniki
Potoki
Warunki
łączenia programów w potok
(ang. pipeline
lub
pipe)
dane
przetwarzane są kolejno przez kilka programów
każdy
program wypisuje wynik do pewnego strumienia wynikowego, który jest
jednocześnie strumieniem wejściowym innego programu
Potoki
Oznaczenie
potoku - znak ‘|’
Zapis
potoku polecenie1
parametry | polecenie2 parametry lub
np. program1
| program2 | program3
Filtry
W
potokach często wykorzystuje się tzw.
filtry
Filtr
- program, który
pobiera
dane z wejścia
przetwarza
je
wysyła
je na wyjście przefiltrowane
Przykład:
ls
-l | more
Polecenie
grep
Jeśli
polecenie przeszukuje wiele plików, na początku każdego wiersza
umieszcza nazwę pliku, w którym ten wiersz znaleziono
Jeżeli
pominięte zostaną nazwy plików, polecenie pracuje jako filtr
czytający dane ze standardowego wejścia polecenie
|grep
[opcje]
wzorzec
Polecenie
grep
Przykłady
grep
ED students grep
macierz * ls
-l | grep rwxrwxrwx
Odmiany
polecenia: egrep,
fgrep
Polecenie
grep
Niektóre
opcje polecenia -c
wypisanie
tylko liczby wierszy, w
których wystąpił wzorzec -l jeśli
przeszukiwanych jest wiele pli- ków
- wypisane zostaną tylko nazwy tych,
w których wystąpił wzorzec -v
wypisanie tylko tych wierszy, w których
nie wystąpił wzorzec
Wyrażenia
regularne
Wyrażenia
regularne są rozumiane przez grep,
vi
i inne programy
Wyrażenie
jest ciągiem znaków
Wyrażenia
wyglądają podobnie do wzorców nazw plików
Znaki
specjalne w wyrażeniach
Kropka
(‘.’) - oznacza dowolny znak
Nawiasy
kwadratowe (‘['
i ‘]’)
otaczające zbiór znaków - jeden znak ze zbioru
Wzorzec Odpowiada
abcabc
a.c abc
lub
aac
lub
a2c
itd.
[abc] a
lub
b
lub
c
Znaki
specjalne w wyrażeniach
Jeśli
pierwszym znakiem po nawiasie (‘[‘)
jest karetka (‘^’)
- jeden ze znaków nie
wymienionych
w zbiorze
Oznaczenie
zakresu znaków w nawiasach kwadratowych - przy pomocy
myślnika
Wzorzec Odpowiada
[^abc] d
lub
e
itd. [a-z] a
lub
b
lub
c
itd.
do z
Znaki
specjalne w wyrażeniach
Ciąg
znaków przed znakiem powtórzenia (‘*’)
może wystąpić w tekście zero lub więcej
razy
Wzorzec Odpowiada a*b b
lub
ab
lub
aab itd. [ab]*c c
lub
ac
lub
aac lub
bc lub
babc
itd. l.*a luneta
lub
lawa
itd.
Znaki
specjalne w wyrażeniach
Każdy
znak specjalny poprzedzony zna-kiem ‘\’
traci swoje specjalne znaczenie
Wzorzec
nie może być dłuższy od wiersza: znak ‘^’
oznacza dodatkowo początek, a ‘$’
- koniec wiersza
\[ [
^abc abc,
jeśli a
jest pierwszym
znakiem w wierszu
Znaki
specjalne w wyrażeniach
Przykłady
zakresów znaków
- dowolny
ciąg małych liter [a-z]*
- dowolna
liczba dwucyfrowa [0-9][0-9]
Używając
wzorca zawierającego znaki specjalne, należy go ująć w cudzysłów
Wyrażenia
w poleceniu grep
Wyszukanie
w pliku spis1
wszystkich wierszy zawierających ciąg znaków Ad
lub ad
lub AD
lub ad grep
"[Aa][Dd]" spis1
Wyszukanie
wierszy ze znakiem [ grep
"\[" spis1
Szukanie
wierszy zaczynających się na A grep
"^A" spis1
Polecenie
sort
Polecenie
sort
sortuje wiersze podanego pliku (plików) i wysyła wynik na
standardowe wyjście
Jeśli
w linii poleceń podano więcej niż jeden plik, ich zawartość
jest łączona podczas sortowania
Polecenie
sort
Domyślnie
sortowanie jest realizowane zgodnie z kolejnością kodów ASCII
Każdy
wiersz składa się z pól - pozycję
pola
określa się podając jego numer (tzw. numeracja absolutna zaczyna
się od zera)
Parametr
poz1
oznacza pierwsze, poz2
- ostatnie pole sortowania (brak paramet-ru poz2
- sortowanie do końca wiersza)
Polecenie
sort
Przykłady
sort
students sort
test* sort
+1 -2 plik1 ls
-l | sort +3
Polecenie
sort
Niektóre
opcje polecenia: -f
sortowanie bez rozróżniania dużych i
małych liter -r sortowanie
w porządku odwrotnym -u usunięcie
powtarzających się wierszy -d sortowanie
z uwzględnieniem tylko liter,
cyfr i spacji (ignorowanie znaków
interpunkcyjnych)
Rozgałęzianie
potoku
Polecenie
tee
czyta dane z wejścia na wyjście i jednocześnie zachowuje je w
podanym pliku
Przykład: cat
dane | tee kopia | grep ‘x’
Polecenie
tee
- często wykorzystywane do sprawdzania, co naprawdę dzieje się w
skomplikowanych procesach
Zakończenie
sesji
W
większości współczesnych instalacji sesję kończy wydanie
polecenia exit
W
powłokach sh
i ksh
można też nacisnąć klawisz <Ctrl-D>
jako pierwszy w nowym wierszu poleceń
Często
instalacje zabraniają używania <Ctrl-D>
dla uniknięcia przypadkowego zamknięcia sesji
Komunikaty
o błędach
Komunikaty
od programu lub powłoki są zwykle krótkie i mają
składnię: nazwa:
komunikat
Przykładowe
komunikaty:
No
such file or directory
- nie ma takiego pliku lub katalogu
Not
a directory
- to nie katalog
Permission
denied
- brak prawa dostępu
Almost
out of disk space
- dysk jest prawie pełny
System
operacyjny Unix
Użytkownicy
systemu
Konto
użytkownika
Użytkownik
musi być w systemie zarejestrowany
(mieć otwarte konto)
Konto
użytkownika
- pewien zestaw informacji na jego temat, np.
nazwa
numer
UID
nazwa
grupy
hasło
Użytkownicy
Rodzaje
użytkowników -
zwykli użytkownicy (ang. users) -
użytkownik uprzywilejowany (ang. superuser),
administrator systemu - root
Konto
roota - predefiniowane
Spis
wszystkich użytkowników systemu - w pliku /etc/passwd
(właściciel - root, prawo czytania - wszyscy)
Plik
/etc/passwd
Każdy
wiersz pliku - informacje o jednym użytkowniku
Pola
wiersza - oddzielone dwukropkiem
nazwa
konta
zaszyfrowane
hasło
numer
użytkownika (tzw. UID)
numer
jego podstawowej grupy (tzw. GID)
komentarz
(np. imię i nazwisko)
nazwa
katalogu osobistego
powłoka
uruchamiana w chwili logowania
Grupy
Idea
grup - umożliwienie kilku użytkownikom dzielenia się wspólnymi
zasobami plikowymi
Każdy
użytkownik w chwili utworzenia konta staje się członkiem jakieś
grupy
Grupy
tworzy administrator systemu
Do
zmiany grupy - polecenie newgrp
[opcje]
[grupa]
Opis
wszystkich grup
Plik
opisu grup - /etc/group
Informacje
w pliku
nazwa
grupy
hasło
grupy (tylko w niektórych odmianach Unixa)
numer
grupy (GID)
lista
nazw użytkowników należących do grupy
Środowisko
pracy użytkownika
Pliki
/etc/passwd
i
/etc/group
- tzw. ewidencyjne
Pliki
inicjujące
środowisko użytkownika
/etc/profile
- dla wszystkich powłok
$HOME/.profile -
dla sh
i ksh
$HOME/.login
i $HOME/.cshrc
- dla csh
Środowisko
pracy użytkownika
Systemowe
środowisko pracy użytkownika - ustalane na podstawie
danych
pobieranych z plików ewidencyjnych i inicjujących
wykonania
pewnych czynności wstępnych, opisanych w plikach inicjujących
Środowisko
- początkowe (może być modyfikowane po rozpoczęciu sesji)
Prawa
dostępu do plików
System
Unix sprawdza w kolejności
czy
użytkownik jest właścicielem pliku
czy
należy do grupy, do której należy plik
prawa
dostępu pozostałych użytkowników
Domyślne
prawa dostępu
Domyślne
prawa dostępu - nadawane plikowi w chwili tworzenia
Do
określania praw - polecenie umask
Brak
argumentów polecenia - wyświetlanie aktualnych ustawień