Ćwiczenia nr 2. Podstawy pracy z linuxem cz. 2

1.           Zarządzanie kontami użytkowników

a)         konta użytkowników

·      zakładanie nowego konta użytkownika

-       linuxconf – Users -> User accounts

-       komendy: useradd, usermod, userdel

·      zakładanie nowej grupy użytkowników

-       linuxconf – Users -> Group definitions

-       komendy: groupadd, groupmod, groupdel

·      omówienie zagadnień związanych z bezpieczeństwem konta

-       linuxconf – Password & Account policies

·      zapoznanie się z odpowiednimi plikami konfiguracyjnymi

-       /etc/passwd

-       /etc/group

·      katalog domowy użytkownika

-       plik .profile (dla powłoki bash - .bash_profile) – osobiste ustawienia

·      zmiana hasła użytkownika

-       polecenie passwd

 

2.           Zastosowanie powłoki

a)         zapoznanie się z typami powłok rozprowadzanymi z systemem Linux Mandrake

·      bash         - powłoka Bourne Again

·      sh             - dowiązanie symboliczne do powłoki bash

·      ash           - niewielki interpreter poleceń (podobny do powłoki sh)

·      bsh           - dowiązanie symboliczne do powłoki ash

·      csh           - powłoka C, dowiązanie symboliczne do tcsh

·      tcsh          - powłoka kompatybilna z csh

·      zsh           - powłoka kompatybilna z csh, ksh i sh

b)        wprowadzenie do programowania w języku powłoki

·      tworzenie i uruchamianie skryptów

c)         Ćwiczenia

·      napisać skrypt, który wyświetli wszystkie pliki i katalogi z domowego katalogu (zastosuj następujący format: długa lista wraz z plikami ukrytymi) i zapisze te informacje w pliku lista.txt

·      napisz skrypt który utworzy katalog wynik, skopiuje plik lista.txt do tego katalogu i posortuje informacje w nim zawarte a następnie zapisze posortowany plik do nowego pliku o nazwie lista_sort.txt

·      napisz skrypt, który wyszuka w katalogu domowym wszystkie pliki txt i zapisze wynik swojego działania w pliku o nazwie lista_pliki.txt, wyświetli jego zawartość na ekranie, a następnie przeniesie wszystkie pliki txt do nowo utworzonego katalogu pliki_txt

 

3.           Procesy -uruchamianie, zarządzanie i zatrzymywanie

a)         uruchamianie procesów

·      $ polecenie – uruchomienie procesu pierwszoplanowego (np.: $ sleep 120)

·      $ polecenie & - uruchomienie procesu w tle

b)        wyświetlanie stanu procesów

·      komenda ps – wyświetlenie stanu procesów
PID – numer identyfikacyjny procesu
TTY- nazwa terminala sterującego procesem
TIME- sumaryczny czas wykonywania procesu przez procesor
CMD – nazwa procesu (wywołanego polecenia)

$ ps [opcja] – zapoznać się z różnymi opcjami komendy ps (man ps, ps –help)

c)         zarządzanie procesami

·      komendy:

-       $ jobs [opcje] – wyświetla informacje o procesach uruchomionych w tle

-       $ fg $n- przenosi proces o numerze n z tła do pierwszego planu

-       CTRL+Z – zatrzymuje proces pierwszoplanowy

-       $ bg – przenosi zatrzymany proces pierwszoplanowy przez CTRL+Z na drugi plan

-       $ nice [-n] polecenie [argumenty]- uruchomienie procesu z niższym o n priorytetem

d)        zatrzymywanie procesów

·      komendy

-       CTRL+C – przerywa proces pierwszoplanowy

-       kill [numer sygnału] PID – zamyka i usuwa proces z systemu
$ kill –l – lista numerów sygnałów

e)         cykliczne uruchamianie procesów

·      komendy

-       $ sleep time – zawiesza wykonanie procesu na określoną jako parametr time liczbę sekund

-       $ at [opcje] – służy do jednorazowego uruchamiania procesu o określonej porze, polecenie $at –l pokazuje wszystkie zadania do wykonania, polecenie at –r usuwa zadania (patrz man batch)

-       $ atq – wypisuje zadania zlecone przez at (patrz man batch)

-       $ atrm – usuwa z kolejki zadania zlecone przez at (patrz man batch)

-       $ batch – wykonuje polecenia w późniejszym czasie jedno po drugim (patrz man batch)

-       $ crontab [filename] – służy do okresowego uruchamiania procesów z zastosowaniem tablicy crona (patrz man crontab),

w               przykładowy pliki crontab
minuty (0-59)
godziny (0-23)
dzień miesiąca (1-31)
miesiąc roku (1-12)
dzień tygodnia (0-6), gdzie 0 to niedziela
* oznacza wszystko
12 10 * * 1-5 ls –l >/dev/pts/3
0,15,30,45 * * * * cp /home/student/* /home/student/archiwum

w               $crontab –l wyświetla aktualną tablicę crontab

w               $ crontab –r usuwa aktualną tablicę crontab

f)          Ćwiczenia

·      uruchomić kilka procesów pierwszoplanowych w tle, sprawdzić stan procesów korzystając z poleceń

-       ps, ps –a, ps –ef | more, ps –al | more

·      sprawdzić działanie poleceń

-       ps –u nazwa_użytkownika

-       ps –ef | grep nazwa_użytkownika

·      co realizuje następujące polecenie

-       ps | sort -nr | grep -v "PID"

·      uruchomić kilka procesów oraz usunąć je poprzez normalne zakończenie programu oraz przez zabicie poleceniem kill

·      sprawdź, czy posiadasz uprawnienia do wykonywania polecenia at wydając polecenie

-       $ at now + 1 min </dev/null

·      porównaj działanie poleceń:

-       $ at now + 1 min
at>ls –la > /dev/pts/nr_term
at>CTRL+D
UWAGA! (komenda tty wyświetla numer terminala na którym pracujesz)

-       $ at now + 1 min
at>ls –la
at>CTRL+D

·      zapoznaj się z zasadami tworzenia tablicy crontab, utwórz dowolną tablicę i sprawdź poprawność jej działania

·      utwórz tablicę crontab, która będzie uruchamiała wybrane polecenie co godzinę od poniedziałku do piątku w godzinach od 8 do 15

 

4.           Monitorowanie systemu

a)         programy do monitorowania systemu

·      top

-       opis parametrów

w               up: czas pracy systemu wraz z trzema średnimi wartościami jego obciążenia (średnie liczby procesów gotowych do pracy podczas 1, 5, 15 min.)

w               processes: całkowita liczba działających procesów

w               CPU states: procenty czasu procesora poświęcone na tryb użytkownika, tryb systemu, zadania ograniczone przez nice i bezczynność.

w               Mem: statystyki dotyczące zużycia pamięci fizycznej

w               Swap: statystyki dotyczące pamięci swap

w               PID: identyfikator procesu każdego zadania

w               USER: nazwa użytkownika, który jest właścicielem zadania

w               PRI: priorytet zadania

w               NI: wartość nice zadania

w               SIZE: wielkość kodu zadania plus dane i miejsce na stosie w KB

w               RSS: całkowita wielkość pamięci fizycznej w KB używanej przez to zadanie

w               SHARE: wielkość pamięci współdzielonej użytej przez zadanie

w               STATE: stan zadania

w               TIME: całkowity czas procesora zajęty przez zadanie od momentu jego uruchomienia

w               %CPU: udział zadania w czasie procesora wyrażony w procencie całkowitego czasu procesora

w               %MEM: udział zadania w zajęciu pamięci fizycznej

w               COMMAND: nazwa polecenia, zadania

·      vmstat

-       składnia polecenia

w                vmstst przerwa [licznik]

-       opis parametrów

-       memory: dane dotyczące aktualnego stanu pamięci operacyjnej

w               swpd: wielkość używanej pamięci typu swap (KB)

w               free: wielkość pamięci operacyjnej aktualnie nie używanej (KB)

w               buff: wielkość pamięci operacyjnej przeznaczonej na bufory (KB)

w               cache: wielkość wolnej pamięci podręcznej (KB)

-       swap: dane dotyczące aktualnego stanu pamięci swap

w               si: ilość danych pobieranych z pamięci swap do pamięci operacyjnej w trakcie 1 sek (KB/s)

w               so: ilość danych przerzucanych z pamięci operacyjnej do swap (KB/s)

-       io: dane związane z wymianą bloków danych z urządzeniami wejścia/wyjścia

w               bi: liczba bloków danych wysyłanych do urządzenia blokowego (bloki/s)

w               bo: liczba bloków pobranych z urządzenia blokowego (bloki/s)

w               cs: liczba zmian kontekstu na sek

-       cpu: dane związane z obciążeniem procesora

w               us: procent cykli procesora zużytych na wykonanie zadań użytkowników

w               sy: procent cykli procesora zużytych na zadania systemu

w               id: procent niewykorzystanych cykli procesora

·      free: pokazuje wielkość wolnej i zajętej pamięci

b)        monitorowanie sieci

·      netstat: informacje o stanie sieci

-       $ netstat [opcje]

·      route: przeglądanie tablicy routowania

-       $ route [adres_komputera]

·      ifconfig: konfiguracja interfejsów sieciowych

-       $ ifconfig [opcje]

·      traceroute: narzędzie do diagnozowania problemów z sieciami TCP/IP

-       $ traceroute [adres_komputera]

c)         zapoznanie się z logami systemu

·      przeglądanie plików z katalogu /var/log/ - syslog, messages, boot.log itd

d)        zastosowanie programu linuxconf do monitorowania systemu i śledzenia plików log

e)         zastosowanie narzędzi X Windows do monitorowania systemu i śledzenia plików log

 

5.           Archiwizacja danych

a)         podłączanie wymiennych dysków – komenda mount, umount

·      katalog z urządzeniami /dev

·      katalog /mnt

·      montowanie cdrom-u

·      montowanie dyskietki

b)        tworzenie archiwów na dysku

·      archiwa tar

·      archiwa gzip

c)         kopiowanie archiwów na wymienne dyski

·      kopiowanie archiwów na dyskietkę 1.44 MB

·      tworzenie archiwów bezpośrednio na dyskietce

 

d)        Ćwiczenia

·      za pomocą polecenia tar utwórz archiwum o nazwie archiwum.tar zawierające wszystkie pliki i katalogi znajdujące się w Twoim katalogu domowym

·      wyświetl zawartość utworzonego archiwum na ekranie

·      sprawdź wielkość utworzonego archiwum i porównaj go z całkowitym rozmiarem wszystkich plików znajdujących się w Twoim katalogu domowym

·      utwórz katalog o nazwie archiwum i rozpakuj w nim utworzone wcześniej archiwum.tar

·      wykonaj to samo ćwiczenie używając komendy gzip

·      utwórz archiwum bezpośrednio na dyskietce o nazwie imie_nazwisko.tar zawierające wszystkie pliki txt

 

 

powrót