Linux - podstawy
Powstanie Linuxa - 1991 Linus Torvalds fiński programista, twórca Linuxa
Cechy systemu Linux wielodostępność (jednocześnie może pracować w tym systemie wielu użytkowników) wielozadaniowość (każdy użytkownik może jednocześnie uruchamiać wiele zadań zwanych procesami) darmowy Open Source - świat oprogramowania dostępnego z kodem źródłowym otwiera wiele możliwości i daje dodatkowe walory edukacyjne
Walory systemu Linux Elastyczność konfiguracji i stabilność - czas ciągłej pracy nie jest niczym niezwykłym. Bezpieczeństwo w sieci wewnętrznej i Internecie. Duże i nieznane dotąd możliwości dydaktyczne. Odporność na wirusy. Wykorzystanie starego sprzętu komputerowego. Łatwą integrację z Windows, MacOS, DOS itd. Wielkie bogactwo darmowego oprogramowania. Nowe i w niczym nie ograniczone możliwości konfiguracyjne.
Dystrybucje
Środowisko graficzne Linux pozwala, odmiennie niż Windows, na pracę w wielu środowiskach. Do najbardziej popularnych należą: KDE (K Desktop Environment) podobny do powłoki systemu Windows Gnome przypomina pulpit systemu Mac Os X
Live Linux - Aurox Linux
Live Linux - Aurox Linux
Live Linux - Aurox Linux
Live Linux - Aurox Linux
Podstawy Linux rozróżnia małe i duże litery # (hasz) znak gotowości systemu oznacza, że jesteś zalogowany jako root $ lub % gotowości systemu oznacza, że jesteś zalogowany jako user Polecenia systemowe mają parametry oddzielone od siebie spacjami
Podstawy System identyfikuje użytkowników na podstawie niepowtarzalnego numeru UID (User Identifier) Każdy użytkownik będzie dysponował miejscem na dysku w katalogu zwanym katalogiem domowym użytkownika Umieszczone są jako podkatalogi w katalogu /home Superużytkownik ma osobny katalog /root
Podstawy Podstawowym elementem systemu jest jądro. Jest ono w ciągłym rozwoju dlatego przyjęto następujące oznaczenia: 2.2.15 2.1.10 określa wersję stabilną (druga liczba parzysta) określa wersję niestabilną w czasie rozwoju (druga liczba nieparzysta) Ostania liczba określa numer jądra
Podstawy Jądro współpracuje ze sprzętem z jednej strony i z interpreterem poleceń z drugiej zwanej powłokami (shell). Istnieje kilka powłok oto kilka podstawowych: bash, pdksh, tcsh. Obsługa każdego urządzenia musi być zaimplementowana w jądrze.
Podstawy W Linuxie operuje się wyłącznie na plikach. Katalog jest plikiem, urządzenie jest traktowane jako plik, drukowanie jest procesem pisania do pliku reprezentującego to urządzenie. Pliki kwalifikujemy według funkcji i przeznaczenia.
Pierwsza sesja z komputerem
Co to jest shell? Użytkownik komputera pracującego pod kontrolą Linuxa komunikuje się z systemem operacyjnym za pośrednictwem programu shell. Program ten zajmuje się przyjmowaniem i interpretowaniem poleceń, które użytkownik wpisuje przy użyciu klawiatury. Program shell jest więc pośrednikiem pomiędzy użytkownikiem a właściwym systemem operacyjnym.
Rozpoczęcie sesji Za pomocą programu telnet: telnet adres maszyny - podajemy identyfikator (login) i hasło (password). np.: telnet 158.75.59.5 telnet opty.xlo.torun.pl Można również za pomocą klienta telnetu lub SSH, np.: Putty
Zakończenie sesji Wylogowujemy się poleceniem logout lub exit Uwaga! Nie zapominaj o zakończeniu swojej sesji w ten elementarny sposób zapewniasz bezpieczeństwo swoim plikom.
Hasło użytkownika Zmiana hasła: passwd i na żądanie podajemy stare hasło (Old password:), a następnie dwa razy nowe hasło (New password:..., Reenter new password).
Polecenia systemu Linux Polecenia systemu Linux zazwyczaj wpisujemy małymi literami. Typowe polecenie posiada następujące elementy: nazwa-polecenia opcje parametry przy czym zarówno opcje jak i parametry nie muszą wystąpić opcje zapisuje się przy użyciu znaku minus, np.: -a albo -123
Przykłady poleceń systemu Linux who finger user whoami hostname date clear pwd man polecenie - info o danym poleceniu - wyjście z pomocy q
Pomoc Polecenia: man opcje polecenie, whatis polecenie Opcje: man f time skrócony opis polecenia man k przeszukuje wszystkie strony podręcznika, co trwa czasami dość długo i zadaje pytania czy wyświetlić znalezioną stronę w podręczniku. whatis time daje trochę więcej informacji niż polecenie man f Wcześniej przez root a musi być uruchomiony program makewhaits
Uwaga - awaria W przypadku, gdy terminal zawiesi się możemy użyć CTRL + C, przerywa on większość poleceń.
Katalogi i pliki
Nazwy plików można stosować długie nazwy plików (nazwa może mieć 255 znaków, lecz dobrym zwyczajem jest używanie 14 znaków) w nazwie może występować więcej niż jedna kropka nazwa rozpoczynająca się od kropki oznacza plik ukryty rozróżnialne są duże i małe litery znaki specjalne * i? służą do tworzenia nazw wieloznacznych nie należy stosować następujących znaków: / *? [ ] < > & ; ` $! % ( ) { } @ \ nie używamy znaku minus na początku
Wyświetlenie ścieżki do bieżącego katalogu Polecenie: pwd
Wyświetlanie zawartości katalogu 1. Polecenie: ls opcje katalog opcje - a - wyprowadzenie wszystkich nazw plików i katalogów - l - wyprowadzenie pełnych informacji o plikach ls -FR rekurencyjne wyprowadzanie zawartości katalogu i jego podkatalogów
Wyświetlanie zawartości katalogu Przykłady: ls opcje katalog ls -al wyświetla pełna informacje o plikach, także ukrytych ls a dane wyświetla wszystkie pliki i katalogi z folderu dane ls dane/teksty wyświetla zawartość folderu teksty, który jest podfolderem folderu dane
Wyświetlanie zawartości katalogu 2. Polecenie: tree wyświetlenie plików i folderów w postaci drzewa
Zmiana bieżącego katalogu Polecenie: cd katalog Przykłady: cd.. przejście do katalogu nadrzędnego cd dane/teksty przejście do katalogu teksty cd / przejście do katalogu głównego cd ~ przejście do katalogu macierzystego
Tworzenie katalogów Polecenie: mkdir katalog Przykłady: mkdir klasa2 klasa3 - założenie jednocześnie dwóch katalogów klasa2 i klasa3 mkdir klasa2/mat klasa2/inf - założenie jednocześnie dwóch podkatalogów mat i inf w katalogu klasa2
Usunięcie katalogów Polecenie rmdir usuwa tylko puste katalogi Polecenie rm usuwa pliki Polecenie rm -r (recursivery) pozwoli na usunięcie katalogu wraz z jego zawartością. Przykłady: rm -r katalog2 - usunięcie katalog2 z całą jego zawartością rmdir katalog1 - usunięcie pustego katalogu1
Usunięcie katalogów Przykłady: rm - i plik- prosi o potwierdzenie kasowania każdego pliku rm - f plik usuwa pliki niezależnie od ustawionych zezwoleń
Kopiowanie plików lub katalogów Polecenia: Kopiowanie plików: cp plik1 plik_docelowy cp plik1 [plik2...] katalog_docelowy Kopiowanie katalogów: cp -r katalog1 [katalog2...] katalog_docelowy
Kopiowanie plików lub katalogów Przykłady: cp /etc/passwd roboczy1 - kopiuje plik passwd do katalogu roboczy1 cp /roboczy1/passwd1 /roboczy1/passwd2 skopiowanie pliku passwd1 ze zmianą nazwy na passwd2
Przenoszenie i zmiana nazwy Polecenia: Zmiana nazwy pliku: mv plik1 plik2 Przeniesienie pliku lub plików do katalogu: mv pliki katalog Przeniesienie katalogu do katalogu: mv katalog1 katalog_docelowy
Przenoszenie i zmiana nazwy Przykłady: mv /roboczy1/passwd roboczy2 - przenosi plik passwd do katalogu roboczy2 mv /roboczy1/plik1 /roboczy1/plik2 zmienia nazwę plik1 na plik2
Tworzenie pliku z zawartością W Linuksie niezwykle często używa się symboli kierujących przepływem strumienia danych (np. >, >>, <, ). Pozwalają one w bardzo prosty sposób zapisać wyniki poleceń w plikach tekstowych: ls l > nazwa_pliku Za pomocą polecenia: cat > nazwa_pliku można utworzyć krótki plik tekstowy. Wyjście z edycji CTRL +D
Wyświetlanie zawartości pliku tekstowego Polecenia: Oglądanie kilku plików jednocześnie cat plik1 [plik2 ] Przeglądanie tekstu strona po stronie more plik1 less plik1
Wyświetlanie zawartości pliku tekstowego Znaki sterujące w podglądzie: Spacja q /<wzór> h kursory Przykłady: cat raport less ls l /etc less - pokazuje następną stronę - kończy pracę i powraca do linii poleceń - szuka w pliku słowa wzór i przeskakuje do niego - wyświetla pomoc polecenia - przewijają tekst w górę i w dół
Łączenie plików Polecenie cat umożliwia również łączenie plików: cat dane1 dane2 > raport jeżeli następnie napiszemy polecenie cat dane1 dane2 dane3 > raport to plik raport zostanie nadpisany, najpierw jest kasowana zawartość pliku raport a potem zapisywana zawartość poszczególnych plików
Porównanie plików Polecenie cmp porównuje pliki co do ich zawartości. cmp opcje plik1 plik2 Polecenie cmp porównuje kolejno znak po znaku zawartość pliku i zatrzymuje się gdy napotka pierwszą różnicę. Opcje: c dostajemy informację o jakie znaki chodzi, l polecenie cmp nie zatrzyma się po pierwszej napotkanej różnicy Skrót EOF oznacza End Of File
Porównanie plików Przykłady: cmp /etc/passwd /etc/fstab cmp cl /etc/passwd /etc/fstab
Szukanie plików Polecenia: Wyszukiwanie plików według nazwy find <katalog początkowy> -name <nazwa pliku> Wyszukiwanie plików według daty find <katalog początkowy> -ctime <wiek pliku w dniach> Wyszukiwanie plików według rozmiaru find <katalog początkowy> -size <wielkość> Polecenie find prowadzi przeszukiwanie od wskazanego katalogu w dół rekurencyjnie.
Szukanie plików Przykłady: find./ -name sound find / -user jacek more - Przeszuka cały system plików i wyświetli ścieżki dostępu do plików których właścicielem jest jacek find./ -ctime 2 find ~/ -size 1024k
Szukanie plików Grep Wyszukuje tekstu w plikach grep <wzór do szukania> <plik lub pliki do przeszukania> np. grep jary *.txt Opcje: -i ignoruje wielkie znaki -n wyświetla numery linii w pliku
Kompresja i archiwizacja Polecenia: Korzystanie z gzip i gunzip gzip <nazwa pliku> - pakuje gunzip <nazwa pliku> - rozpakowuje Korzystanie z bzip i bunzip bzip2 <nazwa pliku> - pakuje bunzip2 <nazwa pliku> - rozpakowuje Korzystanie z tar tar cvf <nazwa pliku archiwum.tar> <plik lub katalog> - pakuje tar xvf <nazwa pliku archiwum.tar> - rozpakowuje
Kompresja i archiwizacja Zanim przystąpimy do rozpakowania możemy najpierw obejrzeć zawartość pliku poleceniem tar tvf <nazwa pliku archiwum.tar> Dobrym zwyczajem jest archiwizowanie całych katalogów a nie pojedynczych plików.
Wzorce nazw plików Jako argument poleceń cp, mv, rm i wielu innych może występować wzorzec nazw plików. We wzorcu: * - obejmuje wszystkie pliki z danego folderu poza plikami ukrytymi).* - pozwala odwołać się do plików ukrytych? oznacza dowolny pojedynczy znak [AEO] zestaw znaków A, E, O mogących wystąpić na danej pozycji w nazwie pliku [a-z] mała litera występująca na danej pozycji w nazwie pliku
Właściciel i grupa Wykonaj: ls l Jeśli utworzysz plik lub katalog stajesz się automatycznie jego właścicielem i dostaje on Twój identyfikator zamieszczony w rubryce owner. W polu group dostanie on informacje o grupie do której należałeś w momencie utworzenia pliku. Istnieją też pliki systemowe, które należą do różnych osób i NIE należy ich zmieniać np. root, bin, daemon itd.
Atrybuty plików -rw-r--r--rw-r--r--rw-r--r--rw-r--r-drwxr-xr-x drwxr-xr-x 1 root 1 root 1 root 1 root 5 root 2 root root root root root root root 48260 May 15 22:35 kot.jpg 55965 May 16 13:02 chemia.ref 5475 Apr 9 23:46 linux.html 447745 Apr 23 17:59 obrazki.tar.gz 1024 Apr 8 21:04 fonts 1024 Mar 25 17:42 howto - rwx rwx rwx prawa dostępu dla pozostałych prawa dostępu dla grupy, do której plik należy prawa dostępu dla właściciela pliku rodzaj pliku
Zmiana właściciela Jeśli jesteś pewien, że plik nie jest plikiem systemowym możesz śmiało spróbować zmienić jego właściciela poleceniem - chown. Ma ono następującą składnię: chown <właściciel> <nazwa pliku> System sprawdzi, czy w systemie istnieje odpowiedni plik i użytkownik.
Zmiana właściciela Pamiętaj, że jeśli zmienisz prawa dostępu dla innej osoby, może się okazać, że stracisz odpowiednie uprawnienia! Wtedy pozostaje tylko zmiana tych praw z poziomu konta root. Grupy - są bardzo przydatną rzeczą służącą do organizacji użytkowników mających dostęp do systemu na tych samych zasadach. Możesz podzielić użytkowników na zaufanych, obcych itd.
Zmiana grupy Jeśli chcesz zmienić prawa dostępu do pliku przez grupę użyj polecenia: chgrp <grupa> <nazwa pliku> Tak jak w wypadku chown system sprawdzi czy plik i grupa istnieją.
Typy praw W Linux ie istnieją trzy typy praw dostępu. W zupełności jednak wystarczają do całkowitej kontroli systemu. Prawo do zapisu pliku (write), pozwala na modyfikacje go, a także na usuwanie. Prawo do odczytu (read), daje możliwość przeczytania pliku, ale i skopiowania. Prawo do wykonywania (execute), jeśli plik nadaje się do uruchomienia (binaria, skrypty), system go wykona. Nadawanie prawa execute dla zwykłego pliku nie ma sensu, gdyż system nie będzie potrafił go wykonać.
Typy praw Jeśli chodzi o katalogi: Prawo do zapisu pozwala na tworzenie, przenoszenie, usuwanie plików w nim zawartych. Prawo wykonywania daje możliwość wejścia do katalogu poleceniem cd.
Format zapisu praw Linux używa trzech pozycji w zapisie praw dostępu: Pierwsza to właściciel (owner) Druga to grupa (group) Trzecia dla pozostałych userów (other) Takie posegregowanie pozwala ustawić co, kto może z plikiem zrobić.
Format zapisu praw Informacje te zapisywane są w postaci odczyt zapis wykonanie. Tak więc 3 kategorie użytkowników i każdy ma 3 pola na ustawienie praw. Istnieje jeszcze jedna kolumna, która określa rodzaj - czy jest plikiem, katalogiem: "-" oznacza, że jest to plik, "d" świadczy o katalogu.
Zmiana praw Służy do tego polecenie: chmod <prawa> <nazwa_pliku> W Linuxie istnieją dwie możliwości podawania praw: bezpośredni za pomocą wartości numerycznych (0-7) lub symbolicznych (-rwx). I tak prawo czytania (r) jest warte 4 punkty, prawo pisania (w) to 2 punkty, zaś prawo wykonywania (x) to 1 punkt. Punkty przysługujące poszczególnym kategoriom użytkowników należy ze sobą zsumować.
Zmiana praw - 1 Przykłady: chmod 600 test.0 chmod R 777 a* - nadanie maksymalnego zestawu praw dostępu do plików i folderów o nazwie rozpoczynającej się na a, ale też w przypadku katalogów polecenie obejmuje również ich zawartość
Zmiana praw - 2 Ustawiając wartości symboliczne pierwszą rzeczą, którą musimy ustalić jest argument kogo ma dotyczyć dane prawo: u -użytkownik, g -grupa, o -inni, a -wszyscy
Zmiana praw Następnym podawanym parametrem jest czy prawo ma zostać dodane czy odjęte: +, -, = (czyni podane prawa jedynymi prawami dla pliku). Potem podajemy prawo, które ma być dodane lub odebrane. chmod [u g o a] [+ -] [r w x] <plik>
Zmiana praw Przykłady: chmod a+x roboczy - chcemy dać możliwość wykonywania pliku roboczy wszystkim użytkownikom systemu. chmod go-rwx roboczy2 - nie chcemy, żeby poza nami ktokolwiek miał dostęp do pliku roboczy2 chmod a-w jakiś_plik - zabiera wszystkim możliwość edycji tego pliku chmod g-x jakiś_plik - zabiera grupie możliwość wykonania pliku chmod o+w jakiś_plik - nadaje pozostałym możliwość edycji pliku chmod g=r jakiś_plik - ustala, że grupa może jedynie czytać plik
Edytor Vi (czytaj: wijaj)
Edytor vi Dostępny w każdym systemie UNIX, edytor vi budzi mieszane odczucia. vi nazwa_pliku otwiera edytor z plikiem do edycji vi uruchamia edytor tekstu
Edytor vi Vi pracuje w jednym z trzech stanów: - stan edycji tekstu (1) - stan poleceń klawiszowych (2) - stan edycji własnego wiersza poleceń (3) Znajomość tych stanów jest bardzo istotna w zrozumieniu działania edytora Vi.
Stan 1 edycja tekstu Wprowadzany jest tekst z klawiatury Naciśnięcie ENTER powoduje przejście do nowego wiersza Ze stanu 1 możemy wyjść tylko do stanu 2 (poleceń klawiszowych) naciskając ESC Ponowne naciskanie ESC nie spowoduje powrotu do stanu 1, cały czas będziemy w trybie 2
Stan 2 poleceń klawiszowych Po wydaniu polecenia vi nazwa_pliku edytor znajduje się w trybie 2 Naciskając klawisze wydajemy polecenia i dalej pozostaje w trybie poleceń klawiszowych Przejście do stanu edycji tekstu (1) naciskamy i Przejście do stanu edycji wiersza poleceń (3) naciskamy :
Stan 2 poleceń klawiszowych x usunie znak z prawej strony kursora 10x usunie 10 znaków z prawej strony kursora X usunie znak z lewej strony kursora 10X usunie 10 znaków z lewej strony kursora dd wycina do schowka wiersz od kursora w dół yy kopiuje do schowka wiersz od kursora w dół p wklejenie zawartości schowka na lewo od kursora P - wklejenie zawartości schowka na prawo od kursora
Stan 3 edycja wiersza poleceń Znajduje się na dole ekranu i rozpoczyna od : Kończymy polecenie naciskając ENTER Po naciśnięciu ENTER a w zależności od polecenia przejdzie do stanu (2) lub zakończy pracę. :q! - Wyjście bez zapisu :w Zachowanie pliku na dysku :wq - Wyjście z zapisem wprowadzonych zmian
Stany pracy Esc Sygnał dźwiękowy WEJŚCIE Vi ENTER Esc ENTER Stan 1 Edycja tekstu Stan 2 Polecenia klawiszowe Stan 3 Edycja wiersza poleceń WYJŚCIE :q! ENTER :wq! ENTER a o i Esc Sygnał dźwiękowy : /?
Procesy - podstawy Jądro systemu obsługuje wielozadaniowość procesora tzn. przydziela krótkie odcinki pracy procesora (kwanty) dla poszczególnych procesów. Dlatego mimo jednego procesora system może wykonywać wiele programów jednocześnie. Proces jest identyfikowany przez PID (process identifier). Użytkownik identyfikowany przez UID który uruchomił program, staje się właścicielem procesu PID który jest liczbą całkowitą.
Procesy - podstawy Proces który wymkną się spod kontroli (zawiesił się) nie jest groźny dla systemu, mógł np. zablokować jedną konsolę. W tym przypadku należy zalogować się na drugą konsolę i zakończyć wiszący proces poleceniem kill Polecenie kill usuwa działający proces podając jego PID Kill -l pokaże listę procesów, które można zabić
Procesy - podstawy Polecenie ps a wypisuje na ekranie procesy aktualnie uruchomione w systemie i dotyczące wszystkich użytkowników. PID TTY STAT TIME COMMAND 319 1 S 0:00 -bash Rozszerzoną informację o procesach uzyskujemy poprzez ps au USER BOLEK PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND 322 0.0 0.9 724 296 4 R 17.54 0:00 /sbin/mingetty
Procesy - podstawy Spróbujmy jeszcze ps aux more Opcja x pokazuje procesy nie związane z żadnym terminalem. Zatem dopiero polecenie ps aux pozwala na zobaczenie wszystkich procesów.
Procesy- podstawy USER nazwa właściciela procesu PID identyfikator procesu %CPU procent czasu procesora wykorzystywany przez proces %MEM procent pamięci fizycznej wykorzystywany przez proces SIZE wirtualna wielkość procesu w kilobajtach RSS wielkość części rezydentnej procesu w kilobajtach TTY identyfikator terminala sterującego STAT bieżący stan procesu (S-uśpiony, R-wykonywany) START moment uruchomienia procesu TIME skumulowany czas procesora zużyty przez proces COMMAND - polecenie
Dziękuję za uwagę