linux - podstawy - vot.plkuzminb.vot.pl/moja/pliki/linux_podstawy.pdf · 2007-05-21 · polecenie...

Post on 19-Jul-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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ę

top related