Instytut Mikroelektroniki i Optoelektroniki PW



System operacyjny UNIX

wprowadzenie, system plikow i podstawowe polecenia



Material pomocniczy do przedmiotu

Podstawy Techniki Komputerowej




Opracowal: mgr inz. Krzysztof Markiewicz

Warszawa 17.02.1995


Literatura pomocnicza

  1. S.Prata, D.Martin: Biblia systemu UNIX V. Polecenia i programy uzytkowe. LT&P, Warszawa 1994, stron 458
  2. P.Silvester: System operacyjny UNIX. WNT, Warszawa 1991, wyd. 2, ISBN 83-204-1086-x
  3. M.Young, J.Levine: UNIX dla opornych. IDG Books, Warszawa 1994

Wprowadzenie

System operacyjny jest w ogolnosci zestawem programow nadzorujacych prace komputera. W sklad tego zestawu moga wchodzic rowniez programy o charakterze czysto uzytkowym (np. edytory tekstu, kompilatory, itd.)

UNIX to system operacyjny, ktory jest:

Bezpieczenstwo systemu wymaga aby mogli w nim pracowac tylko zarejestrowani uzytkowicy. Rejestracja uzytkownikow i ogolnym nadzorem zajmuje sie uzytkownik root, zwany rowniez administratorem systemu. Jest on uzytkownikiem majacym najszersze uprawnienia w systemie.

W strukturze logicznej systemu UNIX mozna wyodrebnic nastepujace pojecia:

Jadro

Zbior najwazniejszych podprogramow, zarzadzajacych zasobami systemu. Od momentu uruchomienia komputera jadro sprawuje nad nim pelna kontrole. Uzytkownik komunikuje sie z jadrem przez powloke.

Powloka

Interpreter polecen uzytkownika. Powloka posredniczy pomiedzy uzytkownikiem a jadrem. Kiedy uzytkownik rozpoczyna prace (loguje sie do sytemu podajac poprawny identyfikator konta i haslo) system operacyjny uruchamia program powloki, ktory pobiera polecenia do wykonania z klawiatury terminala uzytkownika.
W sytemie UNIX istnieje wiele roznych powlok (np. sh, ksh, zsh, csh itd.). Administrator przydziela kazdemu uzytkownikowi jego powloke standardowa (uruchamiana w chwili logowania sie do systemu); uzytkownik moze tez uruchomic dowolna powloke zainstalowana w systemie.

Komendy

Sa to programy, dostarczane wraz z systemem operacyjnym lub zainstalowane przez administratora, niekoniecznie nalezace do samego systemu. Komendy wywoluje sie podajac ich nazwe i ew. opcje i argumenty.
Przyklady:
ls -l
vi plik
cat p1 p2 >p3
sort p
mail
sh
Komendy na ogol wspolpracuja ze soba (poprzez mechanizm potokow) i z jadrem systemu.

Pliki

Plik jest porcja informacji (np. tekst napisany pod edytorem) zapisana na dysku. Uzytkownik gromadzac pliki tworzy swoje wlasne zasoby i moze nimi zarzadzac w ramach systemu plikow.
Nazwa pliku moze skladac sie z dowolnych znakow majacych reprezentacje graficzna (litery i cyfry, znaki interpunkcji itp.) oraz niektorych znakow specjalnych. Dlugosc nazwy pliku jest zwykle ograniczona do 255 znakow (w starszych implementacjach UNIX'a - do 14 znakow). Wszystkie dane o pliku, poza nazwa, sa przechowywane w strukturze systemowej zwanej i-wezlem (ang. i-node).

Katalogi

Katalog jest specjalnym rodzajem pliku, w ktorym jest zapisana informacja o innych plikach (i/lub katalogach). Pozwala to utworzyc hierarchiczna, przypominajaca drzewo, strukture katalogow z umieszczonymi w katalogach plikami. Glowny katalog drzewa oznaczany jest znakiem /
Uzytkownik wraz z kontem otrzymuje swoj prywatny katalog (ang. HOME directory), gdzie ma wszystkie prawa (moze tworzyc, modyfikowac i usuwac pliki/katalogi).
W chwili zalogowania sie do systemu prywatny katalog uzytkownika staje sie katalogiem roboczym (nazywanym takze katalogiem aktualnym lub biezacym - ang. working or current directory). Katalog roboczy mozna zmienic komenda cd.

Sciezka dostepu do pliku

Opis lokalizacji pliku w drzewie katalogow: lista nazw katalogow oddzielonych znakiem / zakonczona nazwa pliku. Istnieja dwa rodzaje sciezek dostepu do pliku:

Sciezka przeszukiwan

Ciag nazw katalogow zapisanych w zmiennej srodowiskowej PATH. Jezeli uzytkownik napisze z klawiatury nazwe komendy, to system opracyjny bedzie poszukiwal programu o podanej nazwie w kolejnych katalogach tworzacych sciezke przeszukiwan. W odroznieniu od niektorych innych sytemow operacyjnych, katalog roboczy w ogole nie jest przeszukiwany (chyba, ze wystepuje w sposob jawny w sciezce przeszukiwan).

Prawa dostepu do pliku/katalogu

Prawo wykonania przez uzytkownika lub grupe uzytkownikow okreslonych operacji na pliku lub katalogu. Prawa dostepu sa zwykle zapisywane w postaci dziewiecioznakowego kodu:
rwxrwxrwx
Znaczenie poszczegolnych kodow jest nastepujace:
Kod Plik Katalog
r prawo odczytu pliku prawo odczytu zawartosci katalogu
w prawo zapisu do pliku prawo zmiany zawartosci katalogu (utworzenia lub usuniecia pliku)
x prawo wykonania pliku prawo przejscia przez katalog
Pierwsza grupa znakow rwx odnosi sie do praw wlasciciela, druga grupy, a trzecia - pozostalych uzytkownikow.

Katalogi systemowe

Ponizej przedstawiono typowy uklad katalogow systemu UNIX. Drzewo katalogow UNIX'a
/bin, /usr/bin
Komendy dla uzytkownikow.
/etc, /usr/etc, /sbin, /usr/sbin
Pliki systemowe i konfiguracyjne, programy systemowe i narzedzia dla administratora.
/dev Pliki specjalne reprezentujace urzadzenia.
/tmp, /usr/tmp
Katalog na pliki tymczasowe.
/lib, /usr/lib
Biblioteki, pliki naglowkowe.
/lost+found
Pliki odzyskane podczas sprawdzania spojnosci systemu plikow.
/usr/local
Dodatkowe oprogramowanie zainstalowane w systemie.
/var
Zmieniajace sie pliki systemowe (logi, kolejki itp.).
/home
Prywatne katalogi uzytkownikow.

Wybrane polecenia systemu UNIX

Dokumentacja elektroniczna

Uzytkownik systemu UNIX ma do dyspozycji systemy dokumentacji elektronicznej, ktore dostarczaja wyczerpujace opisy skladni i zastosowan wszystkich polecen dostepnych w tym systemie.

Podstawowym podrecznikiem elektronicznym sa man pages. Podrecznik ten wywoluje si poleceniem:

man [-s nr_sekcji] temat
gdzie:
temat jest nazwa komendy, funkcji systemowej, struktury danych, o ktorej chcemy sie uzyskac informacje,
nr_sekcji jest numerem rozdzialu UNIX Reference Manual, i podajemy go w przypadku gdy temat moze miec wiele znaczen.
Przyklady:
man man
man ls
man -s l zsh
Dla uzytkownikow pracujacych w srodowisku graficznym X-Windows dostepne sa dwa podreczniki: xman oraz answerbook. Wystarczy je wskazac myszka i postepowac zgodnie z wyswietlanymi wskazowkami.

Operacje na plikach i katalogach

ls
wyswietla liste plikow z katalogu roboczego
ls kat
wyswietla zawartosc katalogu kat
ls -l
wyswietla liste plikow w postaci dlugiej
ls -F
zaznacza rodzaj pliku (dodajac znak / po nazwie katalogu, * po nazwie pliku wykonywalnego, @ po nazwie lacznika itp.
ls -a
wyswietla wszystkie pliki z katalogu biezacego, lacznie z plikami ukrytymi
ls -d
wyswietla tylko nazwy podkatalogow w katalogu biezacym
cd kat
zmienia katalog roboczy na kat
pwd
wyswietla nazwe katalogu roboczego
mkdir kat
zaklada w katalogu roboczym podkatalog kat
rmdir kat
usuwa katalog kat (jezeli jest pusty)
cp pl1 pl2
kopiuje zawartosc pliku pl1 do nowego pliku pl2
cp pl1 pl2 pl3 kat
kopiuje pliki pl1, pl2, pl3 do katalogu kat
rm pl1 pl2
kasuje pliki pl1, pl2
mv pl1 pl2
zmienia nazwe pliku pl1 na pl2
mv pl1 pl2 pl3 kat
przenosi pliki pl1, pl2, pl3 do katalogu kat
ln pl1 nazwa2
tworzy lacznik (tzw. "twardy") nazwa2 do pliku pl1
ln pl1 pl2 pl3 kat
tworzy lacznik do plikow pl1, pl2, pl3 w katalogu kat
ln -s sciezka skr
tworzy lacznik symboliczny ("miekki") o nazwie skr, zastepujacy sciezke dostepu sciezka
find kat -name pl -print
wyszukanie plikow o nazwie pl w drzewie katalogow zaczynajacym sie od katalogu kat

Prawa dostepu

chown piotr pl1 pl2 pl3
przekazuje prawa wlasnosci do plikow pl1, pl2, pl3 uzytkownikowi piotr
chgrp stud pl1 pl2 pl3
zmiana identyfikatora grupy plikow pl1, pl2, pl3 na stud
umask
wyswietla aktualna maske praw dostepu dla nowo tworzonych plikow
umask 022
zmienia maske praw dostepu dla nowo tworzonych plikow wg znaczenia 3-cyfrowej liczby osemkowej bedacej argumentem komendy - bity reprezentacji dwojkowej tej liczby okreslaja maskowane prawa dostepu. W powyzszym przykladzie uzytkownicy inni niz wlasciciel nie beda mieli prawa zapisu w do nowo tworzonych plikow i katalogow:
000 010 010
rwx rwx rwx
chmod 744 pl1
chmod u=rwx og=r pl1
ustawienie praw dostepu do pliku lub katalogu nalezacego do uzytkownika (prawa rwx dla wlasciciela, prawo r dla pozostalych uzytkownikow)

Wybrane komendy dzialajace na plikach tekstowych

more
pg
less
programy stronicujace - wyswietlaja zawartosc pliku strona po stronie
cat
laczenie plikow; moze byc wykorzystany (jesli jest wolany z jednym argumentem) do wyswietlenia zawartosci pliku
head
wyswietlenie kilku pierwszych wierszy pliku tekstowego
tail
wyswietlenie kilku ostatnich wierszy pliku tekstowego
sort
sortowanie linii pliku
grep
wyszukiwanie linii w plikach tekstowych wedlug podanego wzorca
wc
wyznaczenie liczby linii/slow/znakow w pliku tekstowym

Wybrane komendy zwiazane z uzytkownikiem

id
wyswietlenie UID/GID uzytkownika
logname
whoami
wyswietlenie nazwy uzytkownika
su
chwilowa zmiana identyfikatora uzytkownika
who
wyswietlenie listy pracujacych uzytkownikow
finger
wyswietlenie informacji o innym uzytkowniku

Wymiana informacji miedzy uzytkownikami

write
wypisanie komunikatu na ekranie innego uzytkownika
mesg
zablokowanie/odblokowanie wypisywania komunikatow od innych uzytkownikow
mail
elm
poczta elektroniczna

Niektore inne komendy

cal
kalendarz
bc
kalkulator

KM