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 <polecenie>" - podrêcznik systemowy (nie zadawaj pytañ bez przeczytania; wyj¶cie z niego to klawisz 'q'), "apropos <polecenie>" - to wy¶wietla wszystkie polecenia zwi±zane z danym s³owem, "whatis <polecenie>" - 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.tar> [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 <<ENTER>> 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 <plik_lub_katalog> <nazwa_do³±czenia> 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 <plik> 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 <plik> - nadaje w³a¶cicielowi pliku prawo do wykonywania go. chmod ug+rx <plik> - 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 <<ENTER>>. 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 ./<prog>. Oto jak wygl±da typowy wiersz poleceñ: $ polecenie -o1 -o2 ... -on par1 par2 ... parn <wej¶cie >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 - <identyfikator> 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] [<wej¶cie] [>wyj¶cie] - Aby odpaliæ proces w tle napisz: $ program [-opcje] [parametry] [<wej¶cie] [>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 <PID> 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 <PID> 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 <nr_zadania> - Aby przywróciæ proces do pierwszego planu napisz $ fg <nr_zadania> - I jeszcze raz, aby zabiæ zadanie napisz: $ kill %<nr_zadania> 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 <nazwa_programu> & 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 <nazwa> 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<arg>, np. gcc -o matma matma.c -lm Opcja -l<arg> zmusza gcc, aby do³±czy³o bibliotekê /usr/lib/lib<arg>.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 <TAB> naci¶nij tabulator calc: calc.o parser.o <TAB>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 <TAB>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 <TAB>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 <<ENTER>> 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 <nazwa_archiwum.tar> <pliki_do_zarchiwizowania> Aby wydobyæ pliki z archiwum wpisz: tar xpvf <nazwa_archiwum.tar> <pliki> Aby wy¶wietliæ zawarto¶æ archiwum napisz: tar tf <nazwa_archiwum> | 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 <plik> albo gzip <plik> skompresuje plik. uncompress <plik>.Z albo gzip -d <plik>.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 <TAB> 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<TAB>. Ogl±danie zawarto¶ci ekranu, która siê przesunê³a do góry: Mo¿esz to zrobiæ wciskaj±c <SHIFT+PGUP> - ile mo¿esz obejrzeæ zale¿y od tego ile masz pamiêci na karcie graficznej. Je¶li podasz polecenie script <plik> to wszystko co pojawi siê na ekranie znajdzie siê tak¿e w pliku <plik> 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 <CTRL+V> <ESC> c <ENTER> albo echo <CTRL+V> <CTRL+O> <ENTER> 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 <nazwa> - 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 <katalog> <wyra¿enie> 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 <plik> - 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 <plik> - 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. <http://www.zsmeie.torun.pl/~bart/tlumaczenie.html> 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.