1. Wprowadzenie.
1.1 Czy Linux jest dla ciebie odpowiedni?
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.
1.2 Tak jest. Powiedz mi jeszcze.
Zainstalowałe¶ Linux-a na PC-cie. Założyłe¶ sobie konto, wykonuj±c instrukcje podczas instalacji (je¶li nie, to wpisz adduser teraz !!!) 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ć, NIE WOLNO CI WYَCZYĆ PC-TA OD TAK PO PROSTU 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 System halted.
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.
1.3 Dla niecierpliwych.
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 !!!
2. Pliki i programy.
2.1 Pliki: pojęcie ogólne.
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.
2.2 Doł±czenia symboliczne.
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.
2.3 Atrybuty plików w Linux-ie.
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".
2.4 Pliki: Porównanie podstawowych poleceń DOS-owych z Linux-owymi.
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 NIE MA UNDELETE, 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.
2.5 Wykonywanie programów: wielozadaniowo¶ć i sesje.
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.
2.6 Uruchamianie programów na komputerach odległych.
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.
3. Używanie katalogów.
3.1 Katalogi: pojęcie ogólne.
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: \PROGRAMS\C++\SOURCES\HELLO.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.
3.2 Prawa dostępu katalogów.
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
3.3 Katalogi: Porównanie podstawowych poleceń DOS-owych z Linux-owymi.
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 katalog na /home/twój_dom_kat/tmp. Rozumiesz zasadę ?
Uwaga 3: cd - odwraca ostatnie polecenie cd.
4. Dyskietki, dyski twarde i takie inne.
4.1 Urz±dzenia.
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. BARDZO WAŻNE - 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.
4.2 Archiwizacja.
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
5. Konfigurowanie systemu.
5.1 Pliki startowe systemu.
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
5.2 Pliki startowe programów.
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
6. Troszkę programowania.
6.1 Pisanie skryptów: takie .BAT-y tylko lepsze.
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""
7. C dla ciebie.
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ć.
8. Pozostały 1%.
8.1 "Odrootowić się".
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 'password locked' lub co¶ podobnego. Zajrzyj wtedy do katalogu /etc i zobacz czy jest tam plik .passwd.lock lub o podobnej nazwie i skasuj go.
8.2 Tworzenie wirtualnej pamięci.
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.
8.3 Używanie tar-a i gzip-a.
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.
8.4 Instalacja aplikacji.
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.
8.5 Triki, bez których nie możesz się obej¶ć.
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.
8.6 Pożyteczne programy.
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:
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.
8.7 Pospolite rozszerzenia i programy z nimi zwi±zane.
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
9. To tyle.
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.
9.1 Prawa autorskie.
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.
9.2 Disclaimer.
"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-)
9.3 Od tłumacza.
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:
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.