unix
Trochę ciekawostek – na weekend (czego to ludzie nie wymyślą ...
Poprzednia
strona
Unix - kurs
podstawowy
prepared
by
Spis tresci:
Poczatek
pracy
Ogólne
zasady wpisywania komend
Dostep
do programów i danych
Komendy
dzialajace na kartotekach
Komendy
dzialajace na plikach
Bazowa
kartoteka uzytkownika
Prawa
dostepu
Miejsce
na dysku
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- strefamiszcza.htw.pl
Sumaryczna
wielkosc plikow
Fizyczna
ilosc wolnego miejsca na dysku
Jak
znalezc informacje o fizycznej ilosci wolnego miejsca na dysku, na ktorym
znajduja sie nasze pliki?
Informacja
o komendach ("help")
Wybrane
programy uslugowe - vi
Wybrane
komendy trybu klawiszowego
Komendy
zmiany pozycji
Kopiowanie
i przenoszenie tekstu
Wybrane
komendy trybu liniowego
Wyswietlanie
danych o innych uzytkownikach
Wysylanie
komunikatow do innych uzytkownikow
Interaktywna
komunikacja z innymi uzytkownikami
Wysylanie
listow
Procesy
Skrypty
Konfigurowanie
srodowiska uzytkownika
Aliasy
Adresy
sieciowe komputerow. Komunikacja pomiedzy komputerami
telnet
ftp
DNS
- Domain Name Servis
Uruchamianie
systemu X Windows
Zasada
dzialania systemu X Windows
Konfiguracja
wlasnego ekranu w systemie X Windows
Zanim zaczniemy prace - musimy zaloginowac
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:
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
-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)
NAMEchmod - change the permissions mode of a
file SYNOPSISchmod [ -fR ] mode filename
... DESCRIPTIONChange the permissions (mode) of a file or files. Only
theowner 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
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
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 dawid
Login: dawid Name: Dawid Kedzierski -
rowerzystaDirectory: /home/dawid Shell: /bin/tcshLast login Tue Nov 7
19:05 (MET) on tty1No mail.No
Plan.
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 ...Koniec pracy -
zamykamy!!!Twoj
PC.EOF
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@betatalk: connection requested by
nowak@alfatalk: 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
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 [
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
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;dociag
instrukcji;done
wykonuj krotnie
ciag instrukcji - tak dlugo jak dlugo ?spelniony? bedzie
warunek
for
zmienna in lista_wartoscidociag
instrukcjidone
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 ];thenciag
instrukcji1elseciag
instrukcji2fi
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;doif [ -f $fname ];thenif grep $2 $fnamethengrep $2 $fname >
$fname.$2.RESULTecho Zalozono plik $fname.$2.RESULT
...elseecho W pliku $fname nie ma szukanych linii
$2fielseecho Plik $fname nie
istniejefi ;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:
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
mkdiralias 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:
asciibinary
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:
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
?'Tedd'
T.Kedzierski