System Unix - kgrudzi.iis.p.lodz.plkgrudzi.iis.p.lodz.pl/laboratorium/lab_3/Lab_1_lin.pdf ·...

19
System Unix Trochę historii System operacyjny Linux powstał pod koniec 1991 roku. Twórcą tego systemu był Linus Torvalds z Uniwersytetu Helsińskiego, który stworzył go w oparciu o niewielką implementację Uniksa o nazwie MINIX. Informacje o swojej pracy opublikował na jednej z list dyskusyjnych, co spotkało się z dużym zainteresowaniem i wkrótce nad projektem pracowało wielu programistów. Przyczyniło się to do szybszego rozwoju tego systemu i sprawiło, że bardzo szybko zyskał on popularność. W roku 1994 wprowadzono do systemu Linux mechanizmy pozwalające na pracę w sieci. Od 1995 Linux mógł pracować z procesorami: Intel, Alpha Digital i Sun Sparc. W 1996 roku powstała wieloprocesorowa wersja Linuksa o numerze 2.0. W 1998 ruszyły prace nad projektem KDE, który miał na celu stworzenie środowiska graficznego dla systemu Linux. Cechy systemu Linux pełną wielozadaniowość – wielu użytkowników w tym samym czasie może wykonywać kilka zadań na tym samym komputerze pamięć wirtualną – Linux może używać części dysku twardego jako pamięci wirtualnej co zwiększa wydajność systemu poprzez umieszczanie aktywnych procesów w pamięci RAM, a tych rzadziej używanych lub nieaktywnych na dysku wbudowaną obsługę sieci – poprzez modem lub kartę sieciową Linux może porozumiewać się z innymi komputerami wykorzystując protokoły TCP/IP, NFS, NIS i inne współużytkowanie bibliotek – programy w systemie Linux nie przechowują własnych kopii standardowych bibliotek tylko wspólnie współużytkują zestaw procedur, do których mogą odwoływać się w trakcie działania. Dzięki temu otrzymujemy więcej przestrzeni dyskowej kompatybilność z normą IDEE POSIX – dzięki czemu Linux obsługuje wiele standardów ustalonych dla systemów Unix X Window – jest systemem dającym graficzny interfejs niezastrzeżony kod źródłowy – dzięki czemu możemy aktywnie uczestniczyć w rozwoju systemu darmowe oprogramowanie – dostajemy wraz z systemem na płytach CD, poza tym istnieje wiele stron internetowych, na których możemy znaleźć ciekawe oprogramowanie. System KNOPPIX KNOPPIX jest wersją systemu operacyjnego Linux, uruchamianego bez instalowania bezpośrednio z płyty CD. Jest to zbiór oprogramowania operacyjnego i użytkowego typu GNU/Linux, uruchamianego bezpośrednio z płyty CD. Wspiera i rozpoznaje ono szeroką gamę kart graficznych, kart dźwiękowych, urządzeń SCSI i innych urządzeń peryferyjnych. Może być zaadaptowany i użytkowany jako platforma demonstracyjna Linuxa, oprogramowanie szkoleniowe, zapasowy system ratunkowy lub też platforma demonstracyjna dla oprogramowania komercyjnego. Korzystanie z systemu KNOPPIX nie wymaga instalowania czegokolwiek na twardym dysku. Poprzez użycie mechanizmu przezroczystej dekompresji na płycie CD można umieścić do 2 GB wykonywalnego oprogramowania.

Transcript of System Unix - kgrudzi.iis.p.lodz.plkgrudzi.iis.p.lodz.pl/laboratorium/lab_3/Lab_1_lin.pdf ·...

System Unix

Trochę historii System operacyjny Linux powstał pod koniec 1991 roku. Twórcą tego systemu był Linus Torvalds z Uniwersytetu Helsińskiego, który stworzył go w oparciu o niewielką implementację Uniksa o nazwie MINIX. Informacje o swojej pracy opublikował na jednej z list dyskusyjnych, co spotkało się z dużym zainteresowaniem i wkrótce nad projektem pracowało wielu programistów. Przyczyniło się to do szybszego rozwoju tego systemu i sprawiło, że bardzo szybko zyskał on popularność. W roku 1994 wprowadzono do systemu Linux mechanizmy pozwalające na pracę w sieci. Od 1995 Linux mógł pracować z procesorami: Intel, Alpha Digital i Sun Sparc. W 1996 roku powstała wieloprocesorowa wersja Linuksa o numerze 2.0. W 1998 ruszyły prace nad projektem KDE, który miał na celu stworzenie środowiska graficznego dla systemu Linux.

Cechy systemu Linux • pełną wielozadaniowość – wielu użytkowników w tym samym czasie może wykonywać

kilka zadań na tym samym komputerze • pamięć wirtualną – Linux może używać części dysku twardego jako pamięci wirtualnej co

zwiększa wydajność systemu poprzez umieszczanie aktywnych procesów w pamięci RAM, a tych rzadziej używanych lub nieaktywnych na dysku

• wbudowaną obsługę sieci – poprzez modem lub kartę sieciową Linux może porozumiewać się z innymi komputerami wykorzystując protokoły TCP/IP, NFS, NIS i inne

• współużytkowanie bibliotek – programy w systemie Linux nie przechowują własnych kopii standardowych bibliotek tylko wspólnie współużytkują zestaw procedur, do których mogą odwoływać się w trakcie działania. Dzięki temu otrzymujemy więcej przestrzeni dyskowej

• kompatybilność z normą IDEE POSIX – dzięki czemu Linux obsługuje wiele standardów ustalonych dla systemów Unix

• X Window – jest systemem dającym graficzny interfejs • niezastrzeżony kod źródłowy – dzięki czemu możemy aktywnie uczestniczyć w rozwoju

systemu • darmowe oprogramowanie – dostajemy wraz z systemem na płytach CD, poza tym istnieje

wiele stron internetowych, na których możemy znaleźć ciekawe oprogramowanie.

System KNOPPIX KNOPPIX jest wersją systemu operacyjnego Linux, uruchamianego bez instalowania bezpośrednio z płyty CD. Jest to zbiór oprogramowania operacyjnego i użytkowego typu GNU/Linux, uruchamianego bezpośrednio z płyty CD. Wspiera i rozpoznaje ono szeroką gamę kart graficznych, kart dźwiękowych, urządzeń SCSI i innych urządzeń peryferyjnych. Może być zaadaptowany i użytkowany jako platforma demonstracyjna Linuxa, oprogramowanie szkoleniowe, zapasowy system ratunkowy lub też platforma demonstracyjna dla oprogramowania komercyjnego. Korzystanie z systemu KNOPPIX nie wymaga instalowania czegokolwiek na twardym dysku. Poprzez użycie mechanizmu przezroczystej dekompresji na płycie CD można umieścić do 2 GB wykonywalnego oprogramowania.

Uruchamianie systemu KNOPPIX Aby uruchomić system KNOPPIX należy:

• Zaopatrzyć się w płytę CD z tym systemem (poprzez Internet lub zamówić płytę) • Umieścić płytę w napędzie • Sprawdzić, czy w BIOS-ie ustawione jest bootowanie z napędu CD • Zrestartować komputer

Logowanie się do systemu Systemy operacyjne z rodziny Linux mogą równocześnie obsługiwać wielu użytkowników. Muszą oni posiadać konto na danym komputerze pracującym pod kontrolą tego systemu. Konto na danym komputerze może założyć administrator danego systemu. Ustala on ponadto przynależności do grup, dostęp do odpowiednich zasobów w systemie, itp. Po uruchomieniu systemu na ekranie pojawia się monit z prośbą o wprowadzenie nazwy użytkownika i odpowiedniego hasła. Po zakończeniu sesji użytkownik powinien się z systemu wylogować. Służy do tego polecenie exit. Istnieje również możliwość pracy zdalnej na komputerze z zainstalowanym systemem z rodziny Unix. Do nawiązania połączenie z takim komputerem służy program telnet dostępny np. w systemie Windows. Po nawiązaniu połączenie użytkownik musi wprowadzić login oraz hasło, natomiast na koniec sesji ją zamknąć wprowadzając polecenie exit.

Wiele sesji na komputerze lokalnym System Linux posiada siedem wirtualnych konsol, do których mamy dostęp za pomocą kombinacji klawiszy: ALT+F1 do F7. Podczas uruchamiania systemu X Window ręcznie lub automatycznie, zablokowana zostaje konsola, z której zostały uruchomione X-y, a nasz menadżer wyświetlania dostępny jest na konsoli 7. Przejście z poziomu X-ów na pozostałe konsole odbywa się za pomocą następującej kombinacji klawiszy: CTRL+ALT+F1 do F6. Powrót do X Window odbywa się za pomocą kombinacji CTRL+ALT+F7. Na każdej z wirtualnych konsol możemy zalogować się, jako inny użytkownik. Takie rozwiązanie umożliwia nam uruchomienie na każdej z konsol jakiegoś zadania. Należy jednak pamiętać, że Linux to prawdziwy system wielozadaniowy, który umożliwia przeniesienie dowolnego procesu w tło, zwalniając terminal i ponowne przywrócenie go w dowolnym momencie.

Operacje na katalogach i plikach System plików można określić jako metody i struktury danych, które są używane przez system operacyjny w celu zapisania i zorganizowania plików na danym urządzeniu. System Linux umożliwia obsługę wielu róźnych systemów plików jak FAT16, FAT32 itp. Jednak dla samego systemu podstawowym systemem plików jest EXT2. Został on stworzony specjalnie dla Linuxa. Cechami charakterystycznymi dla tego systemu są: superblok, i-węzeł, blok danych, blok katalogu oraz blok pośredni. Superblok zawiera informacje o systemie jako całości, np. rozmiar. I-węzeł zawiera wszelkie informacje o pliku za wyjątkiem jego nazwy. Nazwa przechowywana jest w katalogu razem z numerem i-węzła. Wpis katalogu zawiera nazwę i liczbę i-węzłów plików. I-węzeł zawiera numery kilku bloków danych, które używane są do przechowywania pliku. Automatycznie alokowane miejsce pozwala przechowywać tylko kilka numerów, jednak w razie potrzeby zostaje dynamicznie alokowana dodatkowa przestrzeń. Bloki alokowane

dynamicznie nazywają się bezpośrednimi - nazwa wskazuje, że w celu znalezienia numeru bloku danych należy znaleźć pierwszy blok pośredni. W Linuxie pliki są umieszczone w katalogach. Katalogi z kolei są ze sobą hierarchicznie powiązane w jedną strukturę plików. Nazwa pliku może składać się z liter, cyfr oraz niektórych znaków specjalnych, np. znaku podkreślenia. Jej długość może wynosić do 256 znaków. Należy pamiętać, że Linux rozróżnia duże i małe litery. Kropka nie posiada specjalnego znaczenia, ponieważ linux traktuje kropkę jak każdy inny znak. Pliki, których nazwy rozpoczynają się kropką są "ukryte". Traktowane są jak wszystkie inne pliki, z wyjątkiem tego, iż nie wyświetli ich polecenie ls, chyba że użytkownik zastosuje ppcję -a. Przykładem pliku ukrytego jest plik .profile. Wszystkie pliki mająjeden ormat fizyczny - ciąg bajtów zakończony znakiem EOF (End-Of-File; Ctrl-D). Ten hierarchiczny system plików jednolicie traktuje pliki zwykłe, katalogi oraz liki opisujące urządzenia zewnętrzne. Katalogi każdego użytkownika są w rzeczywistości połączone z katalogami pozostałych użytkowników. Są one ułożone strukturę hierarchiczną drzewa rozpoczynając od katalogu głównego (root), będącego korzeniem. Wszystkie pozostałe katalogi wychodzą od tego pierwszego. Katalog główny / jest to korzeń drzewa. Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Katalogi systemowe zawierają pliki i programy używane do uruchomienia i utrzymywania systemu. Znaczenie poszczególnych katalogów systemowych jest następujące:

• /bin, /usr/bin – zawierają większość komend systemowych i programy usługowe w wersji binarnej,

• /dev – mieszczą się w nim pliki specjalne, reprezentujące urządzenia rzeczywiste (dyski twarde, elastyczne, drukarki) i pseudourządzenia (konsola systemowa, obszar swap, wirtualny terminal),

• /etc – przechowywana jest w nim większość plików i programów umożliwiających konfigurację systemu,

• /tmp – używany przez komendy, jak i przez użytkowników do przechowywania plików tymczasowych,

• /home – katalog przeznaczony na katalogi domowe użytkowników systemu, • /proc – wirtualny system plików, zawierający informacje o systemie i liruchomionych

procesach.

Poruszanie się po katalogach Przy rejestrowaniu nazwy użytkownika w systemie zostaje z nią związany katalog osobisty danego użytkownika, oznaczany symbolem ~. Katalog ten staje się katalogiem bieżącym w chwili rozpoczynania przez użytkownika sesji przy terminalu. Każda nazwa pliku, którą podaje wówczas użytkownik, np. jako parametr polecenia, odnosi się do plików z katalogu bieżącego. Każdy plik można znaleźć rozpoczynając poszukiwanie od katalogu pierwotnego, tj. od korzenia drzewa katalogów. W każdym katalogu (oprócz root) występuje element domyślny, stanowiący nazwę katalogu nadrzędnego, oznaczony dwiema kropkami (..), oraz inny element, stanowiący nazwę katalogu, w którym on sam się znajduje, oznaczony (.). Innymi słowy, każdy katalog wskazuje na samego siebie oraz na swój katalog nadrzędny. Położenie pliku jest określane poprzez ciąg nazw prowadzących do niego katalogów. Ciąg ten nazywany jest ścieżką dostępu. Ścieżka dostępu do obiektu określa umiejscowienie obiektu w

systemie plików. Ścieżka dostępu może być określana na dwa sposoby: jako ścieżka bezwzględna albo względna. Bezwzględna ścieżka dostępu rozpoczyna się od folderu głównego. Folder główny jest pojedynczym folderem, od którego rozpoczyna się cała hierarchia. Pierwszym znakiem ścieżki bezwzględnej jest ukośnik (/). Względna ścieżka dostępu przedstawia lokalizację pliku lub folderu względem folderu bieżącego. Aby z folderu bieżącego przejść niżej w strukturze drzewa, nie trzeba podawać pełnej ścieżki dostępu. Wystarczy wpisać ścieżkę rozpoczynając od nazwy następnego folderu. Jeśli ścieżka dostępu nie rozpoczyna się ukośnikiem, jest ścieżką względną. Przy określaniu względnych ścieżek dostępu, warto pamiętać o dwóch symbolach specjalnych czyli o (.) reprezentującym folder bieżący oraz o (..) reprezentującym folder nadrzędny, czyli znajdujący się o jeden poziom wyżej w hierarchii.

Rys. 1. Przykładowa struktura katalogów

Jeśli katalogiem bieżącym jest katalog praca (Rys. 1), a chcemy przejść do katalogu instalacje to możemy to zrobić na dwa sposoby:

1. ścieżka względna: cd ../../instalacje 2. ścieżka bezwzględna cd /instalacje

Jeśli chcielibyśmy przejść z katalogu praca do katalogu studia to składnia polecenia będzie wyglądała następująco:

1. ścieżka względna cd ../studia 2. ścieżka bezwzględna cd /moje dokumenty/studia

Szybkie wpisywanie poleceń. Klawisz tab W systemie Linux istnieje możliwość znacznie szybszego i wygodniejszego wprowadzania poleceń, czy też ścieżek dostępu. W ten sam sposób możemy również uzyskiwać podpowiedzi jeśli chodzi o dostępne polecenia. Podobne podpowiedzi będą wyświetlane w trakcie poruszania się po strukturze katalogów. Aby z tej możliwości skorzystać należy w trakcie wprowadzanie polecenie lub ścieżki dostępu nacisnąć klawisz tabulacji. Przykład 1. Wprowadzając jakieś polecenie możemy je dokończyć po wpisaniu kilku liter jego nazwy

naciskając klawisz tab. Wpisane litery są traktowane jako wzorzec polecenia. Jeśli wpisanemu wzorcowi odpowiada kilka poleceń, zostaną one wypisane na ekranie. Użytkownik musi zawęzić liczbę dostępnych poleceń wpisując dodatkowe litery, aż system rozpozna o jakie polecenie chodzi. Jeśli danemu wzorcowi odpowiada tylko jedno polecenie zostanie on automatycznie dokończone. Jeśli liczba dostępnych poleceń jest duża system wyświetli informację z o ilości poleceń odpowiadających wzorcowi oraz pytanie czy tę listę wyświetlać.

2. Podobnie wygląda sprawa wpisywania ścieżek dostępu do katalogu. Użytkownik w trakcie wpisywanie nazwy katalogu może nacisnąć klawisz tab, co spowoduje dokończenie jego nazwy lub też wyświetlenie nazw katalogów lub plików, które odpowiadają wpisanemu wzorcowi. Klawisz tab w tym przypadku dokańcza tylko nazwę katalogu lub pliku, a nie całą ścieżkę.

Znaki specjalne Nazwy plików są najczęściej argumentami stosowanymi w poleceniach. Często można znać jedynie część nazwy pliku lub chcieć odwołać się do kilku nazw lików. Powłoka oferuje zestaw znaków specjalnych, które poszukują, dopasowują generują listę plików. Tymi znakami specjalnymi są gwiazdka, znak zapytania i nawiasy kwadratowe. Znaki * i ? określają niepełną nazwę pliku, nawiasy kwadratowe pozwalają na określenie zestawu dopuszczalnych znaków, jakie mają być poszukiwane. Można łączyć nawiasy kwadratowe z innymi znakami specjalnymi.

• Gwiazdka * oznacza dowolny ciąg znaków, można jej używać do oznaczania nazw plików zaczynających się lub kończących dowolnym zestawem znaków.

• Znak zapytania? oznacza dokładnie jeden dowolny znak. Można używać więcej niż jednego znaku zapytania w każdym miejscu wzorca.

• Dowolne znaki umieszczone w nawiasach kwadratowych [] oznaczają dokładnie jeden spośród wymienionych znaków.

Znaki specjalne mogą być maskowane za pomocą znaku ,,\". Aby nazwa ce? odnosiła się do dokładnie jednego pliku ce?, a nie do całej grupy plików o 3-literowych nazwach rozpoczynających się znakami ce, należy za pomocą ,,\" zamaskować znaczenie symbolu ,,?" – a więc zastosować nazwę ce\? Przykłady operacje na plikach z zastosowanie znaków specjalnych: rm * cp /bin/a*b $HOME/ cp ??? $HOME/ rm [Aa-f0-9]* cd ../..

Komendy wiersza poleceń Formatem polecenia jest nazwa polecenia, za którą następują opcje, a dopiero za nimi argumenty:

polecenie opcje argumenty

System pomocy System Linux posiada rozbudowany i bardzo przydatny system pomocy. Pierwszym źródłem pomocy są tzw. strony man (ang. manual). Zawierają one definicje i objaśnienia poleceń systemu wraz z opisem opcjonalnych parametrów dla specjalnych funkcji poleceń. Aby wywołać stronę man dla wybranego polecenia należy wydać komendę: man polecenie np.: man ls Spowoduje to wyświetlenie opisu danego polecenia. Jeśli chcemy wyszukać potrzebną informacje należy wydać nacisnąć klawisz \, wpisać szukaną frazę i nacisnąć ENTER. Jeśli

chcielibyśmy ponowić wyszukiwanie danej frazy wystarczy nacisnąć klawisz \ i ENTER. Aby zakończyć przeglądanie manuala należy nacisnąć klawisz q.

Polecenia dotyczące katalogów Listowanie zawartości katalogów Przykład ls ls –la Przykładowe opcje -a – wypisuje wszystkie pliki, razem z plikami ukrytymi, -l – podaje wszystkie dane (pełną informację) o plikach i katalogach, -x – wyświetla pliki posortowane według rozszerzeń Zmiana katalogu Przykład cd nazwa_katalogu – przejście do katalogu o podanej nazwie cd $HOME, cd ~, cd – powrót do katalogu domowego cd .. – przejście do katalogu nadrzędnego Tworzenie katalogów Przykład mkdir /usr/students Przykładowe opcje -p – pozwala utworzyć zagnieżdżoną strukturę katalogów -m – pozwala na utworzenie katalogu z określonymi prawami dostępu Usuwanie katalogów Przykład rmdir /home/Kowalski Przenoszenie katalogów, zmiana nazwy katalogu Przykład mv old_name new_name mv kat1 kat2 – przeniesienie katalogu kat1 do katalogu kat2 Gdzie jestem? Przykład pwd (ang. print working directory)

Polecenia dotyczące plików Kopiowanie plików Przykład cp plik_źródłowy plik_docelowy Przykładowe opcje -b – utworzenie kopii plików przed zniszczeniem ich zawartości, -v – wyświetlenie nazwy każdego pliku w czasie kopiowania, - r – kopiowanie całych katalogów wraz z podkatalogami, -p – kopiowanie plików do katalogu docelowego z zachowaniem hierarchii podkatalogów Przenoszenie plików, zmiana nazwy Przykład mv plik_źródłowy plik_docelowy

mv stara_nazwa nowa_nazwa Przykładowe opcje -b – brak pytania o potwierdzenie przed zniszczeniem zawartości plików, -f – przeniesienie plików tylko wtedy, kiedy są nowsze niż pliki docelowe o tej samej nazwie Usuwanie plików Przykład rm nazwa_pliku rm –r nazwa_katalogu Przykładowe opcje -f – usuwa pliki bez żadnego uprzedzenia, -r – pozwala na usuwanie katalogu ze wszystkimi podkatalogami i plikami, -i – żąda potwierdzenia dla każdego usuwanego pliku, -v – wyświetla nazwy każdego kasowanego pliku. Tworzenie powiązań symbolicznych Przykład ln –s nazwa_linku nazwa_katalogu Tworzenie pustego pliku Przykład touch nazwa_pliku Tworzenie i edycja pliku Przykład cat > nazwa_pliku (zakończenie edycji CTRL + D) Tworzenie i przepisanie pliku Przykład less nazwa_pliku > nowy_plik Doklejanie do plików Przykład less nazwa_pliku >> istniejacy plik Wyszukiwanie plików Przykład find gdzie filtry obiekt_poszukiwań find / -name cp

Sesja przy terminalu 1 1. Uruchom system KNOPPIX 2. Zapoznaj się z systemem wirtualnych konsoli. Ile konsol dostępnych jest w systemie

KNOPPIX? 3. Po przełączeniu na konsolę tekstową, sprawdź w jakim katalogu się znajdujesz. 4. Zamknij system korzystając z polecenie shutdown lub go zrestartuj (polecenie reboot)

Sesja przy terminalu 2 1. Uruchom system KNOPPIX. Po uruchomieniu przełącz na dowolną konsolę tekstową. 2. Wyświetl zawartość katalogu bieżącego. Zbadaj różnicę w działaniu poleceń ls -l, ls -a i ls

-la. Czym różni się polecenie ls od polecenie ls *?

3. Zapoznaj się z reakcją systemu na błędnie wprowadzone polecenie np. ls-la 4. Zapoznaj się z mechanizmem dokańczania poleceń za pomocą klawisza tab 5. Korzystając z klawisza tab wyświetl wszystkie katalogi zaczynające się na s, które

znajdują się w katalogu /etc 6. Korzystając z klawisza tab wyświetl wszystkie polecenia zaczynając się na literę l. 7. Zapoznaj się z mechanizmem poruszania się po katalogach za pomocą ścieżki względnej i

bezwzględnej. 8. Z katalogu domowego wylistuj jednym poleceniem zawartość katalogu /etc

Sesja przy terminalu 3 1. Utwórz następującą strukturę katalogów:

Rys. 2. Struktura katalogów do zadania 1 w Sesji przy terminalu 3

2. skopiuj polecenia wszystkie polecenia dwuliterowe zaczynające się od litery d z katalogu /bin do założonego wcześniej katalogu studia

3. zmień nazwy tych plików, aby zaczynały się od słów stary_ 4. załóż w swoim katalogu domowym plik info.txt, w którym zamieścisz podstawowe

informacje o sobie – imię, nazwisko, parę słów o sobie 5. załóż drugi plik o nazwie email.txt, w którym umieść swój adres e-mail 6. doklej plik email.txt do pliku info.txt i zmień jego nazwę na .plan 7. utwórz w katalogu instalacje katalog rpm korzystając ze ścieżki bezwzględnej 8. utwórz w katalogu instalacje katalog deb korzystając ze ścieżki względnej 9. przejdź do katalogu deb (w katalog instalacje) a następnie przejdź za pomocą jednego

polecenia do katalogu umowy znajdującego się w katalogu praca. 10. przenieś plik email.txt do katalogu studia 11. załóż nowy plik, a następnie stwórz link symboliczny do niego. Co się stanie z linkiem,

jeśli usuniesz plik bazowy? 12. skopiuj do katalogu janek wszystkie plik z katalogu studia 13. przenieś katalog praca wraz z podkatalogami do katalogu instalacje za pomocą jednego

polecenia 14. usuń cały katalog studia 15. usuń katalog praca wraz z podkatalogami za pomocą jednego polecenia 16. usuń katalog instalacje

Urządzenia w systemie Linux W systemie Linux wszystkie urządzenia są reprezentowane przez odpowiednie pliki znajdujące się w katalogu /dev. Urządzenia te dzielą się na blokowe i znakowe. Urządzenia blokowe służą do przechowywania danych i pozwalają na swobodny dostęp do nich. Urządzeniami tego typu są na przykład dyski twarde lub stacje dyskietek. Urządzenia te zachowują się podobnie jak pliki z tym, że długość plików określona jest przez ilość zapisanych w nich danych, a długość urządzenia blokowego przez jego pojemność. Wadą takiego rozwiązania jest to, że jeśli zapiszemy plik o rozmiarze 10MB do urządzenia blokowego o pojemności 100MB, to po odczytaniu tego urządzenia otrzymamy 10MB naszych danych i 90MB danych zapisanych wcześniej. Wadę tę można ominąć kodując informację o długości pliku w nim samym. Urządzenia znakowe służą do odczytu lub zapisu sekwencji znaków. Charakterystyczną cechą tych urządzeń jest to, że danych z nich nie można odczytywać w dowolnej kolejności tylko w kolejności takiej, w jakiej docierają one do komputera. Dobrym przykładem takiego urządzenia jest łącze szeregowe. Oznaczenia niektórych urządzeń z katalogu /dev:

• hda - pierwszy dysk twardy (IDE/EIDE) • hda1 - pierwsza partycja na pierwszym dysku twardym • hdb - drugi dysk twardy lub CD-ROM • sda - pierwszy dysk twardy (SCSI) • sda1 - pierwsza partycja na pierwszym dysku twardym • sdb - drugi dysk twardy (SCSI) • fd0 - pierwsza stacja dysków elastycznych • fd1 - druga stacja dysków elastycznych • cua0 - COM1 • cua1 - COM2 • lp0 - LPT1 • lp1- LPT2 • tty1 - terminal 1 • tty2 - terminal 2 • null - urządzenie puste • kmem - pamięć operacyjna

System plików System plików to metody i struktury danych używane przez system operacyjny w celu zapisania i zorganizowania plików na danym urządzeniu. System Linux obsługuje wiele różnych systemów plików, ale podstawowym systemem jest ext2.

Montowanie i odmontowywanie systemu plików Aby móc używać system plików należy go wcześniej zamontować. Do montowania systemu plików służy polecenie mount o składni : mount -t typ urządzenie punkt_montowania gdzie :

• typ – rodzaj systemu plików, np.: ext2, msdos • urządzenie – musi być urządzeniem blokowym • punkt_montowania – nazwa pliku pod którym będzie zainstalowany dany system

Aby zamontować dyskietkę wydajemy polecenie: mount -t msdos /dev/fd0 /mnt/floppy Do odmontowania systemu plików służy polecenie umount: umount /mnt/floppy

Konfiguracja systemu plików Informacje o systemach plików, które mają lub mogą być zamontowane i o ich konfiguracji zawiera plik /etc/fstab. Każdy system plików opisany jest w osobnej linii, a pola w każdej linii oddzielone są znakami spacji lub tabulatora. Przykładowy plik fstab może wyglądać następująco: /dev/hda1 / ext2 defaults 1 1 /dev/hda2 /usr ext2 defaults 1 2 /dev/hdb /mnt/cdrom iso9660 user,noauto,ro 0 0 /dev/fd1 /mnt/floppy msdos user,noauto 0 0 /dev/hda2 none swap sw Pole pierwsze opisuje specjalne urządzenie blokowe lub zdalny system plików przeznaczony do zamontowania. Pole drugie wskazuje na miejsce, w którym ma być dany system plików zamontowany. Dla partycji wymiany pole to powinno zawierać wartość none. Pole trzecie opisuje typ systemu plików. Najczęściej używane systemy plików to:

• ext2 – standardowy system plików dla Linuksa • msdos – system plików dla partycji MS-DOS • iso9660 – system plików używany przez stacje CD-ROM • nfs – system plików służący do montowania partycji z systemów zdalnych • swap – partycja dysku używana jako przestrzeń wymiany

Pole czwarte zawiera opcje montowania danego systemu plików. Opcje podaje się jako listę oddzieloną przecinkami. Najważniejsze opcje to:

• auto – oznacza, że polecenie mount -a powinno zamontować dany system plików • noauto – zabrania montowania systemu, gdy wydano opcję mount -a • user – opcja ta pozwala użytkownikowi na montowanie danego systemu plików • dev – pozwala na używanie plików urządzeń zapisanych w systemie plików • exec – zwykle wykorzystywany w systemach NFS. Opcja ta zezwala na uruchamianie

plików zapisanych w danym systemie • noexec – przeciwieństwo opcji exec • ro – montuje system plików w trybie tylko do odczytu • rw – montuje system plików w trybie do odczytu i zapisu • sync – wszystkie operacje zapisu będą oczekiwać na potwierdzenie ich zakończenia przez

sprzęt. Tryb ten jest wolniejszy, ale za to bezpieczniejszy • async – przeciwieństwo opcji sync

• suid – pozwala na korzystanie z flag suid • nosuid – przeciwieństwo suid • defaults – włącza opcje rw,exec, auto, nouser, async, suid

Pole piąte jest używane przez program dump do wykrycia, który system plików musi być odłączony. Wartość 0 oznacza, że dany system nie musi być odłączony. Pole szóste jest używane przez program e2fsck do określenia kolejności sprawdzania systemu plików podczas ładowania systemu. Główny system plików powinien mieć wartość 1, zaś inne systemy plików wartość 2. Wartość 0 oznacza, że dany system nie będzie sprawdzany.

Polecenia związane z systemem plików df [-aht] urządzenie Opis: sprawdzenie ilości wolnego miejsca na dysku Opcje: -a – wyświetla informacje o każdym systemie plików -h – wyświetlane informacje są podawane w łatwych do odczytania jednostkach -t=typ – wyświetla informacje tylko o systemie danego typu mkfs [-t] [-c] urządzenie_blokowe Opis: tworzenie systemu plików Opcje: -t – określa typ tworzonego systemu plików, domyślnie ext2 -c – sprawdza uszkodzone bloki urządzenia przed utworzeniem systemu plików mount [-t] [-o] urządzenie_lub_katalog Opis: montowanie systemu plików Opcje: -t – typ montowanego systemu plików -o – po tej opcji następuje podanie oddzielonych przecinkami wartości: remount – przemontowanie zamontowanego już systemu plików

ro – montuje system plików w tryb tylko do odczytu rw – montuje system plików w tryb tylko do odczytu i zapisu nouser – zabrania zwykłemu użytkownikowi montowania systemu plików

umount urządzenie_lub_katalog Opis: odmontowanie systemu plików e2fsck [-pcf] [-b] urządzenie Opis: testowanie systemu plików Opcje: -p – napraw automatycznie system plików bez żadnych pytań -c – uruchom program badblocks w celu znalezienia uszkodzonych bloków -f – wymuś sprawdzanie, nawet jeśli system plików wydaje się być czysty -b superblok – użyj podanego superbloku fdisk [-lv] [-s] urządzenie

Opis: obsługa partycji Opcje: -l – drukuje tablice partycji -v – drukuje numer wersji fdiska -s partycja – jest partycją wybranego dysku urządzenie – jest plikiem z katalogu /dev wskazującym na nasz dyski (np.: hda) fdformat [-n] urządzenie Opis: niskopoziomowy format dyskietki Opcje: -n – wyłączenie weryfikacji sformatowanej dyskietki

Polecenia związane z wyszukiwaniem grep [-civ] wzorzec [plik] Opis: wyszukiwanie ciągów znaków Opcje: -c – podaje liczbę wierszy w których znaleziono pasujący wzorzec -i – pomija różnicę w wielkości liter -v – wyświetla wiersze, w których nie ma podanego wzorca plik – nazwa pliku, w którym następuje przeszukanie find Opis: szukanie plików whereis [-bms] nazwa pliku Opis: lokalizuje źródła, binaria i dokumentację man Opcje: -b – szukaj tylko binariów -m – szukaj tylko sekcji dokumentacji man -s – szukaj tylko źródeł

Prawa dostępu do plików i katalogów Prawa dostępu do plików i katalogów są jednymi z najważniejszych mechanizmów bezpieczeństwa systemu. Uniemożliwiają one innym użytkownikom przeglądanie naszych zasobów. Prawa dostępu podzielone są na trzy sekcje:

• właściciel pliku lub katalogu • grupa związana z plikiem lub katalogiem • wszyscy inni użytkownicy systemu

Prawa dostępu można odczytać wydając polecenie ls -l:

bash$ ls -l total 4 -rwxr--r-- 1 root root 497 May 23 11:57 index.html drwxr-xr-x 5 root root 512 Sep 17 12:47 www

znaki minus (-) i litery występujące na początku każdej linii reprezentują typ pliku i prawa dostępu.

Prawa dostępu do pliku Każdy plik ma ściśle określone prawa dostępu stwierdzające, czy określony użytkownik jest uprawniony do odczytania lub zapisania pliku bądź do jego wykonania. Każdy użytkownik może mieć dowolną kombinację tych praw. Są one całkowicie niezależne i posiadanie jakiegokolwiek z nich nie jest warunkiem posiadania innego. W przypadku pliku prawa są interpretowane w następujący sposób:

• r – prawo czytania umożliwia oglądanie zawartości pliku, oznacza jednocześnie prawo do kopiowania,

• w – prawo pisania oznacza zezwolenie na modyfikację zawartości pliku, • x – prawo do uruchomienia pliku wykonywalnego.

Prawa dostępu do katalogu Te same kategorie praw - czytania, pisania i wykonywania odnoszą się do katalogów:

• r – prawo czytania umożliwia przeszukiwanie zawartości katalogu, jest interpretowane jako prawo wypisywania zawartości (komenda ls),

• w – prawo pisania daje możliwość modyfikowania zawartości katalogów umożliwia dodawanie nowych oraz usuwanie dotychczasowych plików z katalogu,

• x – prawo wykonywania w stosunku do katalogu pozwala na dostęp do plików zapisanych w nim oraz na wejście do danego katalogu uczynienie go katalogiem bieżącym (polecenie: cd katalog).

Wydając polecenie ls –l otrzymujemy na ekranie:

-rwxr--r-- 1 root root 497 May 23 11:57 index.html drwxr-xr-x 5 root root 512 Sep 17 12:47 www

znaki minus (-) i litery występujące na początku każdej linii reprezentują typ pliku i prawa dostępu. Przyjmują one postać:

krwxrwxrwx Wyjaśnienie tego zapisu jest następujące:

• k – jest to identyfikator typu, gdzie:

- zwykły plik b specjalny plik blokowy c specjalny plik znakowy d katalog l link symboliczny p potok s gniazdo • prawa dostępu:

Pierwsza trójka rwx – oznacza uprawnienia dla właściciela (u – user) Druga trójka rwx – oznacza uprawnienia dla grupy (g – group) Trzecia trójka rwx – oznacza uprawnienia dla pozostałych użytkowników (o – others)

Prawo Plik Katalog r czytania zawartości przeszukania zawartości w zmiany zawartości zmiany zawartości x Wykonywanie przejścia do tego katalogu

Przypisywanie uprawnień Do zmiany uprawnień użytkowników w stosunku do katalogu lub pliku służy polecenie chmod. Wymaga ono określenia, czyje uprawnienia należy zmienić, na jakie oraz jakiego pliku lub katalogu ta zmiana będzie dotyczyć. Prawa dostępu mogą być podane na dwa sposoby:

• przy pomocy systemu kodów numerycznych (w formacie ósemkowym): 4 2 1 • przy pomocy systemu kodów znakowych: r w x

Oto porównanie tych systemów (w nawiasach przy zapisie numerycznym podano zapis binarny uprawnień):

Prawa dostępu Zapis numeryczny Zapis znakowy Tylko do czytania 4 (100) r-- Tylko do pisania 2 (010) -w-

Tylko do wykonywania 1 (001) --x Do czytania i pisania 6 (110) rw-

Do czytania i wykonywania 5 (101) r-x Czytania, pisania i wykonywania 7 (111) rwx

Jeśli prawa dostępu do danego katalogu lub pliku będziemy podawać numerycznie, wówczas składnia polecenia chmod ma postać: chmod numeryczny_kod nazwa_zasobu Przykład: chmod 644 plik.txt – zapis ten oznacza:

• prawo dostępu właściciela 6 = 4 + 2 + 0 czyli rw • prawo dostępu grupy 4 = 4 + 0 + 0 czyli r • prawo dostępu pozostałych użytkowników 4 = 4 + 0 + 0 czyli r

chmod 701 katalog – zapis ten oznacza:

• prawo dostępu właściciela 7 = 4 + 2 + 1 czyli rwx • prawo dostępu grupy 0 = 0 + 0 + 0 czyli brak uprawnień • prawo dostępu pozostałych użytkowników 1 = 0 + 0 + 1 czyli x

chmod 755 plik2.txt – zapis ten oznacza:

• prawo dostępu właściciela 7 = 4 + 2 + 1 czyli rwx • prawo dostępu grupy 5 = 4 + 0 + 1 czyli r-x • prawo dostępu pozostałych użytkowników 5 = 4 + 0 + 1 czyli r-x

Jeśli prawa dostępu do danego katalogu lub pliku będziemy podawać symbolicznie, wówczas

składnia polecenia chmod ma postać: chmod kto_oper_prawo nazwa_zasobu gdzie:

• kto – określa komu nadawane są prawa i może być jednym, bądź kilkoma, spośród symboli: a - wszyscy użytkownicy, u - właściciel pliku, g - grupa pliku, o - inni użytkownicy. Pominięcie symbolu kategorii nadaje wszystkim (właścicielowi, grupie, pozostałym) takie same prawa.

• oper – jest jednym z następujących symboli: – oznacza odebranie prawa, + oznacza dodanie prawa, = ustala nowe uprawnienia niezależnie od stanu poprzedniego.

• prawo – typ praw dostępu, który jest jednym, bądź kilkoma, spośród symboli: r, w, x, Przykład: chmod u-x plik1.txt – zapis ten zabiera właścicielowi prawo pisania do pliku plik1.txt, chmod a=rw plik1.txt – zapis ten nadaje wszystkim prawo rw do pliku plik1.txt, chmod u+w, og+r-x plik1.txt – zapis ten nadaje właścicielowi prawo pisania do pliku plik1.txt, a członkom grupy oraz pozostałym użytkownikom systemu nadaje prawo czytania i odbiera prawo wykonania pliku plik1.txt, Porównanie obu zapisów: Prawo do czytania dla właściciela pliku chmod 400 nazwa_pliku chmod u+r nazwa_pliku Wszystkie prawa dla właściciela pliku i prawo do czytania dla grupy chmod 740 nazwa_pliku chmod u+rwx,g+r nazwa_pliku

Domyślne prawa dostępu przy tworzeniu plików i katalogów Domyślne prawa dostępu dla plików i katalogów nadawane są podczas ich tworzenia. Zmianę tych praw uzyskujemy poleceniem umask. Jeśli chcielibyśmy, aby tworzone pliki miały domyślne prawa 644, które zezwalają właścicielowi na czytanie i pisanie, a reszcie tylko na czytanie to od wartości 777 należy odjąć 644, a wynik podać jako parametr polecenia umask 777-644 = 133 umask 133

Zmiana właściciela i grupy pliku Zmiana właściciela i grupy pliku możliwa jest przy użyciu poleceń: chown, chgrp. Rzecz się ma następująco: $ chown nowy_właściciel nazwa_pliku(ów) $ chgrp nowa_grupa nazwa_pliku(ów) lub w połączeniu $ chown nowy_właściciel.nowa_grupa nazwa_pliku(ów) Używając opcji -R polecenia chown, możesz zmienić właściciela wszystkich plików w danym katalogu i wszystkich jego podkatalogach. Wówczas zamiast nazwy pliku podaje się nazwę żądanego katalogu. Opcja ta jest również ważna dla polecenia chgrp.

Sesja przy terminalu 1 1. Uruchom system KNOPPIX 2. Zapoznaj się z urządzeniami znajdującymi się w katalogu /dev? 3. Ile plików hd* znajduje się w tym katalogu? 4. Ile partycji ma dysk hda?

Sesja przy terminalu 2 1. Uruchom system KNOPPIX. 2. Włóż do stacji dyskietkę i ją zamontuj. Nie zapomnij podać odpowiedniego systemu

plików. Dyskietkę zamontuj w katalogu /mnt/floppy. Wejdź do tego katalogu i wylistuj jej zawartość.

3. Wyjmij dyskietkę i spróbuj ponownie wylistować zawartość katalogu /mnt/floppy 4. Odmontuj stację dyskietek. 5. Zamontuj dyskietkę w katalogu dysk, który będzie znajdował się w katalogu root.

Sesja przy terminalu 3 1. Zapoznaj się z zawartością pliku /etc/fstab. Jakie dyski zostały zamontowane w momencie

startu systemu? Gdzie one zostały zamontowane? 2. Korzystając z informacji zawartych w pliku /etc/fstab znajdź i wyświetl zawartość partycji

z systemem Windows. 3. Czy da się tę partycję domontować? Jak?

Sesja przy terminalu 4 1. Utwórz następującą strukturę katalogów:

Rys. 1. Struktura katalogów do zadania 1 w Sesji przy terminalu 4

2. Skopiuj wszystkie polecenia dwuliterowe zaczynające się od litery d z katalogu /bin do katalogu moje dokumenty

3. Utwórz w katalogu dom dwa pliki tekstowe plik1.txt oraz plik2.txt. Pliki te powinny zawierać przykładowy tekst.

4. Jakie uprawienie domyślne mają pliki1.txt oraz plik2.txt. 5. Ustaw dla pliku plik1.txt uprawnienia rw-r--rw-.

6. Ustaw dla pliku plik2.txt następujące uprawnienia właściciel: odczyt, zapis, wykonanie, grupa: tylko zapis, pozostali: odczyt, zapis. Jak to zrobić korzystając z zapisu numerycznego?

7. Wyświetl uprawnienia plików plik1.txt oraz plik2.txt. 8. Wydaj polecenie chmod 574 dla plik1.txt? Jakie zostaną nadane mu prawa? 9. Wydaj polecenie chmod u=rw, g=r, o-r dla pliku plik2.txt. Jakie zostaną nadane mu prawa? 10. Wyświetl uprawnienia plików plik1.txt oraz plik2.txt. Które polecenie (pkt. 8 i 9)

nadpisuje uprawnienia, a które je modyfikuje? 11. Utwórz plik mojedane.txt w katalogu studia i umieść w nim swoje dane. 12. Załóż plik o nazwie email.txt, w katalogu studia i umieść swój adres e-mail 13. Ustaw dla katalogu moje dokumenty i wszystkich podkatalogów następujące uprawnienia

właściciel: odczyt, zapis, wykonanie, grupa: brak uprawnień, pozostali: odczyt, zapis. 14. Sprawdź, czy możesz nie nadawać plikowi żadnych praw? 15. Pracując jako zwykły użytkownik utwórz plik moj.txt. Następnie zaloguj się na konto root

i przejmij ten plik na własność. 16. Kto jest właścicielem plików znajdujących się w katalogu dom? 17. Znając uprawnienia domyślne dla katalogu studia ustaw domyślne uprawnienia na

właściciel: odczyt zapis, grupa: odczyt, zapis, pozostali: odczyt.

Znak zachęty Symbol gotowości do przyjmowania poleceń, składniki:

[ ] - znaki ograniczające root - nazwa użytkownika @ - znak wtrącony localhost – domyslna nazwa komputera, na którym aktualnie pracujemy root - bazowa nazwa bieżącego katalogu

Znaki specjalne: \d - data \h - nazwa komputera \n - znak nowej linii \s - bazowa nazwa aktualnie używanego shella \t - bieżacy czas \u - nazwa użytkownika \w - bieżący katalog roboczy \! - numer wyświetlanego polecenia w historii poleceń \# - numer polecenia, licząc od chwili otwarcia sesji pracy \$ - znak # gdy root, $ reszta użytkowników \\ - znak backslash \[ - początek sekwencji niedrukowalnych znaków sterujących \] - koniec sekwencji znaków sterujących echo ($PS1) ([\u@\h \W]\$) [ ]$ PS1=‘polecenie:’ polecenie: polecenie: PS1=‘\$ \w’ # /root>…….

Konto użytkownika może być stworzone przez "root-a", używając - na przykład: adduser joe passwd joe [wpisz hasło dla użytkownika joe] usermode [opcje] username – modyfikacja konta userdel [-r] username – usunięcie konta; r usuniecie również plików groupadd [opcje] grupy – utworzenie nowej grupy użytkowników chfn [opcje] username - ustalenie lub zmiana informacji opisujących konto chsh [opcje] shell - zmiana domyslengo shella