Download - UNIX - Strona główna AGHhome.agh.edu.pl/~borkows/uploads/Dydaktyka/UnixDB1.pdf · Użycie konsoli w systemie linux • TAB (klawisz tabulacji) – powoduje rozwinięcie wpisywanego

Transcript

ŚRODOWISKOUNIX

dr inż. Dariusz Borkowski

Podstawy informatyki

Przebieg II części przedmiotu

- 5 zajęć = 4 laboratoria + 1 kolokwium.

- aktywność na zajęciach jest oceniana

D. Borkowski, bud. B1, p. 204, tel: 28-41

email: [email protected],

Systemy UNIX i podobne

Podstawy informatyki

Interfejsy użytkownika

Podstawy informatyki

• Konsola tekstowa– Powłoki: SH,BASH,CSH,KSH i inne

• Środowisko graficzne– X11 + GNOME, KDE, XFCE i inne– Własne środowisko graficzne: Mac OS X,

systemy mobilne

www.opensuse.org

UNIX z GUI i konsola tekstowa

Podstawy informatyki

Ekran linuksaOpenSUSE 11.2z oknami KDE4

Zakładki woknie konsoli

Menustart

Okno konsoli (terminala)

Zdalna konsola tekstowa (puTTY)

Podstawy informatyki

Pomoc systemowa

Podstawy informatyki

Dokumentację systemu można przeglądać za pomocą programów man oraz info. Man (skrót od manual) jest dostępny w niemal wszystkich odmianach i klonach UNIXa. Używa się go następująco:

man polecenie – wyświetla dokumentację danego polecenia (np. man man)

man sekcja polecenie – wyświetla dokumentację polecenia z wybranej sekcji

Do nawigacji po wyświetlonej dokumentacji służą skróty:● Klawisze strzałek góra/dół – poruszanie się po tekście● Spacja / ctrl+B – strona w górę / dół● ? oraz / - wyszukiwanie do przodu i do tyłu● n/N – następne / poprzednie znalezione słowo● q – wyjście

Dokumentacja man jest podzielona na 8 sekcji:1. polecenia systemowe2. odwołania do funkcji systemowych3. funkcje biblioteczne C4. pliki specjalne i sterowniki (BSD, Linux) lub formaty plików (SysV)5. formaty plików (BSD, Linux) lub różne (SysV)6. gry i wygaszacze ekranu7. różne (BSD, Linux) lub pliki specjalne i sterowniki (SysV)8. polecenia administracyjne i usługi

polecenie --help wyświetla tzw. szybką pomoc obejmującą zazwyczaj listę opcji

Użytkownicy i grupyKażdy użytkownik posiada:

● Nazwę użytkownika (login)● Hasło● Przypisanie do co najmniej jednej grupy (primary group)● Katalog domowy (opcjonalnie)

Grupy użytkowników są używane przy zarządzaniu uprawnieniami. Np. grupy w OpenSUSE: ● users - „zwyczajni” użytkownicy● video – dostęp do kodeków systemowych● public – użytkownicy o obniżonych uprawnieniach (np. anonimowy dostęp FTP)

Zwykły użytkownik może:● Zmienić swoje hasło● Modyfikować zawartość swojego katalogu domowego● Uruchamiać zainstalowane programy

Zwykły użytkownik nie może:● Instalować / odinstalowywać programów● Pisać do katalogu innego niż domowy i tymczasowy (/tmp)

Podstawy informatyki

root - superużytkownikUżytkownik root jest jedynym domyślnym użytkownikiem systemu. Może on:

● Zmodyfikować lub usunąć dowolny plik lub katalog● Instalować i odinstalowywać oprogramowanie● Dowolnie korzystać z zasobów sprzętowych● Dodawać, usuwać i modyfikować uprawnienia i hasła innych użytkowników

Oznacza to, że root może przypadkiem (lub celowo) nieodwracalnie zniszczyć system, np. kasując pliki systemowe.

Z tego powodu nigdy nie należy pracować na koncie superużytkownika dłużej niż jest to absolutnie konieczne (np. do zainstalowania programu lub naprawy systemu).

Poza normalnym trybem logowania, można skorzystać z poleceń systemowych:

● su pozwala zastąpić dowolnego użytkownika innym (bez opcji jest to root)

● sudo polecenie pozwala wykonać pojedyncze polecenie z uprawnieniami roota

Oczywiście użytkownik musi znać hasło roota i mieć uprawnienia do wykonania tych poleceń (zwykle oznacza to przynależność do specjalnej grupy, np. wheel, admin lub sudoers)

Podstawy informatyki

Struktura folderów (katalogów)

Podstawy informatyki

Windows● C:\ Partycja rozruchowa systemu

● Program Files\ Programy● Windows\ System

● System\ ● System32\● Inne...

● Users\ Katalogi użytkowników● User1\

● Desktop\● My Documents\

● Administrator\● Temp\ Katalog tymczasowy

● D:\ Druga partycja (lub dysk zewn.)● E:\ Trzecia partycja (lub dysk zewn.)

UNIX (Linux)

/ katalog głównybin/ programy systemusbin/ programy administracyjneboot/ jądro i bootloaderlib/ bibliotekietc/ pliki konfiguracyjnehome/ katalogi użytkowników

user1/root/ katalog użytkownika rootmnt/ dyski zewnętrznemedia/ dyski zewnętrzne (auto)

cdrom/pendrive/

var/ kolejki, logi itp.tmp/ katalog tymczasowyopt/ oprogramowanie dodatk.dev/ pliki urządzeńproc/ obraz stanu jądra syst.sys/ stan plug and playusr/ programy użytkowników

bin/ programy – pliki uruchamialnedoc/ dokumentacja programówshare/ wiekszość programów w syst. Linuxlocal/ programy z instalatorami np. Matlab

Ścieżki względne i bezwzględne

Podstawy informatyki

Windows

C:\temp

D:\filmy\studio

Moje dokumenty

pliki\auto

program

UNIX (Linux)

/tmp

/usr/share/bin

documents

pliki/auto

./program

BEZWZGLĘDNE

WZGLĘDNE

URUCHOM PROGRAM Z AKTUALNEGO KATALOGU

Pliki i ich atrybuty

Podstawy informatyki

Nazwa pliku lub katalogu w systemie UNIX ma do 255 dowolnych znaków za wyjątkiem / (znak slash). Nie da się nazwać pliku . ani .., gdyż są to nazwy bieżącego i nadrzędnego katalogu (cd .. przechodzi do folderu „wyżej”). W odróżnieniu od Windows, UNIX rozróżnia małe i duże litery w nazwach plików!Plik i folder (katalog) w systemie UNIX posiada następujące atrybuty:

● nazwę● właściciela (użytkownika)● grupę● datę ostatniej modyfikacji● uprawnienia i bity modyfikujące

Istnieją trzy poziomy uprawnień:● r – prawo do odczytu pliku lub wyświetlenia zawartości katalogu● w – prawo do zapisu/skasowania/modyfikacji pliku lub katalogu● x – prawo do uruchomienia pliku lub wejścia do katalogu

Poziomy te definiowane są oddzielnie dla: właściciela (u), grupy (g) i pozostałych (o). Sprawdzić uprawnienia do pliku można stosując polecenie ls -l, i tak np. wynik w postaciala -rw-r--r-- oznacza, że ala jest plikiem, który może być modyfikowany

(w) i czytany (r) przez właściciela oraz tylko czytany (r) przez pozostałych użytkowników,

home drwxr-x--- oznacza, że home jest katalogiem (litera d), do którego może wejść (x) i wyświetlić zawartość (r) właściciel i członkowie grupy, ale jest on całkowicie niedostępny dla innych.

Dowiązania, pliki ukryte

Podstawy informatyki

Dowiązania (linki) są nazwami przypisanymi do plików. Istnieją dwa rodzaje dowiązań: twarde (hard links) i symboliczne (symbolic links).

Dowiązanie twarde może być utworzone tylko na tym samym dysku co plik, i jest po prostu nazwą pliku. Plik posiada co najmniej jedno dowiązanie twarde; w razie potrzeby można utworzyć ich więcej. Służy do tego polecenie ln. Utworzenie dowiązania twardego zwiększa licznik dowiązań danego pliku; jego usunięcie (poleceniem rm) zmniejsza ten licznik. Gdy licznik dowiązań dojdzie do 0 i żaden program nie korzysta z pliku, system zwalnia miejsce na dysku.

Dowiązanie symboliczne wskazuje na plik lub katalog, odwołując się do jego nazwy wraz z pełną ścieżką dostępu. W odróżnieniu od dowiązania twardego, może ono znajdować się na innym dysku i może pokazywać na katalog. Z punktu widzenia programu operującego na pliku dowiązanie symboliczne nie różni się od pliku na który pokazuje. Różnice tkwią w operacjach na plikach: utworzenie dowiązania symbolicznego nie zwiększa licznika dowiązań pliku, a polecenie rm kasuje tylko dowiązanie (bez żadnej ingerencji w plik). Dowiązanie symboliczne przeniesione w inne miejsce nadal wskazuje na plik na który zostało ustawione, ale przeniesienie pliku powoduje „zagubienie” dowiązania. Dowiązanie symboliczne tworzy się poleceniem ln -s: np. ln -s plik dowiazanie

Plik ukryty to plik, którego nazwa zaczyna się od znaku . Oznacza to, że plik ten domyślnie nie jest wyświetlany przez polecenie ls, menedżery plików i okna dialogowe wyboru pliku. Do wyświetlenia pliku ukrytego używamy polecenia ls -a

Składnia poleceń na przykładzie ls

Podstawy informatyki

polecenie [opcje] [argumenty] [przekierowanie] [strumień lub proces] [...]

• opcje jak nazwa wskazuje są opcjonalne, różne opcje można łączyć ze sobą

• argumentów może być 0, 1, lub kilka

• opcjonalne przekierowania możliwe są do/z plików oraz do innych poleceń

• Przykład: ls [opcje] [katalog] – wyświetla (listuje) zawartość kataloguls bez opcji i bez argumentu listuje zawartość aktualnego kataloguls -a opcja -a listuje wszystkie pliki w aktualnym katalogu (także ukryte)ls -l opcja -l listuje aktualny katalog ze szczegółamils ~ bez opcji, argument „~” (tylda) listuje katalog domowy użytkownika ls ala argument ala, listuje zawartość podkatalogu alals /bin argument /bin, listuje zawartość katalogu /binls > lista.txt przekierowuje wynik polecenia do pliku lista.txt (zamiast na stdout)ls | more przekierowuje wynik polecenia do procesu more

• Złożone przykłady łączenia opcji, argumentów i przekierowań:ls -la docs opcje -la listuje ze szczegółami wszystkie pliki z katalogu docsls -l /bin | grep net > o.txt listuje ze szczegółami katalog /bin i wynik przekierowuje do procesu grep wyszukującego linie zawierające ciąg net, a następnie znalezione linie kierowuje do pliku o.txt (zamiast na stdout)cat aa bb | grep xxx | more polecenie cat bierze dane z plików aa i bb (zamiast ze stdin), łączy je a wynik przekierowuje do grep, który następnie szuka w wyniku ciągów znaków xxx i znalezione linie przekierowuje do polecenia more

Podstawowe polecenia użytkownika

Podstawy informatyki

• who wyświetla kto jest zalogowany w systemie

• whoami wyświetla nazwę użytkownika, którym jesteś

• pwd wyświetla w jakim folderze (katalogu) aktualnie się znajdujesz

• hostname wyświetla nazwę komputera, na którym pracujesz

• passwd służy do zmiany hasła. NIE WYŚWIETLA PISANYCH ZNAKÓW!passwd zmienia twoje hasło. Jeśli hasło nie było puste prosi najpierw o

podanie twojego aktualnego hasła , a następnie o drukrotne podanie twojego nowego hasła.

passwd adam zmienia hasło użytkownika adam. Aby zmienić jego hasło trzeba być rootem lub znać jego aktualne hasło!

• date wypisuje lub ustawia czas systemowy (zmienić może tylko root)sudo date 12061715 ustawia datę 6 grudnia godz. 17:15 (mmddHHMM)

• df [opcje] informacja o wolnym miejscu na wszystkich zamontowanych dyskachdf -h wyświetla rozmiary jako kB, MB, GB, itd. a nie bloki.

• du [opcje] ścieżka podaje ile miejsca na dysku zajmują wskazane pliki lub folderdu -sh ~ wyświetla ile łącznie zajmuje katalog domowy z podkatalogami

• su [opcje] nazwa_usera powoduje zmianę użytkownika z pytaniem o hasło. su - zmienia użytkownika na root wraz z jego powłoką (login shell)su adam przelogowuje obecnego użytkownika na adam bez zmiany login shell

• sudo polecenie uruchamia polecenie z prawami superużytkownika (roota), wymaga znajomości hasła roota, wyjątkiem są systemy typu livecd

Nawigacja po folderach, itp.

Podstawy informatyki

• pwd wyświetla aktualny folder (print working directory)

• ls [opcje] katalog wyświetla zawartość aktualnego folderu (list).ls ~ listuje pliki z folderu domowego aktualnego użytkownika ls -la listuje ze szczegółami wszystkie pliki w aktualnym folderzels /etc/*.d wypisuje pliki z rozszerzeniem *.d z folderu /etc

• cd folder zmienia aktualny folder (change directory). Po zalogowaniu użytkownik znajduje się domyślnie w swoim folderze domowym.

cd (bez opcji) przenosi użytkownika do katalogu domowegocd .. przenosi do folderu wyższegocd documents przenosi do podfolderu documents aktualnego folderucd /usr przenosi użytkownika do folderu /usr

• mkdir katalog tworzy nowy folder (make directory)mkdir ~/test tworzy folder test w katalogu domowym użytkownika

• cp [opcje] źródło cel kopiuje pliki lub foldery (copy) ze źródła do celucp -r ~/test /tmp kopiuje rekursywnie (z podkatalogami) folder ~/test do /tmp

• mv [opcje] źródło cel przesuwa (move) czyli zmienia nazwy plików źródło na cel

• grep [opcje] ciąg wyszukuje w strumieniu wejściowym zadanego ciągu znakówls -l /etc | grep abc przekierowuje wynik polecenia ls do polecenia grep, które

wyszukuje w wyniku polecenia ls linii zawierających ciąg znaków abc a znalezione linie wypisuje na standardowe wyjście (ekran)

Operacje na plikach

Podstawy informatyki

• touch plik ustawia datę modyfikacji pliku na aktualną lub tworzy pusty pliktouch aaa.txt tworzy pusty plik (jeśli wcześniej nie istniał) aaa.txt o długości 0

• cat plik1 plik2 łączy pliki (jeśli podamy więcej niż jedną nazwę pliku) i wypisuje zawartość (wynik) w postaci ciągłej na standardowe wyjście cat aaa wypisze na ekran zawartość pliku aaacat aaa bbb > ccc połączy plika aaa z plikiem bbb i zapisze wynik w pliku ccc

• more (oraz less) wyświetlają pliki tekstowe na ekranie w trybie stronnicowym

• rm – usuwa pliki lub katalogi (remove)rm ~/ala usuwa plik ala z folderu domowego (gdy katalog zatrzyma się!)rm -r ala usuwa plik lub folder ala (nawet jeśli nie jest pusty!)rm -f ala usuwa bez pytania plik ala (należący do właściciela), nawet jeśli

plik nie miał ustawionego bitu zapisu dla właścicielarm -rf * usuwa bez pytania wszystkie pliki i foldery z aktualnego folderu

• chmod bity plik zmienia prawa dostępu do pliku lub kataloguchmod a+rx plik pozwala (+) wszystkim (a) czytać (r) i uruchamiać (x) plikchmod go–w plik zabrania (–) grupie (g) i innym (o) zapisu (w) do pliku

• chown plik właściciel zmienia właściciela pliku na innego użytkownikachown aaa kasia ustawia użytkownika kasia jako nowego właściciela pliku aaa

• chgrp zmienia grupę pliku na innąchgrp bbb users ustawia grupę users dla pliku bbb

Użycie konsoli w systemie linux• TAB (klawisz tabulacji) – powoduje rozwinięcie wpisywanego polecenia lub ścieżki

• historia poleceń – jest dostępna za pomocą strzałek góra/dół, które przywołują poprzednio wpisane polecenia.

• CTRL+C – przerywanie aktulanego polecenia (to jest obecne od najstarszych wersji)

• q – skrót pozwalający na wyjście z programów takich jak man/more/less

• ALT+TAB+Fx – przechodzi na konsolę numer x (okienka są zazwyczaj na x=7)

• & – po nazwie uruchamianego programu powoduje, że po uruchomieniu program nie blokuje konsoli. W ten sposób uruchamiamy np. programy okienkowe.okular x.pdf & otwiera plik x.pdf w przeglądarce okular nie blokując konsoli

• ps – wyświelta listę pracujących procesów ps -Af wyświetla wszystkie procesy wraz z nazwami programów

• top – wyświetla pracujące procesy w postaci tabelarycznej, obciążenie procesora, zajętość pamięci, właścicieli, PIDy (process identifiers), itd.

• kill [opcje] PID – wysyła do procesu podanym identyfikatorze PID (tylko root lub właściciel) zadany sygnał. Domyślnie jest to sygnał TERM (zakończenie procesu).

• killall [opcje] nazwa – wysyła zadany sygnał do procesów o podanej nazwiekillall -9 firefox wysyła sygnał KILL do wszystkich procesów firefox

• CTRL+ALT+ESC – pozwala na zabicie programu okienkowego za pomocą myszy

Podstawy informatyki

Zadanie 0 (czas 5 min)

a) uruchom system operacyjny linux

b) uruchom teminal czyli konsolę i sprawdź w jakim katalogu się znajdujesz (pwd)

c) poleceniem mkdir utwórz podkatalog o nazwie takiej jak Twoje imię w katalogu domowym

d) sprawdź czy utworzyłeś katalog (ls) i wejdź do utworzonego katalogu poleceniem cd

e) poleceniem ls z odpowiednią opcją wypisz na ekran listę plików z katalogu /bin wraz ze szczegółami (tzw. forma długa)

f) wylistuj w formie krótkiej (czyli domyślnej) pliki z katalogu /bin z przekierowaniem wyniku polecenia ls do pliku tekstowego w utworzonym wcześniej katalogu

g) poleceniem ls wylistuj do nowego pliku zawartość katalogu /etc

h) poleceniem cat połącz oba nowe utworzone pliki i wynik przekieruj do polecenia grep, uzytego tak by znaleźć wszystkie linie zawierające ciąg znaków net, wynik poszukiwań przekieruj do pliku wynik.txt

i) wyświetl na ekranie poleceniem more zwartość pliku wynik.txt

j) po sprawdzeniu przez prowadzącego usuń za pomocą polecenia rm utworzone pliki i katalogi

Podstawy informatyki

Wyszukiwanie plików na dysku● whereis [opcje] nazwa – wyszukuje na dysku binaria (programy), strony manuala,

źródła i pliki konfiguracyjne, szuka w standardowych katalogach systemuwhereis -b firefox znajduje pliki binarne (uruchamialne) z nazwą firefox

● find [opcje] katalog wyrażenie – znajduje w podanym katalog (i podkatalogach) pliki pasujące do podanego wyrażenia. Uwaga! Przeszukiwanie katalogu / trwa długo.find ~ -name .bashrc

● wyrażenie w poleceniu find może odnosić się do nazwy, daty, rozmiaru, rodzaju pliku:-name <nazwa> -iname <nazwa> -type <typ> -size <rozmiar><jednostka> -atime <dni> -ctime <dni> -mtime <dni> -exec <polecenie> [{}]

find ~ -iname b znajduje w katalogu domowym pliki o nazwie b lub B find ~ -ctime 0 znajduje w ~ pliki utworzone w ciągu ostatniej dobyfind ./ -size +100k znajduje w aktualnym katalogu pliki większe od 100 kBfind ~ -name *.txt znajduje w katalogu domowym i podkatalogach pliki o

rozszerzeniu .txt

● locate [opcje] wyrażenie – wyszukuje pliki ZINDEKSOWANE w bazie danych. Działa przez to szybciej niż find, lecz baza plików w systemie jest zazwyczaj aktualizowana raz na dobę (przez crona), więc może nie znaleźć najnowszych plików. Wtedy trzeba ręcznie uruchomić aktualizację bazy. Nie jest standardowym poleceniem unixa.locate -i BB wyszukuje w bazie pliki zawierające ciąg BB (ignoruje wielkość liter)

Podstawy informatyki

Zadanie 1 (czas 5 min)a) uruchom Virtualbox, a w nim PCLinuxOS, po załadowaniu systemu uruchom terminal

b) korzystając z polecenia whereis z odpowiednią opcją znajdź położenie samego programu firefox

c) uruchom program firefox i pobierz tą prezentację do folderu ~/Downloads

d) otwórz pobraną prezentację w programie atril, tak aby nie zablokować konsoli

e) korzystając z polecenia cp skopiuj z katalogu domowego do folderu ~/Desktop wszystkie pliki o rozszerzeniu pdf

f) korzystając z polecenia find znajdź w katalogu domowym i podkatalogach pliki o rozmiarze większym niż 500 kB

g) korzystając z polecenia su – zaloguj się jako administrator (zmienia katalog domowy!)

h) korzystając z polecenia find znajdź w katalogu /etc/ wszystkie pliki o nazwach zaczynających się na rc i rozszerzeniu .d

i) poleceniem du sprawdź ile na dysku zajmuje katalog /etc

j) poleceniem df sprawdź ile MB wolnego miejsca zostało na dysku systemowym /

k) poleceniem exit powróć z shella administratora do shella własnego użytkownika

Podstawy informatyki

Kompresja i archiwizacja• gzip [opcje] pliki – kompresuje lub dekompresuje pliki.

gzip plik kompresuje plik i zmienia jego nazwę na plik.gzgzip -9 plik kompresuje plik jw. z największym stopniem kompresji (opcja -9)gzip -d plik.gz dekompresuje (opcja -d) plik.gz i zmienia jego nazwę na plikgzip -l pack.gz wypisuje na ekran informacje wielkości pliku po dekompresji, itp.gzip -c plik1 plik2 > pack.gz kompresuje pojedyncze pliki, wynik wypisuje na stdout

(opcja -c), który jest przekierowany do pack.gzcat plik1 plik2 | gzip -c > pack.gz kompresuje połączone pliki, lepsza kompresja!

• tar [opcje] pliki – tworzy archiwum lub odzyskuje z archiwum pliki. Sam nie oferuje kompresji (kompresję wykonują inne programy). Tar pierwotnie był przeznaczony do współpracy z pamięciami taśmowymi (skrót od Tape Archiver), obecnie stosowany w celu przyspieszenie operacji dyskowych np. przy kopiowaniu wielu małych plików (jak np. zainstalowany Matlab) lub przy przenoszeniu systemu na inny dysk (zachowuje strukturę katalogów, pełne ścieżki, prawa dostępu do plików, linki, itd.).tar -cf arch.tar Desktop archiwizuje katalog Desktop w archiwum arch.tar tar -tf arch.tar wypisuje na ekran listę plików z archiwum arch.tartar -xf arch.tar wypakowuje pliki z archiwum arch.tartar -xzf arch.tgz wypakowuje pliki ze skompresowanego archiwum arch.tgztar -czf arch.tgz pliki tworzy skompresowane gzipem archiwum arch.tgz (opcja

-z); równoznaczne z > tar -c pliki | gzip -c > arch.tgz

Podstawy informatyki

Zadanie 2 (czas 5 min)

a) pobierz na dysk tą prezentację czyli plik UnixDB1.pdf

b) poleceniem gzip skompresuj plik UnixDB1.pdf do pliku pack1.gz z najniższym stopniem kompresji, a potem ponownie ale z najwyższym stopniem kompresji

c) porównaj rozmiary pliku UnixDB1.pdf i archiwów pack1.gz, pack2.gz

d) poleceniem tar z odpowiednimi opcjami utwórz nieskompresowane archiwum desk.tar katalogu ~/Desktop

e) poleceniem gzip skompresuj archiwum desk.tar

f) poleceniem tar z odpowiednimi opcjami wypisz na ekran listę plików zawartych w archiwum desk.tar.gz

g) poleceniem mv przenieś archiwum desk.tar.gz do katalogu ~/Documents

h) Poleceniem cd przejdź do katalogu ~/Documents

i) poleceniem tar z odpowiednimi opcjami wypakuj zawartość archiwum desk.tar.gz w katalogu ~/Documents

j) poleceniem ls wypisz na ekran zawartość aktualnego katalogu w formie długiej

Podstawy informatyki

Sprawdzanie ustawień sieciowych• ifconfig – wyświetla lub

modyfikuje konfigurację interfesjów sieciowych

• route – wyświetla lub modyfikuje trasę przekazywania pakietów

• cat /etc/resolv.conf – wypisuje konfigurację serwerów DNS

• Podstawowe parametry ustawień sieciowych:Interfejs (eth0 – ethernet, lo – lokalny loopback, wlan0 – bezprzewodowy, ppp0, itd.)Hwaddr – MAC adres (sprzętowy) karty sieciowejInet addr – adres IP protokołu ipv4 interfesju naszej maszynyBcast – adres rozgłoszeniowy w podsieci, Mask: maska podsieciGateway – adres bramy, czyli adres przez który wędrują pakiety z naszej maszynyNameserver – serwer nazw DNS, zmienia adresy symboliczne na IP

Podstawy informatyki

Testowanie komunikacji sieciowej• ping [opcje] adres_sieciowy – wysyła pakiety typu echo pod wskazany adres

(symboliczny lub IP) i wypisuje czas odpowiedzi na nie (jeśli maszyna odpowiada). Służy do testowania łączności sieciowej i czasu odpowiedzi.ping agh.edu.pl zadziała tylko gdy DNSy są poprawnie skonfigurowaneping 149.156.96.2 nie wymaga poprawnie skonfigurowanych DNSów

• tracepath [opcje] adres_sieciowy – wypisuje trasę pakietów do wskazanej maszyny. Służy do testowania routingu. Pozwala na określenie w którym miejscu giną pakiety.tracepath agh.edu.pl

• host [opcje] adres_sieciowy – odpytuje serwer DNS w celu poznania adresu IP. host student.agh.edu.pl wyświetla adres IP dla serwera student

• netstat [opcje] – wypisuje połączenia sieciowe, tabelę routingu, statystyki interfejsów, połączenia maskowane, statystykę komunikacji, aktywne sockety.netstat -tcp cyklicznie wypisuje połączenia korzystające z protokołu tcp oraz pidy

• iptables [opcje] – wyświetla lub modyfikuje reguły firewalla czyli filtra pakietów (iptables jest firewallem specyficznym dla linuxa w wersji >=2.6) iptables -L wyświetla listę reguł filtracji

• nmap [opcje] cel – skanuje cel (pojedynczy adres IP lub zakres), pozwala na stwierdzenie czy i które porty są otwarte w docelowej maszynie. Uwaga! Skanowanie portów może być uznane za próbę włamania i może mieć konsekwencje prawne!

Podstawy informatyki

Zdalne logowanie• ssh [opcje] user@host – nawiązuje szyfrowane połączenie z serwerem ssh

pracującym na maszynie host i loguje użytkownika user. Pyta o hasło lub dokonuje autentykacji w oparciu o zestaw klucz publiczny i klucz prywatny. Jest to obecnie podstawowy sposób nawiązywania zdalnych połączeń na systemach unixowych.ssh [email protected] łączy się z serwerem studentssh -p 2300 janek@komp loguje użytkowanika jacek na maszynie komp port 2300ssh -X janek@komp pozwala na uruchomienie programów okienkowychssh -v janek@komp wypisuje przebieg autentykacji, pomocne przy

rozwiązywaniu problemów z logowaniem

• /etc/init.d/sshd polecenie – włącza, wyłącza, wyświetla informację o stanie usługi ssh, niezbędnej do połączeń wykorzystujących programy ssh, sftp, scp/etc/init.d/sshd status wyświetla informację o stanie usługi (start, stop, restart)

• ssh jest też stosowane do tworzenia tuneli ssh czyli połączeń z maszyną znajdującą się za firewallem, pod warunkiem posiadania konta na maszynie z firewallemssh -L 2222:remotehost:22 user@sshsrv otwiera tunel ssh poprzez konto użytkownika user na maszynie sshsrv. Tunel powoduje, że pakiety wysłane na port 2222 maszyny sshsrv są przekierowane na port 22 maszyny remotehost. Możliwe jest też tworzenie tuneli w przeciwną stronę z opcją -R. Trzeba pamiętać o otwarciu odpowiednich portów na firewallach maszyn pośredniczącej i docelowej.

• telnet host – zdalne logowanie bez szyfrowania, obecnie prawie niestosowane ze względu na niski poziom bezpieczeństwa. Wyświetla surowe dane prosto od hosta, więc czasami stosowane, żeby sprawdzić jaka usługa działa na danym porcie. telnet galaxy.uci.agh.edu.pl

Podstawy informatyki

Zadanie 3 (czas 5 min)a) zaloguj się jako administrator poleceniem su -

b) zanotuj przyznany adres IP karty sieciowej oraz domyślną bramę i adresy DNSów

c) poleceniem tracepath wypisz trasę pakietów do powyższego serwera

d) poleceniem iptables wyświetl aktualną konfigurację firewalla swojego komputera

e) poleceniem ping sprawdź połączenie z innym komputerem w laboratorium lub z routerem lokalnej podsieci 192.168.0.1 (zakończenie CTRL+C)

f) spróbuj za pomocą ssh zdalnie zalogować się na użytkownika guest na swojej maszynie podając jej adres IP lub localhost (czy działa?) ssh guest@localhost

g) sprawdź czy usługa sshd jest uruchomiona, a jeśli nie to uruchom ją z opcją start

h) powtórz punkt f) Czy teraz działa? Dlaczego nie? (diagnostyka ssh z opcją -v)

i) za pomocą polecenia passwd ustaw hasło dla użytkownika guest na swojej maszynie

j) zakończ połączenie ssh (wyloguj się) poleceniem exit

k) wyloguj się z konta administratora poleceniem exit

Podstawy informatyki

Wymiana plików w sieci• scp [opcje] user1@host1:plik1 user2@host2:plik2 – sieciowa, szyfrowana odmiana

polecenia cp, kopiuje plik1 do pliku2. Oba pliki mogą znajdować się na różnych maszynach, na których działa demon ssh.scp plik1 plik2 kopiuje lokalnie plik1 do pliku2 (jak polecenie cp)scp ~/plik basia@komp:Upload kopiuje plik z katalogu domowego do

podkatalogu Upload w katalogu domowym basiscp -pr ~ basia@komp: kopiuje rekursywnie (z podkatalogami) katalog domowy ~

do katalogu domowego uzytkownika basia na komputerze komp z zachowaniem atrybutów plików (czasy, prawa dostępu, właściciele)

scp ~/plik basia@komp:/etc kopiuje plik z katalogu domowego do katalogu /etc na komputerze komp. Zapis w /etc wymaga uprawnień roota!

• sftp [opcje] user@host – program zbliżony do klasycznego ftp, jednak oferuje bezpieczne połączenia z szyfrowaniem. Do klasycznych połączeń ftp, na zdalnej maszynie musi pracować serwer ftp, a do połączeń sftp musi pracować serwer ssh. Po nawiązaniu połączenia z serwerem można wyświetlić listę poleceń sftp poleceniem help. Najważniejsze polecenia to:mkdir – tworzy katalog na serwerzeget – ściąga zdalne pliki z serweraput – wysyła lokalne pliki na serwer! – wykonanie komendy lokalnie np.:!ls listuje katalog lokalny, ls zmienia katalog zdalny,!cd zmienia katalog lokalny, cd zmienia katalog zdalnybye, exit kończy połączenie i wychodzi z programu sftp

Podstawy informatyki

• mail, mailx – tekstowy klient poczty elektronicznej, pozwala na wysyłanie listów jak również na przeglądanie skrzynki i czytanie listów. Do wysyłania listów wymaga działającego na maszynie serwera poczty (np. postfix, sendmail). Trudny w obsłudze.mail -s 'temat listu' adres@email wysyłanie listu z tematem, wciśnięcie ENTER

rozpoczyna tryb edycji listu, koniec trybu edycji CTRL+Dcat plik.txt | mail adres@email polecenie cat przekierowuje plik.txt do polecenia

mail, który wysyła go pod podany adresls * | mail adres@email wysyła listing katalogu z podkatalogami pod zadany adres

• pine – klient poczty elektronicznej z tekstowym interfejsem użytkownika. Dużo wygodniejszy niż mail, dlatego stosunkowo popularny. Skróty klawiszowe do obsługi są wyświetlane na dole ekranu.

• curl [opcje] URL – program do pobierania z internetu pojedynczych plików. Obsługuje wiele protokołów, potrafi także wysyłać pliki.

• wget [opcje] URL – program do pobierania z internetu całych serwisów www bądź plików i katalogów z serwerów FTP/HTTP/HTTPSwget -r -l 1 www.agh.edu.pl pobiera pliki rekursywnie z ilością zagłębień 1wget -p www.agh.edu.pl pobiera główną stronę agh, wraz z plikami

niezbędnymi do jej poprawnego wyświetlenia, ale nie rekursywnie

• rsync [opcje] źródło cel – program do kopiowania i synchronizacji danych. Służy do aktualizacji plików na podstawie dat modyfikacji, tworzenia mirrorów serwerów. Działa jednokierunkowo. Bardzo szybki, bo nie porównuje wszystkiego, a to co konieczne.

Poczta i pobieranie plików z sieci

Podstawy informatyki

Tekstowe przeglądarki www• lynx adreswww – tekstowa przeglądarka www (nie obsługuje flasha:), obsługa nieco

mało intuicyjna i uciążliwa w obsłudze (zadaje pytania o akceptację ciasteczek). Ze wględu na sposób działania stosowana np. przez osoby niewidome.spacja – przewijanie tekstu w dółstrzałka w górę i w dół – przechodzimy po kolejnych linkach na stroniestrzałka w prawo – kliknięcie na linkustrzałka w lewo – cofnięcie się do poprzedniej stronyg – przechodzi do paska adresu stronyo – wejście do ekranu ustawień (np. wybór kodowania znaków)q – wyjście z programu

• links adreswww – alternatywna tekstowa przeglądarka www, mniej popularna niż lynx, ale nieco bardziej intuicyjna w obsłudze. Może pracować też w trybie graficznym.

• elinks adreswww – zbliżona do links tekstowa przeglądarka www, obsługująca ramki

• Powyższe przeglądarki nie należą do standardu i należy je doinstalować (jako root). W systemie opensuse linux robimy to wydając polecenie: zypper install links lynxa np. w systemie debian lub ubuntu linux polecenie: apt-get install links lynx

• Obsługa złożonych stron w wymienionych przeglądarkach może być problematyczna, raz ze względu na wygodę obsługi, dwa na niewłaściwą interpretację niektórych stron. Np. lynx działa z AGHskim webmailem (Roundcube), ale już nie da się na nim sprawdzić poczty na gmailu.

Podstawy informatyki

Zadanie 4 (czas 5 min)a) poleceniem sftp połącz się z usługą sftp na serwerze student i utwórz na swoim koncie

katalog Upload, a następnie wyjdź z programu sftp za pomocą polecenia exit (listę poleceń programu sftp uzyskasz poleceniem help)

b) za pomocą ssh zaloguj się na swoje konto na serwerze student i uruchom przeglądarkę links. Przejdź do strony home.agh.edu.pl/~borkows a dalej do podstrony przedmiotu Podstawy informatyki. Pobierz i zapisz w utworzonym w punkcie a) katalogu Upload prezentację UnixDB1.pdf.

c) poleceniem ls * wylistuj wraz z zawartością wszystkie katalogi znajdujące się w katalogu domowym przekierowując (modyfikatorem | ) wyniki do polecenia mail, tak aby zostały wysłane na twoje prywatne konto pocztowe, a następnie wyloguj się z serwera student poleceniem exit

d) sprawdź w swojej poczcie czy wysłany list doszedł na twoje konto oraz czy pobrana prezentacja została zapisana w katalogu Upload na serwerze student

e) poleceniem scp skopiuj prezentację UnixDB1.pdf ze swojego konta na serwerze student do swojego katalogu domowego na localhost, a następnie wyświetl ją w programie atril w sposób nieblokujący konsoli

Podstawy informatyki

Edytory tekstu

Dostępny w każdym unixie.vi nazwa_pliku

• vim – edytor vi o rozszerzonych możliwościach (vi improved). Obsługa bardzo podobna do vi. Dostępny w większości współczesnych systemów unixowych oraz linuksach. Często vim jest linkowany do komendy vi, dlatego wpisując vi uruchamia się vim.vim nazwa_pliku

• emacs – skomplikowany edytor o ogromnych możliwościach, dawniej stosowany m.in. jako środowisko progamistyczne.

Podstawy informatyki

• pico – edytor tekstu używany w programie pocztowym pine. Na dole ekranu wyświetlane są skróty klawiszowe. Dość wygodny, ale nie zawsze dostępny.pico nazwa_pliku

• joe – prosty edytor tekstu. Kombinacja CTRL+K H otwiera podgląd skrótów klaw. joe nazwa_pliku

vi – postawowy edytor tekstu w systemach unixowych. Obsługa edytora jest trudna dla początkującego, po odrobienie ćwiczeń okazuje się być wygodna i przemyślana.

Edytor tekstu VIM• VIM ma kilka trybów działania. Najważniejsze to:

– tryb NORMAL czyli tryb komend, aktywny zaraz po włączeniu programu

– tryb INSERT czyli tryb edycji (wprowadzania) tekstu

– tryb CMD-LINE służy do wpisywania komend związanych np. z obsługą plików

• Do trybu INSERT można przejść z trybu NORMAL stosując rozmaite komendy, np: i (insert), ale mogą być też a (append), s (substitute). W trybie edycji na dole ekranu powinien pojawić się napis -- INSERT --. W starszych wersjach napisu nie ma :(

• Do trybu NORMAL przechodzimy wciskając klawisz ESC. Ważniejsze komendy to:u wielokrotne undo, cofa ostatnie zmiany (pamięta 1000 ostatnich zmian)i przejście do trybu edycji (INSERT)dd usuwa całą linię w której jest kursor cc wycina (cut) całą linię w której jest kursor i przechodzi do trybu edycjiyy kopiuje (copy) całą linię w której jest kursor p wstawia wycięte lub skopiowane linie poniżej kursoraP wstawia wycięte lub skopiowane linie powyżej kursorancc wycina n linii zaczynając od tej w której jest kursor i przechodzi do edycjinyy kopiuje n linii zaczynając od tej w której jest kursorndd usuwa n linii zaczynając od tej w której jest kursornG przechodzi do linii numer n w edytowanym tekścien% przechodzi do linii będącej n-tym % łącznej ilości linii w pliku

• Do trybu CMD-LINE przechodzimy z trybu NORMAL wciskając : (dwukropek).Po dwukropku wpisujemy komendę (wpisywane polecenia są widoczne), np::w zapis pliku (jeśli była podana jego nazwa):q wyjście z edytora:wq wyjście z zapisem:q! wyjście niezależnie od tego czy plik zapisano czy nie:w nazwa zapisanie pliku pod nazwą:w! nazwa zapisanie pliku pod nazwą już istniejącego pliku (nadpisanie):e nazwa otwarcie do edycji pliku z dysku:n utworzenie nowego tekstu w edytorze (jeszcze bez nazwy pliku)

Podstawy informatyki

Edytor tekstu VIM c.d.• Komendy trybu NORMAL c.d.:

gg, G przenosi kursor na początek, koniec tekstub, e przenosi kursor na początek, koniec kolejnego słowa0, $ przenosi kursor na początek, koniec aktualnej liniih, j, k, l ruch kursora ←, ↑ , ↓ ,→, kompatybilny z edytorem vi (przydatne w przypadku braku klawiszy strzałek na klawiaturze lub niektórych terminali tekstowych)

• Komendy trybu CMD-LINE:q wyjście z edytora:wq wyjście z zapisem:q! wyjście niezależnie od tego czy plik zapisano czy nie:w nazwa zapisanie pliku pod nazwą:w! nazwa zapisanie pliku pod nazwą już istniejącego pliku (nadpisanie):e nazwa otwarcie do edycji pliku z dysku:n utworzenie nowego tekstu w edytorze (jeszcze bez nazwy pliku)

• Zastępowanie tekstu (komenda s):s/old/new/g zastępuje w linii wszystkie wystąpienia słowa old słowem new:%s/old/new/g zastępuje w tekście wszystkie wystąpienia słowa old słowem new:%s/old/new/gc zastępuje w tekście wszystkie wystąpienia słowa old słowem new,

z pytaniem o potwierdzenie przy każdej zamianie

• Wyszukiwanie tekstu rozpoczynamy w trybie NORMAL wciskając / (ukośnik)/tekst wyszukuje pierwsze wystąpienie szukanego tekstu za kursoremn przenosi kursor do następnego wystąpienia szukanego tekstuN przenosi kursor do poprzedniego wystąpienia szukanego tekstu

Podstawy informatyki

Zadanie 5 (czas 5 min)

a) uruchom edytor tekstu vim

b) komendą :e otwórz w edytorze ukryty plik .bashrc

c) komendą yy skopiuj linie 11 (zaczynającą się od słowa alias)

d) przejdź na koniec tekstu i komendą p wklej skopiowaną linię

e) komendą i lub a wejdź do trybu edycji wklejonej linii i zmień ją na: alias lla='ls -la'

f) dodaj na końcu teksu nową linię i dopisz tam echo Witaj $USER

g) wyjdź z trybu edycji wciskając ESC i komendą :wq zapisz plik i wyjdź z edytora

h) wydaj polecenie lla, jaki jest efekt?

i) poleceniem su guest zaloguj się ponownie na swojego użytkownika, co zauważyłeś?

j) wydaj polecenie lla, jaki teraz jest efekt?

Podstawy informatyki

Powłoka BASH, skryptyInterpreter poleceń nazywany także powłoką systemową pośredniczy pomiędzy użytkownikiem a funkcjami systemu operacyjnego.

Powłoka systemowa pobiera dane i polecenia i przekazuje je do wykonania do jądra systemu operacyjnego. Najpopularniejsze powłoki systemowe to: bash, tcsh, ksh, zsh.

Skrypt to plik tekstowy zawierający polecenia powłoki. Skrypt może także przyjmować argumenty.

Najprostszy skrypt:#!/bin/bash w pierwszej linii jest nazwa powłoki, używanej do wykonania skyptu# nasz skrypt pozostałe linie zaczynające się na # to komentarzeecho "Hello world" wypisuje na ekran napis Hello world

Żeby go uruchomić należy go zapisać pod dowolną nazwą (np. skrypt) i ustawić dla tego pliku bit x (plik uruchamialny) dla użytkowników, którzy będą mieć prawo go uruchomić, np: chmod u+x skrypt

Następnie wpisanie w konsoli polecenia:./skrypt zwróci wynik Hello world

echo [opcje] tekst – polecenie wypisujące tekst na ekranie (domyślne wyjście – stdout)echo -n napis po wypisaniu słowa napis nie zostanie dodany znak nowej liniiecho -e ”oto\todstęp” włącza interpretację znaków specjalnych (znaki te są takie jak

znacie z formatowania tekstu przez instrukcję printf w języku C),tutaj znak \t oznacza tabulator

Podstawy informatyki

Powłoka BASH, zmienneIstnieje kilka rodzajów zmiennych. Ze względu na zasięg wyróżniamy: lokalne, globalne.

Definiowanie nowej zmiennej lokalnej (będzie widoczna tylko w shellu, w którym ją zdefiniowano):zmienna=”Ala ma kota” uwaga! Nie może być spacji przy znaku =

Wartość zmiennej uzyskujemy wpisując jej nazwę poprzedzoną znakiem $:echo $zmienna wypisze na ekranie zawartość zmiennej napis czyli Ala ma kota

export – służy do definiowania lub usuwania zmiennych lokalnychexport XX zamienia zmienną lokalną XX w zmienną globalnąexport XX=3 tworzy nową zmienną globalną o nazwie XX zwierającą liczbę 3export -p wypisuje listę wszystkich zmiennych globalnychexport -n XX usuwa zmienną XX z listy zmiennych globalnych, XX staje się lokalne

Dostępne są także zmienne tablicowe. Odwołanie do elementu tablicy następuje przez indeks k tego elementu liczony od 0 podany w nawiasach prostokątnych np. dni[k]. Indeks * oznacza wszystkie elementy:dni=(pn wt sr cz pt sb nd) tworzy zmienną tablicową o nazwie dni zawierającą tekstyecho ${dni[2]} wypisze na ekran srecho ${dni[*]} wypisze na ekran pn wt sr cz pt sb nddni[5]=sat zmieni element szósty zmiennej dni z sb na satunset dni[2] usuwa ze zmiennej dni trzeci element srunset dni usuwa z pamięci całą tablicę

Są też zmienne specjalne basha, które można wykorzystywać w skryptach:$0 nazwa bieżącego skryptu lub powłoki$1..$9 kolejne argumenty przekazane do bieżącego skryptu$@ wszystkie argumenty przekazane do bieżącego skryptu$# ilość argumentów wywołania skryptu$? ostatnio wykonane polecenie

Podstawy informatyki

BASH c.d., argumenty, ogranicznikiSkrypty mogą przyjmować argumenty wywołania. Np. poniższy skrypt zapisany w pliku skrypt#!/bin/bashecho "argument pierwszy to $1"echo "argument drugi to $2"echo "argument trzeci to $3"

Wywołany następująco ./skrypt aaa bbb wypisze na ekran następujący wynik:argument pierwszy to aaaargument drugi to bbbargument trzeci to

Rozmaite ograniczniki argumentów poleceń basha mają różne znaczenie:

• Apostrofy proste ' ' powodują, że powłoka interpretuje jego zawartość jako tekst bez wyjątków.

• Cudzysłowy proste " " powodują, że powłoka interpretuje jego zawartość jako tekst, z kilkoma wyjątkami, którymi są znak oznaczający zmienną $, znak maskujący \ i znaki odwrotnego apostrofu ` ` .

• Apostrofy odwrotne ` ` powodują, że powłoka interpretuje jego zawartość jako polecenie i zwraca wynik działania tego polecenia.

Przykłady:miesiac=czerwiececho 'teraz jest $miesiac' wypisze na ekran teraz jest $miesiacecho "teraz jest $miesiac" wypisze na ekran teraz jest czerwiececho `date` wypisze na ekran sob, 13 mar 2010, 17:27:29 CETecho 'teraz jest `date`' wypisze na ekran teraz jest `date`echo "teraz jest `date`" wypisze na ekran teraz jest sob, 13 mar 2010, 17:27:29 CET

Podstawy informatyki

Zadanie 6 (czas 10 min)

a) uruchom okienkowy edytor tekstu pluma w sposób nieblokujący konsoli (znak &), napisz w nim poniższy skrypt i zapisz go w katalogu domowym pod nazwą skr1#!/bin/bashecho $napis

b) przejdź do okna konsoli

c) poleceniem chmod ustaw prawo uruchomienia (bit x) skrytpu skr1, a następnie uruchom skrypt poprzez wywołanie ./skr1 (co pojawiło się na ekranie?)

d) zdefiniuj zmienną napis wpisując napis=”tekst”, uruchom skrypt, wyjaśnij wynik

e) poleceniem export wyeksportuj zmienną napis, uruchom skrypt, wyjaśnij wynik

f) napisz nowy skrypt o nazwie dzien, który będzie przyjmował argument (liczbę) i wypisywał nazwę dnia tygodnia, w sposób jak poniżej:wywołanie ./dzien 6 wyświetla napis 6 dzien tygodnia nazywa się sobota

skrypt taki składa się z 3 linii: w pierwszej określenie shella (jak zawsze), w drugiej definicja zmiennej tablicowej z nazwami dni tygodnia, w trzeciej polecenie echo z odpowiednim argumentem w cudzysłowach prostych, a w argumencie odpowiednio użyte odwołanie do argumentu wywołania i zmiennej tablicowej dni

g) poleceniem chmod ustaw prawo uruchomienia (bit x) skrytpu dzien, a następnie sprawdź jego działanie i popraw skrypt jeśli nie działa tak jak powinien

Podstawy informatyki

BASH c.d., konstrukcja IF..ELSE

Podstawy informatyki

if warunek then polecenia1 else polecenia2fi

Wykonuje polecenie1 gdy warunek jest spełniony (ma wartość 1), a gdy nie jest spełniony (ma wartość 0), polecenie2.

Warunek sprawdzamy poleceniem test lub [ ]:test wyrazenie1 operator wyrazenie2 lub to samo inaczej[ wyrazenie1 operator wyrazenie2 ] (spacje!!!)

W przypadku warunku z jednym wyrażeniem piszemy:test operator wyrazenie lub [ operator wyrazenie ]

Przykład 1:#!/bin/bashif test $# = 0 then echo "Nie podałeś argumentów" else echo "Argumenty to: $@"fi

Przykład 2:#!/bin/bashif test -e ~/.bashrc then echo "Masz plik .bashrc" else echo "Nie masz pliku .bashrc"fi

Operatory polecenia test:

-e plik istnieje-b plik istnieje i jest blokowym plikiem spec.-c plik istnieje i jest plikiem znakowym-h plik istnieje i jest linkiem symbolicznym= sprawdza czy wyrażenia są równe!= sprawdza czy wyrażenia są różne-n wyrażenie ma długość większą niż 0-d wyrażenie istnieje i jest katalogiem-z wyrażenie ma zerową długość-r można czytać plik-w można zapisywać do pliku-x można plik wykonać-f plik istnieje i jest plikiem zwykłym-N plik istnieje i był zmieniany od czasu jego ostatniego odczytuplik1 -nt plik2 plik1 jest nowszy od pliku2plik1 -ot plik2 plik1 jest starszy od pliku2-lt mniejsze niż-gt większe niż-ge większe lub równe-le mniejsze lub równe

Warunki złożone: AND -a, &&, OR -o, II

if test $1 != 5 -o $1 = 5 -a $2 -gt 0

if [ $1 -lt 6 ] && ( [ $2 -gt 0 ] || [ $1 -gt 4 ] )

Sprawdź dla $1=6 $2=0 z nawiasami i bez!!!

BASH c.d., pętle FOR i WHILEfor zmienna in lista do poleceniadone

Wykonuje polecenia na każdym elemencie listy.

Przykład 1. Wykonuje pętlę 10 razy wypisując na ekran kolejne liczby z wykorzystaniem 0 do 9 z wykorzystaniem pomocniczej komendy seq. Użycie znaków ` ` powoduje, że lista będzie miała postać 0 1 2 3 4 5 6 7 8 9 a nie seq 0 9:#!/bin/bashfor LICZBA in `seq 0 9` do echo $LICZBAdone

Przykład 2. Zmiany wszystkich plików z rozszerzeniem eps (obrazów EPS) w aktualnym katalogu na format PDF za pomocą polecenia epstopdf. Użycie znaków " " zapobiega błędom przetwarzania plików, których nazwy zawierają spacje:#!/bin/bashfor PLIK in *.eps do epstopdf "$PLIK"done

Podstawy informatyki

while warunek do poleceniadone

Najpierw sprawdza warunek czy jest prawdziwy, jeśli tak to wykonane zostaną polecenia, gdy warunek nie będzie spełniony pętla zostanie zakończona.

Przykład 1. Wypisuje wartość zmiennej X, a następnie ją inkrementuje dopóki zmienna jest mniejsza od 10:#!/bin/bashX=1;while test $X -lt 10 do echo "Napis pojawił się po raz: $X" X=$[X + 1]done

Przykład 2. Zapisuje nazwy plików mp3 do pliku lista.txt. W pętli przekodowuje pliki mp3 na zadany, stały bitrate za pomocą enkodera lame. Pliki wynikowe zapisuje w podkatalogu out. Polecenie read wczytuje z kolejne nazwy plików z listy i przekazuje je do pętli. Jako argument podajemy docelowy bitrate.#!/bin/bashls -1 *mp3 > lista.txtwhile read PLIK; do lame -h -b $1 "$PLIK" "out/$PLIK"; done < lista.txt

Zadanie 7 (czas 10 min)

a) na bazie skryptu dzien utwórz nowy skrypt o nazwie dzien2, który ma działać w następujący sposób:

● po uruchomieniu skrypt ma sprawdzać warunek logiczny polegający na tym, że argument wywołania skryptu jest liczbą większą od 0 i jednocześnie mniejszą od 8 (czyli argument jest numerem jednego z dni tygodnia). Iloczyn warunków logicznych uzyskujemy stosując dwa wywołania polecenia test oddzielone znakiem iloczynu logicznego AND czyli: test warunek1 -a warunek2

● jeśli warunek jest spełniony to skrypt ma działać jak wcześniej czyli podań nazwę wybranego dnia tygodnia

● jeśli warunek nie jest spełniony to skrypt ma w pętli for wypisać nazwy wszystkich dni tygodnia po kolei korzystając z pomocniczej zmiennej $numer będącej indeksem pętli.

● przy tworzeniu pętli konieczne będzie użycie polecenia seq wraz z apostrofami odwrotnymi (jak na poprzednim slajdzie)

● tablica z nazwami dni tygodnia powinna być zdefiniowana przed konstrukcją if .. fi, żeby była dostępna zarówno przy spełnionym jak i niespełnionym warunku

b) poleceniem chmod ustaw prawo uruchomienia (bit x) skryptu dzien2, a następnie sprawdź jego działanie i popraw skrypt jeśli nie działa tak jak powinien

Podstawy informatyki

BASH c.d., strumienie we/wyW systemch unixowych wszystko jest plikiem. Tak samo traktowane są strumienie wejściowe, wyjściowy i błędów wykorzystywanych przez polecenia i skrypty powłoki. Są one oznaczone liczbami:

• 0 – strumień wejściowy, domyślnie stdin czyli klawiatura

• 1 – strumień wyjściowy, domyślnie stdout czyli ekran

• 2 – strumień błędów, domyślnie stderr czyli ekran

Podmiana wyjścia czyli przekierowanie wyniku do pliku zamiast na ekranecho -e "1\n0\n4\n2\n3" > liczby.txt zapisuje kilka liczb w kolejnych liniach pliku liczby.txt

Podmiana wejścia czyli pobieranie argumentów z pliku zamiast z klawiaturysort < liczby.txt komenda sort pobiera liczby z pliku liczby.txt, sortuje je i wypisujesort < liczby.txt > out.txt jw. ale wynik umieszcza w pliku out.txtsort < liczby.txt >> out.txt jw. ale wynik dopisuje na końcu pliku out.txt

Przekierowanie wejścia błędów do pliku zamiast na ekranls -y 2> ~/error.log polecenie ls jest wywłane z nieprawidłowym argumentem, a komunikat

o błędzie znajdzie się w pliku error.logls >> ~/out.log 2>&1 standardowe wyjście jest przekierowane do pliku (wynik działania

polecenia ls jest dopisywany na koniec pliku out.log), ale wyjście błędu jest również przekierowane (2>&1) do tego samego pliku.

Podstawy informatyki

Montowanie urządzeń

Podstawy informatyki

Montowaniem nazywane jest zamapowanie urządzenia na folder. Podczas rozruchu systemu partycja rozruchowa jest montowana do folderu /, a następnie montowane są urządzenia wymienione w pliku /etc/fstab z oznaczeniem auto. Każdy folder w drzewie może odpowiadać innej partycji lub innemu dyskowi.

Aby zamontować folder ręcznie, należy użyć polecenia mount. Przykładowo:

mount /dev/cdrom0 /mnt/cdrom montuje napęd /dev/cdrom0 do folderu /mnt/cdrom

mount /dev/sdc1 /media/pendrive montuje partycję /dev/sdc1 do folderu /media/pendrive

mount wypisuje zamontowane partycje

mount -o loop /tmp/cdimg.iso /mnt/iso montuje obraz płyty CD do folderu /mnt/iso

Do odmontowania służy polecenie umount (nie unmount). Podaje się tylko miejsce zamontowania lub urządzenie:

umount /mnt/iso

umount /dev/sdc1

UWAGA: W większości dystrybucji płyty CD/DVD data oraz napędy pendrive są montowane (pół)automatycznie do katalogu /media

Narzędzia dyskowe linuxa (unixa)• df [opcje]– informacja o wolnym miejscu na wszystkich zamontowanych dyskach

df -h wyświetla rozmiary jako kB, MB, itd. a nie bloki

• du [opcje] pliki – podaje ile miejsca na dysku zajmują wskazane pliki lub katalogdu -sh ~ wyświetla ile zajmuje łącznie katalog domowy z podkatalogami

• mount, umount – montowanie, odmontowywanie partycji i dysków. Przed modyfikacją lub naprawą dysk powinien zostać odmontowany:umount /dev/sda3 odmontowuje partycję sda3

• fdisk, cfdisk, parted – narzędzia tekstowe do partycjonowania dysków. Z tych trzech cfdisk ma tekstowy interfejs użytkownika i jest najwygodniejszy w użyciu.cfdisk /dev/sda

• mkfs – tworzenie filesystemu czyli formatowanie partycji. Polecenie wywołuje się z nazwą filesystemu po kropce. W manualu polecenia mkfs wymienione są dostępne filesystemy. Dla każdego z nich dostępne są inne opcje.mkfs.vfat -n winda /dev/sda5 formatuje partycję sda5 jako FAT32 z etykietą

• fsck – szukanie błędów i naprawianie partycjifsck -i /dev/sda

• tunetofs – ustala parametry filesystemu, np. journal, częstotliwość skanowania, itp.

• hdparm – konfiguruje parametry dostępu do dysku (tryb DMA), testuje prędkość

• dd – kopiuje dyski w trybie surowym (raw) blok po bloku

Podstawy informatyki

Instalacja oprogramowaniaW odróżnieniu od Windows, w systemach UNIX oprogramowanie jest zwykle instalowane automatycznie przez internet. Służą do tego mechanizmy dostarczone przez dostawcę systemu, przez co nie istnieje jednolity standard. W każdym jednak przypadku instalacja sprowadza się do wskazania programu z listy lub podania jego nazwy i nakazania instalacji; program jest następnie pobierany z serwera dostawcy i instalowany. Odinstalowanie przebiega w podobny sposób. Do najpopularniejszych otwartych programów zarządzających instalacją należą:

● apt-get i nakładki graficzne (synaptic, aptitude) wraz z instalatorem dpkg, używany w systemach opartych na Debian Linux (w tym Ubuntu)

● yum i nakładki graficzne (synaptic) wraz z instalatorem rpm, używany w systemie Fedora Linux i pochodnych

● zypper i nakładka graficzna YaST2 wraz z instalatorem rpm, używany w OpenSUSE

● ports, system pobierania i instalacji oprogramowania w systemach *BSD

● w niektórych starszych systemach unixowych programy instaluje się poprzez ręczną kompilację kodów źródłowych, co jest dosyć uciążliwe

Podstawy informatyki