Linux - podstawyLinux - 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 graficzneLinux 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.Podstawowym elementem systemu jest jądro.Jest ono w ciągłym rozwoju dlatego przyjętonastępujące oznaczenia:
2.2.15 określa wersję stabilną (druga liczba parzysta)
2.1.10 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.5telnet 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 plikurm - 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 roboczy2mv /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_plikuZa 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 - pokazuje następną stronę q - kończy pracę i powraca do linii poleceń/<wzór> - szuka w pliku słowa wzór i przeskakuje
do niegoh - wyświetla pomoc poleceniakursory - przewijają tekst w górę i w dół
Przykłady: cat raport | less ls –l /etc | less
Łączenie plików
Polecenie cat umożliwia również łączenie plików:
cat dane1 dane2 > raportjeżeli następnie napiszemy polecenie
cat dane1 dane2 dane3 > raportto 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 soundfind / -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 2find ~/ -size 1024k
Szukanie plików
• GrepWyszukuje tekstu w plikachgrep <wzór do szukania> <plik lub pliki do przeszukania>
np. grep ″jary″ *.txtOpcje:• -i ignoruje wielkie znaki• -n wyświetla numery linii w pliku
Kompresja i archiwizacja
Polecenia:• Korzystanie z gzip i gunzip
gzip <nazwa pliku> - pakujegunzip <nazwa pliku> - rozpakowuje
• Korzystanie z bzip i bunzipbzip2 <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ówJako 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 –lJeś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 informacjeo 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-- 1 root root 48260 May 15 22:35 kot.jpg-rw-r--r-- 1 root root 55965 May 16 13:02 chemia.ref-rw-r--r-- 1 root root 5475 Apr 9 23:46 linux.html-rw-r--r-- 1 root root 447745 Apr 23 17:59 obrazki.tar.gzdrwxr-xr-x 5 root root 1024 Apr 8 21:04 fontsdrwxr-xr-x 2 root root 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.0chmod –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 prawPrzykł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
Stan 1Edycja tekstu
Stan 2Polecenia klawiszowe
Stan 3Edycja wiersza poleceń
EscSygnał
dźwiękowy
WEJŚCIEVi ENTER
EscENTER
aoi
EscSygnał
dźwiękowy
:/?
WYJŚCIE:q! ENTER :wq! ENTER
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 COMMAND319 1 S 0:00 -bash
• Rozszerzoną informację o procesach uzyskujemy poprzez ps au
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMANDBOLEK 322 0.0 0.9 724 296 4 R 17.54 0:00 /sbin/mingetty
Procesy - podstawy
• Spróbujmy jeszczeps 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ę