5550


Lekcja 1

Struktura systemu UNIX

Celem zajęć jest zaznajomienie słuchaczy ze strukturą systemu UNIX oraz prostymi komendami umożliwiającymi zapoznanie się z systemem.

1. System operacyjny UNIX

Unix jest wielozadaniowym, wielodostępnym i interaktywnym systemem operacyjnym o szerokim zakresie zastosowań.

Wielozadaniowość oznacza, że system może wykonywać jednocześnie wiele zadań (programów), w tym również na rzecz jednego użytkownika.

Wielodostępność oznacza, że z usług systemu może korzystać jednocześnie wielu użytkowników.

Interaktywność oznacza, że przy pomocy terminala (urządzenie zawierające monitor i klawiaturę) można przeprowadzać „dialog” z systemem, wprowadzając kolejne polecenia, które są natychmiast wykonywane.

Konfiguracje sprzętowe systemów komputerowych pracujących pod kontrolą systemu Unix mogą być bardzo różne. Do serwera unixowego można podłączać komputery z procesorami RISC, komputery PC, terminale znakowe lub graficzne (X-terminal). Ze względu na odległość terminali od serwera wyróżniamy łącza lokalne i zdalne. Łącza lokalne obejmują komputery podłączone do sieci lokalnej LAN lub łączem kablowym poprzez multiplekser. Łącze zdalne uzyskujemy głównie dzięki modemom i sieci telefonicznej. Przykładową konfigurację unixowego systemu komputerowego przedstawia rysunek.

0x01 graphic

2. Budowa systemu Unix

System Unix ma budowę warstwową. Centralnym elementem systemu jest sprzęt komputerowy (hardware). Bezpośrednio ze sprzętem komunikuje się jądro systemu (kernel), które pośredniczy pomiędzy urządzeniami komputerowymi a programami. Nad jądrem znajduje się powłoka (shell). Dopiero w shellu możemy uruchamiać programy i skrypty. System Unix umożliwia wykorzystywanie różnych shelli, które różnią się możliwościami, ilością komend, składnią. Najpopularniejsze to standardowy Bourne, rozszerzony Korn, C shell o składni języka C oraz rozpowszechniany z Linuxem shell Bash.

0x08 graphic
Hardware - sprzęt komputerowy

Kernel - jądro systemu obsługujące:

sprzęt komputerowy (procesor, pamięć, urządzenia zewnętrzne)

procesy wykonywane w systemie (deamons)

hierarchiczny system plików (file system)

Shell - powłoka systemu pośrednicząca pomiędzy użytkownikiem i jądrem, interpretująca polecenia użytkownika:

3. Grupy i użytkownicy w systemie Unix

Użytkownicy rozpoczynający pracę w systemie rozpoznawani są za pomocą nazwy (login) i hasła (password). Każdy użytkownik musi należeć do wybranej grupy. Uprawnienia użytkowników i grup ustala administrator systemu (root). W systemie użytkownicy i grupy identyfikowane są przy pomocy numeru uid (user id) oraz gid (group id). Najniższy numer 0 należy do administratora.

0x01 graphic

Na rysunku przedstawiono cztery grupy użytkowników

nazwa grupy

root

naucz

studenci

class2

numer grupy gid

0

1221

101

21

nazwy użytkowników

root

robert

student1 ... studentf

user1, user2 ... user20

numery użytkowników uid

0

1003

80, 81, 82, 83, 84, 85 ... 96

50, 51, 52, 53, 54, 55 ... 60

4. Wydawanie poleceń w sytemie Unix

Użytkownik komunikuje się z systemem Unix poprzez wydawanie komend interpretowanych i realizowanych przez shell. Składnia polecenia w shellu wygląda następująco:

polecenie -opcje argumenty

Polecenie to jedna z wielu komend dostępnych w systemie Unix lub własny program użytkownika (skrypt).

Opcje modyfikują funkcjonowanie polecenia powodując, że wykonuje się ono w inny sposób niż bez podania opcji. Opcje w systemie Unix to najczęściej pojedyncze litery poprzedzone minusem ( - ). Opcje można łączyć umieszczając tylko jeden minus przed wszystkimi literowymi oznaczeniami opcji.

Argumenty to obiekty, na których wykonywane są polecenia: pliki, katalogi, urządzenia. Wprowadzenie kilku argumentów powoduje kilkukrotne wywołanie komendy z każdym z podanych parametrów.

Przykład wykorzystania komend:

ls

komenda ls podana bez opcji i argumentów wyświetla zawartość bieżącego katalogu

ls -a

komanda ls wywołana z parametrem a wyświetla wszystkie (all) pliki z bieżącego katalogu

ls -la

komenda ls wywołana z dwiema opcjami a i l wyświetla wszystkie pliki z bieżącego katalogu w formie długiej (long)

ls -la dane

komenda ls wywołana z dwiema opcjami a i l oraz z argumentem dane wyświetla wszystkie pliki w formie długiej z podkatalogu dane

ls dane teksty

komenda ls wywołana z dwoma argumentami dane i teksty wyświetla zawartość obu podkatalogów dane i teksty

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
Shell jest zawsze gotowy do przyjęcia nowego polecenia. Wprowadzenie ciągu znaków zakończonych naciśnięciem klawisza Enter jest sygnałem do pobrania wprowadzonego polecenia. Shell jest interpreterem poleceń co oznacza, że każde wprowadzone polecenie jest natychmiast analizowane, przekształcane na kod zrozumiały dla jądra i wykonywane. Shell pracuje więc w cyklu pobierz - analizuj - wykonaj, który można opisać następująco:

W systemie Unix można wprowadzić kilka komend w jednej linii oddzielonych średnikiem. Shell wykonuje je jedna po drugiej, jak gdyby wpisane były kolejno w nowych liniach.

5. Lista komend

Komendy wykorzystywane w bieżącej lekcji:

date - wyświetla czas oraz datę systemową

cal - wyświetla kalendarz

cal - wyświetla kalendarz na bieżący miesiąc

cal rok - wyświetla kalendarz na wybrany rok (rok podać czterocyfrowy np. 2002)

cal miesiąc rok - wyświetla kalendarz na wybrany miesiąc danego roku

echo - wyświetla podany tekst

echo „tekst”

banner - wyświetla tekst powiększonymi literami

banner „tekst”

clear - czyści okno terminala

man - wywołuje opis komendy z podręcznika elektronicznego (manuala)

man komenda

apropos - wyświetla wszystkie komendy związane z wprowadzonym tekstem

apropos tekst

logname - wyświetla nazwę pod jaką zalogowałeś się do systemu

whoami - podaje jako kto pracujesz w systemie

who am i - podaje oprócz nazwy użytkownika nr terminala i godzinę zalogowania

who - wyświetla listę użytkowników obecnie pracujących w systemie

nazwa użytkownika

terminal, z którego użytkownik jest podłączony

data i czas zalogowania użytkownika

adres IP komputera w sieci

id - wyświetla nazwę i numer użytkownika oraz jego grupy

tty - wyświetla nazwę bieżącego terminala

stty - wyświetla parametry terminala i umożliwia ich zmianę

uptime - wyświetla informacje o systemie: godzinę, czas pracy systemu, ilość zalogowanych użytkowników

w - wyświetla dokładne informacje o systemie (godzina, czas pracy systemu, ilość pracujących osób) oraz listę zalogowanych użytkowników

nazwa użytkownika

terminal, z którego użytkownik jest podłączony

data i czas zalogowania użytkownika

JCPU

PCPU

nazwa aktualnie wykonywanej komendy

uname - wyświetla nazwę systemu, w którym pracujesz

uname - a - wyświetla wszystkie (all) informacje o systemie

nazwa systemu operacyjnego

nazwa sieciowa identyfikująca system

numer wersji systemu operacyjnego

numer komputera i model

identyfikator komputera

licencja systemu operacyjnego

finger - wyświetla dokładne dane o użytkowniku

nazwa użytkownika

imię i nazwisko uzytkownika

terminal, z którego użytkownik jest podłączony

Idle

data i czas zalogowania użytkownika

adres IP komputera w sieci

finger użytkownik - wyświetla nazwę użytkownika,

jego imię i nazwisko,

katalog domowy

domyślny shell

czas zalogowania,

informacje o poczcie

informacje o planach i projektach,

(większość z tych informacji pobierana jest z pliku haseł - passwd)

W systemie Unix informacje o grupach i użytkownikach zapisane są w plikach systemowych:

grupy w pliku /etc/group

użytkownicy w pliku /etc/passwd

6. Ćwiczenia

Nawiąż połączenie z serwerem unix.wlodkowic.pl i zaloguj się swoim nazwiskiem i hasłem (patrz poprzednia lekcja). System powinien wyświetlić znak zgłoszenia shella Korna - $.

Uwaga! Obsługa terminala nie obejmuje polskich liter!

  1. wprowadź swoje imię i zatwierdź klawiszem ENTER

andrzej

ksh: andrzej: not found

jeżeli system nie zna wprowadzonego polecenia wyświetla nazwę shella, powtarza komendę i po dwukropku wyświetla komunikat not found (nie znaleziono)

  1. wpisz komendę cal z parametrem -m

cal -m

cal: illegal option -m

usage: cal [[month] year]

jeżeli system rozpozna komendę ale nie rozpozna zastosowanej opcji to powtarza polecenie i wyświetla komunikat illegal option (zła opcja)

w kolejnej linii wyświetlana jest podpowiedź - komenda wraz z poprawnymi opcjami

  1. wpisz kilka znaków i spróbuj je skasować

ala ma kota^H^H^H

standardowo jako klawisz kasujący omyłkowo wprowadzone dane zdefiniowany jest w terminalu klawisz Delete a nie Backspace (naciśnięcie klawisza Backspace powoduje wyświetlenie ciągu ^H co oznacza, że do tego klawisza przypisana jest kombinacja klawiszy Ctrl+H)

  1. wyświetl bieżącą datę i godzinę z serwera

date

  1. wyświetl kalendarz na bieżący miesiąc

cal

  1. wyświetl kalendarz na cały rok 2000

cal 2000

  1. wyświetl kalendarz na miesiąc grudzień 2002 roku

cal 12 2002

  1. wyświetl jedną komendą bieżącą datę i kalendarz na bieżący miesiąc

date; cal

  1. przy pomocy „elektronicznego podręcznika” sprawdź czy komenda date nie ma opcji

man date

do przeglądania wyświetlonego opisu wykorzystaj następujące klawisze:

Spacja - następna strona

Enter - następna linia

b - poprzednia strona (back)

f - nastepna strona (forward)

q - przerwanie przeglądania (quit)

  1. chciałbyś dowiedzieć się, czy istnieje jakaś komenda wyświetlająca tekst na ekranie terminala. Jak to zrobić?

apropos text

  1. porównaj komendy echo i banner wyświetlając na ekranie słowo „cześć”

echo czesc

banner czesc

  1. porównaj działanie powyższych komend na przykładzie napisu „dzień dobry” wpisanego w cudzysłowie i bez

echo „dzien dobry banner „dzien dobry”

echo dzien dobry banner dzien dobry

W pierwszym przypadku (cudzysłów) komendy wyświetlają cały tekst w jednej linii (dla polecenia banner mieści się tylko 10 pierwszych znaków), w drugim przypadku (bez cudzysłowu) komendy wykonywane są dwa razy, oddzielnie dla tekstu „dzien” i „dobry”. Dlaczego występuje różnica w komendach echo i banner?

Komenda echo po zakończeniu działania nie przechodzi do nowej linii, co umożliwia tworzenie długich napisów składających się z pojedynczych tekstów umiesczonych kolejno w jednej linii. Komenda banner po zakończeniu wyświetlania przechodzi do nowej linii dlatego napisy umieszczone są w kolejnych liniach pod sobą.

  1. wyczyść okno terminala

clear

  1. sprawdź jak jesteś podłączony do serwera

tty

system wyświetla nazwę i numer urządzenie, które zostały Ci przydzielone podczas logowania /dev/ptsnr

dev - katalog z urządzeniami (devices)

ts - terminale (jeden z nich o numerze podanym dalej)

p - pseudoterminal, gdyż połączenie nastąpiło poprzez sieć komputerową, a nie bezpośrednio

nr - kolejny numer nadawany logującym się użytkownikom

  1. wyświetl parametry terminala

stty

  1. wyświetl wszystkie parametry terminala

stty -a

odczytasz m.in. zdefiniowane klawisze:

intr=^c (przerwanie komendy)

quit=^\ (rezygnacja)

erase=^? (kasowanie)

kill=^u (zakończenie)

eof=^d (koniec pliku)

werase=^w (kasowanie słowa)

(symbol ^ oznacza naciśnięcie klawisza Ctrl)

  1. przedefiniuj, aby klawiszem kasującym był Backspace

stty erase Backspace (na ekranie ukaże się sekwencja ^H)

sprawdź, jak teraz zachowuje się system po wciśnięciu klawiszy Backspace i Delete

  1. sprawdź pod jaką nazwą jesteś zalogowany w systemie

logname

  1. sprawdź jako kto pracujesz w systemie

whoami

who am i

druga wersja polecenia wyświetla pełniejszą informację:

  1. sprawdź kto jeszcze obecnie pracuje w systemie

who

wyświetlona lista zawiera:

  1. sprawdź swój kod identyfikacyjny w systemie

id

wyświetlane są kolejno:

Aby wyświetlić listę wszystkich użytkowników wydaj polecenie:

more /etc/passwd

do przeglądania listy wykorzystaj klawisze omówione przy komendzie man

kolejne wiersze to rekordy zawierające dane użytkowników, oddzielone dwukropkiem pola oznaczają:

Aby wyświetlić listę wszystkich grup zdefiniowanych w systemie wydaj polecenie:

more /etc/group

kolejne wiersze to rekordy zawierające dane grup, oddzielone dwukropkiem pola oznaczają:

  1. wyświetl dokładne dane o użytkowniku robert

finger robert

  1. wyświetl nazwę systemu, w którym pracujesz

uname

uname -a

  1. wyświetl dane o systemie, w którym jesteś zalogowany

uptime

  1. wyświetl dokładne dane o systemie i pracujących osobach

w

  1. sprawdź od kiedy pracuje (boot) serwer, na którym jesteś zalogowany

who -b

7. Test sprawdzający

  1. Czy wielodostęp oznacza?

  1. jednoczesne uruchomienie systemu na wielu komputerach

  2. jednoczesną, zdalną pracę kilku użytkowników na tym samym komputerze

  3. jednoczesne uruchomienie kilku programów na jednym komputerze

  4. jednoczesną pracę kilku komputerów w sieci połączonych z serwerem

  1. Część systemu umożliwiająca wydawanie komend użytkownikowi to:

  1. Sprzęt (Hardware)

  2. Powłoka (Shell)

  3. Logowanie (Login)

  4. Jądro (Kernel)

  1. Każdy użytkownik w systemie Unix ma swój unikatowy numer nazwany:

  1. gid

  2. login

  3. uid

  4. password

  1. Która z podanych komend nie jest równoważna tej ls -la /dane

  1. ls la /dane

  2. ls -al /dane

  3. ls -a-l /dane

  4. ls -l-a /dane

  1. Która z poniższych komend wywoła taki sam efekt jak komenda

echo kto; echo to?

  1. echo kto to

  2. banner kto to

  3. echo „kto to”

  4. echo kto
    echo to

  1. Którą komendą znajdziesz polecenia dotyczące katalogów?

  1. directory

  2. man katalog

  3. apropos directory

  4. man directory

  1. Komenda w wyświetla dane o systemie i użytkownikach. Który z poniższych zapisów jest jej najbliższy?

  1. who -w

  2. uptime; who

  3. uname; finger

  4. finger; who

  1. Aby sprawdzić do jakiej grupy należy użytkownik robert wydasz komendę:

........................................................

  1. Wypisz wszystkie opcje komendy tty

........................................................

........................................................

........................................................

  1. Jaką komendą wyświetlisz kalendarz na miesiąc lipiec bieżącego roku?

........................................................

0x01 graphic

$

pobierz polecenie

analizuj

wykonaj

odpowiedz

  1. wysłanie znaku gotowości na terminal i oczekiwanie na polecenie użytkownika.

  2. pobranie polecenia od użytkownika

  3. zdekodowanie polecenia i odszukanie w katalogach odpowiadającego mu programu

  4. przekazanie polecenia do jądra w celu utworzenia odpowiedniego procesu realizującego i oczekiwanie na jego zakończenie

  5. przyjęcie odpowiedzi od jądra i przekazanie wyniku użytkownikowi

  6. powrót do początku cyklu (pkt 1)



Wyszukiwarka

Podobne podstrony:
juki DDL 5550 DDL 8500 DDL 8700 manual
5550
5550
Kartridże atramentowe Hewlett Packard DJ 5550
5550
5550
L 5550 Jacket With Decorative Closure
5550
5550
5550
5550
5550
M 5550 Jacket With Decorative Closure
5550
juki DDL 5550 DDL 8500 DDL 8700 manual
HARMAN KARDON AVR 5550

więcej podobnych podstron