+=-=-=-=-=-=-=-=-=-=-=-=-=-=+ | aREXus tHE tHiEF | |hTTp://wWW.tANDe.CoM/aREXus| | mAiLTo:aREXus@tANDe.CoM | +=-=-=-=-=-=-=-=-=-=-=-=-=-=+ -=[4HaCKeRS]=- -=[ISO-8859-2]=- -=[1997 VII 021]=- -=[PL v1.01 aLPHA]=- -=[00000000000010]=- -=[uNiX bEGiNERs tUToRiAL]=- +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+ |Poniższe opracowanie omawia, w sposób podstawowy i łopatologiczny, | |obsługe i wykorzystanie Unix'a i Internet'u, dla potrzeb szarych | |ludzi ;-> Autor, zastrzega sobie, ze nie odpowiada, za użycie tego | |opracowania, do niecnych i niezgodnych z prawem celów! Opracowanie | |to jest rozprowadzane w formie FreeWare. Jeśli zauważyłes błędy, | |niezgodności lub nawet bzdury, to napisz do mnie i wyjaśnij sprawę. | +---------------------------------------------------------------------+ 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ę konczyć 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: $ mail 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ń!