IIII IIII IIIII IIII IIII IIII IIII IIII
IIII IIII IIIIII IIII IIII IIII IIII IIII
IIII IIII IIIIIII IIII IIII IIII IIIIIIII
IIII IIII IIIIIIIIIIII IIII IIII IIIIII
IIII IIII IIII IIIIIII IIII IIII IIIIIIII
IIIIIIIII IIII IIII IIIIII IIIIIIIIIII IIII IIII
IIIIIIIII IIII IIII IIIII IIIIIIIII IIII IIII
Spis treści
I. SEKCJA A : start
I.1. Jak otworzyć konto w InterNet'cie?
I.2. Jak się zalogować?
I.3. Co to za plik /etc/passwd itp?
I.4. Jakie są zadania hackera?
I.5. Co to są shelle i system plików w Unix'ie?
II. SEKCJA B : podstawy unix'a
II.1. Gdzie jesteśmy?
II.2. Jak zobaczyć zawartość katalogu i uprawnienia?
II.3. Uprawnienia plików cd.?
II.4. Co to są grupy?
II.5. Jak się szybko poruszać po systemie plików?
II.6. Co to są dżokery?
II.7. Jakie są dżokery specjalne?
II.8. Co to są polecenia procesowe?
II.9. Polecenie "su".
II.10. Jak spakować dane?
II.11. Ile miejsca na dysku?
II.12. Jak przygotowywać własny system plików?
II.13. Co to są aliasy?
II.14. Jak się ze sobą porozumiewać?
III. SEKCJA C : sieć
III.1. Co to jest URL?
III.2. Co to jest FTP?
III.3. Co to jest Telnet?
III.4. Co to jest WWW?
III.5. Co to jest Gopher?
III.6. Co to jest Veronica?
III.7. Co to jest Wais?
III.8. Co to jest Archie?
III.9. Co to jest E-Mail?
III.10.Co to są News'y i Usenet?
III.11.Co to jest Jughead?
IV. SEKCJA D : podstawy
IV.1. Co to jest FakeMail?
V. SEKCJA E : internet
V.1. Gdzie szukać w InterNet'cie?
VI. SEKCJA F : koniec
* * *
I. Sekcja A : start
1. Jak otworzyć konto w InterNet'cie?
Na początku musimy posiadać jakiekolwiek konto w internecie, najłatwiej
jest się zgłosić do jednego z providerów (polbox itd.), lub też
można otrzymać konto na uczelni, ba w szkole średniej.
Standardowo providerzy oferują, pełny dostęp do sieci, czyli Unix Shell
i SLIP/PPP, adres poczty elektronicznej i własna stronę WWW.
Ostatnio, już pewien czas, działa bezpłatny (bez przesady, tylko
telefoniczna taryfa lokalna) dostęp do internetu, oferowany przez tpsa,
pod numerem (dostępnym w całej Polsce) 0202122, jako login i hasło
wpisujemy ppp, czyli:
login: ppp
passwd: ppp
i już, niestety, jest tu tylko dostępny PPP, tak więź musimy odpowiednio,
skonfigurować oprogramowanie. To nie wszystko, firma PolBox, oferuje
bezpłatne konta pocztowe (do 500KB) dla każdego, także firm, oraz
możliwość założenia własnej strony WWW (za friko!) do 2MB, całkiem nieźle.
Chyba od nie dawna, także firma Optimus udostępnia bezpłatne konta,
musicie zobaczyć.
Gdy wykupimy (dostaniemy) już konto, określimy swój identyfikator i
dostaniemy hasło, przychodzi pora by sie zalogować i ...
2. Jak się zalogować?
Standardowo, w Unix'ie na początku wpisujemy swój identyfikator, następnie
hasło, jednak jak wiecie, nie ma jednego Unix'a, odmian tego systemu są
dziesiątki, że wymienię: Berkeley, CPIX, FOS, Genix, HP-UX, IS/I, OSx, Sys3,
PC-IX, PERPOS, Ultrix, Zeus, Xenix, UNITY, VENIX, UTS, Unisys, Unip lus+,
UNOS, Idris, QNIX, Coherent, Cromix, System III, System 7, Sixth edition,
FreeBSD (Darmowy) czy w końcu Linux (Darmowy) i to w kilku edycjach, jak
np. Debian, Red Hat (Colgate;-) czy Slackware. Ale powróćmy do logowania
które zawyczaj wygląda tak:
np. w Linux'ie
alpha login: jasio
Password:
gdzie, alpha to nazwa komputera
Oczywiście, że może zamiast login (Login), pojawić się Username (username),
a Password może być pisane z małej litery (password). Zwyczajowo (?),
przyjeło się, że login składa się tylko z małych liter, zazwyczaj od 3-8,
za to hasło jest już kombinacją małych i dużych liter, oraz cyfr znaków
specjalnych (?) (3-8) np: Zs23dU3lajeT8. Standardowo można sie zalogować
jako: root, sys, bin, trouble, deamon, uucp, nuucp, rje, lp, adm...
Hasła takie są kodowane i sprawdzane z hasłami w pliku /etc/passwd czy
/etc/shadow, tą właśnie metodę wykorzystują wszelkiej maści hackerzy ;->
3. Co to za plik /etc/passwd itp?
Oto przykładowy plik /etc/passwd przy wyłączonym shadowingu, bardzo nas,
hackerów interesujacy!!!!
# cat /etc/passwd
root:Erre5ffKllg9o:0:0:root:/root:/bin/bash
bin:*:1:1:bin:/bin:
daemon:*:2:2:daemon:/sbin:
adm:*:3:4:adm:/var/adm:
lp:*:4:7:lp:/var/spool/lpd:
sync:*:5:0:sync:/sbin:/bin/sync
shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
halt:*:7:0:halt:/sbin:/sbin/halt
mail:*:8:12:mail:/var/spool/mail:
news:*:9:13:news:/var/spool/news:
uucp:*:10:14:uucp:/var/spool/uucp:
operator:*:11:0:operator:/root:
games:*:12:100:games:/usr/games:
gopher:*:13:30:gopher:/usr/lib/gopher-data:
ftp:*:14:50:FTP User:/home/ftp:
nobody:*:99:99:Nobody:/:
jasio:78P1IBwerttPk:500:500:Jasio Jaskowski:/home/jasio:/bin/bash
halinka:IO06GpLrt8yLN:501:501:Halinka z Lublinka:/home/halinka:/bin/bash
[...]
#
czyli:
login:password:uid:gid:comment:home:shell
Pierwsza pozycja okresla login stosowany przy logowaniu do systemu,
następnie jest zakodowane hasło (jeśli jest puste, to przy wpisywaniu
hasła podczas logowania wystarczy wcisnąć ENTER!), trzecie pole to tkz.
User Id (UID), czwarte pole to Group Id (GID), piąte pole, to pole opisu,
następne wskazuje na katalog domowy użytkownika, a ostatnie na powłokę.
Tak zaś wygląda plik /etc/password z włączonym shadowingiem, hasła są
wtedy przechowywane w pliku /etc/shadow!!!
# cat /etc/shadow
root:x:0:0:root:/root:/bin/bash
[...]
jasio:x:500:500:Jasio Jaskowski:/home/jasio:/bin/bash
halinka:x:501:501:Halinka z Lublinka:/home/halinka:/bin/bash
#
Teraz z kolei (przy włączonym shadwingu) interesuje nas plik /etc/shadow !
4. Jakie są zadania hackera?
Twoim głównym zadaniem jako hackera jest zdobycie uprawnień, równych
root'owi, co można (ale są też inne sposoby!!!) zrobić zdobywając hasło
root'a, co pociaga (ale nie jest to jedyny sposób!!!) za soba zdobycie
pliku z haslami /etc/passwd lub /etc/shadow!
Gdy uda Ci się już to zdobyć, musisz zaopatrzyć się (lub samemu zrobić)
plik ze slownikiem oraz program do kodowania/sprawdzania.
Program taki bierze wyraz ze słownika, koduje go i porównuje tak
zakodowane słowo ze słowem w pliku z hasłami.
Dobry slownik powinien mieć około 30-40MB!!!
Można też, jeśli Ci się uda zmienić wiersz z hasłem root'a na
root::0:0:::
(oczywiście nie musi to być użytkownik root, ważne, żeby UID i\lub GID,
miały wartość zero czyli np: jasio::0:0:::), a jeszcze lepiej bez żadnego
logina, czyli:
::0:0:::
i wystarczy teraz:
$ su ""
#
ale uwaga, taka konstrukcja:
login: root (jasio lub )
Password:
może (i raczej napewno) nie da się zastosować ;-(
A jak już jesteśmy zalogowani jako root (jasio itp.) dobrze jest
ustawić jakieś hasełko, będzie mniej podejrzanie ;-)
# passwd
Enter password:
New password:
Rep. password:
#
i my szalejemy, a prawdziwy root płacze ;->
5. Co to są shelle i system plików w Unix'ie?
Po prawidłowym zalogowaniu ukarze nam się, $ lub #, czyli Unix'owski prompt
(warto zauważyć, że bardzo czesto znak $ zarezerwowany jest dla prostego
użytkownika, a znak # tylko dla root'a).
Znaleźliśmy się w _prawdziwym_ (nie jakieś windowsy'95 czy NT;) systemie
operacyjnym. Unix składa sie z trzech komponentów, tj. kernela, shella i
systemu plików. Kernel jest głównym jadrem systemu, zarządza pamiecią,
systemem plików oraz programowymi i sprzętowymi urządzeniami. Zawiera też
język niskiego poziomu, shell obsługujący (utrzymującym) procesy.
Shell jest to język wysokiego poziomu, który może być używany do wykonywania
koment systemu, lub też jako język programowania, do pisania skomplikowanych
skryptów. Standardowymi unix'owymi shell'ami są:
/bin/ash
/bin/bash (Bourne-shell)
/bin/sh (Bourne-shell)
/bin/csh (C-shell)
/bin/ksh (Korn-shell)
/bin/tcsh
/bin/zsh
(Do pisania skryptów, osobiście, polecam bash'a lub tcsh'a)
System plików przedstawiamy w trzech kategoriach:
katalogi (directories)
pliki pospolite (ordinary files)
pliki specjalne (d, -, l, c)
Oto najprostsza struktura systemu plików BSD:
(root directory)
/
|
+-----+------+-----+--+--+-----+------+-----+
| | | | | | | |
/bin /dev /etc /lib /u /mnt /usr /tmp
| |
+ |
+-----+-(...)-+ |
| | | |
jasio ala jan |
|
+------+-------+------+---------+--------+-----+--(...)--+
| | | | | | | |
adm bin etc include tmp man ucb spool
|
+--------+----------+----+--------+-----------+------+-------+
| | | | | | | |
at batch lpd mqueue mail news uucp uucppublic
Oto najprostsza struktura systemu plików Systemu V.4:
(root directory)
/
|
+-----+------+-----+-----+-----+--+---+-----+
| | | | | | | |
/dev /etc /sbin /home /mnt /tmp /usr /var
|
+--------+--------+--------+-------+-------+-------+
| | | | | | |
adm cron lp mail news spool uucp
|
+-------+-------+
| | |
lp uucp uucppublic
Oto najprostsza struktura systemu plików Linux [RedHat 4.1]:
(root directory)
/
|
+-----+----+-+----+----+----+--+--+----+-----------+----+----+-----+
| | | | | | | | | | | |
/dev /proc /etc /bin /lib /home /mnt /lost+found /usr /tmp /root /var
|
+--------+-----+--(...)--+
| | | |
httpd ftp jasio other_users
| |
| public_html
|
+-----+---+--+-----+-----+
| | | | |
bin dev etc lib pub
UWAGA! Struktury są schematyczne i nie są na nich zaznaczone wszystkie
katalogi i podkatalogi, to są tylko przykłady!!!
/
główny katalog (root directory), podstawa całego drzewa katalogowego.
W obrębie tego katalogu, znajdują się wszystkie pliki i katalogi,
niezależnie od ich fizycznego położenia na dysku twardym.
/dev
zawiera pliki specjalne dla fizycznych urządzeń (I/O), w niektórych
systemach, katalog ten podzielony jest na kilka podkatalogów.
Pliki te obsługują takie urządzenia jak drukarka, twardy dysk,
cdrom czy karta muzyczna.
/proc
niezbędny dla komendy ps
/etc
zawiera niezbędne (ale nietylko) pliki konfiguracyjne i administarcyjne
systemu, katalog może być podzielony na podkatalogi, może też obok
plików tekstowych zawierać programy wykonywalne, np. skrypty bootujące.
Ważniejsze pliki tekstowe to min.:
/etc/passwd
/etc/group
/etc/shadow
itp. itd.
/bin
wykonywalne narzędzia systemowe dostępne dla wszystkich użytkowników
systemu, stanowiące jego integralną część.
/lib
biblioteki run-time różnych języków programowania, min.: C/C++
/home
katalog domowy, użytkownicy systemu itp. (Linux)
/u
katalog domowy, użytkownicy systemu itp. (BSD)
/mnt
używany jako punkt do przyłanczania (mounting) np: innego dysku, cdrom'a
czy też innego systemu plików.
/lost+found
katalog używany przez program fsck. Przechowuje się w nim pliki zgubione.
/usr
narzędzia i aplikacje (Linux)
katalog przeznaczony do przechowywania plików pocztowych, poleceń
użytkowników i innych fragmentów systemu operacyjnego. (BSD)
/var
katalog do przechowywania plików pocztowych i innych fragmentów systemu
operacyjnego (Linux) (System V.4)
/tmp
katalog dla plików tymczasowych, dostępny dla wszystkich.
/root
katalog własny nadzorcy systemu (Linux)
/usr/adm
katalog własny nadzorcy systemu (BSD)
/var/adm
katalog własny nadzorcy systemu (System V.4)
II. SEKCJA B : podstawy unix'a
1. Gdzie jesteśmy?
Aby okreslić w jakim miejscu na dysku sie znajdujemy, można napisać:
$ pwd
/home/jasio
$
Dla uzyskania więcej informacji napisz:
$ man pwd
Tak sprawdzaj każde polecenie ktorego nie znasz! Można jeszcze zamiast
man, używać polecenia apropos, ale nie na wszystkim maszynach to działa.
W Unix'ie znak / (slash), spełnia tą sama rolę co w DOS'ie
znak \ (backslash). W naszym przypadku, osnacza to, ze znajdujemy się
w katalogu /home/jasio
2. Jak zobaczyć zawartość katalogu i uprawnienia?
Napiszmy:
$ ls
jedenplik drugiplik trzeciplik katalog1
katalog2 katalog3 (...)
$ ls -a
.login .profile jedenplik katalog1
(...)
$ ls -l
total 5
drwxr-x--- 7 jasio users 512 Jul 11 22:47 katalog1
drwxr-xr-x 2 jasio users 512 Jul 11 02:22 katalog2
drwxr-x--- 5 jasio users 512 Jul 11 23:11 katalog3
drwxr-xr-x 9 jasio users 512 Jul 11 12:30 katalog4
-rw-r--r-- 1 jasio jasio 159 Dec 22 15:15 jedenplik
$
Jak zauważyliśmy, komenda ls jest odpowiednikiem (lepszym;), DOS'owskiej
komendy dir (w wielu systemach, spokojnie, o ile root pomyślał, można
zamiast ls, pisac dir). Samo ls wyświetla tylko katalogi i pliki,
parametr -a pozwala na obejrzenie plików, ukrytych (zaczynajacych sie od
'.') za to ls -l wyświetla dokładne widomości o plikach i katalogach.
Pierwszy wiersz wydruku podaje całkowitą objętość dysku zajmowaną przez
nasze pliki (katalogi) - total 5.
Kolumna zawierająca liczby:
512
512
512
512
159
Podaje rozmiary danych plików (katalogów) w bajtach.
Fraza Dec 22 15:15 podaje dokładną datę i czas zmiany pliku (kat.)
Druga kolumna zawierająca słowo 'jasio' okresla właściciela
pliku (katalogu), trzecia 'users' określa grupę dostępu do pliku (kat.).
Pierwsza kolumna dotyczy praw i rodzaju plików (katalogów).
pierwsza litera 'd' oznacza, że to jest katalog, literka 'l', oznaczałaby
link symbioliczny do pliku (katalogu), a minus '-', mówi nam, że jest to
zwykły plik. Następnie określane są przywileje, kolejno po trzy dla
właściciela, grupy i innych. Literka 'r' oznacza read, czyli możliwość
czytania, 'w' write, czyli pisanie, 'x' execute, wykonywania (np. aby
wejść do katalogu, niezbędne jest ustawienie uprawnienia 'r-x')!
W naszym przypadku wygląda to mniej więcej tak:
a).
+-+ +-+-+-+-+-+-+-+-+-+
|k| |r|w|x|r|w|x|r|w|x|
+-+ +-+-+-+-+-+-+-+-+-+
| \--+--/\--+-/\--+-/
| | | |
| | | \uprawnienia dla pozostalych użytkownikow (other)
| | |
| | \uprawnienia dla grupy (group)
| |
| \uprawnienia dla właściciela (owner)
|
\rodzaj kategorii (plik zwykły, plik specjalny, katalog, łącznik,
socket, potok.)
A tak przedstawia się znaczenie bitów w słowie, zawierającym prawa
dostępu:
b).
+-+-+-+ +-+-+-+-+-+-+-+-+-+
|s|g|t| |r|w|x|r|w|x|r|w|x|
+-+-+-+ +-+-+-+-+-+-+-+-+-+
\--+--/ \--+--/\--+-/\--+-/
| | | |
| | | \uprawnienia dla pozostałych użytkowników
| | |
| | \uprawnienia dla grupy
| |
| \uprawnienia dla właściciela
|
\uprawnienia specjalne
Legenda do a). i b).
r - uprawnienie do odczytania pliku
w - uprawnienie do zapisania (modyfikacji) pliku
x - uprawnienia do wykoniania pliku
k - rodzaj kategorii
('-' plik zwykły,
'd' katalog,
'l' łącznik symboliczny,
'b' plik specjalny blokowy,
'c' plik specjalny znakowy,
's' socket,
'p' nazwany potok.)
s - bit SUID ( ustawienie go powoduje, że dostęp do pliku może
mieć tylko jeden użytkownik)
g - bit SGID (ustawienie dla katalogu, powoduje, że pliki tworzone w tym
katalogu będą należały do tej samej grupy, do której należy katalog,
a nie do grupy do której należy właściciel pliku)
t - bit sticky (ustawienie go powoduje, że program po wykonaniu nie
jest usuwany z pamięci)
a). Interpretacja uprawnień, wyświetlonych po wydaniu polecenia 'ls -l'
b). Format informacji zapisanych w węźle, każdej klasy użytkowników.
3. Uprawnienia plików cd.?
Uprawnienia dla plików i katalogów ustawiamy za pomocą polecenia 'chmod',
którego format: chmod who+, -, =r, w, x, gdzie who, może oznaczać:
u-user (użytkownik, właściciel)
g-group (grupa)
o-other (inni użytkownicy)
a-all (wszyscy)
np.
chmod g+r plik1
nadaje grupie, możliwość czytania pliku (kat.) plik1.
chmod u+x plik2
nadaje właścicielowi, prawa wykonywania pliku plik2
chmod o-x plik3
odbiera pozostałym (other) użytkownikom, prawa do wykonywania pliku plik3
chmod g=rwx plik4
nadaje pełne uprawnienia grupie, do której należy właściciel
chmod ugo-x plik5 lub chmod a-x plik5
odbiera wszystkim prawa do wykonywania pliku plik5
Mozna też za pomocą polecenia 'chmod', nadawać uprawnienia w formie
octalnej np.
chmod 740 plik1
nadaje właścicielowi uprwanienia do czytania, pisania i wykonywania pliku,
grupie tylko to czytania a innym zabiera wszystkie uprawnienia.
Obliczyć wartość octalną uprawnień jest bardzo łatwo:
+-+-+-+-+-+-+-+-+-+
|r|w|x|r|w|x|r|w|x| pełne uprawnienia dla wszystkich
+-+-+-+-+-+-+-+-+-+
4+2+1 4+2+1 4+2+1
7 7 7 czyli chmod 777 plik0
+-+-+-+-+-+-+-+-+-+
|r|w|x|r|w|-|-|-|-| pełne uprawnienia dla właściciela, prawo czytania i
+-+-+-+-+-+-+-+-+-+ pisania dla grupy
4+2+1 4+2+0 0+0+0
7 6 0 czyli chmod 760 plik0
+-+-+-+-+-+-+-+-+-+
|r|-|-|-|-|-|r|w|-| uprawnienie do czytania dla właściciela oraz prawo do
+-+-+-+-+-+-+-+-+-+ czytania i pisania dla innych użytkowników
4+0+0 0+0+0 4+2+0
4 0 6 czyli chmod 406 plik0
Polecenie 'chmod' można wykonywać z parametrem '-R' (ang. recursive), np.
chmod -R 006 gre*
jeśli gre* natrafi na katalog to wszystkie jego podkatalogi z plikami
włącznie otrzymają prawo do czytania i pisania tylko dla innych
użytkowników!
Poleceniem dosyć ważnym jest jeszcze 'unmask', który precyzuje standardowe
prawa dostępu dla plików w momencie ich zakładania! Wydanie polecenia:
unmask
pokazuje liczbę, zazwyczaj '022', ktora odejmowana jest od pełnego
zestawu praw, to jest
+-+-+-+-+-+-+-+-+-+
|r|w|x|r|w|x|r|w|x| pełne uprawnienia dla wszystkich
+-+-+-+-+-+-+-+-+-+
4+2+1 4+2+1 4+2+1
7 7 7 777 dla katalogów
i
+-+-+-+-+-+-+-+-+-+
|r|w|-|r|w|-|r|w|-| pełne uprawnienia, bez uruchamiania (!) dla wszystkich
+-+-+-+-+-+-+-+-+-+
4+2+0 4+2+0 4+2+0
6 6 6 666 dla plików
czyli oznacza to, że standardowo będą tworzone pliki z uprawnieniami 644 i
katalogi z uprawnieniami 755!
Wydanie polecenia:
unmask 077
odbierze wszystkim, poza właścicielem, wszelkie prawa do plików (kat.),
uwaga, obowiazuje tu artmetyka ósemkowa (octalna)!!!
4. Co to są grupy?
Pora teraz zająć sie grupami, co to jest i jak to sie je?
Po wydaniu polecenia 'ls -l', otrzymaliśmy wynik:
[...]
1 drwxr-xr-x 9 jasio users 512 Jul 11 12:30 katalog4
2 -rw-rw-r-- 1 jasio jasio 159 Dec 22 15:15 jedenplik
[...]
Wiemy już, że 'jasio' jest właścicielem, ale w (2), 'jasio', jest
tez oznaczony jako grupa, co to oznacza? Po prostu, grupą w tym przypadku
jest tylko 'jasio' czyli tak naprawdę nie ma żadnych grup ;-), w
przypadku (1), grupa 'users' to najczęściej użytkownicy systemu, czyli np:
users to jasio, halinka, basia, asia itp.
Oto przykładowa definicja pliku /etc/group
# cat /etc/group
root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
sys::3:root,bin,adm
adm::4:root,adm,daemon
tty::5:
disk::6:root
lp::7:daemon,lp
mem::8:
kmem::9:
wheel::10:root
mail::12:mail
news::13:news
uucp::14:uucp
man::15:
games::20:
gopher::30:
dip::40:
ftp::50:
nobody::99:
users::100:jasio,halinka,basia,asia
jasio::500:jasio
halinka::501:halinka
[...]
#
czyli:
name:password:gid:login
name - nazwa grupy
password - hasło (najczęściej puste, czyli ::)
gid (GID) - Group Id (identyfikator grupy)
login - login
5. Jak się szybko poruszać po systemie plików?
Teraz musimy się nauczyć szybkiego poruszania po Unix'ie, poznalismy
już polecenie 'ls', czas teraz na nastepne:
cd - zmienia katalog (ang. change directory)
np.:
cd .. - przejdziemy do wyższego katalogu (rodzica)
cd katalog1 - wejdziemy do katalogu 'katalog1'
cd /etc/rc.d - wejdziemy do katalogu '/etc/rc.d'
cd / - wejdziemy do głównego (root) katalogu!
pwd - podaje bierzący katalog (patrz. II.1.)
mkdir - tworzy katalog
np.:
mkdir lala - tworzy katalog 'lala'
mkdir k1/k2 - tworzy katalog 'k2' w katalogu 'k1' (jesli trzeba to
tworzy katalog 'k1')
mkdir -p k1/k2/k3 - tworzy po kolei 'k1', 'k2', 'k3' w sobie
(konieczny parametr -p 'parent')
mkdir k1 k2 k3 - tworzy katalogi w bierzącym katalogu :-)
rmdir - usuwa katalog (musi byc pusty!)
np.:
rmdir k1 - usuwa katalog 'k1'
rmdir k1 k2 k3 - usuwa katalogi
cp - kopiowanie plików
np.:
cp p1 p2 - kopiuje plik 'p1' do pliku 'p2'
cp p1 /etc - kopiuje plik 'p1' do katalogu '/etc'
cp -i p1 p2 - kopiuje plik 'p1' do pliku 'p2' ale jeśli plik 'p2' istnieje
pyta sie czy go zamazać
cp -r k1 k2 - kopijuje katalog 'k1' i automatycznie tworzy katalog 'k2'
mv - przenoszenie i zmiana nazwy plików
np.:
mv p1 p2 - zmienia nazwę z 'p1' na 'p2'
mv p1 /etc - przenosi plik 'p1' do katalogu '/etc'
mv -i p1 p2 - przenosi plik 'p1' do pliku 'p2' ale jeśli plik 'p2'
istnieje pyta się czy go zamazać.
rm - usuwa plik
np.:
rm p1 - usuwa plik 'p1'
rm -i p1 - pyta sie czy usunąć i po potwierdzeniu usuwa
rm -r k1 - usuwa katalog, wszystkie pliki i podkatalogi!!!
cat - wypisuje zawartość pliku na standardowe wyjście (ekran, plik ...)
np.:
cat p1 - wyświetla zawartość pliku 'p1'
cat > p1 - pozwala zapisać tekst do pliku 'p1' po naciśnięciu Ctrl-D
Obok polecenia 'cat', możemy użyć jeszcze 'more' czy 'less', ktore są
dostępne w niektórych instalacjach Unix'a, np. Linux'a ;-)
joe, ed, vi - proste edytorki tekstowe
6. Co to są dżokery?
Zadasz może pytanie, jak zachaczyć większe grupy plików (kat.) np. przy
kopiowaniu, przecież nie będziesz samemu sam wszystkiego wpisywał, nie?
Tak więc piszemy znak:
*
obejmuje wszystkie zwykłe pliki w bierzącym katalogu
np. p1 p2 p3 p4 k1 k2 k3 k4 itd.
nie obejmuje natomiast plików ukrytych, czyli tych zaczynających się od
kropki (kropek) np. .ps1 .ps2 .ks1 .ks2 ... .. ...ps6 ........k8 itd.
Pliki te obejrzymy pisząc:
.*
Pisząc:
Agna*La*
dostaniemy np. Agna123sddddLa33fdff, czy Agna233La000
Znakiem:
?
zastepujemy, dokładnie jeden znak ;-) np.
A?a
może oznaczać Ala A9a Aaa AAa itd., a A???a może znaczyć A123a itd...
Pisząc:
[123]a
otrzymamy: 1a 2a lub 3a, zamiast [123]a, możemy napisać [1-3]a, co
oznacza dokładnie to samo! ([a-z], [A-Z], [A-Za-z0-9] itd).
możemy jeszcze użyć:
test.{exe,obj,out,o,exe}
Pasuje do: test.exe test.obj test.out test.o i test.exe
Oczywiście możemy kombinować, np:
Linu?-[0-9]*-[abcde0-9]???{exe,out,tar,gz}.*[QWEhj35]
też ma, zawiły bo zawiły, ale zawsze jakiś sens ;-)
7. Jakie są dżokery specjalne?
Inne znaki (dżokery) specjalne:
& - uruchamianie procesu w tle
np.:
playmidi muzyka.mid &
> - kieruje na wyjście (standard out)
np.:
echo "To jest tekst" > p1
1> - dokładnie to samo co poprzednie, kieruje na wyjście
(standard out)
np.:
echo "To jests tekst" 1> p1
2> - kieruje błędy na wyjście (standard error)
np.:
ls olo23 2> plik.z.bledami
< - kieruje na wejście zawartość pliku (standard in)
np.:
sort < p1
>> - kieruje na wyjście i np. dołancza do końca pliku
np.:
echo "Pierszy wiersz" > p1
echo "Drugi wiersz" >> p1
>& - zmienia kierunek strumieni standard out i standard error
np.:
ls olo23 >& plik.z.bledami
| - kieruje wynik programu do innego na wejście (wyjście na wejście)
(standard out => standard in)
np.:
ls -Fla | more
|& - kieruje na standard out także strumień z błędami
(wyjście+wyjście z błędami na wejście)
(standard out+standard error => standard in)
np.:
cat niemamnie |& more
Oczywiscie możemy wszystko kombinować ze sobą np:
sort < plik.nie.posortowany >> plik.jest.posortowany
lub
(ls niemamnie > info.plik) >& error.error.error
8. Co to są polecenia procesowe?
Do obsługi procesów (uruchomionych programów) i zadań (wiele procesów),
bardzo użytecznym programem jest 'ps'
(ang. proces status)
Jeśli wywołamy go bez żadnych parametrów, naszym oczą ukarze się:
$ ps
PID TTY STAT TIME COMMAND
282 1 S 0:02 /bin/login -- root
285 4 S 0:00 (mingetty)
286 5 S 0:00 (mingetty)
287 6 S 0:00 (mingetty)
301 1 S 0:01 (bash)
399 1 R 0:00 ps
$
po wydaniu polecenia 'ps -aux', gdzie parametry oznaczają
a - wszystkie procesy (all)
x - dodanie procesów nie kontrolowanych przez terminal (ang. deteched)
u - identyfikacja użytkowników (users)
$ ps -aux
USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
bin 95 0.0 0.6 896 44 ? S 20:32 0:00 (portmap)
news 296 0.0 7.9 1580 516 ? S 20:33 0:00 /sbin/innd -p5 -r
news 300 0.0 0.3 872 24 ? S 20:33 0:00 (overchan)
jasio 283 0.1 11.0 1012 716 2 S 20:33 0:01 /bin/login -- jasio
jasio 344 0.1 10.1 1220 656 2 S 20:38 0:01 -bash
asia 358 0.2 10.7 1012 700 3 S 20:39 0:01 /bin/login -- asia
asia 359 0.1 9.7 1216 632 3 S 20:39 0:00 -bash
root 1 0.3 1.6 880 104 ? S 20:30 0:04 init
[...]
root 465 0.0 6.2 928 404 1 R 20:53 0:00 ps -aux
$
USER - użytkownik procesu
PID - numer identyfikacyjny procesu
TTY - procesy związane z naszym terminalem
STAT - status procesu
R - proces działający (ang. running)
T - proces zatrzymany (ang. stopped)
P - proces w stanie spoczynku (ang. page wait)
D - proces w stanie spoczynku (ang. disk wait)
S - proces w stanie spoczynku (ang. sleeping)
I - proces w stanie spoczynku (ang. idle)
Z - proces duch (ang. zombie), zakończył się ale nie rozliczył
sie jeszcze z procesami nadrzędnymi!
TIME - jak długo działa proces
COMMAND - nazwa programu, której odpowiada proces
%CPU - ilość zaangażowania procesora w procesie
%MEM - jaką część pamięci operacyjnej zajmuje proces
START - czas startu procesu
Oczywiście jest to _prawdziwy_ system operacyjny, a nie jakiś windows, czy
inne gówno, tak więc każdy proces, możemy zabić poleceniem:
$ kill [-signal] [PID]
gdzie najsłapszym sygnałem jest ten oznaczony przez -1 a najmocniejszym -9
czyli sygnały numerowane są od -1 do -9.
np.
$ kill 200
200 terminated
$
a jesli proces jest oporny i nie chce dać się ubić, napisz
$ kill -9 [PID]
mało, który to przeżyje ;-)
Aby zabić równocześnie wszystkie procesy, warto napisać:
$ kill -9 -1
Acha, jesli jesteś samobójcą napisz
$ kill -9 0
Hieee, ha, ha ;->
Można też używać polecenia killall, o składni:
$ killall bash
zabije wszystkie procesy związane z zadaniem bash (występuje słowo bash).
Dowolny proces możemy w dowolnym momencie zatrzymać lub przerwać. Do
zatrzymania procesu wystarczy kombinacja klawiszy Ctrl+z, oczywiście
tak zatrzymany proces możemy powtórnie "kontynułować". Aby przerwać
stosujemy kombinację klawiszy Ctrl+c.
Do obsługiwania zadań, posiadamy jeszcze komendy
jobs - wyświetla zadania aktywne ([JOB] to numer zadania)
np.
$ jobs
[1]- Stopped (tty output) man tar
[2]+ Stopped man gzip
[3]+ Running find / -name "*.txt" &
$
gdzie, pierwsza kolumna to numer zadania (JOB), plus lub minus oznacza
aktywne(+) lub nieaktywne(-) zadanie, trzecia kolumna omawia bierzący
stan zadania (Stopped - zatrzymane, Running - w toku), czwarta oznacza,
gdzie znajduje sie wyjście zadania, a piąta, wykonywane polecenie.
bg %[JOB] - uruchamia zawieszone zadanie [JOB], w tle
fg %[JOB] - uruchamia zawieszone zadanie [JOB], w pierwszym planie
kill %[JOB] - przerywa zadanie [JOB]
Obok tu stosowanych metod zarządzania procesami, alternatywną i wygodną
metodą jest praca z programem screen (/usr/bin/screen), program ten
pozwala na pracę na kilku konsolach jednocześnie oraz pozwala na
pozostawienie działających procesów po wylogowaniu!
Program uruchamiamu pisząc:
$ screen
lub
$ /usr/bin/screen
teraz możemy rozpoczynać procesy.
Kombinacja klawiszy Ctrl+a+d pozwala na zakończenie sesji screen'a.
Ponowne uruchomienie screen'a (np. po ponownym zalogowaniu się) przez:
$ screen -r
pokazuje aktywne procesy (screen'y) i ich PID'y. Pisząc:
$ screen -r PID
przechodzimy (powracamy) do danego procesu.
Parametr:
$ screen -x
Pozwala zakończyć "uszkodzoną" sesję screen, a parametr -wipe, usuwa z
pamięci i dysku informację o procesach za'screen'owanych (oczywiście
tych uszkodzonych). Cały czas w czasie działania screen'a aktywne są
kombinacje klawiszy:
Ctrl+a+d - zakończenie sesji z screen'em, można też napisać
exit lub logout
Ctrl+a+c - dodanie dodatkowego ekranu (dla procesu)
Ctrl+a+spacja - przełączenie na następny ekran
Ctrl+a+a - przełączenie na poprzedni ekran
Ctrl+a+0..9 - wybór ekranu o numerze od 0 do 9 (max. 10)
9. Polecenie "su".
W Unix'ie możemy otwierać kilka równoczesnych sesji, aby to zrobić
nie przerywając poprzedniej sesji, piszemy:
$ su -[user]
gdzie, [user] to identyfikator użytkownika, potem podajemy hasło i sesja
jest już otwarta.
10.Jak spakować dane?
W miare wygodnie jest rozwiązane pakowanie i archiwizacja danych w
systemach Unix'owych. Najczęściej używanymi do tego programami są
archiwizator 'tar' (ten program TYLKO! archiwizuje NIE! kompresuje) oraz
kompresory (bardzo często używane razem z 'tar'em), 'gzip' i 'compress'.
Ostatnio coraz cześciej można spotkać, znane ze środowiska DOS i nie
tylko kompresory 'arj', 'rar' oraz 'lharc'.
Polecenia:
$ tar -cvf pliki
Tworzy archiwum z rozszerzeniem 'skompresowany_plik.tar'
(UWAGA! Takie archiwum wypada skompresowac, np. za pomocą 'gzip'a
lub 'compress'a).
$ tar -xvf
Rozarchiwizowuje plik 'zarchiwizowany_plik.tar'.
Poleceniem:
$ tar -tf
Przeglądamy archiwum 'zarchiwizowany_plik.tar'.
$ gzip
Kompresujemy plik 'plik', wynikiem jest powstanie pliku 'plik.gz',
a po wydaniu:
$ compress
Kompresujemy plik 'plik', wynikiem jest powstanie pliku 'plik.Z'.
Tak skompresowane pliki rozpakowujemy:
$ gzip -d
lub
$ compress -d
Najczęściej w Unix'ach stosujemy rozszerzenia *.tar.gz lub *.tgz,
które powstają po archiwizacji programem 'tar' i kompresji
programem 'gzip'.
Rozkompresowujemy poleceniem:
$ tar -zxvf
Najczęściej stosowane opcje:
v - wypisuje komentarze na temat przetwarzania pliku (ang. verbose)
c - zakładanie nowego archiwum (ang. create)
t - wypisywanie zawartości pliku arch. (ang. table of contents)
u - dodawanie nowych plików do arch. (ang. update)
x - odkompresowywanie plików (ang. extract)
z - arch. typu gzip
11.Ile miejsca na dysku?
Warto też znać jak sprawdzić ilość wolnego miejsca na dysk(u/ach).
Piszemy 'df' (ang. disk free)
$ df
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/hda2 326885 237977 72024 77% /
/dev/hda1 269960 243432 26528 90% /mnt/hdd
gdzie:
Filesystem - nazwa danego systemu plikowego
1024-blocks - ilosc wolnych 1024-bloków (kb) [kbytes]
Used - ilosc używanych 1024-bloków (kb) [used]
Available - ilość wolnych 1024-bloków (kb) [avail]
Capacity - ile procent systemu plików jest zajmowany [capacity]
Mounted on - gdzie dany system plików jest podpięty (patrz dalej)
Drugim użytecznym poleceniem, jest polecenie 'du' (ang. disk usage),
ktore pokazuje ilość miejsca (kb), zajmowanego przez pliki w danym
katalogu oraz we wszystkich podkatalogach. A jako ostatnia wyświetlona
liczbę, podaje łączną objętość wszystkich plików w tych katalogach.
Np.
$ du
13 ./.xfm
26 ./scripts/irc
27 ./scripts
1 ./mail
1208 ./tst
6 ./hack
30 ./tst2
1323 .
$
PS.
Pamieć w systemie Linux możemy skontrolować pisząc np.
$ cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 6643712 6533120 110592 4706304 372736 1679360
Swap: 17543168 204800 17338368
MemTotal: 6488 kB
MemFree: 108 kB
MemShared: 4596 kB
Buffers: 364 kB
Cached: 1640 kB
SwapTotal: 17132 kB
SwapFree: 16932 kB
$
Co poinformuje nas o używanych zasobach (pamieci, swapu itd.)
12.Jak przygotować własny system plików?
Jeżeli chcemy użyc dyskietki, to musimy ją najpierw sformatować:
# fdformat /dev/fd0H1440
formatuje dyskietkę w napędzie 3.5" na 1.44MB, a następnie utworzyć
system plików:
# mkfs -t ext2 -c /dev/fd0H1440
tworzy system plików dla Linux'a (ext2), a
# mformat a:
tworzy system plików, typu dosowskiego (FAT).
Aby skopiować coś na te dyskietki piszemy:
# dd if=file_name of=devie_name
lub
# cp file_name device_name
gdzie,
file_name - plik(i) do skopiowania (nazwa urządzenia)
device_name - nazwa urządzenia na ktore kopiujemy (np. /dev/fd0)
Czyli np. kopiowanie pliku /etc/passwd na dyskietkę w systemie dos,
może np. wyglądać tak:
1) # fdformat /dev/fd0H1440
2) # mkfs -t msdos -c /dev/fd0H1440 lub # mformat a:
3) # mount -t msdos /dev/fd0 /mnt
4) # cp /etc/passwd /mnt
5) # umount /mnt
Oczywiście dyskietkę dos'owska możemy przygotować wcześniej w dos'ie,
wtedy to operacja skróci się tylko do punktów 3), 4) i 5).
O mountowaniu i wymountowywaniu pisze dalej...
Różne Unix'y maja zainterpretowane różne systemy plików i tak np. Linux
posiada (cat /proc/filesystem):
ext
ext2 - Linux
xiafs
minix - Minix
umsdos
msdos - DOS
nfs - Network File System
proc
smbfs
iso9660 - CD-ROM
oraz jeszcze kilka innych...
Aby użyć np. dyskietke czy CD-ROM, a nawet inna partycje z np. DOS'em
trzeba ja najpierw zamountować (polecenie 'mount'), a po zakonczonej
pracy wymountować (polecenie 'umount'). Acha, trzeba pamiętać, że te
polecenie może wydawać tylko root.
I tak aby to robic automatycznie i półautomatycznie, w niektórych
Unix'ach (Linux etc.) stosuje sie plik /etc/fstab
# cat /etc/fstab
/dev/hda2 / ext2 defaults 1 1
/dev/hda3 swap swap defaults 0 0
/dev/fd0 /mnt/fda msdos noauto 0 0
/dev/fd1 /mnt/fdb msdos noauto 0 0
/dev/hdb /mnt/cdrom iso9660 noauto 0 0
/dev/hda1 /mnt/hdd msdos defaults 0 0
none /proc proc defaults 0 0
#
gdzie,
pierwsza kolumna - urzadzenie (system plików)
druga kolumna - gdzie bedzie dostępne urządzenie
trzecia kolumna - rodzaj systemu plików
czwarta kolumna - parametry (np. auto, noauto, defaults, [user])
piąta kolumna - odnosi sie do programu dump
szósta kolumna - odnosi sie do programu fsck (1 - sprawdzać file system
przy boot'owaniu 0 - nie sprawdzać)
teraz wystarczy napisać tylko (po nowym starcie systemu):
# mount
/dev/hda2 on / type ext2 (rw)
/dev/hda1 on /mnt/hdd type msdos (rw)
none on /proc type proc (rw)
#
i już wiemy co i jak (rw - read/write ro - read only), główny katalog
mamy zamountowany w '/', a w katalogu /mnt/hdd, mamy partycje dos'owską.
Teraz aby zamountować cdrom, wystarczy napisać:
# mount /mnt/cdrom
a wymountowć
# umount /mnt/cdrom
Jeśli zaś nie mamy pliku /etc/fstab, musimy napisać
# mount -t iso9660 /dev/hdb /mnt/cdrom
i/lub
# mount -t msdos /dev/hda1 /mnt/hdd
aby zamountować partycje dosowską. Aby wymountować wystarczy napisać
# umount /mnt/hdd
Ogólnie mountujemy pisząc:
# mount -opcje filesystem urządzenie podczepić_pod_katalog
Trzeba pamietać, aby przed zamountowaniem, w np. CD-ROM'ie obecny był CD!
Acha, troche o urządzeniach:
/dev/hda - oznacza pierwszy dysk twardy (IDE/EIDE)
/dev/hda1 - pierwsza partycje na pierwszym dysku twardym
/dev/hda2 - drugi...
/dev/hdb - drugi dysk twardy lub cd-rom
/dev/sda - pierwszy dysk wardy (SCSI)
/dev/sda1 - pierwsza partycja na pierwszym dysku twardym
/dev/sdb - drugi...
/dev/fd0 - pierwsza stacja dysków elastycznych
/dev/fd0H1440 - dyskietka 3.5" 1.44MB
/dev/fd0H1200 - dyskietka 5.25" 1.20MB
/dev/fd1 - druga stacja dysków elastycznych
/dev/cua0 - COM1
/dev/cua1 - COM2
/dev/lp0 - LPT1
/dev/lp1 - LPT2
/dev/null - urządzenie puste
/dev/swap - urządzenie swap
/dev/... - itd.
13.Co to są aliasy?
Aliasy, czyli przypisanie komendy skrótowi,też się przydają, pisząc np.
$ alias skrót=`polecenie -opcje`
np.
$ alias dir=`ls -Fla`
$ alias copy=`cp $1 $2`
to bylo dla bash'a
$ alias skrót "polecenie -opcje"
np.
$ alias dir "ls -Fla"
$ alias copy "cp $1 $2"
to bylo dla tcsh'a.
14.Jak się ze sobą porozumiewać?
Czasami chcemy sie zorientować z kim jednocześnie jesteśmy w systemie,
piszemy:
$ users
root halinka asia
$
I otrzymamy identyfikatory pracujących użytkowników, ale aby wiedzieć
więcej napiszmy:
$ who
root tty1 Jan 27 20:33
halinka tty2 Jan 27 20:38
asia tty3 Jan 27 20:39
$
pierwszy rząd to login użytkownika, drugi to jego (usera) terminal, a
trzeci i ostatni to dokładna data i czas zalogowania. Zaś jeśli napiszemy:
$ whoami
root
$
Otrzymamy identyfikator bierzacego użytkownika, piszac zaś:
$ who am i
alpha!root ttyp1 Jan 27 20:33
$
Otrzymamy to co powyżej, z informacja o nazwie komputera, typu terminala i
dacie i czasie rozpoczecia pracy.
możemy tez napisać:
$ w
8:43pm up 13 min, 3 users, load average: 0.07, 0.20, 0.20
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 8:33pm 1.00s 11.62s 0.75s w
halinka tty2 8:38pm 42.00s 3.25s 1.32s -bash
asia tty3 8:39pm 4:25 2.87s 0.91s -bash
$
I wiemy trochę więcej...
8:43pm - bieżąca godzina (20:43)
up 13 min - jak długo pracuje nasz system (13min)
3 users - ilu użytkownikow pracuje
load average - obciążenie systemu przez programy
USER - identyfikator użytkownika [User]
TTY - nazwa terminalu [tty]
FROM - informacja dodatkowa []
LOGIN@ - godzina zalogowania [login@]
IDLE - ile czasu upłyneło od ost. naciśniecia klawisza [idle]
JCPU - czas zużyty przez wszystkie programy na danym terminalu
PCPU - oraz przez wszystkie programy w danym momencie
WHAT - nazwa aktywnego procesu [what]
Bardzo często używane jest tez polecenie
$ finger
LOGIN NAME TTY IDLE WHEN WHERE
root root ttyp1 1.01s Jan 20:33 Unknow
$
Dodatkowo dostajemy informacje, gdzie znajduje sie miejsce pracy
użytkownika. możemy tez dokładniej dowiedzieć się więcej o danym
użytkowniku np.
$ finger root@alpha.center.net
Login name: root In real life: root
Directory: /root Shell: /bin/bash
On since Jan 27 20:33:11 on ttyp1 at Unknow
No unread mail
No Plan.
$
Jak widać dowiadujemy się, jakie są prawdziwe personalia użytkownika
(In real life), nazwy jego kartoteki prywatnej (Directory),
rodzaj shell'a (Shell), kiedy sie zalogował (On since), lub kiedy ostatnio
był w sieci (Last login), czy dostał/czytał ostatnią paczkę poczty i kiedy
oraz wyświetla jeśli jest plik .plan (.project) użytkownika (No Plan).
Polecenie możemy jeszcze wywoływać:
$ finger root
$ finger @alpha.center.net
$ finger gutek@194.102.102.7
$ finger @194.241.101.38
itp.
Do porozumiewania sie z innymi użytkownikami, używamy:
mesg y|n - zezwolenie lub nie na przyjmowanie komunikatów
write login [tty?] - wysłanie komunikatu do login, u osoby do której
wyślemy pojawi sie tekst:
Message from alpha!root on tty1 at 23:33 i wiadomosc
talk login[@adres] - możemy nawiazac interaktywny kontakt nie tylko z
osobą z naszego komputera, ale też innego z sieci.
Możliwe komunikaty:
No connect yet - brak połączenia
Waiting for your party to respond - czekanie na odp.
Your party is not logged on - brak partnera w sieci
Ringing your party again - ponowne wezwanie
Connection established - nawiązano połączenie
po stronie adresata pojawi się zaś
Message from Talk_Daemon@kom.net at 23:33
talk: connection requested by root@kom.net
talk: respond with: talk root@kom.net
Czyli jeśli adresat po odczytaniu tego napisze
talk root@kom.net, to połączenie zostanie nawiązane
wall [plik.txt] - wysłanie tekstu do wszystkich użytkowników
rwall [plik.txt] - wysłanie tekstu do wszystkich w sieci
ruser [system] - wyświetla użytkowników pracujących w [systemach]
III. SEKCJA C : sieć
1. Co to jest URL?
URL (Uniform Resource Locator), ustala położenie sieciowe, plików,
katalogów, zapytań, rezultaty wywołań komend, dzwięków itp. itd.
I tak, URL wskazujący na plik, ma postać:
file://host.domena[/ścieżka/][plik]
np:
file://127.0.0.1/plik.zip
URL wskazujący na FTP, ma postać:
ftp://host.domena[/scieżka/][plik]
np:
ftp://127.0.0.1/
Aby zalogować się na konto (=! anonymous), pokryte hasłem piszemy:
ftp://passwd:login@host.domena[/scieżka/][plik]
np:
ftp://de3fk:anika@127.0.0.1/
URL wskazujący na news'y, ma postać:
news:[//host.domena[/ścieżka/]]xxx.yyyyy
np:
news:alt.2600
Uwaga!
Trzeba pamiętać, o zdefiniowaniu zmiennej środowiskowej NNTPSERVER!
URL wskazujący na artykuły Gopher'a, ma postać:
gopher://host.domena[:port][/ścieżka]
np:
gopher://gopher.ae.poz.edu.pl:70/
URL związany z HTTP (HyperText Transport Protocol), ma postać:
http://host.domena[:port][/ścieżka/plik[#etykieta]]
np:
http://www.tande.com/arexus
URL wskazujący na serwer:
telnet://host.domena[:port]
2. Co to jest FTP?
Jeśli zastanawiasz się w jaki sposób przesyłać pliki w ogólno światowej
sieci internet, to mam dla Ciebie przygotowaną odpowiedz, do tego celu
służy (bardzo często), program FTP (File Transfer Protocol)!
Jeśli chcesz "zassać" pliki z jakiegoś komputera, musisz koniecznie
znać jego nazwę lub numer w sieci, oraz mieć na nim założone konto
chronione hasłem.
Na szczęście InterNet ofiwarowuje nam bardzo dużo, tak zwanych,
anonimowych kont (Anonymous FTP), z których bez ograniczeń (z wyjątkami,
z wyjątkami;-), możemy "zassysać" pliki (uwaga znajdziemy sie wtedy w
kartotece specjalnie to tego przeznaczonej, najczęściej /home/ftp/ lub
/usr/ftp (albo podobnej), która nam będzie się pokazywała jako "/", ale to
NIE JEST root directory!!!).
Acha, jeśli logujemy się na konto typu anonimowego, jako login wpisujemy
anonymous lub guest, a zamiast hasła podajemy swój adres pocztowy -
przynajmniej należy to do dobrego tonu, choć nie polecam tego hackerom,
możemy podawać jako hasło np. gucio@elb.pas.edu.pl lub też tylko gucio@.
Komende ftp, możemy wywołać z parametrami:
-d (włącza sledzenie)
-g (wyłącza rozszerzenia nazw plików)
-i (wyłącza zapytania)
-n (wyłącza auto-login) dotyczy to pliku ~/.netrc
gdzie: machine name (nazwa maszyny)
login name (identyfikator)
password str (hasło)
account str (dodatkowe hasło)
macdef name (makrodefinicja)
-v (wyświetla komunikaty)
Łączymy sie na przykład:
$ ftp adres.jakiegoś.komputera.pl
lub
$ ftp
ftp> open adres.jakiegoś.komputera.pl
a dalej
Connected to adres.jakiegoś.komputera.pl
220 jakiś.komputer FTP server (UNIX x.x) ready.
Name (adres.jakiegoś.komputera.pl:gucio): anonymous (lub guest)
331 Guest login ok, send ident at password.
Password: gucio@ (tego nie widać, ale to zależy)
230 Guest login ok, acces restrictions apply.
ftp> bin
200 Type set to I.
ftp>
I teraz używamy sobie stosując komendy, wiekszość o podobnej składnii, jak
omówione wcześniej (II.2 & II.5).
Uwaga, w niektórych komendach można zastosować "!", który okresla komputer
lokalny (wywołana zostaje lokalna powłoka),
np. !cd - zmieni katalog (lokalny)
ls - wydruk zawartości katalogu (zdalnego) wraz z uprawnieniami (dir).
cd - zmiana katalogu (zdalnego).
cdup - zmiana katalogu (zdalnego) na nadrzędny.
pwd - podaje nazwę katalogu (zdalnego).
lcd - podaje nazwę katalogu (lokalnego).
dir - wyświetla katalog (zdalny) i ewentualnie zapisuje do pliku
(lokalnego).
Składnia: dir [katalog_zdalny] [plik_lokalny]
get - pobiera plik z komputera (zdalnego) i zapisuje na lokalnym,
ewentualnie zmienia nazwę pliku na inną.
Składnia: get plik_zdalny [plik_lokalny]
mget - pobiera jeden lub wiecej plików z komputera (zdalnego) i zapisuje
na komputerze lokalnym. Mozna stosować maski!
Skladnia: mget *2.0.{29,30,31}*t[ag][rz]*
mget *.txt
put - umieszcza jeden plik z komputera (lokalnego) i kładzie na komputer
zdalny, ewentualnie zmieniajac jego nazwę.
Skałdnia: put plik_lokalny [plik_zdalny]
mput - umieszcza jeden lub wiece plików z komputera (lokalnego) na
komputer zdalny.
Składnia: mput *.tgz
asc - zmienia (ascii) tryb transferu na ascii (przesyłanie TYLKO tekstu)
Jeśli prześlesz w tym trybie binaria to są już zniszczone!!!!
bin - zmienia (binary) tryb transferu na binarny (przsyłanie wszystkiego
bardzo ważne)!
Oraz inne komendy programu FTP (na platformach UNIX):
! - wywołuje lokalna powłokę.
Składnia: ![komenda_lokalnego_shella [arg]]
$makro [arg] - wykonuje makro, które jest zdefiniowane komenda macdef.
account [pas] - podaje dodatkowe hasło.
append l [z] - dołancza zbiór lokalny (l) do zbioru na odleglym komp.
bell - uaktywnia informowanie dźwiękowe.
bye, quit - konczy sesję ftp (jeszcze close & disconnect).
case - przełącza małe litery na duże.
chmod up pl - zmienia uprawnienia pliku.
cr - rodzaj traktowania znacznika konca linii.
delete - uzuwa plik zdalny.
debug - przełancza tryb sledzenia.
form format - ustala rodzaj formatu transferu.
glob - ...
hash - przełacza wyświetlanie znaku "#" po 1024 bajtach.
help [komend] - pomoc.
idle [sek] - ustawia timer nieaktywności na serwerze
na [sekundy], jeśli nie podamy parametru
to komenda wypisze obecny stan timera,
timer ten określa, po ilu sekundach
nieaktywnosci zakończyć połączenie.
newer pl - pobiera plik z serwera, o ile ten plik jest nowszy niż
ten, ktory my posiadamy na komputerze lokalnym.
nlist [d] [l] - działa tak samo jak ls.
nmap [in out] - konwertuje nazwy plików z in na out - przydatne przy
transferowaniu plikow miedzy roznymi systemami, "Kawałki"
wzorów oznacza się przez kolejne symbole $,
np.: nmap $1.$2 $2.$1, mam np. plik asd.xyz i $1 teraz
oznacza "asd", a $2 "xyz", czyli plik "asd.xyz" zmieni się
w "xyz.asd", jeszcze jedna rzecz: można używać w out takiej
składni jak np.: [seq1,seq2], oznacza to, że w wypadku,
gdy seq1 kończy się zerem, to do przekształcania, wybraną
będzie sekwencja seq2, np: nmap $1.$2 [$2,$1], spowoduje
to przekształcenie pliku (dalej niech przykładem bedzie
"asd.xyz") na "asd" - bo seq1 (czyli $2) jest zakonczony 0
($2 to "xyz"), oczywiście w wypadku, gdy seq1 nie kończy
się zerem, to ona (seq1) jest podstawiana, jeszcze jedno,
jeśli chcemy użyć znaku '$' jako elementu wzoru
(a nie zmiennej), to musimy go poprzedzić '\' - czyli "\$".
[Opis tej instrukcji przepisałem z ftp.txt, autor nieznany]
ntrans [i [o]]- tłumaczy znaki w nazwach plików z i na o podczas
wykonywania komend put, mput, get oraz mget.
macdef nazwa - definiuje makrodefinicje, linia pusta kończy makro.
mdelete - usuwa zdalne pliki zgodne z maską.
mdir z l - wiele katalogów zdalnych w jednym pliku lokalnym. (mls)
mkdir - tworzy katalog zdalny.
mls z l - wiele katalogów zdalnych w jednym pliku lokalnym.
mode [tryb] - ustala tryb transferu.
modtime pl - podaje czas ostatniej modyfikacji pliku z serwera.
open kom [pr] - nawiązuje połączenie z hostem (kom), przez port (pr).
prompt - wyłancza potwierdzenie.
proxy kom_ftp - wykonuje komendę ftp na dodatkowym połączeniu.
quote arg1 ...- przesyła argumenty do serwera.
recv z [l] - synonim polecenia get.
reget z [l] - pobieranie pliku z serwera (z), w ten sposob, że jeśli na
maszynie lokalnej mamy już taki plik, to będzie do niego
dodawana zawartość pliku z serwera (z), komenda ta
umożliwia wznowienie transferu pliku po np.: zerwaniu
połączenia, czy innych kłopotach z siecią.
remotehelp - zdalny help.
reset - czyści kolejkę odpowiedzi, rozsynchronizuje
sekwencjonowanie komend i odpowiedzi serwera z komputerem
lokalnym.
restart offset- restartuje get lub put od określonego offsetu.
rename - zmienia nazwe pliku.
rmdir - usuwa zdalny katalog.
runique - unikalna nazwa na lokalnym komputerze.
sunique - unikalna nazwa na zdalnym komputerze.
send - tak jak put.
sendport - włącza i wyłącza korzystanie z komendy PORT.
site arg1 ... - przesyła argumenty serwerowi jako komendy SITE.
status - pokazuje status ftp.
struct [naz] - ustala nazwę struktury.
system - podaje nazwę systemu operacyjnego serwera.
tenex - zmien rodzaj transferu na taki, by dogadać się z
maszynami TENEX.
trace - łącza sledzenie pakietów.
type [typ] - określa typ transferu.
user l [p] [k]- identyfikacja usera na odległym ftp.
verbose - włącza komunikaty.
? [kom] - jak help [kom].
3. Co to jest Telnet?
Telnet umożliwia zdalną prace na komputerze (np. korzystanie z usług
publicznych - bazy danych, katalogów bibliotecznych).
Jak? Tak:
$ telnet adres.pl [port]
lub
$ telnet
telnet> open adres.pl [port]
Kończymy sesję naciskając (najczęściej) ^] (Ctrl-])]
Niektóre komendy programu telnet:
? [komenda] - pomoc.
open komp [p] - połączenie z hostem komp na porcie (p).
close, quit - koniec.
mode typ - typ przesyłania (line/char).
status - status programu telnet.
display [arg] - pokazuje wybrane wartości.
send arg - wysyła na komputer znaki specjalne.
set arg wart - ustawia zmienne telnet'u.
4. Co to jest WWW?
WWW (W3) czyli World-Wide-Web, jest usługą internetową, opartą na
hipertekście, a dokładnie na protokole http (HyperText Transfer Protokol).
Dokumenty połączone są między sobą poprzez wyselekcjonowane zwroty, np.
aREXus, kilikając na aREXus,
przeniesiemy się do dokumentu na stronie www.tande.com/arexus!
Do porusznia się po świecie WWW używamy browserów.
Najbardziej znane to:
Lynx - klient textowy (Unix)
Netscape - klient graficzny (DOS, Unix, Windows'95, Windows'NT)
Explorer - klient graficzny (DOS, Windows'95, Windows'NT)
5. Co to jest Gopher?
Gopher to program nawigacyjny do przeglądanie dystrybuowanych
elektronicznie dokumentów. Łączy w sobie cechy indeksowanej bazy danych
i elektronicznego serwisu informatycznego.
Protokół i oprogramowanie Gophera jest typu klient-serwer.
Do informacji mamy dostęp na dwa sposoby:
- browsing, polega na przeglądaniu kolejnych poziomów katalogu.
- searching, umożliwia szybki dostęp.
Obiektem dla Gophera może być:
- katalog
- plik tekstowy (niektóre programy mogą odbierać pliki dzwiękowe i grafikę)
- indeks adresowy
- program wyszukujący
- wejście do sesji telnetowej z innym systemem informacyjnym
Sesję zaczynamy:
$ telnet hum.amu.edu.pl [port]
login: gopher [port]
lub
$ gopher hum.amu.edu.pl [port]
6. Co to jest Veronica?
Veronica to skrót od (very easy rodent-oriented net-wide index to
computerized archives) i jest systemem wyszukiwania obiektów i
otrzymywania list tytułów serwisu Gopher. Połączenia z serwisem Veronica
sa udostępniane w wiekszości serwerów Gophera.
Veronica spełnia dwie funkcje:
- Zbiera dane
- Oferuje poszukiwanie bazy klienta Gophera.
7. Co to jest Wais?
Wais (Wide Area Information Serwer) jest systemem informacyjnym
rozpowszechniania, wyszukiwania i odbierania danych.
Połączenie:
$ telnet sunsite.unc.edu [port]
login: swais [port]
lub
$ gopher sunsite.unc.edu 70
8. Co to jest Archie?
Archie jest systemem informacyjnym pozwalającym znaleść informację w
InterNet'cie (szybkie przeglądanie).
Połącznie:
$ telnet archie.icm.edu.pl
login: archie
Komendy i parametry:
exit, quit, bye - Zakończenie sesji.
help [kom] - pomoc
list [wzorzec] - określa listę sitów opisanych w bazie danych np:
list \.pl$ - wyświetla wszyskie polskie site'y!
site [gdzie] - wyświetla katalogi i pliki w [gdzie].
whatis [znaki] - szuka łancuchu znaków.
prog znaki | wzorzec
find znaki | wzorzec - odnajduje pliki i katalogi, oraz ich adresy.
mail [adres] - przesyła wynik sesji na [adres].
show [zmienna] - wyświetla wartości zmiennych.
set zmienna wartosc - ustawia zmienną.
term term [w] [k] - informuje serwer o danym terminalu np.
set term xterm 24 100
. - oznacza jeden dowlony znak.
^ - musi się zaczynać od ciągu znaków.
$ - musi się kończyć od ciągu znaków.
9. Co to jest E-mail?
E-mail - Poczta sieciowa!
Wysyłanie poczty:
$ mail -v -s "Temat:" kogos@adres
To jest tekst poczty.
To jest tekst poczty.
lub (. i Enter).
czytanie poczty:
Po więcej informacji otrzymasz po napisaniu:
$ man mail
10. Co to są Newsy i Usenet?
Newsy innaczej NetNews, Usenet to system pozwalający wymieniać artykuły.
11. Co to jest Jughead?
Jest to narzędzie do wyszukiwania serwerów Gophera w InterNet'cie.
IV. SEKCJA D : podstawy
1. Co to jest FakeMail?
Być może chciałbyś wysłać do osoby nielubianej liścik, który by był
"prawie" anonimem, co? Jest na to sposób, zaraz Ci to wytłumaczę...
Co musisz mieć, oczywiście to co zawsze, po pierwsze dostęp do InterNet'u,
a po drugie sprawny program telnet (klient), wysyłać możesz ręcznie
(to właśnie zaraz Ci wytłumaczę) lub automagicznie (za pomocą programów
dostępnych w sieci).
Wysyłać możesz pod dowolnym systemem, nawet spod badziewnego znaku m$.
Oki, po kolei:
Po pierwsze musisz napisać:
# telnet jakis.host.na.swiecie 25
Czyli po prostu zatelnetowac, na port 25 dowolnego (no prawie) systemu,
np. pipeta.chemia.pk.edu.pl, dalej, gdy pojawi się odpowiednie
zgłoszenie systemu, piszemy, zatwierdzając enterem:
HELO jakas.wymyslona.domena
Wymyślamy sobie jakąś domenę, następnie...
MAIL FROM: odemnie@jakas.wymyslona.domena
jakiś login, z wcześniej wymyśloną domeną oraz...
RCPT TO: dokogo@gdzie.wyslac.list
do kogo wysyłamy dany list, a później...
DATA
przechodzimy do pisania treści listu, koniecznie zaczynająć od:
From: odemnie@jakas.wymyslona.domena
To: dokogo@gdzie.wyslac.list
Subject: Temat listu...
Reply-To: totu@ma.przyjsc.odpowiedz
Ostatni wiersz, Reply-To: (...), zaznacza, gdzie ma przyjść odpowiedz,
a dalej już nasza wymyślona treść listu, którą kończymy kropką i
piszemy QUIT, czyli:
To jest tresc listu
To jest tresc listu
To jest tresc listu
.
QUIT
I już koniec list został wysłany do adresata ;-)
Jeszcze innym sposobem wysłania listu z dowolnym polem From: jest
zainstalowanie sobie Qmail (MTA) dla systemów Unix'owych, np. Linux'a i
odpowiednie ustawienie zmiennych otoczenia na np (bash|sh):
export MAILUSER=odemnie
export MAILHOST=jakas.wymyslona.domena
Oraz odpalenie poczty i wiooo...
V. SEKCJA E : internet
1. Gdzie szukać w InterNet'cie?
http://free.polbox.pl/ - bezpłatne e-mail i strony WWW (PL)
http://www.polbox.com/ - bezpłatne e-mail i strony WWW (GB)
http://friko.onet.pl/ - bezpłatne e-mail.
VI. SEKCJA F : koniec
No i już koniec pierwszej, podstawowej ver.! Następna, bardziej
zaawansowana, lada tydzień!
1