Zanim zaczniemy prace - musimy zalogować sie do systemu. Unix pozwala na wpisanie:
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:
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.
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:
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:
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:
|
-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 -aFsl
total 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
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
kazdy 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
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
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:
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
df
Filesystem |
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?
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
df
Filesystem |
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'):
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 chmod
CHMOD(1V) USER COMMANDS CHMOD(1V)
|
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
|
Wybrane programy uslugowe - vi
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:
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:
? ? |
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:
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:
/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:
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
|
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:
|
natomiast podanie nazwy uzytkownika spowoduje wyswietlenie 'pelnej' informacji o uzytkowniku:
finger dawid
Login: dawid Name: Dawid Kedzierski - rowerzysta |
mozna równiez wyswietlac dane o uzytkowniku z innego komputera
finger user@adres_sieciowy_komputera
lub wyswietlic informacje o wszystkich uzytkownikach zaloginowanych biezaco na 'innym' komputerze:
finger @adres_sieciowy_komputera
Wysylanie komunikatów do innych uzytkowników:
aby wyslac komunikat do biezaco zaloginowanego uzytkownika mozemy uzyc komendy
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 ... |
Interaktywna komunikacja z innymi uzytkownikami:
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
na ekranie komputera kowalskiego pojawia sie komunikat:
Message from TalkDaemon@beta |
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
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. |
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
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
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; |
wykonuj krotnie ciag instrukcji - tak dlugo jak dlugo ?spelniony? bedzie warunek |
for zmienna in lista_wartosci |
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 ]; |
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_find
for fname in $1; |
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:
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
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'
pozwalaja uzywac pod Unixem 'komend MsDOSa'.
Komenda
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.
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 |
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 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 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
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
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:
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
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:
|
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