Szybkie przejście od DOS-a do Linux-a. Autor: Guido Gonzato, Guido@ibogfs.cineca.it v1.0 11 Grudnia 1996 WWeerrssjjaa ppoollsskkaa:: BBaarrttoosszz MMaarruusszzeewwsskkii,, BB..MMaarruusszzeewwsskkii@@zzssmmeeiiee..ttoorruunn..ppll v1.31, 26 Lipca 1997 Dokument ten jest dedykowany tym wszystkim (wkrótce byłym) użytkown­ ikom DOS-a, którzy zdecydowali się przejść na Linux-a, system typu Unix pierwotnie przeznaczony na komputery klasy PC. Dokument ten został napisany w standardzie ISO-8859-2. Oryginalna wersja znajduje się pod adresem ftp.icm.edu.pl w katalogu /pub/Linux/docs/HOWTO. Nowsza wersja zawiera uaktualnione wskazania na katalog z jądrami na ftp.icm.edu.pl. ______________________________________________________________________ Table of Contents: 1. Wprowadzenie. 1.1. Czy Linux jest dla ciebie odpowiedni? 1.2. Tak jest. Powiedz mi jeszcze. 1.3. Dla niecierpliwych. 2. Pliki i programy. 2.1. Pliki: pojęcie ogólne. 2.2. Dołączenia symboliczne. 2.3. Atrybuty plików w Linux-ie. 2.4. Pliki: Porównanie podstawowych poleceń DOS-owych z Linux- owymi. 2.5. Wykonywanie programów: wielozadaniowość i sesje. 2.6. Uruchamianie programów na komputerach odległych. 3. Używanie katalogów. 3.1. Katalogi: pojęcie ogólne. 3.2. Prawa dostępu katalogów. 3.3. Katalogi: Porównanie podstawowych poleceń DOS-owych z Linux- owymi. 4. Dyskietki, dyski twarde i takie inne. 4.1. Urządzenia. 4.2. Archiwizacja. 5. Konfigurowanie systemu. 5.1. Pliki startowe systemu. 5.2. Pliki startowe programów. 6. Troszkę programowania. 6.1. Pisanie skryptów: takie .BAT-y tylko lepsze. 7. C dla ciebie. 8. Pozostały 1%. 8.1. "Odrootowić się". 8.2. Tworzenie wirtualnej pamięci. 8.3. Używanie tar-a i gzip-a. 8.4. Instalacja aplikacji. 8.5. Triki, bez których nie możesz się obejść. 8.6. Pożyteczne programy. 8.7. Pospolite rozszerzenia i programy z nimi związane. 9. To tyle. 9.1. Prawa autorskie. 9.2. Disclaimer. 9.3. Od tłumacza. ______________________________________________________________________ 11.. WWpprroowwaaddzzeenniiee.. 11..11.. CCzzyy LLiinnuuxx jjeesstt ddllaa cciieebbiiee ooddppoowwiieeddnnii?? Więc chcesz przejść z DOS-a na Linux-a ? Dobry pomysł, ale ostrzegam: może ci to wyjść bokiem. Według mnie nie ma takiego czegoś jak "najlepszy komputer" czy "najlepszy system operacyjny"; wszystko zależy od tego do czego dana konfiguracja ma służyć. Dlatego też nie wierzę, że Linux jest najlepszym wyjściem dla każdego - nawet jeśli jest on technicznie lepszy od wielu komercyjnych systemów operacyjnych. Naprawdę nie pożałujesz Linux-a jeśli to czego szukałeś, to software do programowania, Internet, TeX... w ogóle techniczny software, ale jeśli w większości potrzebujesz software'u komercyjnego, jeśli nie czujesz się na siłach uczyć setek poleceń i wklepywać je z klawiatury, to szukaj gdzie indziej. Linux nie jest (jak na razie) tak łatwy w użytkowaniu i konfigurowaniu jak Windows czy Mac, tak więc przygotuj się do grzebania w plikach konfiguracyjnych. Pomimo tych przestróg, powiem ci, że jestem 100% przekonany, że jeśli należysz do tej dobrej grupy użytkowników, to odnajdziesz w Linux-ie swoją komputerową Nirvanę. Zakładam, że ˇ - Znasz podstawowe polecenia i założenia DOS-a, ˇ - Linux, ewentualnie z XWindows-ami, jest zainstalowany poprawnie na twoim komputerze, ˇ Twoją powłoką (odpowiednik COMMAND.COM) jest bash ˇ Rozumiesz, że ten dokument to dopiero niekompletny początek. Na temat większej ilości szczegółów przeczytaj podręcznik Matta Welsha "Linux Installation and Getting Started" i/lub Larry'ego Greenfielda "Linux User Guide". Można je znaleźć pod adresem ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/docs/LDP/. To HOWTO zastępuje poprzednie mini-HOWTO o tym samym tytule. 11..22.. TTaakk jjeesstt.. PPoowwiieeddzz mmii jjeesszzcczzee.. Zainstalowałeś Linux-a na PC-cie. Założyłeś sobie konto, wykonując instrukcje podczas instalacji (jeśli nie, to wpisz adduser _t_e_r_a_z _!_!_!) i Linux działa. Właśnie wpisałeś swój login (indentyfikator) i hasło (password) i patrzysz na ekran myśląc: "No... i co teraz?" Teraz - nie rozpaczaj. Jesteś prawie gotów robić to samo co w DOS-ie i wiele więcej. Jeślibyś działał na DOS-ie a nie na Linux-ie zrobiłbyś jedną z tych rzeczy: ˇ 1. wykonywanie programów i tworzenie, kopiowanie, przeglądanie, kasowanie i zmienianie nazw plików; ˇ 2. cd, md, rd, i dir; ˇ 3. formatowanie dyskietek i kopiowanie na nie plików; ˇ 4. grzebanie w AUTOEXEC.BAT albo CONFIG.SYS; ˇ 5. pisanie własnych plików .BAT albo programów; ˇ 6. no i pozostały 1%. Ucieszysz się bardzo jeśli dowiesz się, że to samo można robić pod Linux-em w podobny sposób jak pod DOS-em. Pod DOS-em przciętny użytkownik używa tylko kilku poleceń z ponad 100 dostępnych; to samo można powiedzieć o Linux-ie. Jeśli przypadkowo nie znasz poleceń do wykonywania tego co jest w liście powyżej, to odpuść sobie - nie czytaj. Nie będę wyjaśniał co to katalog czy zmienna PATH. Kilka notek zanim pójdziemy dalej: ˇ 1. W przeciwieństwie do DOS-a Linux ma wbudowane mechanizmy zabezpieczające. Kiedy włączysz PC-ta i odpalisz Linux-a musisz się "zalogować", to znaczy zrobić się widocznym dla systemu. Pliki i katalogi mają odpowiednie prawa dostępu i niektóre nie są dostępne dla zwykłego użytkownika. (Zobacz sekcję ``Prawa dostępu''). Jest tak ponieważ Unix to system wieloużytkownikowy; poza tym zwykły użytkownik nie jest właścicielem systemu i nie może nim zarządzać czy sterować jego działaniem; tylko użytkownik o identyfikatorze "root" (ang. korzeń) ma władzę w tym systemie. (Ten facet jest administratorem systemu. Na swoim PC-cie ty będziesz root-em). Pliki i katalogi mają odpowiednie prawa dostępu i niektóre z nich nie są dostępne dla zwykłego użytkownika. A DOS pozwoliłby ci wyczyścić cały dysk twardy. ˇ 2. Kiedy już skończysz pracować, NNIIEE WWOOLLNNOO CCII WWYYŁŁĄĄCCZZYYĆĆ PPCC--TTAA OODD TTAAKK PPOO PPRROOSSTTUU Musisz w odpowiedni sposób "zamknąć system" (naciśnij CTRL-ALT-DEL, poczekaj aż system zrobi wszystko co powinien, aby bezpiecznie wyłączyć komputer i napisze, że jest w porządku i wtedy możesz wyłączyć komputer). Jeśli pracujesz pod XWindows to wciśnij CTRL-ALT-BACKSPACE, albo wybierz wyjście z Menu i dalej to samo co wyżej. Od tłumacza: Możesz też napisać shutdown -h now i czekać aż pojawi się napis _S_y_s_t_e_m _h_a_l_t_e_d_. ˇ 3. Usilnie zachęcam do eksperymentowania i próbowania samemu: Na pewno ci nie zaszkodzi. Pomoc znajdziesz w poleceniach takich jak: "man " - podręcznik systemowy (nie zadawaj pytań bez przeczytania; wyjście z niego to klawisz 'q'), "apropos " - to wyświetla wszystkie polecenia związane z danym słowem, "whatis " - podobnie do apropos. ˇ 4. Większość mocy Unix-ów pochodzi z prostej koncepcji strumieni i potoków, bardziej rozwiniętych niż pod DOS-em. Proste polecenia mogą być połączone w bardziej złożony potok i wykonywać dość skomplikowane zadania. (Bardzo dużo ludzi używa tych zalet; tobie też radzę się tego pouczyć. Proste przykłady można znaleźć w plikach Makefile przy ściganiu i instalacji nowych aplikacji) ˇ 5. Konwencja oznaczeń: a. <...> oznacza coś co musi być podane, natomiast [...] oznacza coś co może być podane, ale nie musi. Np.: tar -tf [plik_log] plik.tar musi być podany, a przekierowanie wyjścia do pliku plik_log - nie. b. od teraz skrót "PPS" oznacza "Przeczytaj Podręcznik Systemowy man, aby uzyskać więcej informacji. (Od tłumacza: oto trzy najczęściej używane skróty wśród "Linux-owców": RTFM - Read The Fascinating (Fucking) Manual (Przeczytaj Fascynujący [albo jak kto woli Pieprzony] Manual [man]) FAQ - Frequently Asked Questions - dokukment z Często Zadawanymi Pytaniami HOWTO - dokument taki jak ten - Jak To Zrobić) Jesteś teraz gotowy, aby uczyć się Linux-a. 11..33.. DDllaa nniieecciieerrpplliiwwyycchh.. Nie możesz się już doczekać ? No to masz tu skrót poleceń Linux-a: DOS Linux Uwagi ------------------------------------------------------------------------------ BACKUP tar -Mcvf device dir/ zupełnie coś innego CD dirname\ cd dirname/ prawie ta sama składnia COPY file1 file2 cp file1 file2 ------ " ------ DEL file rm file UWAGA: nie ma UNDELETE DELTREE dirname rm -R dirname/ ------ " ------ DIR ls nie zupełnie ta sama składnia EDIT file vi file raczej ci się nie spodoba emacs file ten jest lepszy jstar file podobny do EDIT-a FORMAT fdformat, mount, umount raczej inna składnia HELP command man command ta sama filozofia MD dirname mkdir dirname/ prawie ta sama składnia MOVE file1 file2 mv file1 file2 ------ " ------ NUL /dev/null ------ " ------ PRINT file lpr file ------ " ------ PRN /dev/lp0, /dev/lp1 ------ " ------ RD dirname rmdir dirname/ ------ " ------ REN file1 file2 mv file1 file2 nie dotyczy wielu plików RESTORE tar -Mxpvf device inna składnia TYPE file less file o wiele lepszy WIN startx dwa różne bieguny !!! 22.. PPlliikkii ii pprrooggrraammyy.. 22..11.. PPlliikkii:: ppoojjęęcciiee ooggóóllnnee.. Linux posiada system plików - co oznacza "struktura katalogów i plików" - bardzo podobny do DOS-owego. Pliki posiadają nazwy, które podlegają specjalnym zasadom, są zapisywane w katalogach, niektóre są wykonywalne, a wśród tych większość ma różne opcje. Możesz też używać masek ('*', '?'), przekierowań strumieni oraz potoków. Jest tylko trochę mniejszych różnic. ˇ - Pierwsza różnica: W DOS-ie nazwy plików maja postać 8.3 - czyli 8 znaków na nazwę i 3 znaki na rozszerzenie. W Linux-ie jest inaczej (lepiej). Jeśli twój Linux używa systemu plików "ext2" (nie ważne w tej chwili co to znaczy) lub umsdos, to możesz używać dłuższych nazwa plików. Np. To_jest-bardzo.długa.nazwa.pliku. (nazwa może mieć do 255 znaków) (Od tłumacza: W tej chwili standardowo podczas instalacji Linux-a umieszczany jest na dysku system plików "ext2". W rzeczywistości Linux nie zna takiego czegoś jak rozszerzenie; w Linux-ie jest po prostu nazwa pliku nie ważne jakie znaki tam się znajdują - a mogą to być nawet znaki kontrolne, chociaż nie radzę ich używać, bo potem mogą być problemy z usunięciem takiego pliku) Zauważ, że użyłem tu małych jak i dużych liter. Otóż... ˇ - Druga różnica: Duże i małe litery są rozróżnianie przez Linux-a. To znaczy plik i Plik i PliK to trzy różne pliki. To samo odnosi się do poleceń: jeśli wykonasz polecenie ls (odpowiednik DOS-owego DIR) otrzymasz listę plików w bieżącym katalogu, ale jeśli napiszesz LS i wciśniesz <> to otrzymasz błąd mówiący, że nie ma takiego polecenia. ˇ - Trzecia różnica: jeśli zaczniesz nazwę pliku od kropki, plik ten będzie plikiem ukrytym. Na przykład: .Jestem.Plikiem.Ukrytym nie pokaże się po wydaniu polecenia ls. ˇ - Czwarta różnica: Nie ma obowiązkowych rozszerzeń .COM czy .EXE dla plików wykonywalnych (programów) albo .BAT dla plików wsadowych. Pliki wykonywalne mają ustawione odpowiednie prawa dostępu i są wyświetlane: - z gwiazdką (*) na końcu jeśli wydasz polecenie ls -F - na zielono jeśli masz kolorowy monitor i wydasz polecenie ls --color Pod DOS-em pliki z rozszerzeniem .BAK to kopie zapasowe; Pod Linux-em takie pliki kończą sie na ~ ˇ - Piąta różnica: opcje do programów DOS-owych podawane są ze znakiem / na początku np. dir /s; natomiast programy Linux-owe za opcję rozumieją ciąg znaków z myślnikiem - na początku, np. ls -R. Możesz teraz skoczyć do sekcji ``Tłumaczenie poleceń z DOS-a na Linux-a'', ale na twoim miejscu czytałbym dalej. 22..22.. DDoołłąącczzeenniiaa ssyymmbboolliicczznnee.. Systemy typu Unix mają taki typ pliku, który nie istnieje pod DOS-em - symboliczne dołączenie. Można to uważać za wskaźnik na plik lub katalog i może być używany zamiast tego pliku czy katalogu, na który wskazuje. Coś podobnego do skrótów w Win'95. Przykładami dołączeń symbolicznych mogą być: /usr/X11, który wskazuje na /usr/X11R6; /dev/modem, który wskazuje na /dev/cua0 lub /dev/cua1. Aby utworzyć symboliczne dołączenie napisz: ln -s Na przykład: $ ln -s /usr/doc/g77/DOC g77podrecznik.txt Teraz możesz wykonywać operacje na g77podrecznik.txt zamiast na /usr/doc/g77/DOC. 22..33.. AAttrryybbuuttyy pplliikkóóww ww LLiinnuuxx--iiee.. Każdy plik i katalog w Linux-ie ma swoje prawa dostępu, zwane przez użytkowników DOS-a atrybutami. Postaram się przybliżyć to pojęcie i wyjaśnić co oznacza magiczne 755. Jak wydasz polecenie ls -l to wyświetli się coś na kształt: -rw-r--r-- 1 root root 32251 Feb 15 14:32 DOS2Linux -rw-r--r-- 1 root root 38338 Feb 20 13:15 DOS2Linux.pl.sgml -rw-r--r-- 1 root root 18144 Feb 19 18:34 Locales-HOWTO.sgml -rw-r--r-- 1 root root 1398 Feb 19 18:30 howto.dat -rw-r--r-- 1 root root 317 Feb 14 14:24 next.gif -rw-r--r-- 1 root root 37 Feb 19 20:03 plik_log -rw-r--r-- 1 root root 317 Feb 14 14:24 prev.gif -rw-r--r-- 1 root root 610 Feb 19 12:01 slowniczek -rw-r--r-- 1 root root 5655 Feb 16 21:54 slowniczek.uwagi -rw-r--r-- 1 root root 2601 Feb 18 22:29 tlumaczenie.howto -rw-r--r-- 1 root root 316 Feb 14 14:24 toc.gif -rw-r--r-- 1 root root 723 Feb 20 12:40 todo -rw-r--r-- 1 root root 1307 Feb 19 19:36 zasady Pierwsza kolumna z lewej to właśnie wspomniane prawa dostępu, 3. i 4. to właściciel i grupa do jakiej dany plik należy. Ogólnie wygląda to tak: - rwx rwx rwx r - read (możliwość czytania) w - write (możliwość zapisu) x - execute (możliwość wykonywania, bądź dla katalogów możliwość przeszukiwania i ustawienia go jako bieżący cd) Oczywiście w rzeczywostości nie ma tam spacji, ale je robię dla czytelności. W miejscu pierwszej kreski może znajdować się jedna z liter: d, l, b, c - są to tylko najpopularniejsze. I tak oznaczają one odpowiednio: katalog, symboliczne dołączenie, urządzenie blokowe, urządzenie znakowe. Dalej: od lewej: pierwsza trójka liter to prawa dla właściciela pliku, druga trójka - dla grupy do jakiej należy plik, trzecia - dla pozostałych użytkowników. W pierwszej i drugiej trójce mogą się pojawić litery s lub S zamiast x - oznacza to, żeby wykonać plik z takimi prawami jakie ma właściciel pliku albo grupa, a nie ten kto go uruchamia. Na przykład plik /usr/bin/passwd ma ustawione pierwsze x na s, żeby mógł dokonać zapisu do pliku /etc/passwd, do którego może pisać tylko root, a nie zwykły użytkownik, który uruchamia ten program. Polecenie chmod pozwala zmieniać te prawa dostępu - jeśli jesteś właścicielem pliku. Podstawmy sobie następujące wartośći: - rwx rwx rwx 421 421 421 4 2 1 - te wartości są dla s, S i t (na temat 't' zobacz "man chmod") Żeby ustawić jakieś prawa dostępu należy dodać do siebie te liczby, które stoją przy prawach, które chcemy ustawić, ale dla każdej trójki osobno. Trochę przykładów dla lepszego zrozumienia: - r-x --- --- nazwa_pliku 4 1 To będzie 4+0+1, 0+0+0, 0+0+0 czyli 500. chmod 500 nazwa_pliku zmieni prawa dostępu na odczyt i wykonywanie dla właściciela i zabierze wszystkie prawa dla grupy i innych użytkowników. - rwx r-x r-x nazwa_pliku 421 4-1 4-1 To będzie 4+2+1, 4+0+1, 4+0+1 czyli 755 - to jest chyba najczęstsze ustawienie. - rws r-x r-x 421 4 1 4 1 4 To będzie 4+0+0 - najważniejsze są wartości s, S, t chyba, że ich nie ma - 4+2+1 4+0+1, 4+0+1 czyli 4755 Teraz łatwiejszy sposób na zmianę praw dostępu. Polecenie chmod może też przyjmować takie parametry: chmod ugoa+-=rwx I tak: u - user (właściciel pliku), g - group (grupa do jakiej plik należy), o - others (pozostała część użytkowników). + ustawia podane prawa, a - zabiera. = czyni podane prawa jedynymi prawami jakie posiada dany plik. Przykłady: chmod u+x - nadaje właścicielowi pliku prawo do wykonywania go. chmod ug+rx - nadaje właścicielowi i grupie, do której należy plik prawa do odczytu i wykonywania To powinno wyjaśnić wiele spraw związanych z prawami dostępu. Więcej szczegółów znajdziesz w podręczniku systemowym "man". 22..44.. PPlliikkii:: PPoorróówwnnaanniiee ppooddssttaawwoowwyycchh ppoolleecceeńń DDOOSS--oowwyycchh zz LLiinnuuxx--oowwyymmii.. DOS Linux COPY cp DEL rm REN mv TYPE cat MORE more, less - można też używać jako polecenie, nie tylko jako filtr (ten drugi jest lepszy, ma więcej możliwości) Przekierowywanie strumieni i potoki wygladają tak samo. Maski: '*', '?' oraz [znaki] [znaki] - oznacza pokolei każdy, ale zawsze jeden, z wymienionych w środku znaków, np: ls *[abc] - wyświetl nazwy plików kończących się na 'a' lub 'b' lub 'c' ls *[a-g] - wyświetli nazwy plików kończących się na jedną z liter od a do g nul /dev/null prn,lst /dev/lp0, lpr PRZYKŁADY DOS Linux C:\GUIDO>copy joe.txt joe.doc $ cp joe.txt joe.doc C:\GUIDO>copy *.* total $ cat * > total C:\GUIDO>copy fractals.doc prn $ cat fractals.doc | lpr C:\GUIDO>del temp $ rm temp C:\GUIDO>del *.bak $ rm *~ C:\GUIDO>ren paper.txt paper.asc $ mv paper.txt paper.asc C:\GUIDO>type letter.txt $ more letter.txt C:\GUIDO>type letter.txt $ less letter.txt C:\GUIDO>type letter.txt > nul $ cat letter.txt >/dev/null n/d $ more *.txt *.asc n/d $ cat section*.txt n/d - niedostępne Uwagi: 1) * jest sprytniejszą maską pod Linux-em: - * oznacza jakąkolwiek nazwę nie zaczynającą się na . - *.* oznacza nazwę, która ma w środku kropkę - p*r oznacza nazwę zaczynająca się na p a kończącą na r - *c* oznacza nazwę zawierającą w środku c 2) Podczas używania less możesz poruszać się po pliku - w przód - spacja - w tył - b lub strzałkami - wszystkie dostępne funkcje otrzymasz naciskając h 3) W Linux-ie NNIIEE MMAA UUNNDDEELLEETTEE, więc pomyśl dwa razy zanim skasujesz. 4) W Linux-ie znaczek > przekierowuje standardowe wyjście, ale nie standardowe wyjście błędów; aby błędy także znalazły się w pliku musisz napisać np. cat plik >plik_log 2>&1 - ale to działa tylko w powłoce bash lub sh. Od tłumacza: aby dowiedzieć się jaką powłokę używasz napisz echo $shell 5) Nie ma polecenia DOS-owego RENAME; tzn. ren *.xxx *.yyy nie zadziała 6) Używaj cp -i oraz mv -i, aby zostać ostrzeżonym, kiedy plik ma zostać zmazany. 22..55.. WWyykkoonnyywwaanniiee pprrooggrraammóóww:: wwiieelloozzaaddaanniioowwoośśćć ii sseessjjee.. Aby uruchomić program podaj jego nazwę i wciśnij <>. Jeśli katalog (sekcja ``Katalogi''), w którym znajduje się dany program, jest w zmiennej PATH (sekcja ``Inicjacja systemu''), program się uruchomi. Wyjątek: W przeciwieństwie do DOS-a, pod Linux-em jeśli program znajduje się w katalogu bieżącym nie uruchomi się, o ile katalog bieżący nie jest w zmiennej PATH. Rozwiązanie: wpisz ./. Oto jak wygląda typowy wiersz poleceń: $ polecenie -o1 -o2 ... -on par1 par2 ... parn wyjście gdzie o1,2,...,n to opcje polecenia, a par1,2,...,n to parametry. Możliwe jest uruchomienie kilku poleceń w jednym wierszu poleceń: $ polecenie1; polecenie2; ...; polecenien To by było wszystko na temat uruchamiania programów, gdyby nie jedna z najważniejszych zalet Unix-ów a tym samym i Linux-a czyli wielozadaniowość. Słowo to oznacza, że systemy operacyjne typu Unix mogą wykonywać kilka programów (od teraz procesów) na raz. Można uruchomić procesy w tle oraz w pierwszym planie. Można także działać na kilku sesjach na raz - to tak jakbyś pracował na kilku komputerach na raz ! - Na konsoli (czyli na komputerze, na którym jest zainstalowany Linux) dostępnych jest standardowo 6-7 wirtualnych ekranów (zwanych wirtualnymi konsolami); aby się pomiędzy nimi przełączać użyj klawiszy ALT+F1..6-7, albo ALT+strzałka - Aby uruchomić nową sesję bez opuszczania bieżącej napisz su - Jest to pożyteczne kiedy na przykład jesteś zalogowany jako zwykły użytkownik, a chcesz zamontować dysk (sekcja ``Dyskietki'') - tylko root może to zrobić - Aby zakończyć sesję wpisz exit. Jeśli są jakieś zawieszone zadania (zobacz dalej) zostaniesz ostrzeżony - Aby odpalić proces w pierwszym planie napisz: $ program [-opcje] [parametry] [wyjście] - Aby odpalić proces w tle napisz: $ program [-opcje] [parametry] [wyjście] & - Aby zobaczyć ile jest procesów napisz: ps Polecenie to pokaże listę procesów aktualnie działających. Każdy z nich ma swój niepowtarzalny numer PID (Process IDentifier) - Aby zakończyć/zabić proces napisz $ kill Możesz zabić proces jeśli np. nie wiesz jak go normalnie zakończyć. Czasami proces się stawia i nie chce dać się zabić (no ja też bym się stawiał ;) ), ale i tak jest na niego sposób: $ kill -9 W dodatku powłoka (odpowiednik COMMAND.COM-u; większość używa bash-a) pozwala na zatrzymanie lub czasowe zawieszenie procesu, wysłanie procesu w tło, powrót procesu do pierwszego planu. W tym kontekście procesy nazywają się "jobs" (czyli zadania). - Aby zobaczyć ile jest zadań napisz $ jobs zadania są identyfikowane poprzez numer jaki nada im powłoka a nie poprzez PID - Aby zatrzymać proces uruchomiony w pierwszym planie wciśnij CTRL+C lub CTRL+D - nie zawsze zadziała - Aby zawiesić proces uruchomiony w pierwszym planie wciśnij CTRL+Z - Aby wysłać zawieszony proces w tło napisz $ bg - Aby przywrócić proces do pierwszego planu napisz $ fg - I jeszcze raz, aby zabić zadanie napisz: $ kill % Używając tych poleceń możesz jednocześnie formatować dysk, archiwizować jakieś pliki, kompresować jakieś pliki, kompilować program, albo kilka, rozpakowywać jakieś archiwum i jeszcze na dodatek mieć wiersz poleceń do swojej dyspozycji HA !! Spróbuj zrobić to pod DOS-em albo nawet Windowsami, a zobaczysz różnicę między Unixami a domowymi systemami operacyjnymi. 22..66.. UUrruucchhaammiiaanniiee pprrooggrraammóóww nnaa kkoommppuutteerraacchh ooddlleeggłłyycchh.. Aby uruchomić jakiś program na odległym komputerze, którego adres to daleko.wielki.pl, napisz: telnet daleko.wielki.pl Po zalogowaniu się uruchom swoje ulubione programy. Oczywiście nie muszę mówić, że trzeba mieć konto na odległym komputerze. Jeśli masz X11 możesz nawet uruchamiać aplikacje pod XWindows na tamtym komputerze i wyswietlać je na swoim ekranie. Niech daleko.wielki.pl będzie odłegłym komputerem obsługującym XWindows, a tutaj.linux.pl twoim komputerem. Aby uruchomić z tutaj.linux.pl program pod XWindows tak, aby uruchomił się on na daleko.wielki.pl ˇ uruchom X11, uruchom xterm lub jakiś inny emulator terminala i napisz: xhost +wielki.daleko.pl telnet wielki.daleko.pl ˇ po zalogowaniu się napisz: DISPLAY=tutaj.linux.pl:0.0 & zamiast DISPLAY... możesz napisać setenv DISPLAY tutaj.linux.pl:0.0. To zależy od powłoki na komputerze odległym. Et voila! Teraz program będzie działał na komputerze odległym, a wyniki jego działania będą wyświetlane na twoim ekranie. Nie próbuj tego robić przez łącze PPP. 33.. UUżżyywwaanniiee kkaattaallooggóóww.. 33..11.. KKaattaallooggii:: ppoojjęęcciiee ooggóóllnnee.. Poznaliśmy już różnicę między plikami w DOS-ie i Linux-ie. Co do katalogów, to w DOS-ie katalogiem głównym jest natomiast w Linux-ie jest to /. Tak samo kolejne podkatalogi oznacza się aaa/sss/ddd. Przykłady: DOS: PROGRAMSRCESLO.CPP Linux: /home/guido/papers/geology/mid_eocene.tex Jak zwykle '..' to katalog nadrzędny, a '.' to katalog bieżący. Pamiętaj, że Linux nie pozwoli ci na wykonywanie poleceń cd, rd czy md, gdzie ci się podoba. Każdy użytkownik zaczyna pracę w systemie w swoim domowym katalogu nadanym mu przez administratora; np. u mnie jest to: /home/guido. 33..22.. PPrraawwaa ddoossttęęppuu kkaattaallooggóóww.. Katalogi także mają swoje prawa dostępu. To czego dowiedziałeś się z sekcji ``Prawa dostępu'' odnosi się również do katalogów. Atrybut 'x' oznacza, że możesz dany katalog uczynić katalogiem bieżącym (cd), w - możesz skasować z niego pliki (zależnie od ich praw dostępu) albo sam katalog. Na przykład, aby zabronić innym użytkownikom dostępu do swojego katalogu domowego /home/guido/ napisz: chmod o-rwx /home/guido 33..33.. KKaattaallooggii:: PPoorróówwnnaanniiee ppooddssttaawwoowwyycchh ppoolleecceeńń DDOOSS--oowwyycchh zz LLiinnuuxx-- oowwyymmii.. DOS Linux DIR ls, find, du CD cd, pwd MD mkdir RD rmdir PRZYKŁADY C:\GUIDO>dir $ ls C:\GUIDO>dir file.txt $ ls file.txt C:\GUIDO>dir *.h *.c $ ls *.h *.c C:\GUIDO>dir/p $ ls | more C:\GUIDO>dir \*.tmp /s $ find / -name "*.tmp" C:\GUIDO>cd $ pwd n/d - patrz uwaga $ cd n/d - patrz uwaga $ cd ~ n/d - patrz uwaga $ cd ~/temp C:\GUIDO>cd \other $ cd /other C:\GUIDO>cd ..\temp\trash $ cd ../temp/trash C:\GUIDO>md newprogs $ mkdir newprogs C:\GUIDO>md \progs\turbo $ mkdir /progs/turbo C:\GUIDO>rd newprogs $ rmdir newprogs C:\GUIDO>rd \progs\turbo $ rmdir /progs/turbo Uwaga 1: jeśli chcesz skasować katalog rmdir musi on być pusty; możesz skasować katalog wraz z zawartością poleceniem rm -r. Uwaga 2: znak ~ jest skrótem nazwy twojego katalogu domowego. Polecenia cd i cd ~ zmienią ścieżkę bieżącą na twój katalog domowy niezależnie od tego, gdzie jesteś w danym momencie; polecenie cd ~/tmp zmieni bieżący kata­ log na /home/twój_dom_kat/tmp. Rozumiesz zasadę ? Uwaga 3: cd - odwraca ostatnie polecenie cd. 44.. DDyysskkiieettkkii,, ddyysskkii ttwwaarrddee ii ttaakkiiee iinnnnee.. 44..11.. UUrrzząąddzzeenniiaa.. Nigdy o tym nie myślałeś, ale DOS-owe polecenie FORMAT A: robi o wiele więcej niż się wydaje. W rzeczywistości, kiedy wydajesz polecenie FORMAT, to: - sformatuje ono fizycznie dysk; - stworzy katalog A: (czyli utworzy system plików na dyskietce) - uczyni dyskietkę dostępną dla użytkownika (zamontuje ją). Te trzy kroki są oddzielnymi zadaniami w Linux-ie. Możliwe jest przygotowanie i używanie dyskietek w formacie MS-DOS, chociaż są także dostępne inne formaty; najpopularniejeszym jest ext2, ale dla dyskietek lepszy jest minix. Oto sposób w jaki można przygotować dyskietkę (standardową 1.44 MB) do pracy: - musisz się zalogować jako root, - fdformat /dev/fd0H1440 lub mformat a: - żeby mieć dyskietkę w formacie MS-DOS - przed rozpoczęciem używania dyskietki musisz ją zamontować: mount /dev/fd0 /mnt katalog /mnt musi istnieć. Teraz możesz używać dyskietki; jej obraz jest w katalogu /mnt. BBAARRDDZZOO WWAAŻŻNNEE - zanim wyjmiesz dyskietkę ze stacji - odmontuj ją: umount /mnt Oczywiście musisz formatować tylko nieużywane dyskietki. Jeśli chcesz korzystać ze stacji B: to zamień wszędzie fd0 na fd1. Wszystko co robiłeś poprzez A: czy B: robi się teraz poprzez katalog /mnt. Przykłady: DOS Linux C:\GUIDO>dir a: $ ls /mnt C:\GUIDO>copy a:*.* \docs\temp $ cp /mnt/* /docs/temp C:\GUIDO>copy *.zip a:\zip $ cp *.zip /mnt/zip C:\GUIDO>a: $ cd /mnt A:\> /mnt$ Nie muszę chyba mówić, że tak jak możesz zamontować dyskietkę tak i możesz zamontować dowolne urządzenie z danymi. (dysk twardy, CD-ROM, taśma itp.) Spójrz do katalogu /dev, żeby zobaczyć jakie możesz montować urządzenia. (UWAGA: jest tam około 1000 plików, lepiej użyj ls /dev | less). Np. Aby zamontować CD-ROM napisz mount -t iso9660 /dev/cdrom /cdrom To był "oficjalny" sposób na montowanie dyskietek, ale jest inny sposób - łatwiejszy. Ponieważ jest to uciążliwe ciągle się przełączać na root-a po to, aby zamontować dyskietkę - każdemu użytkownikowi możemy pozwolić na montowanie dyskietek. W taki sposób: ˇ stwórz katalogi /mnt/a, /mnt/a: i /mnt/cdrom ˇ dodaj w /etc/fstab nastepujące linie: /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 0 /dev/fd0 /mnt/a: msdos user,noauto 0 0 /dev/fd0 /mnt/a ext2 user,noauto 0 0 Teraz żeby zamontować dyskietkę z systemem MS-DOS, ext2 albo CD-ROM napisz: $ mount /mnt/a: $ mount /mnt/a $ mount /mnt/cdrom /mnt/a, /mnt/a: i /mnt/cdrom są teraz dostępne dla każdego użytkownika. Zauważyłem, że aby móc pisać do /mnt/a od razu po przygotowaniu dyskietki trzeba napisać: # mount /mnt/a # chmod 777 /mnt/a # umount /mnt/a Pamiętaj, że udostępniając w ten sposób użytkownikom dyskietki robisz wielką dziurę w bezpieczeństwie systemu. 44..22.. AArrcchhiiwwiizzaaccjjaa.. Teraz jak już umiesz się posługiwać dyskietką, kilka słów na temat archiwizacji danych. Jest kilka pakietów, które mogą ci pomóc, ale ten najpopularniejszy i najłatwiejszy do archiwizowania na wielu nośnikach to tar. # tar -M -cvf /dev/fd0H1440 /katalog_do_arch Upewnij się, że dyskietka jest sformatowana i kilka innych jest gotowych. Aby odarchiwizować dane włóż dyskietkę do stacji i napisz: # tar -M -xpvf /dev/fd0H1440 55.. KKoonnffiigguurroowwaanniiee ssyysstteemmuu.. 55..11.. PPlliikkii ssttaarrttoowwee ssyysstteemmuu.. W DOS-ie są dwa pliki systemowe, które sa odpowiedzialne za konfigurację systemu podczas startu, ustawienie zmiennych i ewentualnie uruchomienie jakichś programów. W Linux-ie jest o wiele więcej takich plików, z których kilku nie powinieneś ruszać dopóki nie będziesz wiedział dokładnie co robisz. Oto te najważniejsze: PLIKI UWAGI /etc/inittab nie dotykaj ! /etc/rc.d/* nie dotykaj ! Jeśli wszystko czego chcesz, to ustawienie zmiennej PATH czy innej albo zmiana wyglądu komunikatu "login" albo automatyczne odpalenie jakiegoś programu podczas wlogowywania się, to zajrzyj do tych plików: PLIK UWAGI /etc/issue ustawia format komunikatu "login" /etc/motd ustawia komunikat wyświetlający się zaraz po wlogowaniu się /etc/profile powłoka bash/sh - ustawia globalnie (dla wszystkich użytkowników) różne zmienne /etc/csh.cshrc to samo dla powłoki tcsh/csh - z tego pliku nie może być nic wyświetlane na ekran /etc/csh.login powłoka tcsh/csh - stąd możesz wyświetlać na ekran /home/twoj_dom_kat/.profile powłoka bash/sh - robi to co chcesz /home/t_d_k/.cshrc patrz wyżej - z tą różnicą, że ustawienia dotyczą tylko ciebie /home/t_d_k/.login -----"------ Jeśli pliki .login albo .profile istnieją, to zostaną przeczytane po zalogowaniu się na końcu i zostaną wykonane zawarte w nich polecenia (Coś jakby AUTOEXEC.BAT) Przykład - spójrz na ten plik .profile: ______________________________________________________________________ # Jestem sobie komentarzem echo Środowisko: printenv | more # ekwiwalent polecenia SET pod DOS-em alias d='ls -l' # chyba rozumiesz, co to jest alias alias up='cd ..' echo "Przypominam ci, że zmienna PATH zawiera: "$PATH echo "Miłego dnia, "$LOGNAME PATH i LOGNAME - tak, zgadłeś - to są zmienne środowiskowe # To jest funkcja w powłoce ctgz() # Wyświetla zawartość archiwum .tar.gz { for file in $* do gzip -dc ${file} | tar tf - done } # koniec pliku .profile ______________________________________________________________________ 55..22.. PPlliikkii ssttaarrttoowwee pprrooggrraammóóww.. Pod Linux-em wirtualnie wszysto można ustawić tak, jak chcesz. Większość programów ma jeden lub więcej plików startowych, w których możesz poustawiać różności. Często jest to ˇnazwa_programurc w twoim katalogu domowym. Zauważ, że są one ukryte; pliki ukryte wyświetla się ls -a. Niektóre programy, jak tin, elm, netscape, xfm tworzą katalogi .nazwa i tam umieszczają swoje pliki startowe. Pierwsze, które będziesz chciał modyfikować to: ~/.joerc - joe to bardzo popularny edytor - polecam ~/.xinitrc - używany podczas uruchamiania Xwindows (jeśli masz mniej niż 8MB RAM-u to lepiej nie uruchamiaj) poleceniem startx ~/.fvwmrc - używany przez menedżera okienek fvwm. Przykład możesz znaleźć w /usr/lib/X11/fvwm/system.fvwmrc ~/.xfm - używany przez menedżera plików xfm pod Xwindows ~/.Xdefault - używany przez emulator terminala pod X - rxvt Pamiętaj ! Dla tych wszystkich plików i innych, które spotkasz w przyszłości - PPS 66.. TTrroosszzkkęę pprrooggrraammoowwaanniiaa.. 66..11.. PPiissaanniiee sskkrryyppttóóww:: ttaakkiiee ..BBAATT--yy ttyyllkkoo lleeppsszzee.. Jeśli używałeś plików .BAT, aby ułatwić sobie życie (Ja używałem i to dużo), to to samo można zrobić w Linux-ie używając aliasów - zobacz przykład wyżej. Ale jeśli twoje pliki .BAT były bardziej skomplikowane, to polubisz programowanie w powłoce - jest tak samo wydajne jak QBasic, jeśli nie bardziej. (nawet jeśli nie używałeś bardziej skomplikowanych plików .BAT, to i tak będziesz z czasem programował w powłoce. Chociażby dlatego, że wszelkie wersje instalacyjne programów pod Linux-a są napisane w skryptach.) Powłoka ma takie elementy jak: zmienne, instrukcje while, case, for, if...then...else i wiele innych, co może być alternatywą nawet dla dobrego języka programowania. Aby napisać skrypt, wszystko co musisz zrobić, to napisać zwykły plik tekstowy zwierający polecenia, zapisać go i uczynić wykonywalnym. To ostatnie możesz zrobić poleceniem: chmod u+x Aby go wykonać wpisz jego nazwę - pamiętaj, że Linux nie widzi plików w katalogu bieżącym więc dodaj ./ na początku nazwy, albo dodaj katalog bieżący '.' do zmiennej PATH. Słowo ostrzeżenia: Standardowy edytor systemowy 'vi' nie jest najszczęśliwszym edytorem - szczególnie jeśli ktoś jest przyzwyczajony do takich edytorów jak ne.exe czy te spod środowiska Pascal/C++. Jak już to radziłem wcześniej lepiej używać joe, który jest dostępny w każdej standardowej dystrybucji. Na wszelki wypadek powiem, że: - aby coś wpisać w 'vi' trzeba najpierw nacisnąć 'i' - aby wyjść bez zachowania zmian: 'ESC:q!' - aby wyjść z zachowaniem zmian: 'ESC:x' Pisanie skryptów pod Unix-ami, to tak obszerny temat, że można by napisać książkę na ten temat (w istocie są książki na ten temat :) ), więc nie będę się tutaj dalej zagłębiaj, tylko podam przykład, który mam nadzieję przyda się i z którego możesz wyciągnąć kilka podstawowych zasad. ______________________________________________________________________ #!/bin/sh # Jestem sobie komentarzem # nie zmieniaj pierwszej linii !!! - musi tam być echo "To jest system: `uname -a`" # użyj wyjścia polecenia uname echo "Nazywam się $0" # zmienne wbudowane echo "Podałeś mi następujące $# parametry: "$* echo "Pierwszy parametr to: "$1 echo -n "Jak się nazywasz? " ; read imie echo spójrz na róznicę: "Cześć $imie" # cytowanie z " echo spójrz na różnicę: 'Cześć $imie' # cytowanie z ' DIRS=0 ; FILES=0 for file in `ls .` ; do if [ -d ${file} ] ; then # jeśli plik jest katalogiem DIRS=`expr $DIRS + 1` # DIRS = DIRS + 1 elif [ -f ${file} ] ; then FILES=`expr $FILES + 1` fi case ${file} in *.gif|*jpg) echo "${file}: plik graficzny" ;; *.txt|*.tex) echo "${file}: plik tekstowy" ;; *.c|*.f|*.for) echo "${file}: plik żródłowy" ;; *) echo "${file}: inny plik" ;; esac done echo "Jest ${DIRS} katalogów i ${FILES} plików" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # kod wyjścia ostatniego polecenia echo "ZxY--!!!WKW nie znaleziono" fi echo "wystarczy... jeśli chcesz wiedzieć więcej, to poczytaj" echo "podręcznik systemowy"" ______________________________________________________________________ 77.. CC ddllaa cciieebbiiee.. Chyba nie spodziewałeś się znaleźć GW czy QBasic-a na Linux-ie ?? W Unix-ach językiem systemowym i podstawowym jest C, pokochaj albo rzuć. Wiele innych języków (FORTAN, Pascal, Lisp, Basic, Perl, awk ale nie Turbo Pascal) są także dostępne. Zakładając, że znasz już C, oto kilka wytycznych dla tych, którzy wychowali się na Turbo C++ czy innym z DOS-owych braci C. Kompilator C pod Linux-em to gcc i wcale nie ma żadnych gwizdków, dzwonków i bajerów, ktore mają DOS-owe wersje. Żadnego środowiska, zintegrowanej pomocy (CTRL+F1) czy zintegrowanego debuggera itp. Jest to goły kompilator wywoływany z wiersza poleceń; bardzo wydajny z resztą. Żeby skompilować swoje standardowe hello.c napisz: gcc hello.c, a jeśli chcesz mieć nazwę pliku wynikowego taką samą jak plik źródłowy to napisz gcc -o hello hello.c. Pierwsze polecenie utworzy plik wykonywalny a.out. Żeby dołączyć jakąś bibliotekę dodaj opcję -l, np. gcc -o matma matma.c -lm Opcja -l zmusza gcc, aby dołączyło bibliotekę /usr/lib/lib.a, tak więc -lm dołączy /usr/lib/libm.a. To wszystko jest dobre dopóki piszesz małe programy. Ale kiedy twój program składa się z kilku plików źródłowych, musisz użyć narzędzia make. Załóżmy, że napisałeś jakiś interpreter: jego plik główny to parser.c i dołącza do siebie dwa pliki parser.h i xy.h. Chcesz używać procedur zawartych w parser.c, w programie calc.c, który znowu dołącza parser.h. Co za bałagan ! Co musisz zrobić aby skompilować calc.c ? Musisz napisać tzw. Makefile, który informuje kompilator o zależnościach pomiędzy poszczególnymi programami. W naszym przypadku to będzie: ______________________________________________________________________ # Oto plik Makefile używany do kompilacji calc.c # W miejsce naciśnij tabulator calc: calc.o parser.o gcc -o calc calc.o parser.o -lm # calc zależy od dwóch plików objektowych: calc.o i parser.o calc.o: calc.c parser.h gcc -c calc.c # calc.o zależy od dwóch plików żródłowych: calc.c i parser.h parser.o: parser.c parser.h xy.h gcc -c parser.c # parser.o zależy od trzech plików źródłowych # koniec pliku Makefile ______________________________________________________________________ Zapisz ten plik jako Makefile i napisz make aby skompilować calc.c; możesz także zapisać go jako calc.mak i wtedy napisać make -f calc.mak. No i oczywiście PPS :) na temat make. Wcześniej powiedziałem, że nie ma pomocy do C. To nie całkiem prawda... niektóre funkcje są opisane w podręczniku systemowym. Jest bardzo dużo bibliotek do C; wśród pierwszych, które będziesz chciał użyć mogą znaleźć się: ˇ ncurses - do zabawy z trybem tekstowym, ˇ svgalib - do grafiki, ˇ XForms - do programowania pod XWindows, ˇ MGUI - także do programowania pod XWindows. Dwie ostatnie można znaleźć pod adresami: bloch.phys.uwm.edu/pub/xforms www.volftp.vol.it/IT/IT/ITALIANI/MORELLO/index.htm Te biblioteki ułatwiają bardzo programowanie pod XWindows. Jeśli nie możesz przeżyć bez IDE a'la Borland, to zdobądź pakiet xwpe z ftp.icm.edu.pl w katalogu /pub/Linux/sunsite/apps/editors. Powinieneś go polubić. 88.. PPoozzoossttaałłyy 11%%.. 88..11.. OOddrroooottoowwiićć ssiięę"".. Złym pomysłem jest logowanie się jako root, żeby robić zwykłe codzienne rzeczy. Używanie tego konta jest dość niebezpieczne i powinno być przeznaczone tylko do administracji. Aby utworzyć konto dla siebie wykonaj polecenie: adduser podając następnie informacje takie jak swój identyfikator, hasło, numer grupy itp. (wciśnij <> na pytania, których nie rozumiesz.) Od tłumacza: Może się tak zdarzyć, że pojawi się komunikat /etc i zobacz czy jest tam plik .passwd.lock lub o podobnej nazwie i skasuj go. 88..22.. TTwwoorrzzeenniiee wwiirrttuuaallnneejj ppaammiięęccii.. Teoretycznie Linux może być uruchomiony już na 2MB RAM-u. Od tłumacza: Ale ja bym nie radził uruchamiania go przy takiej ilości pamięci, z resztą obecnie chyba żadna dystrybucja nie da się zainstalować jeśli masz mniej niż 4MB RAM-u, a niektóre wymagają nawet 8MB. Ale im więcej pamięci masz tym więcej możesz zrobić. XWindows jak już wspomniałem nie będą działać w miarę sensowanie jeśli masz mniej niż 8MB RAM-u. Aby dodać sobie jeszcze 8MB wirtulanej pamięci wpisz jako root w wierszu poleceń: ______________________________________________________________________ # dd if=/dev/zero of=/swapfile bs=1024 count=8192 # mkswap /swapfile 8192 # sync # swapon /swapfile ______________________________________________________________________ Dodaj ostatnią linię do pliku /etc/rc.d/rc.local, aby udostępnić tę pamięć za każdym razem kiedy będziesz startował Linux-a. 88..33.. UUżżyywwaanniiee ttaarr--aa ii ggzziipp--aa.. W Unix-ach bardzo popularnymi programami do archiwizacji i kompresji są tar i gzip. Aby stworzyć archiwum wpisz w wierszu poleceń: tar cvf Aby wydobyć pliki z archiwum wpisz: tar xpvf Aby wyświetlić zawartość archiwum napisz: tar tf | less Opcja 'v' powoduje wyświetlenie plików archiwizowanych albo wyciąganych z archiwum, jeśli nie chcesz tego, możesz ja pominąć. Aby skompresować pliki możesz użyć compress albo gzip. Ten pierwszy jest już przestarzały i nie powinien być używany. compress albo gzip skompresuje plik. uncompress .Z albo gzip -d .gz odkompresuje plik. Jeśli ściągasz z sieci jakiś pakiet w 99% przypadków jest to skompresowane archiwum (xxx.tar.gz lub xxx.tgz). Żeby rozpakować i odarchiwizować za jednym zamachem wpisz: tar xzf xxx.tar.gz Opcji 'z' możesz także używać przy archiwizowaniu i przeglądaniu archiuwm skompresowanego. Przy okazji warto powiedzieć, że pakiety te są już tak przygotowane, że możesz je rozpakować w katalogu głównym - / i wszystkie programy znajdą się na swoim miejscu. Zakładając oczywiście, że nie pogrzebałeś za bardzo na swoim systemie. Programy arj, zip, unzip, rar, unrar także są dostępne pod Linux-em. 88..44.. IInnssttaallaaccjjaa aapplliikkaaccjjii.. Mieści się tutaj już to co wspomniałem o plikach xxx.tar.gz. Dystrybucja Slackware ma swój program, który pomaga przy instalacji pakietów - pkgtool. Dystrybucja Red Hat ma rpm - trochę mniej przyjazny. Dystrybucja Debian pewnie też coś takiego ma, ale ponieważ nie miałem z nią kontaktu, więc nie wiem. Są też aplikacje, które mają swoje własne systemy instalacji. Jak rozpakujesz jakiś pakiet przeczytaj zawsze pliki README albo INSTALLATION, a znajdziesz tam informacje na temat jak zainstalować dany pakiet. Duża część pakietów jest rozprowadzana jako źródła i musisz je najpierw skompilować. Najlepiej rozpakować je w katalogu /usr/src przeznaczonym na źródła i tam poczytać jak dany pakiet skompilować i zainstalować. Z reguły wszystko co musisz zrobić to rozpakować pakiet i napisać make albo make install. Oczywiście będziesz potrzebował kompilatora gcc. Pamiętaj, że instalacja pakietów to zadanie dla root-a. 88..55.. TTrriikkii,, bbeezz kkttóórryycchh nniiee mmoożżeesszz ssiięę oobbeejjśśćć.. Dopełnianie nazw poleceń i nazw plików/katalogów. Jeśli wpiszesz nie całą nazwę polecenia i naciśniesz to powłoka dopełni za ciebie nazwę albo wyświetli wszystkie zaczynające się na podany ciąg. Np. zamiast pisać gcc dddddddllllllllluuuuga.nazwa.pliku - na dodatek nie pomylić się w ilości d l oraz u napisz gcc ddd. Oglądanie zawartości ekranu, która się przesunęła do góry: Możesz to zrobić wciskając - ile możesz obejrzeć zależy od tego ile masz pamięci na karcie graficznej. Jeśli podasz polecenie script to wszystko co pojawi się na ekranie znajdzie się także w pliku dopóki nie podasz polecenia exit. Reset ekranu: jeśli zdarzy ci się wyświetlić plik binarny to może się to skończyć tym, że zamiast znaku zachęty będziesz miał jakieś krzaki. Napisz wtedy na ślepo, ale dokładnie, reset albo echo c albo echo Komunikaty od jądra: spójrz do pliku /var/adm/messages albo /var/log/messages jako root, aby poczytać komunikaty od jądra włączając to co pojawiło się podczas startu systemu. 88..66.. PPoożżyytteecczznnee pprrooggrraammyy.. Po pierwsze - gdzie je znaleźć. Ponieważ wszyscy wiecie jak się poruszać po sieci i jak używać archie-go i ftp podam wam tylko najważniejsze adresy dla Linux-a. Są to: ˇ sunsite.unc.edu ˇ TSX-11.mit.edu ˇ nic.funet.fi Pierwsze dwa mają swoje kopie w Polsce pod adresem ftp.icm.edu.pl. Zalecam ich używać - o wiele szybszy transfer. I tak: ˇ sunsite.unc.edu to /pub/Linux/suniste/ ˇ TSX-11.mit.edu to /pub/Linux/tsx-11/ Programy: ˇ at - pozwala uruchamiać programy o podanej godzinie w podanym dniu, ˇ awk - bardzo dobry język do manipulacji plikami z danym (i nie tylko) Na przykład: awk '$2 ~ "abc" {print $1, "\t", $4}' dane.dat Wyświteli pola 1. i 4. każdej linii z pliku dane.dat, której drugie pole = abc ˇ delete-undelete - to chyba wiadomo, ˇ df - podaje informacje o ilości wolnego i zajętego miejsca na dysku ˇ dosemu - pozwala uruchamiać niektóre DOS-owe programy oraz Win 3.x przy odrobinie mieszania z konfiguracją, ˇ file - podaje rodzaj pliku - archiwum, gif, text itp. ˇ find (zobacz sekcja ``Katalogi'') jest jednym z najlepszych poleceń. Używany jest do wyszukiwania plików na dysku, które spełniają podane warunki i działania na nich. Ogólna postać polecenia find wygląda tak: find gdzie wyrażenie zawiera kryteria wyszukiwania i działania. Przykłady: find . -type l -exec ls -l {} ; wyszukaj wszystkie dołączenia symboliczne w katalogu bieżącym i jego podkatalogach i pokaż na co wskazują. find / -name '*.old' -ok rm {} ; wyszukaj wszystkie pliki z całego dysku z rozszerzeniem .old i pytaj o skasowanie ich. find . -perm 755 wyszukaj wszystkie pliki z prawami dostępu 755 - wykonywalne (zobacz ``Prawa dostępu'') w bieżącym katalogu i jego podkatalogach. find . -user root wyszukaj pliki, których właścicielem jest root. Jest o wiele więcej możliwości, jak np. wyrażenia logiczne (and, or) - PPS. ˇ (f)grep - wyszukuje łańcuchy w plik-u/ach, np. grep -l "stdio" *.c - wyświetl nazwy plików .c, które zawierają ciąg stdio ˇ gnuplot - doskonały program do naukowego drukowania na ploterach ˇ gzexe - skompresuj program wykonywalny zachowując jego wykonywalność ˇ joe - wspaniały edytor. Uruchamiając go poleceniem jstar będziesz miał te same przypisania do klawiszy co w WordStar ˇ less - przypuszczalnie najlepszy do przeglądania plików tekstowych; jeśli jest dobrze skonfigurowany to możesz także oglądać pliki .gz, .z, .tar ˇ lpr - drukuje plik w tle. Aby sprawdzić status kolejki do drukowania napisz lpq ˇ mc - coś a'la Norton Commander ˇ pine - przyjazny program do obsługi poczty i nie tylko ˇ script - kopiuje to co się pojawia na ekranie do pliku dopóki nie wydasz polecenia exit. ˇ sudo - pozwala zwykłym użytkownikom na wykonywanie zadań root-a PPS ˇ uname -a - informacja o systemie ˇ zcat, zless - wyświetlają skompresowane za pomocą gzip-a pliki tekstowe ˇ Następujące polecenia są często potrzebne: bc, cal, chsh, cmp, cut, fmt, head, hexdump, nl, passwd, printf, sort, split, strings, tac, tail, tee, touch, uniq, w, wall, wc, whereis, write, xargs, znew. 88..77.. PPoossppoolliittee rroozzsszzeerrzzeenniiaa ii pprrooggrraammyy zz nniimmii zzwwiiąązzaannee.. W przyszłości na pewno zetkniesz się z wieloma rozszerzeniami. Oto lista tych najpopularniejszych: ˇ ˇ1 ... .8 - strony podręcznika systemowego. ˇ ˇarj - kompresja arj ˇ ˇdvi - plik wyjściowy TeX-a (patrz poniżej); xdvi - program do oglądania tych plików; dvips - program tłumaczący je na postscript .ps ˇ ˇgif - plik graficzny ˇ ˇgz - kompresja gzip ˇ ˇinfo - plik informacyjny (alternatywa dla "man-a") ˇ ˇjpg, .jpeg - plik graficzny ˇ ˇlsm - Linux Software Map. Plik tekstowy zawierający informacje o danym pakiecie ˇ ˇps - plik postscipt-owy. Aby je oglądać zdobądź gs i opcjonalnie ghostscript ˇ ˇtgz, tar.gz - skompresowane archiwum ˇ ˇtex - plik dla TeX-a - narzędzie do składania dokumentów ˇ ˇtexi - plik dla texinfo ˇ ˇxbm, .xpm, .xwd - plik graficzny ˇ ˇzip - archiwum zip ˇ ˇZ - kompresja compress 99.. TToo ttyyllee.. Gratulacje ! Łyknąłeś trochę Unix-a i jesteś gotów do pracy i eksperymentowania. Pamiętaj, że twoja wiedza na temat systemu jest bardzo mała i jesteś zobowiązany dużo ćwiczyć, żeby dobrze się posługiwać Linux-em. Ale jeśli wszystko co miałeś zrobić to pościągać aplikacje i pracować z nimi, to założę się, że to co napisałem tutaj to wystarczająco. Na dzisiaj nie wiem wiele więcej, a jakoś udaje mi się pracować z Linux-em codziennie ! Jestem pewien, że Linux ci się spodoba i dalej będziesz się go uczył i poznawał. Założę się też, że już nigdy nie wrócisz do DOS-a ! Mam nadzieję, że wyraziłem się dostatecznie jasno i zrozumiale i zrobiłem dobry uczynek dla moich trzech czy czterech czytelników. 99..11.. PPrraawwaa aauuttoorrsskkiiee.. O ile nie stwierdza się inaczej, dokumenty HOWTO są chronione prawami autorskimi ich autorów. Mogą one być rozprowadzane w całości lub w części, w jakiejkolwiek postaci fizycznej czy elektronicznej tak długo, dopóki znajduje się w nich ta wzmianka. Dystrybucja komercyjna jest dozwolona, a nawet zachęca się do niej; chociaż autor chciałby być poinformowany o takowej. Wszelkie tłumaczenia, prace pochodne, prace zebrane zawierające dokumenty HOWTO muszą zawierać tę notatkę o prawach autorskich. Oznacza to, że nie możesz stworzyć pracy pochodzącej z HOWTO i nałożyć na jej dystrybucję dodatkowych ograniczeń. Wyjątki od tej zasady mogą być uczynione pod pewnymi warunkami; skontaktuj się z koordynatorem programu Linux HOWTO pod niżej podanym adresem. Krótko mówiąc, chcemy promować szerzenie tych dokumentów przez wszelkie dostępne kanały. Chcielibyśmy także utrzymać prawa autorskie nałożone na te dokumenty, i być powiadomieni o planach dotyczących redystrybucji HOWTO. Jeśli masz pytania skontaktuj się z Gregiem Hankisem, koordynatorem programu Linux HOWTO po adresem gregh@sunsite.unc.edu. 99..22.. DDiissccllaaiimmeerr.. "Szybkie przejście od DOS-a do Linux-a" zostało napisane przez Guido Gonzato, Guido@ibogfs.cineca.it. Wielkie dzięki dla Matta Welsha, autora podręcznika "Linux Installation and Getting Started", dla Ian Jackson, autora "Linux frequently asked questions with answers", dla Giuseppe Zanetti, autora "Linux - Il sistema operativo FREE SOFTWARE per personal computer 386/486", dla wszystkich, którzy przysłali mi pocztę z sugestiami no i szczególne podziękowania dla Linusa Torvaldsa i GNU, którzy dali nam Linuxa !!! Dokument ten dostarczany jest "taki jaki jest". Włożyłem wiele wysiłku, aby napisać go tak dokładnie jak tylko potrafiłem, ale wykorzystujesz informacje tu zawarte na własne ryzyko. Nie jestem odpowiedzialny w żadnym wypadku za jakiekolwiek zniszczenia wynikłe z winy korzystania z tego dokumentu. Tłumacz także nie jest odpowiedzialny za żadne zniszczenia. Wszelkie odzewy, prośby, sugestie, krytyki itd. są mile widziane. Ciesz się z życia ! (i z Linux-a) Guido =8-) 99..33.. OOdd ttłłuummaacczzaa.. Tłumaczenie to jest chronione prawami autorskimi Š Bartosza Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny. Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne, składniowe, techniczne to pisz do mnie: B.Maruszewski@zsmeie.torun.pl Oficjalną stroną tłumaczeń HOWTO jest http://www.jtz.org.pl/ Aktualne wersje przetłumaczonych dokumentów znajdują się na tejże stronie. Dostępne są także poprzez anonimowe ftp pod adresem ftp.ippt.gov.pl/pub/Linux/JTZ/ Przetłumaczone przeze mnie dokumenty znajdują się także na mojej stronie WWW. Są tam też odwołania do Polskiej Strony Tłumaczeniowej. Kontakt z naszą grupą, grupą tłumaczy możesz uzyskać poprzez listę dyskusyjną jtz@ippt.gov.pl. Jeśli chcesz sie na nią zapisać, to wyślij list o treści subscribe jtz Imię Nazwisko na adres listproc@ippt.gov.pl Zmiany w tym dokumencie wprowadzone przez tłumacza to: ˇ - wzmianka o systemie ext2 w nowych dystrybucjach, ˇ - wzmianka o najczęściej stosowanych skrótach, ˇ oraz inne pomniejsze dodatki.