{ }
menu zespół linki Logowanie
Stabilny hosting
BSDGuru zawdzięcza
firmie Datanet.pl
Hosting BSDGuru.org - DataNet.pl

Unix - Kurs Podstawowy


Spis tresci:


Zanim zaczniemy prace - musimy zaloginowac sie do systemu. Unix pozwala na wpisanie: spis treści ^^
nazwy uzytkownika - po login
hasla uzytkownika - po password. Haslo nie jest wyswietlane na ekranie

Sprawdz u administratora swojego systemu jaka jest Twoja nazwa uzytkownika oraz jakie posiadasz haslo. Spróbuj zaloginowac sie popelniajac celowe pomylki w nazwie uzytkownika lub hasle. Zwróc uwage na tresc komunikatów o bledach.

Nazwa uzytkownika:
do 8 znaków, male i duze litery sa traktowane jako rózne znaki. W nazwie moga wystapic litery, cyfry oraz znaki specjalne: _ - $

Haslo uzytkownika:
równiez do 8 znaków, zestaw znaków - jak dla nazwy uzytkownika

W momencie tworzenia konta uzytkownika przez administratora systemu definiowane sa nastepujace obiekty:

  • nazwe uzytkownika
  • haslo
  • unikalny numer uzytkownika (UID: User Identification Number)
  • grupe do której standardowo nalezy uzytkownik (GID: Group Identification Number)
  • ewentualne ograniczenia na dopuszczalna ilosc zajmowanego miejsca na dyskach (file quota) - o ile system quota jest aktywny
  • 'dluga' nazwe uzytkownika - pozwalajaca na identyfikacje uzytkownika wedlug jego prawdziwego nazwiska
  • bazowa kartoteke uzytkownika - kartoteke w której znajda sie pliki zakladane przez uzytkownika. Do kartoteki tej kopiowane sa zwykle standardowe pliki konfiguracyjne
  • nazwa standardowej powloki jakiej uzywac bedzie w swoich sesjach uzytkownik. Zwykle ta powloka (shellem) jest csh lub tcsh


Ogólne zasady wpisywania komend w systemie Unix: spis treści ^^

  • duze i male litery w nazwach komend sa traktowane jak rózne znaki - wiekszosc komend Unixa posiada nazwy zawierajace wylacznie male litery
  • standardowa linia komendy Unixa ma do 128 znaków. Najczesciej uzywane znaki edycyjne:

skresl ostatni znak
Backspace lub Cntrl-H

skresl cala linie komendy
Esc

  • ostatnio wprowadzone komendy sa pamietane w historii komend uzytkownika.

Na tak zapamietanym zbiorze komend mozemy wykonywac nastepujace operacje (wymieniono tylko te najwazniejsze):

wyswietl liste wczesniej wykonywanych komend
history

powtórz wykonanie ostatniej komendy
!!

powtórz wykonanie ostatniej komendy zaczynajacej sie od podanego lancucha
!lancuch

powtórz wykonanie ostatniej komendy zawierajacej w sobie (w dowolnym miejscu) lancuch
!?lancuch

wykonaj ponownie n-ta komende (komendy sa numerowane od 1)
!n

przyklad powtarzania komend:

nowak> history          aby powtórzyc:
1: pwd                  !pwd
2: mkdir test           !?dir
3: cd test              !3
4: ls -l                !!
nowak> 


Dostep do programów i danych - poprzez kartoteki i pliki. spis treści ^^

Nazwa pliku i kartoteki:

  • do 32 znaków
  • duze i male litery, cyfry, znaki specjalne: _ - $ .

Róznice w nazwach (w stosunku do nazw z Ms DOS):

  • duze i male litery sa traktowane jako rózne znaki
  • kropki moga wystepowac w nazwach wielokrotnie
  • nazwy moga byc dluzsze
  • nazwy podkartotek sa oddzielane slashem (/) a nie backslashem (\)
  • nazwa kartoteki korzenia jest /

Kartoteki tworza normalne drzewo kartotek. Oprócz zwyklych plików w kartotekach moga sie pojawic:

  • pliki 'ukryte' - kazdy plik, którego nazwa zaczyna sie od kropki jest plikiem 'ukrytym'. Jego nazwa nie jest normalnie wyswietlana podczas listowania zawartosci kartoteki.

Zwykle sa to pliki konfiguracyjne - nie powinny byc skreslane ani modyfikowane przez uzytkownika

  • pliki 'specjalne' - wszystkie pliki w kartotece /dev oznaczaja naprawde urzadzenia dolaczone do komputera - twarde dyski, urzadzenia peryferalne, itp. Nie wolno skreslac plików z kartoteki /dev - uzywamy tych 'plików' tylko w komendach archiwizacji danych (tar)

Oprócz nazw plików i kartotek mozemy uzywac wzorników. We wzornikach moga wystapic - oprócz liter, cyfr, znaków _ - $ i . (kropki) - znaki specjalne:

  • * - oznacza dowolny lancuch dowolnych znaków
  • ? - oznacza pojedynczy dowolny znak
  • [znak, ..., znak] - dowolny z wymienionych znaków
  • [od-do] - dowolny znak o kodzie w podanym zakresie

Przyklady wzorników:

  • *a dowolna nazwa konczaca sie litera a
  • a??b*c* dowolna nazwa zaczynajaca sie od litery a po której wystepuja dwa dowolne znaki a nastepnie litera b, dowolny ciag dowolnych znaków, litera c i
  • dowolny ciag dowolnych znaków konczacych nazwe

  • [0-9]*[xyz] dowolna nazwa zaczynajaca sie od cyfry po której wystepuje dowolny ciag dowolnych znaków. Nazwa konczy sie jedna z liter x, y lub z

Jezeli chcemy, zeby wzornik obejmowal nazwy zaczynajace sie od kropki ('ukryte') - musimy jawnie wymienic kropke we wzorniku

  • *z dowolna nazwa konczaca sie litera z - z wyjatkiem nazw zaczynajacych sie od kropki
  • .*z dowolna nazwa zaczynajaca sie od kropki po której wystepuje dowolny ciag dowolnych znaków zakonczonych litera z

Nie mozna zdefiniowac wzornika obejmujacego zarówno nazwy 'ukryte' (zaczynajace sie od kropki) jak i nazwy 'nie ukryte'.


Komendy dzialajace na kartotekach: spis treści ^^

komenda
opis

mkdir nazwa
tworzy (pod)kartoteke o podanej nazwie

pwd
wyswietl nazwe biezacej kartoteki

rmdir wzornik
skresl kartoteki o nazwach zgodnych z wzornikiem. Uwaga! Kartoteka moze zostac skreslona tylko wtedy, kiedy jest pusta (wczesniej skreslono wszystkie pliki i podkartoteki)

cd nazwa
przejdz do podkartoteki o podanej nazwie. W stosunku do MsDOS wystepuja nastepujace róznice:

  • zamiast nazwy mozna podac wzornik - dowolny fragment nazwy zakonczony *. O ile tylko taki wzornik wyznacza jednoznacznie kartoteke - przejdziemy do niej
  • istnieja równiez 'nazwy specjalne':
    • .. - kartoteka nadrzedna (kartoteka 'ojca')
    • / - kartoteka korzenia
    • jezeli nazwa (lub wzornik) wystepujaca w komendzie cd zaczyna sie od / (slash) - Unix szuka kartoteki poczawszy od korzenia. W przeciwnym wypadku - szuka podkartoteki biezacej kartoteki.
      komenda cd bez nazwy kartoteki - powoduje powrót do kartoteki 'bazowej' uzytkownika.


Komendy dzialajace na plikach: spis treści ^^

ls [ parametry ] [ wzornik ]

wyswietla informacje o plikach, których nazwy sa zgodne z wzornikiem. Jezeli nie podamy wzornika - wyswietla informacje o wszystkich plikach - z wyjatkiem plików ukrytych. Najczesciej uzywane parametry:

-F      wyswietlaj * po nazwach programów, / po nazwach kartotek
-R      wyswietlaj równiez informacje o plikach znajdujacych sie w podkartotekach
-a      wyswietlaj równiez pliki ukryte (zaczynajace sie od kropki
-g      jak -l (zob.) ale bez wyswietlania informacji o wlascicielu pliku
-l      'pelny listing' - wyswietlane sa nastepujace informacje o plikach:
typ pliku (kartoteka, plik, link)
prawa dostepu, ilosc linków do pliku
nazwa wlasciciela i wlasciciela grupowego
wielkosc pliku (w bajtach)
czas ostatniej modyfikacji pliku
nazwa pliku
-p      wyswietla / po nazwach kartotek
-r      odwraca porzadek sortowania nazw
-s      podaje wielkosci plików, w jednostkach 512 bajtów
-t      sortuje nazwy wedlug czasu ostatniej modyfikacji ('najstarszy najpierw')
-u      sortuje wedlug czasu ostatniego dostepu do pliku

ls -aFsltotal 8
drwxr-xr-x      5       tedd    users   1024    Nov 5   22:31   ./
drwxr-xr-x      8       root    root    1024    Nov 3   02:42   ../
-rw-r--r--      1       tedd    users   144     Nov 5   22:30   .cshrc
-rw-r--r--      1       tedd    users   163     Nov 24          .kermrc
-rw-r--r--      1       tedd    users   34      Jun 6           .less
-rw-r--r--      1       tedd    users   114     Nov 24          .lessrc
drwxr-xr-x      2       tedd    users   1024    Nov 3   01:11   .term/
drwxr-xr-x      2       tedd    users   1024    Nov 5   22:33   KURS.Unix

cp plik nowy_plik

cp wzornik [ ... wzornik] kartoteka
kopiuje pliki. W pierwszej postaci kopiuje plik na nowy plik tworzac jego kopie. W drugim przypadku (ostatnia nazwa musi byc nazwa kartoteki) kopiuje grupe plików do wskazanej kartoteki.
Uwaga!!! Komenda cp bez ostrzezenia niszczy - o ile takie pliki juz istnieja - zawartosc plików do których kopiowana jest informacja!!!

mv nazwastara nazwanowa
mv wzornik [ ... wzornik] katalog
w pierwszej postaci - zmienia nazwe pliku lub kartoteki. Pojedyncze nazwy (nie wzorniki) moga wystapic w takiej sytuacji. Jezeli plik o nazwie nazwanowa juz istnieje i nie jest zabezpieczony przed zapisem - jest skreslany bez ostrzezenia
w drugiej postaci - przenosi pliki o nazwach zgodnych z wzornikami do kartoteki, której nazwa wystepuje jako ostatni parametr. Uwaga!!! bez ostrzezenia skresla pliki w docelowej kartotece - o ile nie sa one zabezpieczone przed zapisem. . (kropka) jako nazwa kartoteki oznacza zadanie przeniesienia plików do biezacej kartoteki.

rm [-f] [-r] -i] wzornik
kasuje pliki o nazwach zgodnych z wzornikiem. Jezeli plik byl zabezpieczony przed zapisem - zada potwier-dzenia przed skresleniem pliku. Mozliwe parametry:

-f      kasuj pliki bez ostrzezenia, nawet gdy byly zabezpieczone przed zapisem
-r      jako wzornik musi wystapic wzornik wskazujacy na nazwy kartotek. Kasowane sa wszystkie pliki i podkartoteki w kartotekach o nazwach zgodnych z wzornikiem
-i      interaktywnie - wyswietla nazwe kazdego pliku przed skresleniem - pyta czy plik ma byc skreslony

cmp plik1 plik2
porównuje dwa pliki, wyswietlajac napotkane róznice

more nazwapliku

wyswietla zawartosc pliku, strona (ekran) po stronie. W czasie wyswietlania dzialaja nastepujace klawisze:

space   nastepna strona
Enter   nastepna linia
q       koniec wyswietlania

Przecwicz praktycznie nastepujace operacje:
zalóz wlasna kartoteke
wyswietl wszystkie nazwy plików z wlasnej kartoteki
przekopiuj kilka plików z Twojej bazowej kartoteki do tej nowo utworzonej
przejdz do tej nowej kartoteki
wylistuj i skasuj wszystkie pliki z nowo utworzonej kartoteki


Bazowa kartoteka uzytkownika spis treści ^^
kazdy uzytkownik posiada swoja kartoteke 'bazowa' - to ta kartoteka w której znajdujemy sie bezposrednio po zaloginowaniu. Kartoteki zakladane przez uzytkownika sa zwykle tworzone jako podkartoteki jego kartoteki bazowej. Do kartoteki bazowej mozemy zawsze 'wrócic' w nastepujacy sposób:

cd      komenda cd bez nazwy kartoteki powoduje powrót do kartoteki bazowej
cd $HOME        istnieje zmienna systemowa - HOME - pamietajaca nazwe kartoteki bazowej. Konstrukcja $HOME powoduje 'pobranie' tej nazwy
cd ~username    ta komenda powoduje przejscie do kartoteki bazowej uzytkownika username

Konstrukcji ~username mozemy równiez uzywac do kopiowania danych - komenda

cp ~nowak/* .

skopiuje wszystkie pliki uzytkownika nowak do biezacej kartoteki (o ile mamy pozwolenie na czytanie z kartoteki nowak)


Prawa dostepu spis treści ^^

Każdy plik i kartoteka w systemie Unix posiada atrybuty, okreslajace prawa dostepu do takiego obiektu. Prawa dostepu sa definiowane w momencie tworzenia obiektu - wedlug maski ustawionej przez administratora systemu. Wlascicielem obiektu jest ten, kto go stworzyl. Wlasciciel obiektu moze w kazdej chwili zmienic prawa dostepu do obiektu - zarówno dla siebie jak i dla innych uzytkowników.

Prawa dostepu sa zdefiniowane na trzech poziomach:

dla wlasciciela obiektu (u)
dla grupy, do której nalezy wlasciciel obiektu (g)
dla pozostalych uzytkowników (o)

Z punktu widzenia uzytkownika systemu Unix kazdy obiekt moze posiada zawsze jakies prawa dostepu, zdefiniowane przez wlasciciela obiektu. Prawa te sa kombinacja nastepu-jacych praw dostepu:

r       prawo do czytania obiektu
w       prawo do wpisywania danych do obiektu. Pozwala to równiez na skreslenie obiektu
x       prawo wykonania obiektu (program lub kartoteka)

Do zmiany praw dostepu sluzy komenda

chmod komu jak prawa wzornik

gdzie:

komu - dowolna kombinacja liter u, g i o oznaczajacych kolejno wlasciciela pliku, czlonków grupy do której nalezy wlasciciel pliku (z wylaczeniem wlasciciela obiektu) oraz pozostalych uzytkowników. Dodatkowo mozna uzyc litery a która oznacza 'wszystkich uzytkowników' (a=ugo)
jak - jeden ze znaków +, - lub = oznaczajacych kolejno:

+       dodaj wymienione w komendzie chmod prawa do juz istniejacych praw dostepu
-       usun wymienione w komendzie chmod prawa dostepu ze zbioru praw dostepu do obiektu
=       usun wszystkie wczesniej ustawione prawa dostepu do obiektu, po usunieciu - nadaj wylacznie te prawa, które sa wymienione w komendzie chmod

prawa - dowolna kombinacja liter r, w, x i s. Znaczenie - jak opisano to wczesniej
wzornik - obiekty których nazwy sa zgodne z wzornikiem beda tymi obiektami, dla których zmieniamy prawa dostepu

Przyklady:

chmod u-w *a

odbierz wlascicielowi prawa zapisu i kasowania do wszystkich plików i podkartotek z biezacej kartoteki, których nazwy koncza sie litera a.
Uwaga!!! Ta zmiana nie bedzie dotyczyc obiektów których nazwa konczy sie litera a ale zaczyna sie od kropki.

chmod g=r .*z

odbierz uzytkownikom, nalezacym do tej samej grupy co uzytkownik wydajacy komende chmod, wszystkie prawa z wyjatkiem praw do czytania dla obiektów z biezacej kartoteki, których nazwy zaczynaja sie od kropki a koncza litera z

chmod go-wx ~nowak/*

odbierz wszystkim uzytkownikom - z wyjatkiem wlasciciela obiektów - prawa do zapisu i wykonywania wszystkich plików i podkartotek z kartoteki bazowej uzytkownika nowak. Zmiana ta nie dotyczy obiektów w kartotece ~nowak których nazwy zaczynaja sie od kropki

Uwagi:
biezaco ustawione prawa dostepu mozemy wyswietlic uzywajac komendy ls -l
w Unixie inaczej niz w MsDOSie zdefiniowane sa programy. Programem jest plik o atrybucie x - niezaleznie od tego jaka ma nazwe. Nie ma zadnych standardowych typów (rozszerzen) nazw dla programów - atrybut x decyduje czy plik jest programem (lub skryptem) czy plikiem z danymi
kartoteka równiez musi posiadac atrybut x - jezeli usuniemy atrybut x z kartoteki to nie bedziemy w stanie przejsc do tej kartoteki (komenda cd)

Cwiczenie:
wylistuj prawa dostepu do plików w swojej kartotece
odbierz sobie prawo write do pliku a nastepnie spróbuj go skreslic
wyswietl informacje o Twoich prawach dostepu do kartoteki kolegi. Popros go o odebranie praw dostepu. Ponownie wyswietl swoje prawa dostepu do jego obiektów. Zrób to samo dla kolegi - odbierz mu prawa dostepu do Twoich plików
ukryj swoja kartoteke przed innymi
wyswietl czesc obiektów z kartoteki /usr/bin - powiedz, które z nich sa programami


Miejsce na dysku spis treści ^^
dowolnie duzy dysk twardy po pewnym czasie staje sie za maly. Miejsce na dysku, które moga zajac pliki uzytkownika moze zostac ograniczone przez administratora systemu. Aby zobaczyc, czy takie ograniczenie istnieje powinnismy uzyc komendy

quota -v

komenda ta wyswietli informacje o tym ile miejsca mozemy maksymalnie zajac na dysku oraz ile z tego miejsca juz zostalo przez nas zajete


Sumaryczna wielkosc plików - komenda spis treści ^^

du -s [wzornik]

wyswietla informacje o tym, ile miejsca na dysku - w kilobajtach - zajely sumarycznie pliki, których nazwy sa zgodne z wzornikiem. O ile nie podamy wzornika - wyswietlona zostanie informacja o tym, ile miejsca zajmuja wszystkie pliki w biezacej kartotece.du -s

21 .

        du -s /         1       /TMP
1637    /bin
121     /boot
1       /cdrom
21      /dev
385     /etc
162     /home
647     /lib
106259  /usr


Fizyczna ilosc wolnego miejsca na dysku: spis treści ^^

komenda

df

wyswietla informacje i fizycznej ilosci miejsca na dysku. Podawana jest nazwa urzadzenia (/dev/...), fizyczna ilosc miejsca na urzadzeniu, ilosc uzytych kilobajtów, ilosc pozostalego miejsca (w kilobajtach), procentowa ilosc wolnego miejsca oraz nazwe kartoteki do której 'dolaczone' jest urzadzenie

dfFilesystem    1024-blocks     Used    Available       Capacity        Mounted on
/dev/hda3       201176  126269  64172   66%     /
/dev/hda1       235592  231464  4128    98%     /dos_c
/dev/hda5       235592  164284  71308   70%     /dos_d


Jak znalezc informacje o ilosci wolnego miejsca na dysku, na którym zapisywane sa nasze pliki? spis treści ^^
najpierw musimy znalezc informacje o tym, gdzie zapisywana jest nasz kartoteka bazowa. Mozemy to zrobic za pomoca wykonywanych po sobie komend

cd
pwd

pierwsza z nich ,przeniesie' nas do naszej kartoteki bazowej, druga wyswietli nazwe tej kartoteki. zalózmy, ze komenda pwd wyswietlila nazwe /home/nowak jako nazwe naszej kartoteki bazowej
nastepnie wykonujemy komende pwd i szukamy nazwy kartoteki której poczatek jest najbardziej zgodny z nazwa kartoteki zwrócona przez pwd

dfFilesystem    1024-blocks     Used    Available       Capacity        Mounted on
/dev/hda3       201176  126269  64172   66%     /
/dev/hda1       235592  231464  4128    98%     /home
/dev/hda5       235592  164284  71308   70%     /usr/local

w powyzszym przykladzie widzimy, ze nasza kartoteka bazowa znajduje sie na dysku /dev/hda1 na którym pozostalo okolo 4.1 MB wolnego miejsca


Opisy komend ('help'): spis treści ^^

w kazdym momencie uzytkownik moze otrzymac angielskojezyczny opis komendy systemu Unix. Komenda

man nazwa_komendy

wyswietla pelny opis komendy o podanej nazwie dzielac ten opis na strony (ekrany monitora). Podczas wyswietlania takiego opisu dzialaja nastepujace klawisze kontrolne:

spacja  wyswietl nastepny ekran (strone)
Enter   wyswietl nastepna linie
q       przerwij wyswietlanie opisu komendy

przyklad:

man chmodCHMOD(1V) USER COMMANDS CHMOD(1V)

NAME
chmod - change the permissions mode of a file

SYNOPSIS
chmod [ -fR ] mode filename ...

DESCRIPTION
Change the permissions (mode) of a file or files. Only the
owner of a file (or the super-user) may change its mode.

Jezeli nie pamietamy nazwy komendy mozemy za pomoca
man -k slowo_kluczowe

spowodowac wyswietlenie nazw wszystkich komend które w naglówkach swych opisów posiadaja podane przez nas slowo kluczowe
man -k files
install_openwin (8)     - install OpenWindows system files
makeafb (1)     - create bitmap files from scalable Folio format files
makedepend (1)  - create dependencies in makefiles
mkfontdir (1)   - create fonts.dir file from directory of font files.
printtool (1)   - OpenWindows tool for printing files
ttcp (1)        - copy files in a ToolTalk-safe way.
ttmv (1)        - move or rename files in a ToolTalk-safe way.
ttrm, ttrmdir (1)       - remove files or directories in a ToolTalk-safe way.
tttar (1)       - (de)archive files and ToolTalk objects
        :


Wybrane programy uslugowe - vi spis treści ^^

vi jest standardowym edytorem w systemie Unix. Pozwala na tworzenie i edycje plików tekstowych. Uruchomienie:

vi [parametry] wzornik

vi zostanie uruchomiony - pierwszy z plików których nazwy sa zgodne z wzornikiem zostanie wczytany do edycji.

Zanim omówimy zasady dzialania vi - najczesciej uzywane parametry wywolania vi:

-r plik jezeli nastapila awaria komputera podczas poprawiania przez vi jakiegos pliku mozemy - po ponownym uruchomieniu Unixa odzyskac ten plik uruchamiajac vi z parametrem r nazwa_pliku poprawianego podczas awarii
-R      wczytaj pliki o nazwach zgodnych z wzornikiem w trybie read only - to zabezpiecza nas przed przypadkowa zmiana zawartosci tych plików

vi moze pracowac w jednym z 3 stanów:

tryb klawiszowy - w tym trybie kazdy klawisz na klawiaturze powoduje wykonanie jakiejs akcji na edytowanym pliku
tryb edycji tekstu - po wykonaniu (w trybie klawiszowym) komendy inicjujacej wpisywanie tekstu - przechodzimy do trybu edycji tekstu. W tym trybie tekst wpisywany z klawiatury jest wstawiany do edytowanego pliku - az do nacisniecia klawisza Esc - co spowoduje powrót do trybu klawiszowego
tryb komend liniowych - jezeli w trybie klawiszowym nacisniemy : (dwukropek) - przechodzimy do trybu komend liniowych. W ostatniej linii na ekranie pojawia sie : po którym mozemy wpisac komende 'liniowa'. Komenda taka dziala zwykle na grupie linii. Po jej wykonaniu vi wraca do trybu klawiszowego

Uwaga!!! Najczesciej popelnianym bledem jest próba wpisywania tekstu w trybie klawiszowym bez wczesniejszego wykonania komendy inicjujacej wpisywanie tekstu. Powoduje to interpretowanie przez vi kazdego nacisnietego klawisza jako komendy vi - moze do doprowadzic do duzych 'zniszczen' w edytowanym tekscie.

(1) po uruchomieniu vi przechodzi w tryb komend klawiszowych - kazde nacisniecie klawisza na klawiaturze powoduje wykonanie komendy, zwiazanej z tym klawiszem
(1 -> 3-> 1) z trybu klawiszowego, po nacisnieciu : przechodzimy do trybu komend liniowych. Mozemy wpisac komende - po nacisnieciu klawisza Enter vi wykonuje komende i wraca do trybu klawiszowego (2)
(1 -> 2) jezeli w trybie klawiszowym wykonamy komende wstawiajaca tekst - przechodzimy do trybu edycji tekstu. W tym trybie znaki wpisywane z klawiatury sa wstawiane do edytowanego pliku. Nacisniecie klawisza ESC powoduje powrót do trybu klawiszowego (1) - zakonczenie wstawiania tekstu
(3) jezeli pracujac w trybie liniowym wykonamy komende konczaca prace vi (q - zakoncz, nie zmieniaj pliku, x - zakoncz, zapisz zmieniony plik) - wrócimy do Unixa


Wybrane komendy trybu klawiszowego powodujace przejscie do trybu wpisywania tekstu: spis treści ^^

a       wpisuj tekst za kursorem
i       wpisuj tekst przed kursorem
A       wpisuj tekst na koncu linii
I       wpisuj tekst na poczatku linii
S       zastap cala biezaca linie wpisywanym tekstem
C       zastap znaki od polozenia kursora do konca linii wpisywanym tekstem

Wpisywany tekst moze byc wieloliniowy. Konczymy wpisywanie tekstu naciskajac klawisz Esc - wracamy do trybu klawiszowego

dd      skasuj cala linie w której znajduje sie kursor
x       skasuj znak za kursorem
X       skasuj znak przed kursorem
J       polacz biezaca i nastepna linie w jedna linie
u       anuluj ostatnia zmiane ('undo')
Y       anuluj wszystkie zmiany w biezacej linii
.       powtarzaj ostatnie polecenie zmieniajace tekst


Komendy zmiany pozycji: spis treści ^^

? ?     znak w lewo, znak w prawo
?       linia w góre, linia w dól
0       przejdz na poczatek biezacej linii
$       przejdz na koniec biezacej linii
fc      skocz wprzód do znaku c
Fc      skocz w tyl do znaku c
w       skocz do poczatku nastepnego slowa
b       skocz do poczatku poprzedniego slowa
H       przejdz na góre ekranu
M       przejdz na srodek ekranu
L       przejdz na dól ekranu
^F      przesun o ekran w przód
^B      przesun o ekran w tyl
^R      przerysuj ekran

zapis ^F oznacza jednoczesne nacisniecie klawisza Ctrl i klawisza F.


Kopiowanie i przenoszenie tekstu: spis treści ^^
wszystkie komendy skreslajace lub kopiujace tekst wpisuja ten tekst do wewnetrznego bufora vi. Tekst ten moze byc potem wielokrotnie wstawiany w rózne miejsca pliku. Nizej wymienione komendy równiez dzialaja na buforze vi:m zaznacz biezaca linie

y       skopiuj zaznaczony tekst do bufora vi
p       wstaw tekst z bufora vi za kursorem
P       wstaw tekst z bufora vi przed kursorem


Wybrane komendy trybu liniowego: spis treści ^^

/wzornik        wyszukaj tekst zgodny z wzornikiem, przesun tam kursor
/       wyszukaj nastepne wystapienie ostatnio uzytego wzornika
s/told/tnew/    zamien tekst told na tnew
w       zapisz biezacy plik na dysk
w fname zapisz biezaco poprawiany tekst na plik fname
r fname wczytaj zawartosc pliku fname i wstaw go za kursorem
number  przejdz do linii numer number
n       zakoncz poprawianie biezacego pliku, zacznij poprawiac nastepny plik, którego nazwa pasuje do wzornika z linii komendy uruchamiajacej vi
q       zakoncz prace vi - jezeli zmienilismy zawartosc pliku vi nie pozwoli nam zakonczyc pracy
q!      zakoncz prace z vi nie zapisujac zmienionego pliku na dysk
x       zapisz edytowany plik na dysk i zakoncz prace z vi

Komendy s i w standardowo przeszukuja i zapisuja caly plik. Jezeli poprzedzimy je dwoma numerami linii oddzielonymi przecinkiem - beda dzialac tylko na tych liniach.
Jako numery linii mozna uzyc liczb calkowitych lub konstrukcji postaci:

-liczba linia o liczba linii wczesniej niz biezaca
+liczba linia o liczba linii pózniej niz biezaca
.       biezaca linia
$       ostatnia linia pliku

Przyklady:

1,20s/ala/ola/

zamien kazde wystapienie tekstu ala na ola w liniach od 1 do 20
.+5,$-10w part1

wpisz na plik part1 czesc biezaco poprawianego pliku - od linii o 5 dalej niz biezaca do linii o 10 mniej niz ostatnia linia w pliku
uzywajac vi stwórz we wlasnej kartotece plik zawierajacy podanie o podwyzke. Najpierw stwórz i zapisz plik zawierajacy naglówek takiego podania i zapisz go na dysk konczac prace z vi. Nastepnie uzyj ponownie vi aby dopisac do pliku uzasadnienie podwyzki.


Wyswietlanie danych o innych uzytkownikach: spis treści ^^

zanim spróbujemy skomunikowac sie z jakims uzytkownikiem powinnismy czy jest on biezaco zaloginowany - mozemy wtedy nie tylko wyslac mu list lecz równiez 'porozmawiac' z nim przez komputer.

Komenda

w

wyswietla informacje o uzytkownikach którzy pracuja biezaco na naszym komputerze

w 2:55pm up 3 min, 2 users, load average: 0.02, 0.05, 0.01
User    tty     from    login@  idle    JCPU    PCPU    what
root    tty2            2:53pm                          w
tedd    tty1            2:52pm          2               -tcsh

dodatkowo otrzymujemy informacje o tym kiedy zaloginowali sie poszczególni uzytkownicy ('login@'), z jakiego komputera ('from' - w tym przypadku nie bylo uzytkowników zaloginowanych spoza naszego komputera) oraz jaka komende wykonali ostatnio ('what')

Pelniejsze dane o uzytkownikach otrzymamy uzywajac komendy

finger [ nazwa_uzytkownika ]

jezeli nie podamy nazwy uzytkownika otrzymamy skrótowa informacje o biezaco zaloginowanych uzytkownikach:Login Name    Tty     Idle    Login Time      Office  Phone
dawid   Dawid Kedzierski - r    4       1       Nov 8 19:41            
t_user  Uzytkownik 'testowy'    3       1       Nov 8 19:41     Comp    229622
tedd    'Tedd' T. Kedzierski    1               Nov 8 19:40            

natomiast podanie nazwy uzytkownika spowoduje wyswietlenie 'pelnej' informacji o uzytkowniku:

finger dawidLogin: dawid Name: Dawid Kedzierski - rowerzysta
Directory: /home/dawid Shell: /bin/tcsh
Last login Tue Nov 7 19:05 (MET) on tty1
No mail.
No Plan.

mozna równiez wyswietlac dane o uzytkowniku z innego komputera

finger user@adres_sieciowy_komputera
<code>

lub wyswietlic informacje o wszystkich uzytkownikach zaloginowanych biezaco na 'innym' komputerze:

<code>
finger @adres_sieciowy_komputera
<code>

<a name="12"></a>
<strong>Wysylanie komunikatów do innych uzytkowników:</strong> <a href="#0" title="Spis treści">spis treści ^^</a>
aby wyslac komunikat do biezaco zaloginowanego uzytkownika mozemy uzyc komendy
<code>
write nazwa_uzytkownika [nazwa_terminala]

nazwa_uzytkownika sluzy do wskazania do kogo ma byc wyslany komunikat. Jezeli uzytkownik jest zaloginowany na kilku terminalach mozemy jawnie wskazac na który terminal ma byc przeslany komunikat wpisujac nazwa_terminala jako ostatni parametr komendy write.

Po wpisaniu komendy write uzytkownik wysylajacy komunikat wpisuje w kolejnych liniach tekst, który zostanie przeslany. Tekst moze byc wieloliniowy - przechodzimy do nowej linii naciskajac klawisz Enter. Konczymy wpisywanie naciskajac Ctrl-D jako pierwszy znak nowej linii.

Uzytkownik do którego wysylamy komunikat zobaczy na swoim ekranie wiadomosc postaci:

Message from root@teddPC on tty at 14:56 ...
Koniec pracy - zamykamy!!!
Twoj PC.
EOF


Interaktywna komunikacja z innymi uzytkownikami: spis treści ^^

aby 'porozmawiac' z innym uzytkownikiem uzyjemy komendy

talk user[@adres_komputera] [nazwa_terminala]

komenda ta pozwala na 'rozmowe' z uzytkownikiem, który jest biezaco zaloginowany. Podanie po nazwie uzytkownika adresu_komputera umozliwi 'rozmowe' z uzytkownikiem zaloginowanym na innym niz nasz komputerze.

Nawiazanie polaczenia pomiedzy dwoma uzytkownikami wyglada wtedy nastepujaco:
zalózmy, ze uzytkownik nowak zaloginowany na komputerze alfa chce porozmawiac z uzytkownikiem kowalski pracujacym na komputerze beta
nowak wysyla komunikat

talk kowalski@beta
<code>
na ekranie komputera kowalskiego pojawia sie komunikat:
<code>
Message from TalkDaemon@beta
talk: connection requested by nowak@alfa
talk: respond with talk nowak@alfa

kowalski wykonuje komende
talk nowak@alfa

polaczenie zostaje nawiazane. Ekrany komputerów nowaka i kowalskiego zostaja podzielone na polowy - na jednej z nich pojawiaja sie komunikaty wysylane, na drugiej odbierane - polaczenie zostalo nawiazane.

Aby zakonczyc polaczenie jeden z uzytkowników naciska Cntrl-C - to przerywa polaczenie.


Wysylanie listów spis treści ^^

wymienione wczesniej metody komunikacji pomiedzy uzytkownikami wymagaja zeby obaj respondenci byli biezaco zaloginowani. To nie zawsze jest mozliwe. Aby skomunikowac sie z uzytkownikiem który nie jest zaloginowany - w najprostszym przypadku - uzywamy komendy mail

mail [ uzytkownik[@adres_komputera]]

jezeli nie podamy nazwy uzytkownika - mail sprawdzi czy sa do nas jakies listy. Jezeli nie ma zadnych listów po wypisaniu komunikatu 'no mail messages' mail zakonczy dzialanie.

Jezeli sa jakies listy do nas - mail wyswietli naglówki tych listów:

Mail version 5.5 6/1/90. Type ? for help.
"/var/spool/mail/root": 2 messages
> 1 root Thu Sep 15 02:23 132/4322 "Register with the Lin"
2 vol@mhd1 Thu Sep 15 02:53 65/2683 "Welcome to Linux!"
&

jestesmy teraz w trybie wykonywania komend maila. Najczesciej uzywane komendy to:

num     wyswietl list numer num
d num   skresl list numer num
u num   'odskresl' list numer num. Do momentu zakonczenia pracy z mailem wszystkie skreslone listy moga byc odzyskane - komenda u
s num fname     dopisz ('append') list numer num do pliku o nazwie fname
R num   wyslij odpowiedz na list numer num - tylko do nadawcy tego listu
r num   wyslij odpowiedz na list o numerze num do wszystkich, którzy go otrzymali
m user [@adres_komp]    zacznij tworzyc list który zostanie wyslany do uzytkownika user
h       ponownie wyswietl naglówki listów
q       zakoncz prace z mailem

jako num mozemy uzyc pojedynczego numeru (komenda dotyczy wtedy pojedynczego listu), dwóch numerów oddzielonych myslnikiem (komenda dotyczy wszystkich listów o numerach od - do) lub * (gwiazdki) - w tym ostatnim przypadku komenda dotyczy wszystkich listów.

Jezeli zaczniemy wysylac list - podajac nazwe adresata - bedziemy proszeni o wpisanie:
cc - pole do którego wpisujemy nazwy uzytkowników (z ewentualnymi adresami komputerów) którzy powinni otrzymac kopie naszego listu. Komenda r wysyla odpowiedz do nadawcy listu oraz wszystkich uzytkowników wymienionych w polu cc
nastepnie wpisujemy tresc listu. Tresc moze byc dowolnie dluga - konczymy wpisywanie naciskajac Ctrl - D lub wpisujac . (kropke) na poczatku pustej linii.

Przecwicz poznane komendy komunikacji pomiedzy uzytkownikami:
wyswietl informacje o biezaco zaloginowanych uzytkownikach
wyslij komunikat do jednego z uzytkowników
nawiaz lacznosc (talk) z wybranym uzytkownikiem
wyslij list do grupy uzytkowników - odpowiedz na list który doszedl do Ciebie
zapamietaj tresc wybranego listu na pliku Program mail to najprostszy program to obslugi poczty. Jego 'zaleta' jest to, ze jest obecny w kazdej wersji Unixa. Natomiast jego uzycie nie jest zbyt 'user friendly'. Dlatego uzytkownicy Unixa dosc szybko zaczynaja uzywac bardziej 'wygodnych' programow - elm i pine sa chyba najczesciej uzytwanymi programami do obslugi poczty. Omowienie tych programow przekracza zakres tego opracowania - zreszta sa one na tyle 'przyjacielskie' ze elementarna znajpmosc jezyka angielskiego wystarcza do ich uzywania.


Procesy spis treści ^^

kazdy uruchomiony w Unixie program jest traktowany jak niezalezny proces. Unix pozwala uruchomic wiele procesów jednoczesnie. Kazdy z uruchomionych procesów posiada 3 standardowe strumienie danych:

input - stad wczytywane sa dane do programu; default: z klawiatury
output - na ten strumien wypisywane sa wyniki i komunikaty; default: ekran terminala
error - strumien na który wysylane sa komunikaty o bledach; default: ekran terminala

Unix pozwala przedefiniowac miejsce, skad pobierane sa dane wejsciowe oraz miejsca gdzie wyswietlane sa komunikaty za pomoca nastepujacych konstrukcji:

proces < fname - pobieraj dane z pliku fname zamiast z klawiatury
proces > fname - wpisuj wyniki, które normalnie bylyby wyswietlane na ekran terminala, do pliku fname
process >> fname - dopisz ('append') wyniki, które normalnie bylyby wyswietlane na ekran terminala, do pliku fname
process >& fname -wpisuj wyniki, normalnie kierowane na strumienie output i error do pliku o nazwie fname
process >>& fname - dopisuj ('append') wyniki, normalnie kierowane na strumienie output i error do pliku o nazwie fname

Przyklad:

ls -ls a*z > pliki

zapamietaj w pliki dane o wszystkich plikach z biezacej kartoteki posiadajacych nazwy zaczynajace sie od a i konczace sie na z

Unix pozwala równiez wykonywac kilka procesów tak, ze ich wykonanie jest powiazane ze soba:

proc1 ; proc2 ; ...     - wykonanie sekwencyjne: najpierw wykonany zostanie proces proc1, po jego zakonczeniu uruchomiony zostanie proces proc2, itd.
proc1 & proc2 & ...     - wykonanie równolegle: wszystkie procesy procn zostana uruchomione jednoczesnie i beda sie wykonywac wspólbieznie
proc1 | proc2 | ...     - wykonanie potokowe: najpierw zostanie uruchomiony proces proc1. Wyniki które ten proces wyswietla na ekranie zostana przeslane do procesu proc2. Proces proc2 zostanie uruchomiony po zakonczeniu procesu proc1. Dane przekazane z procesu proc1 sa przesylane do procesu proc2 tak jakby byly wpisywane z klawiatury. To samo bedzie sie powtarzalo dla pozostalych procesów uruchomionych potokowo

wszystkie te sposoby uruchamiania procesów mozna laczyc ze soba. Dodatkowo uruchamiane procesy moga byc laczone w grupy za pomoca nawiasów.

(p1 ; p2 ) & (p3 | p4 )

uruchom wspólbieznie:
wykonywane sekwencyjnie procesy p1 i p2
proces p3, po jego zakonczeniu uruchom p4 przekazujac mu jako dane wejsciowe dane wytworzone przez p3

Do wykonania bardziej sensownych operacji na strumieniach i procesach potrzebne nam beda jeszcze dwie komendy Unixowe:

cat [ wzornik ]

czyta zawartosc wszystkich plików których nazwy sa zgodne z wzornikiem, laczy ich zawartosc i wysyla na ekran. Jezeli nie podamy wzorników - czytaj dane ze standardowego wejscia (klawiatura)

grep [ opcje ] tekst wzorzec

wyszukuje w plikach których nazwy sa zgodne z wzorcem wszystkie linie w których wystepuje tekst. Wyszukane linie sa przesylane na standardowe wyjscie

Najczesciej uzywane parametry:

-v      wyswietlane sa linie które nie zawieraja tekstu
-c      wyswietla tylko ilosc wyszukanych linii
-l      wyswietla tylko nazwy plików w których znaleziono tekst
-n      wyswietla numery linii przed wyswietlanymi liniami

Przyklady:
polacz w jeden plik wszystkie pliki o nazwach zaczynajacych sie od x w jeden plik o nazwie wynik

cat x* > wynik

wyswietl informacje o biezaco zaloginowanych uzytkownikach którzy w informacji o sobie maja slowo 'programista'

finger | grep programista


Skrypty spis treści ^^

skrypty sa odpowiednikiem batchów z MsDOSa. Pozwalaja na spisanie ciagu komend Unixa a nastepnie wykonanie ich.

W srodku skryptu mozemy uzywac nastepujacych konstrukcji:

parametry - symbole $1, ... , $9 sa zastepowane wartosciami parametrów wystepujacych w linii uruchamiajacej skrypt
zmienne - sa to obiekty, tworzone przez programiste lub zdefiniowane w systemie Unix. Kazda zmienna ma swoja nazwe - poprzez te nazwe odwolujemy sie do zmiennej.

wartosc zmiennej nadajemy instrukcja
nazwa = wartosc

natomiast wartosc zmiennej pobieramy uzywajac konstrukcji $nazwa_zmiennej

Jezeli wartoscia zmiennej alfa jest lancuch beta to komenda

echo Wartosc zmiennej alfa: $alfa

wyswietli na monitorze komunikat
Wartosc zmiennej alfa: beta

W systemie zdefiniowane sa pewne zmienne globalne - najczesciej uzywane z nich to:
HOME    nazwa kartoteki bazowej uzytkownika
PATH    ciag nazw kartotek, oddzielonych : - kartoteki te beda przeszukiwane przez Unixa w czasie szukania programu do wykonania - analogicznie jak zrobil to potem MsDOS

wewnatrz skryptu wpisujemy normalne komendy Unixa. Dodatkowo mamy mozliwosc uzycia dodatkowych instrukcji. We wszystkich omawianych ponizej instrukcjach uzywamy nastepujacych oznaczen:warunek wykonanie dowolnego ciagu instrukcji Unixa - uruchomienie procesów, komendy wbudowane Unixa. warunek ma wartosc TRUE o ile uruchomione programy wykonaly sie bez bledów - dokladniej dopóki beda zwracac wartosc 0

dodatkowo jako warunek moze wystapic konstrukcja -f fname - ma wartosc TRUE jezeli plik o nazwie fname istnieje
ciag instrukcji dowolny ciag instrukcji Unixa

Najwazniejsze z dodatkowych instrukcji których mozemy uzyc w skryptach:

while warunek;
do
ciag instrukcji;
done    wykonuj krotnie ciag instrukcji - tak dlugo jak dlugo ?spelniony? bedzie warunek
for zmienna in lista_wartosci
do
ciag instrukcji
done    lista_wartosci to ciag nazw oddzielonych spacja. zmienna otrzymuje kolejno wartosci z listy_wartosci - dla kazdej z nich wykonywany jest ciag instrukcji.

Jako lista_wartosci mozne wystapic równiez wzornik - wartoscia zmiennej beda nazwy plików zgodnych z wzornikiem
if [ warunek ];
then
ciag instrukcji1
else
ciag instrukcji2
fi      jezeli spelniony jest warunek - wykonaj ciag instrukcji1, jezeli nie jest - wykonaj ciag instrukcji2

Uwaga! Przed wykonaniem pliku ze skryptem musimy mu nadac atrybut 'executable' - komenda

chmod u+x nazwa_pliku

Przyklad:
sprawdz czy plik o podanej jako parametr skryptu nazwie istnieje. Jezeli tak - sprawdz czy w tym pliku wystepuje linia z tekstem bedacym drugim parametrem skryptu. Jezeli oba warunki sa spelnione - utwórz plik o nazwie zgodnej z nazwa pliku bazowego oraz rozszerzeniem '.tekst_szukany.RESULT'. W pliku tym powinny znajdowac sie wylacznie linie zawierajace szukany tekst

plik: do_findfor fname in $1;
do
if [ -f $fname ];
then
if grep $2 $fname
then
grep $2 $fname > $fname.$2.RESULT
echo Zalozono plik $fname.$2.RESULT ...
else
echo W pliku $fname nie ma szukanych linii $2
fi
else
echo Plik $fname nie istnieje
fi ;
done

Cwiczenie:
stwórz - za pomoca vi - plik zawierajacy skrypt do_find. Przecwicz wykonanie takiego skryptu. Dodaj do skryptu instrukcje sledzace jego wykonanie (instrukcje echo wyswietlajace wartosci zmiennych podczas wykonywania skryptu)


Konfigurowanie srodowiska uzytkownika: spis treści ^^

w kartotece bazowej kazdego uzytkownika znajduja sie pliki konfigurujace jego sesje. Do najwazniejszych z tych plików naleza:

.cshrc  plik zawierajacy instrukcje wykonywane w czasie uruchamiania sesji uzytkownika. Znajduja sie tu najczesciej instrukcje definiujace aliasy (zob. dalej), redefiniujace zmienna systemowa PATH oraz uruchomienie programów , które uzytkownik chce wykonywac kazdorazowo podczas uruchamiania jego sesji
.login  plik ten jest uruchamiany kazdorazowo podczas otwarcia przez uzytkownika nowego okienka w biezacej sesji. Znaczenie - podobne jak .cshrc
.logout instrukcje wykonywane bezposrednio przed zakonczeniem sesji uzytkownika. Zwykle zawieraja komendy 'robiace porzadki' - usuwanie plików tymczasowych, odtwarzanie stanu systemu, itp. Moze nie wystapic.

Kolejnosc uruchamiania plików .cshrc i .login jest nastepujaca:
uzytkownik wykonuje komende login zeby uruchomic swoja sesje w systemie Unix. Wykonywane sa instrukcje z pliku .cshrc. Poniewaz jednoczesnie otwiera sie okienko - po .cshrc wykonywany jest plik .login
kazdorazowo gdy - pracujac w biezacej sesji - uzytkownik otwiera nowe okienko - wykonywany jest plik .login
kiedy uzytkownik wykona komende logout (konczaca sesje) wykonywany jest plik .logout

Dodatkowymi plikami konfiguracyjnymi, które moga byc ustawiane przez uzytkownika sa:

.forward        jezeli taki plik istnieje w kartotece bazowej uzytkownika wszystkie przychodzace do niego listy (email) sa automatycznie odsylane na adres (lub adresy) zapisane wewnatrz pliku .finger
.plan

.project        jezeli te pliki istnieja w kartotece bazowej uzytkownika ich zawartosc jest wyswietlana przez komende finger - przekazujaca informacje o uzytkowniku. Pozwalaja zdefiniowac informacje które uzytkownik chce przekazac o sobie


Aliasy spis treści ^^

konstrukcje postaci

alias nazwa 'wartosc'

wystepujace w plikach .cshrc i .login definiuja aliasy. Od momentu zdefiniowania aliasu kazde wpisanie przez uzytkownika tekstu nazwa bedzie traktowane tak jakby uzytkownik wpisal tekst wartosc. Pozwala to definiowac 'nowe' komendy w Unixie. wartosc ujmujemy w apostrofy jezeli wewnatrz tekstu tworzacego wartosc wystepuja spacje.

Komende alias mozemy równiez wprowadzic z linii komend Unixa.

Definicje

alias md mkdir
alias dir 'ls -aFsl'
alias del 'rm -i'

alias -pozwala wylistowac biezaco zdefiniowane aliasy a komenda
unalias nazwa - usuwa definicje aliasu nazwa.

Cwiczenie:
wyswietl zawartosc swoich plików .cshrc i .login. Jezeli nie istnieja aliasy 'komend MsDOSa' - dopisz je do .cshrc. Zaloginuj sie ponownie i spróbuj ich uzyc.
utwórz pliki .plan i .project w swojej kartotece bazowej. Zobacz jak dziala komenda finger twoja_nazwa_uzytkownika kiedy takie pliki istnieja.


Adresy sieciowe komputerów. Komunikacja pomiedzy komputerami. spis treści ^^

kazdy komputer dolaczony do sieci komputerowej posiada dwa adresy sieciowe: symboliczny i tzw. IP adres. Oba adresy sa tworzone przez administratora systemu. Adres symboliczny wlasnego komputera mozemy uzyskac komenda

hostname

natomiast adres IP mozemy znalezc w pliku /etc/hosts - plik ten zawiera pary 'adres symboliczny - IP adres' dla komputerów, które sa 'znane' naszemu komputerowi. IP adres ma zawsze postac czterech liczb z przedzialu 1 - 253, oddzielonych od siebie kropkami.

Do komunikacji pomiedzy komputerami w sieci uzywane sa najczesciej dwie komendy:


telnet spis treści ^^
Uruchom sesje uzytkownika na zdalnym komputerze.
komenda ta laczy sie z komputerem o podanym adresie. Jezeli taki komputer nie istnieje (nie jest znany jego adres symboliczny lub nie istnieje mozliwosc zamiany adresu symbolicznego na IP) komenda konczy sie z komunikatem o bledzie. Jezeli uda sie polaczyc ze zdalnym komputerem - uzytkownik zostanie poproszony o zaloginowanie sie - bedzie musial podac poprawna nazwe i haslo uzytkownika zdefiniowanego na komputerze, do którego sie dolaczyl. Jezeli to zrobi - od tego momentu, siedzac przy terminale wlasnego komputera, wykonuje obliczenia na komputerze zdalnym.


ftp spis treści ^^
ftp adres_IP_lub_symboliczny Uruchom program do transmisji plików pomiedzy komputerami.

Najpierw - ftp próbuje polaczyc sie ze zdalnym komputerem - analogicznie jak telnet. Takie same moga byc równiez powody blednego zakonczenia ftp. Jezeli uda sie polaczyc ze zdalnym komputerem - uzytkownik musi sie poprawnie zaloginowac. Wiele z komputerów udostepniajacych pamietane na nich informacje pozwala zaloginowac sie jako uzytkownik anonymous z haslem 'nazwa_uzytkownika@adres_komputera_z_którego_sie_lacze'.Po polaczeniu sie mozemy transmitowac pliki pomiedzy naszym komputerem a komputerem do którego sie dolaczylismy uzywajac wewnetrznych komend ftp:

ascii
binary  przelancza tryb transmisji. W trybie ascii zawartosci plików sa przesylane 7bitowo - tryb ten sluzy najczesciej do przesylania plików tekstowych. W trybie binary transmisja jest 8 bitowa
prompt  przelacza (jezeli nie byl wlaczony - to wlacza, jezeli byl wlaczony - wlacza) tryb pytania o kazdy plik podczas transmisji wielu plików
status  wyswietla informacje o biezaco ustawionych parametrach transmisji (ascii / binary, prompt)
lcd kartoteka   zmienia biezaca kartoteke na naszym komputerze
cd kartoteka    zmienia biezaca kartoteke na komputerze do którego sie dolaczylismy
get nazwa_pliku [ nazwa_lokalna ]       skopiuj jeden plik o nazwie nazwa_pliku z komputera zdalnego na nasz komputer. Jezeli wystapi parametr nazwa_lokalna plik zostanie zapisany pod ta nazwa. Jezeli nie wystapi - pod nazwa jaka mial na komputerze zdalnym
put nazwa_pliku [ nazwa_zdalna ]        operacja odwrotna do get - skopiuj plik z naszego komputera na komputer zdalny ewentualnie zmieniajac mu nazwe na nazwe_zdalna
mget wzornik    skopiuj wszystkie pliki których nazwy sa zgodne z wzornikiem ze zdalnego komputera na nasz komputer. Jezeli prompt jest wlaczony - nazwa kazdego pliku który ma byc przesylany bedzie wyswietlana a uzytkownik bedzie pytany czy ten plik ma byc przetransmitowany
mput wzornik    komenda odwrotne do mget - kopiuje wszystkie pliki o nazwach zgodnych z wzornikiem z naszego komputera na komputer zdalny
help    wyswietl opis komend ftp (omówilismy tylko najwazniejsze z nich, jest ich wiecej)
quit    zakoncz prace z ftp


DNS - Domain Name Service spis treści ^^

jak mozemy zauwazyc w pliku /etc/hosts nie ma adresów wszystkich komputerów jakie istnieja na swiecie - jezeli tylko znamy symboliczny adres komputera to mozemy sie z nim polaczyc nawet wtedy kiedy informacji o nim nie ma w /etc/hosts. Dzieje sie tak dlatego ze w sieci komputerowej - oprócz zwyklych komputerów - istnieja równiez komputery zajmujace sie zamiana adresów symbolicznych na adresy IP - tzw. name servery

Cwiczenie:
wyswietl zawartosc pliku /etc/hosts na wlasnym komputerze
polacz sie przez ftp z komputerem o adresie ftp.cyf-kr.edu.pl. Zaloginuj sie jako uzytkownik anonymous z odpowiednim haslem. Komputer ten to krakowska kopia wezla simtel i cica - zawiera bardzo duzo oprogramowania typu shareware i public domain. Skopiuj dowolny, wybrany przez siebie plik z tego komputera na wlasny komputer. Pamietaj o ustawieniu trybu transmisji (ascci/binary)


Uruchamianie systemu X Windows spis treści ^^

konfiguracja komputera w ten sposób, zeby na terminalach graficznych uruchamial sie automatycznie system X Windows jest zwykle sprawa administratora systemu - informacje o 'recznym' konfigurowaniu sysetmu X Windows wykraczaja poza zakres tego kursu - dlatego nie beda tutaj omawiane.

Gdyby jednak na naszym graficznym terminalu nie uruchomil sie automatycznie system X Windows - mozemy wykonac komende openwin - ta komenda inicjuje prace systemu X Windows.


Zasada dzialania systemu X Windows: spis treści ^^

W systemie X Windows wyrózniamy dwa typy komputerów:

klient - to komputer na którym wykonywane jest uruchomione przez nas oprogramowanie. Dokladniej - komputer którego procesor i pamiec sa uzyte do uruchomienia programu który wykonujemy
serwer - to komputer którego ekran wyswietla wyniki dzialania uruchomionego programu a klawiatura jest uzywana do wprowadzania danych

Zwykle serwerem jest komputer przy którym siedzimy a klientem komputer z którym polaczylismy sie zeby uruchomic znajdujace sie tam oprogramowanie (oczywiscie moze sie tak zdazyc, ze serwer i klient to ten sam komputer)

Tym gdzie bedzie wyswietlany wynik programu pracujacego pod kontrola X Windows steruja dwa elementy:
zmienna systemowa DISPLAY - przed uruchomieniem programu musimy ustawic te zmienna tak, by wskazywala komputer, na którym ma byc wyswietlany wynik dzialania programu.

jezeli chcemy wyswietlac wyniki na ekranie komputera o nazwie alfa (nazwe naszego komputera otrzymamy uzywajac komendy hostname) to zmienna DISPLAY powinna byc ustawiona nastepujaco:

set DISPLAY=alfa:0.0

Takie ustawienie zmiennej DISPLAY mozemy potraktowac jako stwierdzenia 'ja program chce wyswietlac na komputerze alfa'. Aby to bylo mozliwe konieczna jest jeszcze druga operacja - komputer alfa musi zgodzic sie na to, zeby program mógl cos wyswietlac na ekranie alfy.

Zalózmy, ze program który chce wyswietlac wyniki na komputerze alfa dziala na komputerze beta. Przed uruchomieniem programu uzytkownik musi - w okienku uchomionym na komputerze alfa - wykonac komende

xhost +betaI

Te komende mozemy potraktowac jako stwierdzenie 'ja komputer alfa zgadzam sie zeby programy z komputera beta wyswietlaly na moim ekranie'

Dopiero wykonanie obu tych czynnosci pozwoli na poprawne dzialanie programu graficznego


Konfiguracja wlasnego ekranu w systemie X Windows spis treści ^^
jezeli chcemy spersonalizowac sposób w jaki bedzie zglaszac sie system X Windows na naszym komputerze postepujemy nastepujaco:

SUN:
uruchamiamy te aplikacje które powinny uruchamiac sie kazdorazowo kiedy bedziemy uruchamiac X Windows. Ustawiamy okienka w tych miejscach w których powinny sie pojawic, minimalizujemy do ikon aplikacje które powinny uruchomic sie jako zminimalizowane - porzadkujemy obiekty na ekranie tak, jak chcemy zeby sie ukazywaly po uruchomieniu X Windows
ustawiamy kursor myszki na pustym fragmencie ekranu, naciskamy prawy przycisk myszki. Z menu które sie pojawilo wybieramy Desktop a nastepnie - z pod menu - Save Workspace. Spowoduje to zapamietanie stanu naszego ekranu - poczawszy od nastepnego uruchomienia X Windows beda pojawiac sie w sposób w jaki je ustawilismy.

SGI:
zobacz opis sposobu zapamietywania ustawienia Desktopu dla origina 200

Cwiczenia:
znajdz nazwy programów graficznych na Twoim komputerze - wyswietl z kartoteki $OPENWINHOME/bin nazwy wszystkich programów zaczynajace sie od 'x'. Spróbuj uruchomic kilka z nich
spróbuj uruchomic program xclock (zegar) tak, by wyswietlal obraz na ekranie kolegi
poustawiaj obiekty na ekranie swojego komputera i zapamietaj ich ustawienie

Na podstawie: UNIX - kurs podstawowy (c) T.Kędzierski

Autor: 
Tadeusz Kędzierski
Porozmawiaj o tym artykule na forum: 

quex, pon., 25/02/2008 - 01:26