1. Wymień popularne systemy operacyjne. Przedstaw ich krótką charakterystykę.
a. Linux - wielozadaniowy, wieloużytkowy, 32/64-bitowy system operacyjny typu UNIX
stworzony przez Linusa Torvaldsa. Kod źródłowy systemu jest rozpowszechniany na
zasadach licencji GPL (General Public License) fundacji FSF. Oprócz całkowitej
bezpłatności główną zaletą Linuksa są małe wymagania sprzętowe. Do wykonywania
podstawowych zadań wystarczy mu komputer 386 z 4 MB pamięci RAM. Dostępnych
jest ponad 20 odmian Linuxa pochodzących od firm, różnych organizacji i osób
prywatnych. Testowa instalacja Linuxa potrzebuje na dysku dwóch dodatkowych
partycjach sformatowanych w systemie Ext2: pierwszej na system, i drugiej
przeznaczonej na plik wymiany (swap file). Najpopularniejsze dystrybucje Linuxa to:
RedHat (Chip 2/98), Debian, S. u. S. E Linux (PC WK 12/98), SlackWare, Mandera,
Caldera OpenLinux.
b. Mac OS X - intuicyjny, graficzny, wielozadaniowy, wielodostępny system operacyjny
komputerów Macintosh firmy Apple. Mac OS X to 10 wersja systemu Mac OS
(kolejne pełne wersje systemu są od tej pory numerowane cyframi podrzędnymi –
10.1, 10.2, 10.3, 10.4). Pierwsza wersja systemu Mac OS weszła do użytku
publicznego w 1984 roku wraz z modelem Macintosh. Był to pierwszy
ogólnodostępny system operacyjny wyposażony w graficzny interfejs użytkownika
(GUI).
c. Windows 7 - System Windows 7 Professional dostępny będzie w wersji 32- jak i 64-
bitowej. Maksymalny rozmiar pamięci RAM, którą system może obsłużyć w wersji 64-
bitowej wynosi 192 GB. W systemie możliwa jest obsługa wielu monitorów. W
systemie możliwa jest obsługa wielu monitorów. Edycja Professional może obsłużyć
maksymalnie dwa fizyczne procesory (także 64-bitowe) z wieloma rdzeniami. Dla
poprawienia wydajności w systemie umożliwiono zastosowanie technologii
ReadyBoost (możliwość użycia pamięci flash jako pamięci RAM) oraz Ready Drive
(technologia ta polega na wyposażeniu dysku twardego w nieulotną pamięć flash,
dzięki której następuje przyśpieszenie ładowania systemu, hibernowania i procesu
wznawiania działania komputera).
2. Omów strukturę systemu plików Linux (ext2, ext3, ext4).
a. ext2 (ang. Second Extended File System) – drugi rozszerzony system plików dla
systemu Linux. Ext2 zastąpił rozszerzony system plików ext. Rozpoznanie uszkodzenia
systemu plików (np. po załamaniu się systemu) następuje przy starcie systemu, co
pozwala na automatyczne naprawianie szkód za pomocą oddzielnego programu
(e2fsck), uszkodzone pliki zapisywane są w katalogu lost+found. System plików ext2
zawiera mechanizm zapobiegający znacznej fragmentacji danych, co zdarzało się
podczas używania poprzedniej jego wersji. Ext2 przy domyślnym rozmiarze bloku (4
KB) obsługuje partycje o wielkości do 16 TB i pojedyncze pliki o wielkości do 2 TB.
Nazwy plików mogą mieć do 255 znaków długości. Ważnym elementem systemu
ext2 są wolne pola w strukturach danych – to dzięki nim między innymi, możliwa jest
konwersja „w locie” do systemu ext3 – wykorzystuje on po prostu część z nich do
przechowywania swoich danych.
b. ext3 (ang. Third Extended File System) – system plików oparty na systemie ext2. Jest
to domyślny system plików w większości dystrybucji systemu Linux opartych na
jądrze od 2.4 do 2.6. System plików ext3 jest rozszerzeniem ext2 i różni się od niego
zycio
dodanym mechanizmem księgowania – dokładnego zapisu zmian na dysku, który w
razie awarii systemu umożliwia szybsze przywrócenie spójności systemu plików niż w
przypadku ext2. Poza mechanizmem księgowania system plików ext3 różni się od
ext2 brakiem możliwości odzyskania skasowanych plików.
c. ext4 - (ang. Fourth Extended File System) – czwarta wersja rozszerzonego systemu
plików, następca ext3. Obecnie jeden z najpopularniejszych systemów plików dla
Linuksa. Obecny jest w źródłach Linuksa od wersji 2.6.19. Teoretycznie umożliwia
obsługę woluminów do 1024 petabajtów. Ponadto oferuje możliwość rezerwowania
obszaru dla nowych plików (extent) obniżając ryzyko fragmentacji danych,
zmniejszając ilość potrzebnych metadanych i zwiększając wydajność operacji odczytu
oraz zapisu (włączenie tej funkcji powoduje utratę kompatybilności z ext3).
3. Omów przykładowe drzewo katalogów występujące w systemach operacyjnych Linux.
a. /bin - tutaj znajdują się binarne (wykonywalne) pliki najbardziej podstawowych
narzędzi systemowych
b. /boot -
tutaj znajdują się pliki niezbędne do uruchomienia systemu (kernel, initrd, pliki
bootloadera - w przypadku GRUB)
c. /dev - znajdujące się tutaj pliki nie są faktycznie plikami na dysku, lecz odnoszą się do
urządzeń - za ich pośrednictwem system komunikuje się z urządzeniami (komunikacja
niskopoziomowa)
d. /etc - pliki konfiguracyjne, ustawienia systemowe
e. /home - w tym katalogu znajdują się pliki określające ustawienia każdego
użytkownika, ponadto jest on przeznaczony na zapisywanie danych, np.
dokumentów, obrazków, muzyki i wszelkich plików których używamy na co dzień
f. /lib - tutaj znajdują się systemowe biblioteki dzielone (shared libraries), zawierające
funkcje które są wykonywane przez wiele różnych programów
g. /media - stąd mamy dostęp do nośników wyjmowanych (miejsce montowania
nośników wymiennych) (np. pendrive, CD-ROM)
h. /mnt - tutaj natomiast są "montowane" dyski (w dystrybucjach takich jak Ubuntu,
dyski są montowane w /media)
i. /proc - wirtualny katalog, zawierający dane o aktualnie uruchomionych procesach
j. /root - tutaj znajdują się ustawienia użytkownika root - głównego administratora
każdego systemu uniksowego, który ma maksymalne uprawnienia
k. /sbin - zawiera pliki wykonywalne poleceń, które mogą być wykonywane tylko przez
administratora
l. /sys - pliki systemu
m. /tmp - systemowy folder przeznaczony na pliki tymczasowe
n. /usr - w tym katalogu są instalowane dodatkowe programy, które umożliwiają pracę
zwykłemu użytkownikowi systemu
o. /var - katalog przeznaczony na pliki systemowe, ale których zawartość często się
zmienia, jak logi programów/systemu, pliki html czy skrypty php/cgi wykorzystywane
przez serwer www - inaczej mówiąc są to dane zapisywane przez system i ważniejsze
programy
4. Wymień i omów rodzaje Unix/Linux plików.
a. W systemie Linux wyróżniamy następujące typy plików
i. Pliki zwykłe – pliki zawierające dane
zycio
ii. Katalogi – pliki binarne zawierające listę plików oraz katalogów, które się w
nim znajdują. Każda pozycja stanowi parę informacji złożoną z nazwy pliku
oraz numeru i węzła.
iii. Urządzenia znakowe –plik realizujący niebuforowany dostęp do urządzeń np.
karta muzyczna
iv. Urządzenia blokowe – pliki realizujące buforowany dostęp do urządzeń np.
dysk twardy
v. Linki – mechanizm pozwalający na stworzenie wielu nazw do pojedynczego
pliku dyskowego
vi. Potoki – mechanizm komunikacji międzyprocesowej
5. Omów zastosowanie poleceń: pwd, cd, mkdir, rmdir, mv, ls. Przedstaw przykłady
wykorzystania.
a. pwd (ang. print working directory - wypisz katalog roboczy) - zwraca ścieżkę do
bieżącego katalogu.
Zastosowanie:
pwd
Przykład:
$ cd /usr/lib/X11
$ pwd
/usr/lib/X1
b. cd - polecenie powłoki, służące do przemieszczenia się pomiędzy katalogami w
systemie operacyjnym. W przypadku użycia bez parametrów, następuje powrót do
katalogu domowego (zazwyczaj /home/nazwa_użytkownika lub /root).
Zastosowanie:
cd nazwa_katalogu
Przykład:
cd /home/user/Muzyka
c. mkdir (ang. Make Directory) - polecenie to służy do tworzenia katalogów
Zastosowanie:
mkdir nazwa_katalogu
Przykład:
mkdir katalog1
d. rmdir (ang. Remove Directory) - polecenie służące do usuwania pustych katalogów
Zastosowanie:
rmdir nazwa_katalogu
Przykład:
rmdir katalog1
e. mv (ang. Move) - pozwala przenosić pliki lub katalogi do innego miejsca niż aktualne.
Dzięki mv można również łatwo zmienić nazwę pliku
Zastosowanie:
mv ścieżka_źródłówa ścieżka_docelowa – katalog/plik znajdujący się w
ścieżce źródłowej zostanie przeniesiony do ścieżki docelowej
mv plik1 plik2 - 'plik1' zmieni nazwę na 'plik2'
Przykład:
mv /home/user /tmp - katalog /home/user zostanie przeniesiony do /tmp.
zycio
mv plik1 plik2 - 'plik1' zmieni nazwę na 'plik2'
f. ls (ang. List) - spowoduje wypisanie w postaci listy zawartości danego katalogu.
Dodany z dodatkowymi parametrami pokazuje również informacje o pliku, w tym kto
ma do niego dostęp, kiedy powstał etc.
Zastosowanie:
ls ścieżka_do_katalogu
Przykład:
ls /home/user/Muzyka
6. Omów wymienione działania na plikach (katalogach) tj.: touch, head, tail, cat, more, less.
Przedstaw przykłady wykorzystania.
a. touch - polecenie systemów UNIX zmieniające datę modyfikacji lub ostatniego
dostępu pliku. Wywołane z argumentem tworzy (jeżeli jeszcze nie istnieje) nowy plik
o takiej jak argument nazwie i ustala jego daty modyfikacji i ostatniego dostępu na
aktualną datę.
Przykład:
touch plik1
b. head - wypisuje na standardowy strumień wyjścia (stdout) 10 pierwszych linijek pliku
lub standardowego strumienia wejścia.
Przykład:
head plik1
ps axu | head
c. tail - polecenie wypisujące podaną ilość ostatnich linijek pliku lub potoku (domyślnie
10). Może być stosowane jako narzędzie diagnostyczne do sprawdzania zmian w
plikach.
Przykład:
tail plik1
tail -5 plik1
d. cat (ang. catenate - łączyć) - służącym do łączenia (konkatenacji) plików (np.
podzielonych komendą split) oraz wyświetlania (kierowania na standardowe wyjście)
zawartości pliku (plików). Wyświetlanie zawartości plików jest jednak znacznie
częściej stosowane niż łączenie plików.
Przykład:
Wyświetlenie zawartości pliku lub kilku plików:
cat <nazwa pliku 1> [<nazwa pliku 2> <nazwa pliku 3> ..]
Łączenie zawartości kilku plików w jeden:
cat <nazwa pliku 1> <nazwa pliku 2> [<nazwa pliku 3> ..] > <nazwa
pliku wynikowego>
e. more ( więcej ) - używany do podglądu (ale nie edycji) jednego pliku tekstowego w
danym czasie. Wyświetlając plik nie da się wrócić do początku pliku tzn. plik jest
przewijany tylko w dół.
Przykład:
more plik1
f. less ( mniej ) - wyświetlający duże ilości tekstu w sposób przystępny dla użytkownika
(tzw. pager). W odróżnieniu od more zezwala na nawigację po pliku w obu
kierunkach w dowolnym momencie. W przeciwieństwie do vi, który także może być
zycio
używany do wyświetlania plików, less nie wczytuje całego pliku przy starcie, co
skutkuje szybszym wczytywaniu dużych plików.
Przykład:
less plik1
7. Omów na przykładach zagadnienia związane ze zmianą (przekierowaniem) standardowych
wyjść i wejść, tj.: >,>>,|,<,>&.
a. > wpisuje dane do pliku, gdy plik już istnieje to dane są nadpisywane
Przykład:
cat plik1 > plik2
cat plik1 plik2 plik3 > plik4
b. >> dopisuje dane na koniec pliku, strumień diagnostyczny wędruje na ekran
Przykład:
cat plik1 >> plik2
c. | - stosuje się do przetwarzania strumieni danych. Możliwe jest tworzenie
łańcuchów poleceń, które wzajemnie przerabiają dane.
Przykład:
ls –l /etc/* | more
d. < - strumień danych wejściowy przekserowany jest z argumentu (pliku) do
polecenia, a błędy kierowane są na ekran.
Przykład:
Mail –s „temat”
< zawartość
e. >& - strumień zarówno danych wyjściowych i diagnostyczny przekserowane są do
argumentu
Przykład:
cat plik1 >& plik2
8. Omów zastosowanie polecenia man, przedstaw przykład wykorzystania.
a. man (ang. Manual - instrukcja obsługi) - narzędzie do wyświetlania stron pomocy
man
Przykład:
man nazwa_strony
man numer nazwa_strony
man cd
9. Zastosowanie komend: su, sudo, finger, exit.
a. su – zmiana identyfikatora użytkownika lub uzyskanie praw super użytkownika
b. sudo (ang. superuser do) - umożliwienia użytkownikom uruchomienia aplikacji, jako
inny użytkownik systemu. Najczęściej służy ono do uruchamiania aplikacji
zarezerwowanych dla administratora.
c. finger - program do sprawdzania informacji o użytkowniku(ach)
d. exit – zakończenie bieżącej sesji własnej lub nabytego komendą su identyfikatora
10. Wymień i omów prawa dostępu do plików. Przedstaw ich tablicę numeryczną.
zycio
11. Omów zastosowanie poleceń: chmod, chown, przedstaw przykłady wykorzystania.
a. chmod (ang. change mode - zmiana atrybutu) - polecenie zmiany zezwoleń dostępu
do plików
i. tryb symboliczny:
+ powoduje dodanie wybranych praw do istniejących
- powoduje odjęcie praw
= powoduje ustawienie dokładnie takich praw, jakie wybrano
u (user) – prawa dla użytkownika
g (group) – prawa dla grupy
o (other) – prawa dla reszty
Przykład:
chmod u+x nazwa_pliku
chmod g-w,o+r nazwa_pliku
b. chown – poleceniem można zmienić właściciela i/lub grupę właścicieli każdego
zadanego pliku, według pierwszego nie będącego opcją argumentu lub według
użytkownika i grupy istniejącego pliku odniesienia, wskazanego opcją –reference.
Jeżeli użyto składni opisującej wprost nowego właściciela, to określa ona nowego
właściciela i grupę w formacie: [właściciel][[:|.][grupa]]
Przykład:
chown root /home/student/temp1/plik
chown 1000 /home/student/temp1/plik
zycio
12. Omów pojęcie “dowiązania symbolicznego”. Przedstaw przykłady zastosowania.
a. ln -s – tworzy dowiązania symboliczne między plikami, działa podobnie do cp, poza
tym iż, cp tworzy niezależną kopię pliku zaś ln jedynie dowiązanie.
Przykład:
ln -s ~/Desktop/rysiek ~/Desktop/Katalog1/czesiek
b. dowiązania symboliczne - dowiązanie do pliku wskazujące na jego nazwę.
13. Omów zastosowanie poleceń: find, grep, cut. Przedstaw przykłady zastosowania.
a. find – szuka pliki według zadanego kryterium w hierarchii katalogowej
Przykład:
find nazwa_pliku
b. grep(ang. Global regular expression print) – wypisuje linie pasujące do wzorca
Przykład:
ls /dev/* | grep sda
c. cut – wycina wskazane kolumny lub fragmenty z wszystkich wierszy pliku, a wynik
operacji wyprowadzany jest na standardowe wyjście. Wiersze nie mogą zawierać
więcej niż 512 znaków.
Przykład:
cat /etc/passwd | cut –b -8
14. Omów wyrażenie regularne. Przedstaw składnie jego cytowania. Przykład zastosowania.
…
15. Omów zastosowanie polecenia awk. Przedstaw przykłady zastosowania.
a. awk - polecenie służy do przetwarzania plików tekstowych. Przeszukuje i manipuluje
dane tekstowe wiersz po wierszu zapisując określony wiersz i kolumnę w zmiennych.
zycio
Jest użytecznym narzędziem, które może między innymi posłużyć do wyprowadzania
danych z pliku, bądź przekierowania wyjścia polecenia.
Przykład:
awk ‘{print “hello world”}’
cat przyklad.txt | awk ‘{printf $2, $3}’
Gdzie:
$0 – cały wiersz
$1 – pierwsza kolumna
$n – n-ta kolumna
16. Omów pojęcie procesu. Przedstaw polecenia do kontrolowania procesów w systemie
Linux.
a. proces rozumiany jest jako wykonywany w systemie program
b. ps – zgłasza status procesu
c. top – wyświetl najważniejsze procesy CPU
d. kill – zakończ process
e. jobs – wyświetla procesy pracujące w tle, które są potomkami akutalnego procesu
shellowego
f. bg – przenosi pracę określonego zadania w tło
g. fg – przywraca pracę zadania pracującego w tle
h. suspend – zawiesza wykonywanie procesu
i. wait – oczekuje na zakończenie określonego zadania
17. Omów ogólny mechanizm montowania w systemach Linux. Przedstaw przykład.
a. mount/unmount – montuj/demontuj system plików, zwraca informacje o
zamontowanych systemach plików
Przykład:
mount /floppy
unmount /floppy
18. Omów program tar, wybrane jego opcję, składnię i przykład.
a. tar – program archiwizujący, służy do zapisywania I ekstrakcji plików z archiwum
nazywanego tarfile.
b. -c - tworzy nowe archiwum, jeśli archiwum o podanej nazwie istnieje to jest
nadpisywane
c. –r – dołączenie plików do archiwum na jego końcu
d. –t – wypisywanie zawartości archiwum
e. Składnia: tar –[opcje] nazwa_archiwum.[tar|bz2|gz|z] pliki katalogi
f. Przykład:
tar –xvf plik.tar #rozpakowuje archiwum
tar –cvf plik.tar katalog/ #archiwizuje zawartość katalogu katalog w pliku
plik.tar
19. Globalne zmienne środowiskowe – zastosowanie. Przedstaw przykład ich tworzenia.
zycio
20. Lokalne zmienne środowiskowe – zastosowanie. Przedstaw przykład ich tworzenia.
21. Omów polecenie test na przykładzie praw dostępu, rodzaju I własności plików.
zycio
22. Omów polecenie test na przykładzie porównania arytmetycznego.
zycio
23. Omów polecenie test na przykładzie ciągów znaków.
24. Przedstaw charakterystykę powłoki bash. Omów jej specjalne zmienne.
a. bash - jedna z najpopularniejszych powłok systemów uniksowych. Bash umożliwia
pracę interaktywną i wsadową. Język basha umożliwia definiowanie aliasów, funkcji,
zawiera konstrukcje sterujące przepływem (if, while, for, ...). Powłoka bash
zachowuje historię wykonywanych poleceń. Jest ona domyślnie zapisywana w pliku
.bash_history w katalogu domowym użytkownika.
25. Omów zastosowanie polecenia read. Przedstaw przykłady zastosowania.
zycio
26. Omów strukturę instrukcji warunkowej if-then. Przedstaw przykład wykorzystania.
27. Omów strukturę instrukcji warunkowej if-then-else. Przedstaw przykład wykorzystania.
Przykład:
#!/bin/bash
if date
then echo “dziala”
else echo “nie dziala”
fi
28. Omów strukturę instrukcji elif. Przedstaw przykład wykorzystania.
zycio
Przykład:
#!/bin/bash
if date
then echo “data 1”
elif date
then echo “data 2”
fi
29. Omów rozszerzony mechanizm warunkowy przy wykorzystaniu nawiasów podwójnych ((…))
oraz powdójnych nawiasów kwadratowych [[…]]. W jakim celu podwójne nawiasy zostały
wprowadzone, przedstaw przykłady wykorzystania.
zycio
30. Zmienne tablicowe. Struktura inicjacji i odwołania siędo zmiennych tablicowych, przedstaw
na przykładach.
31. Omów sturkturę instrukcji wyboru case. Przedstaw przykład wykorzystania.
zycio
32. Omów strukturę pętli for. Przedstaw przykład wykorzystania.
33. Omów strukturę pętli while. Przedstaw przykład wykorzystania.
zycio
34. Omów strukturę pętli until. Przedstaw przykład wykorzystania.
zycio
35. Omów strukturę funkcji z uwzględnieniem wszystkich składowych. Przedstaw przykład
wykorzystania.
36. Omów ogólne pojęcia sygnałów w systemie Linux. Przedstaw komendy do ich kontrolowania.
zycio
trap – pułapkowanie sygnałów
jobs – wyświetla listę poleceń przeniesionych w tło
bg – wznawianie procesów w tle
nice –uruchamianie programów ze zmodyfikowanym priorytetem
zycio