HISTORIA SYSTEMU
Linuks powstał pod koniec 1991 roku, a jego twórcą był Linus Torvalds z Uniwersytetu Helsińskiego. Linus stworzył Linuksa w oparciu o niewielką implementację Uniksa zwaną MINIX. Informacje o swojej pracy opublikował na jednej z list dyskusyjnych, co spotkało się z dużym zainteresowaniem i wkrótce nad projektem pracowało wielu programistów.
Wspólne prace nad nowym systemem znacznie przyczyniły się do szybszego rozwoju Linuksa, przysparzając mu jednocześnie dużej popularności.
W 1994 roku przystosowano Linuksa do pracy w sieci. Od 1995 Linuks mógł pracować z procesorami: Intel, Alpha Digital i Sun Sparc. W 1996 roku powstała wieloprocesorowa wersja Linuksa o numerze 2.0.
W 1998 zaczęto prace na projektem KDE, który miał na celu stworzenie środowiska graficznego dla niezbyt przyjaznego wówczas Linuksa.
Popularność Linuksa spowodowała powstanie wielu jego dystrybucji wyprodukowanych przez różne firmy. Najbardziej znane dystrybucje to:
Red Hat - dystrybucja ta przeznaczona jest dla początkujących użytkowników. Swoją popularność zawdzięcza łatwej instalacji, dużej liczbie dodatkowych programów i pakietom RPM.
Mandrake - dystrybucja ta oparta jest o system Red Hat i przeznaczona także dla początkujących użytkowników. Swą popularność zawdzięcza olbrzymiej liczbie dodatkowych pakietów, prostej instalacji, całkowicie spolszczonemu interfejsowi i prostej obsłudze.
Debian - jest dystrybucją przeznaczoną dla doświadczonych użytkowników Linuksa. Ceniona przede wszystkim przez administratorów za swą stabilność i bezpieczeństwo. Posiada własny format pakietów - deb. Trudna w instalacji i administracji.
SuSe - dystrybucja Linuksa wywodząca się z Niemiec. Posiada dużą ilość oprogramowania, łatwa w instalacji i konfiguracji. Stabilna i bezpieczna.
PLD - dystrybucja Linuksa stworzona w Polsce, będąca w trakcie testów. Liczba pakietów wchodzących w skład dystrybucji wynosi ok. 6 tysięcy.
CHARAKTERYSTYKA SYSTEMU
Na wstępie należy powiedzieć, że Linuks jest systemem operacyjnym o dużych możliwościach, nadającym się zarówno na stacje robocze, jak i platformy serwerowe.
Minimalne wymagania sprzętowe potrzebne do uruchomienia Linuksa to:
Intel 386
Wolna przestrzeń dyskowa :
320 MB jeśli system ma działać w trybie tekstowym
450 MB z systemem X-Window
16 MB pamięci RAM
karta grafiki VGA
stacja dysków 3,5 cala
napęd CD-ROM, SCSI lub IDE
Co daje nam Linuks :
pełną wielozadaniowość - w tym samym czasie wielu użytkowników może wykonywać kilka zadań na tym samym komputerze
pamięć wirtualną - dzięki czemu Linuks może używać części dysku twardego jako pamięci wirtualnej co zwiększa wydajność systemu poprzez umieszczanie aktywnych procesów w pamięci RAM, a tych rzadziej używanych lub nieaktywnych na dysku
wbudowaną obsługę sieci - poprzez modem lub kartę sieciową Linuks może porozumiewać się z innymi komputerami wykorzystując protokoły TCP/IP, NFS, NIS lub inne
współużytkowanie bibliotek - programy w systemie Linuks nie przechowują własnych kopii standardowych bibliotek tylko wspólnie współużytkują zestaw procedur, do których mogą odwoływać się w trakcie działania. Dzięki temu otrzymujemy więcej przestrzeni dyskowej
kompatybilność z normą IEEE.POSIX1 - dzięki czemu Linuks obsługuje wiele standardów ustalonych dla systemów Unix
X Window - jest systemem dającym graficzny interfejs Linuksowi
niezastrzeżony kod źródłowy - dzięki czemu możemy aktywnie uczestniczyć w rozwoju systemu
darmowe oprogramowanie - dostajemy wraz z systemem na płytach CD, poza tym istnieje wiele stron internetowych, na których możemy znaleźć ciekawe oprogramowanie.
INSTALACJA LINUKSA
Najprostszym sposobem zainstalowania Mandrake jest instalacja z pierwszej płyty CD-ROM zawierającej dystrybucję Linuksa i będącej płytą bootowalną.
Instalacja rozpocznie się po zrestartowaniu komputera - należy jednak pamiętać, aby wcześniej ustawić BIOS tak, aby uruchamiał system z napędu CD-ROM.
Jeśli jednak nasz komputer nie posiada takiej możliwości należy przygotować dyskietkę startową, z której uruchomimy program instalacyjny.
W Windows do tworzenia dyskietki startowej służy program rawwritewin.exe , znajdujący się w katalogu /dosutils na pierwszej płycie z Linuksem.
Jako Image File należy wpisać :
X:\images\cdrom.img
gdzie X jest literą oznaczającą nasz napęd CD-ROM.
W polu Floppy Drive zaznaczamy A: i mając w napędzie czystą dyskietkę naciskamy przycisk Write .
Z tak przygotowaną dyskietką postępujemy tak samo, jak w przypadku instalacji z CD-ROMu, wybierając miejsce, z którego załadowany ma być system, jako dysk A: .
Dalej instalacja systemu polega na zaznaczaniu odpowiednich opcji w odpowiedzi na zadawane przez komputer pytania.
Kolejne wybory będą dotyczyć następujących pytań :
wybór języka
należy tu wybrać język, którym chcemy posługiwać się podczas instalacji systemu, i który będzie domyślnym językiem w naszym systemie
akceptacja licencji
jeśli chcemy kontynuować naszą instalacje należy po zapoznaniu się z treścią licencji wybrać opcję : akceptuj
wybór rodzaju instalacji
tutaj decydujemy o rodzaju instalacji - do wyboru mamy instalacje zalecaną i zaawansowaną.
Podczas instalacji zaawansowanej komputer zada nam więcej pytań, dzięki czemu będziemy mieli większy wpływ na przebieg instalacji (wybieramy opcję : instalacja zaawansowana)
wykrywanie dysków
na tym etapie komputer spróbuje wykryć jakie napędy dysków zainstalowane są w naszym systemie, może pojawić się pytanie o interfejs SCSI. Warto więc zorientować się przed instalacją jakie urządzenia mamy zainstalowane w naszym komputerze
konfiguracja myszy
z listy wybieramy rodzaj myszki zainstalowanej w naszym komputerze
wybór klawiatury
wybieramy rodzaj i układ naszej klawiatury. Jeśli będziemy pracować w języku polskim należy jako układ klawiatury wybrać : polski (programisty)
bezpieczeństwo
pytanie to dotyczy stopnia bezpieczeństwa naszego komputera, dostępne są tu cztery odpowiedzi :
Standardowy - jest to domyślny poziom zabezpieczeń, będący najlepszym wyborem dla maszyn wykorzystywanych w sieci jako klient
Wysoki - poziom ten posiada bardziej zaostrzone prawa dostępu od poprzedniego oraz system powiadamiania administratora o zmianach w systemie mogących wskazywać na włamanie
Wyższy - na poziomie tym większość usług sieciowych jest domyślnie wyłączona, a prawa dostępu do plików są jeszcze bardziej restrykcyjne od tych z poziomu wysokiego
Paranoidalny - na poziomie tym uruchamiane są wszystkie możliwe systemy bezpieczeństwa, a nasz system jest praktycznie odcięty
system plików
na tym etapie możemy stworzyć nowe partycje i wskazać miejsce, w którym zostanie zainstalowany system. Należy pamiętać, że wszystkie zmiany zostaną zapisane dopiero po akceptacji przyciskiem : Gotowe. Do tej pory możemy swobodnie eksperymentować z ustawieniami.
Do instalacji Linuksa potrzebne są przynajmniej dwie partycje :
1 - EXT3 - dla dystrybucji Linuksa
2 - SWAP - jako partycja wymiany
Wielkość partycji SWAP określa się jako podwójną ilość pamięci RAM zainstalowanej w naszym komputerze. Jeśli jednak nasz komputer posiada więcej niż 64 MB, partycja SWAP nie powinien przekraczać 128 MB.
Istniej również możliwość wydzielenia odrębnych partycji dla katalogów takich jak :
/home, /usr, /usr/local i innych .
O przeznaczeniu i zawartości tych katalogów można przeczytać w dalszej części tego kursu
formatowanie
zaznaczamy tu, które partycje należy sformatować. Jeśli na dysku posiadamy partycje z innym systemem lub partycje z cennymi danymi, nie należy ich zaznaczać.
Istniej tu również możliwość zaznaczenia opcji, dzięki której wybrane partycje zostaną sprawdzone w poszukiwaniu błędów fizycznych
instalacja pakietów
etap ten polega na wybraniu odpowiednich pakietów, które chcemy zainstalować w naszym systemie. Jeśli jednak nie czujesz się na siłach, aby samodzielnie dokonać wyboru możesz skorzystać z gotowych propozycji :
- stacja robocza
- serwer
- środowisko graficzne
Należy pamiętać, że po instalacji istnieje zawsze możliwość doinstalowania brakujących pakietów
hasło root
ustawiamy tutaj hasło dla użytkownika ROOT
użytkownicy
etap ten daje nam możliwość dodania do systemu użytkowników. Należy stworzyć co najmniej jednego użytkownika
konfiguracja sieci
po wejściu na ten etap system spróbuje automatycznie wykryć urządzenia sieciowe pracujące w naszym komputerze.
Następnym krokiem jest podjęcie decyzji w jaki sposób będziemy łączyć się z komputerem :
- poprzez modem
- poprzez ISDN
- poprzez ADSL
- poprzez sieć lokalną
Następne pytania będą uzależnione od naszego wyboru i mogą dotyczyć portu dla modemu, adresu IP, serwera DNS itp.
różne
na tym etapie instalacji możemy sprawdzić czy wybraliśmy odpowiedni sterownik dla myszy, klawiatury i ewentualnie dokonać poprawek.
Możemy wybrać tu również strefę czasową, w której się znajdujemy i dodać drukarkę do naszego systemu.
konfiguracja usług
z listy dostępnych usług możemy wybrać te, które będą uruchamiane podczas startu systemu
program rozruchowy
jeśli na naszym komputerze chcemy mieć zainstalowany więcej niż jeden system, to do wyboru który z nich ma zostać załadowany podczas startu komputera służy właśnie program rozruchowy.
Do wyboru mamy trzy możliwości :
- Grub
- LILO z menu graficzny
- LILO z menu tekstowym
Ja proponuję wybrać LILO z menu graficznym.
Należy wybrać również urządzenie startowe, z którego ładowany jest nasz system. Najczęściej jest to /dev/hda .
dysk startowy
tutaj system spyta nas czy stworzyć dyskietkę startową. Dyskietka taka może okazać się niezbędną w razie jakichkolwiek problemów
konfiguracja X
tutaj dokonujemy konfiguracji X serwera (środowiska graficznego) poprzez wybór :
- monitora
- karty grafiki
- rozdzielczości ekranu, w której chcemy uruchamiać X-y
System zapyta nas również czy chcemy, aby X-y uruchamiały się automatycznie podczas startu systemu.
Więcej o X-ach można dowiedzieć się w dalszej części tego kursu.
aktualizacja systemu
jeśli podczas procesu instalacji poprawnie skonfigurowaliśmy dostęp do internatu, możemy teraz pobrać z sieci udostępnione poprawki systemu i uaktualnione pakiety
wyjście z instalacji
jest to już ostatni etap instalacji systemu Linuks. Mamy tu możliwość zapisania na dyskietce listy wybranych pakietów i stworzenia specjalnej dyskietki przydatnej podczas procesu automatycznej instalacji.
PIERWSZE LOGOWANIE
Po załadowaniu systemu Mandrake w zależności od tego czy wybraliśmy automatyczne uruchamianie X-ów, czy też nie, system przywita nas graficznym menadżerem logowania lub konsolą tekstową.
W obu przypadkach system poprosi nas o podanie nazwy użytkownika (login) i jego hasła (password).
Jeśli podczas instalacji stworzyliśmy dodatkowego użytkownika, dobrym rozwiązaniem jest zalogowanie się właśnie jako ten użytkownik.
Należy pamiętać, że będąc zalogowanym w systemie, jako ROOT posiadamy pełne uprawnienia, co oznacza, że możemy wykonać dowolną operację - nawet przypadkowo skasować cały system.
Będąc zalogowanym, jako zwykły użytkownik w każdej chwili możemy stać się super-użytkownikiem lub innym użytkownikiem mającym konto na naszym komputerze.
Do zmiany użytkownika służy komenda wydawana z linii poleceń konsoli :
su nazwa_użytkownika
po wydaniu komendy system poprosi nas o podanie hasła dla tego użytkownika.
Aby stać się z powrotem poprzednim użytkownikiem należy wydać polecenie :
exit
KONSOLE WIRTUALNE
Linuks domyślnie posiada siedem wirtualnych konsol, do których mamy dostęp za pomocą kombinacji klawiszy : ALT+F1-F7. Podczas uruchamiania systemu X Window ręcznie lub automatycznie, zablokowana zostaje konsola, z której zostały uruchomione X-y, a nasz menadżer wyświetlania dostępny jest na konsoli 7. Przejście z poziomu X-ów na pozostałe konsole odbywa się za pomocą następującej kombinacji klawiszy : CTR+ALT+F1-F6
Na każdej z wirtualnych konsol możemy zalogować się, jako inny użytkownik. Takie rozwiązanie umożliwia nam uruchomienie na każdej z konsol jakiegoś zadania.
Należy jednak pamiętać, że Linuks to prawdziwy system wielozadaniowy, który umożliwia przeniesienie dowolnego procesu w tło, zwalniając terminal i ponowne przywrócenie go w dowolnym momencie.
SZUKANIE POMOCY I PODRĘCZNIKI MAN
Nawet najlepszy administrator w końcu dochodzi do wniosku, że nie wie wszystkiego o systemie i w pewnych sytuacjach potrzebuje pomocy.
Strony man stanowią pierwszą pomoc w takich sytuacjach. Zawierają one definicje i objaśnienia poleceń systemu wraz z opisem opcjonalnych parametrów dla specjalnych funkcji poleceń.
man polecenie
np.:
man ls
pokaże nam opis polecenia ls służącego do listowania zawartości katalogów.
Innym również skutecznym sposobem szukania pomocy są internetowe grupy dyskusyjne poświęcone Linuksowi :
pl.comp.os.linux
pl.comp.os.linux.sprzet
pl.comp.os.linux.programowanie
pl.comp.os.linux.sieci
STRUKTURA KATALOGÓW
Struktura katalogów w dystrybucjach Linuksa jest zorganizowana tak, aby spełniała wymagania standardu określającego postać Linuksowego systemu plików - FSSTND.
Katalogi zorganizowane są w następujący sposób :
/ |
- główny katalog |
|_ bin |
- pliki wykonywalne |
|_ boot |
- pliki ładujące system |
|_ dev |
- pliki urządzeń |
|_ etc |
- pliki konfiguracyjne |
|_ lib |
- biblioteki dzielone i moduły jądra |
|_ mnt |
- punkt montowania systemów plików |
|_ opt |
- pakiety zainstalowane opcjonalnie |
|_ sbin |
- pliki wykonywalne (dla administratorów) |
|_ tmp |
- pliki tymczasowe |
|_ usr |
- narzędzia i aplikacje |
|_ var |
- zmieniające się dane |
Rozszerzony opis zawartości poszczególnych katalogów :
/
Katalog nadrzędny, który rozpoczyna całe drzewo katalogów.
/bin
Katalog ten zawiera programy wykonywalne, dostępne dla zwykłego użytkownika.
/boot
Katalog ten zawiera tylko statyczne pliki dla boot loadera potrzebne podczas procesu bootowania.
/dev
Tu znajdują się pliki reprezentujące poszczególne urządzenia.
/etc
Zawiera ogólnosystemowe pliki konfiguracyjne dla wielu programów.
Pliki konfiguracyjne dla całego systemu można również umieszczać w /usr/etc.
Niemniej jednak programy powinny zawsze szukać tych plików w /etc , a ty możesz umieścić linki do nich w /usr/etc.
/etc/X11
Pliki konfiguracyjne dla systemu okienkowego X11.
/etc/skel
Tu znajdują się pliki potrzebne do stworzenia nowego konta użytkownika. Podczas tworzenia nowego konta pliki z tego katalogu są kopiowane do katalogu domowego użytkownika.
/home
Tu znajdują się katalogi domowe użytkowników.
/lib
Ten katalog powinien zawierać te biblioteki dynamiczne, które są konieczne do wystartowania systemu i uruchamiania komend z głównego systemu plików.
/lib/modules
Ładowalne moduły jądra, wymagane do startu systemu i pracy po jego padzie (sterowniki sieciowe, itd. ).
/mnt
Jest punktem montowania systemów plików montowanych tymczasowo.
/opt
Ten katalog powinien zawierać dodatkowe pakiety, które zawierają statyczne pliki.
/proc
System plików /proc jest całkowicie wirtualny - nie istnieje na dysku. Jest tworzony i utrzymywany przez jądro w pamięci. Używany jest w celu dostarczenia informacji o systemie (o działających procesach - stąd nazwa).
/root
Tan katalog jest katalogiem domowym użytkownika root.
/sbin
Tak jak /bin, katalog ten zawiera programy potrzebne do wystartowania i administracji systemu. Z programów tych mogą korzystać tylko administratorzy systemu.
/tmp
Ten katalog zawiera pliki tymczasowe, które może usunąć w dowolnym momencie.
/usr
W katalogu tym znajdują się programy zainstalowane podczas instalacji systemu lub te, które instalowaliśmy ręcznie. Katalog ten można zamontować na oddzielnej partycji, dzięki czemu po aktualizacji lub zmianie systemu nie musimy ponownie instalować dodatkowych programów.
/usr/X11R6
Tu znajduje się system X-Window.
/usr/bin
Jest to główny katalog programów wykonywalnych, używanych przez zwykłych użytkowników, które nie są potrzebne przy starcie lub naprawie systemu, i które nie są instalowane lokalnie.
/usr/bin/X11
Tradycyjne miejsce na pliki wykonywalne X11.
Często jest to link symboliczny do /usr/X11R6/bin.
/usr/etc
Można tu umieszczać pliki konfiguracyjne dzielone między kilkoma maszynami. Programy jednak powinny zawsze odwoływać się do tych plików używając katalogu /etc.
Linki od plików w /etc powinny wskazywać na odpowiednie pliki w /usr/etc.
/usr/include
Zawiera pliki nagłówkowe dla kompilatora C.
/usr/include/linux
Zawiera informacje, które mogą zmieniać się z jednego wydania systemu na drugie.
/usr/lib
Znajdują się tu biblioteki obiektowe, w tym dynamiczne, plus parę plików wykonywalnych.
/usr/local
Katalog ten jest przeznaczony dla programów instalowanych lokalnie.
/usr/local/bin
Tu są binaria programów lokalnych.
/usr/local/doc
Lokalna dokumentacja.
/usr/local/etc
Pliki konfiguracyjne skojarzone z lokalnie zainstalowanymi programami.
/usr/local/lib
Pliki skojarzone z lokalnie zainstalowanymi programami.
/usr/local/include
Pliki nagłówkowe lokalnego kompilatora C.
/usr/local/info
Strony info skojarzone z lokalnie zainstalowanymi programami.
/usr/local/man
Strony podręcznika ekranowego skojarzone z lokalnie zainstalowanymi programami.
/usr/local/sbin
Lokalnie instalowane programy do administracji systemem.
/usr/local/share
Dane lokalnych aplikacji, które mogą być dzielone między różnymi architekturami tego samego systemu operacyjnego.
/usr/local/src
Kody źródłowe programów instalowanych lokalnie.
/usr/sbin
Ten katalog zawiera binaria programów do administracji systemem, które nie są niezbędne do startu lub naprawy systemu.
/usr/share
Ten katalog zawiera podkatalogi ze specyficznymi danymi aplikacji, które mogą być dzielone między różnymi architekturami tego samego systemu operacyjnego.
/usr/share/dict
Zawiera pliki z listami słów dla poprawiaczy pisowni.
/usr/share/doc
Dokumentacja zainstalowanych programów.
/usr/share/info
Katalog ze stronami info.
/usr/share/locale
Tutaj znajdują się informacje związane z ustawieniami regionalnymi.
/usr/share/man
Trafiają tu strony podręcznika ekranowego do odpowiednich katalogów według sekcji podręcznika.
/usr/share/man/locale/man[1-9]
Te katalogi zawierają strony podręcznika w formacie źródłowym.
/usr/share/zoneinfo
Pliki informacji o strefach czasowych.
/usr/src
Pliki źródłowe różnych części systemu, dołączane do niektórych pakietów.
/usr/src/linux
Zawiera źródła jądra samego systemu operacyjnego.
/var
Ten katalog zawiera pliki, które mogą zmieniać wielkość, takie jak logi i spoole.
/var/cache
Zbuforowane dane programów.
/var/catman/cat[1-9] lub /var/cache/man/cat[1-9]
Te katalogi przechowują przeformatowane strony podręcznika ekranowego zgodnie z sekcją tego podręcznika.
/var/lib
Zmieniające się podczas pracy systemu pliki programów.
/var/local
Zmienne dane dla programów zainstalowanych w /usr/local.
/var/lock
Umieszczane są tu przez programy pliki blokady w celu wskazania na swoje działanie. Inne programy sprawdzają te pliki i odpowiednio działają (np.: wstrzymują się z odwołaniem do danego urządzenia).
Konwencja nazw plików lock dla urządzeń to LCK.<urządzenie> gdzie <urządzenie>, to nazwa urządzenia w systemie plików.
/var/log
Tu znajdują się logi systemowe i innych programów.
/var/opt
Zmienne dane dla /opt.
/var/mail
Skrzynki pocztowe użytkowników. Zastępuje /var/spool/mail.
/var/run
Pliki zawierające bieżące informacje o systemie, np.: pliki zawierające identyfikatory procesów (PIDy) i informację o zalogowanych użytkownikach (utmp). Pliki w tym katalogu są zwykle czyszczone przy starcie systemu.
/var/spool
Kolejkowane pliki różnych programów.
/var/spool/at
Spoolowane zadania dla at
/var/spool/cron
Spoolowane zadania dla crona.
/var/spool/lpd
Spoolowane pliki do drukowania.
/var/spool/mail
Zastąpione przez /var/mail.
/var/spool/mqueue
Zakolejkowana poczta wychodząca.
/var/spool/news
Katalog newsów.
/var/spool/rwho
Spoolowane pliki dla rwho.
/var/spool/smail
Spoolowane pliki dla programu smail.
/var/tmp
Tak jak /tmp, ten katalog zawiera tymczasowe pliki przechowywane na czas nieokreślony.
/var/yp
Pliki bazy danych systemu NIS.
PODSTAWOWE POLECENIA
W rozdziale tym przedstawię listę podstawowych poleceń Linuksa, posegregowanych w grupy w zależności od przeznaczenia. Opis każdego z tych poleceń można zobaczyć poprzez wydanie komendy :
man polecenie
Polecenia można podzielić na następujące grupy :
- polecenia związane z plikami i katalogami
- polecenia związane z systemem plików
- polecenia związane z zarządzaniem użytkownikami
- polecenia związane z zarządzaniem modułami jądra
- polecenia związane z procesami
- polecenia związane z siecią
- polecenia związane z wyszukiwaniem
- polecenia związane z szukaniem pomocy
- inne polecenia
Polecenia związane z plikami i katalogami :
cd ścieżka_dostępu
Opis : zmiana bieżącego katalogu
touch [-acm] [MMDDhhmm] lista_plików
Opis : modyfikacja daty i czasu utworzonego pliku, tworzenie nowego pliku
Opcje:
-a - zmienia tylko czas ostatniego dostępu do pliku
-c - jeśli plik nie istnieje nie zostanie utworzony
-m - zmienia czas ostatniej modyfikacji pliku
MMDDhhmm - czas w postaci : miesiąc dzień godzina minuta (np.: 10122122)
rm [-fr] nazwa_pliku
Opis : kasowanie pliku
Opcje :
-f - pomija konieczność potwierdzenia pytania o usuwanie plików
-r - usuwa zawartość katalogu wraz z podkatalogami
cp [-flpRs] plik plik_docelowy_lub_katalog
Opis : kopiowanie plików i katalogów
Opcje :
-f - powoduje, że program nie uprzedza o nadpisaniu pliku docelowego o tej samej nazwie
-l - tworzy dowiązanie zamiast kopiować plik
-p - opcja ta powoduje, że kopiowane pliki zachowują w miarę możliwości swoje atrybuty
-R - kopiuje zawartość katalogów i podkatalogów
-s - tworzy dowiązanie symboliczne zamiast kopiować plik
mv [ -fu] plik plik_docelowy_lub_katalog
Opis : zmiana nazwy lub przenoszenie pliku i katalogu
Opcje :
-f - powoduje, że program nie uprzedza o nadpisaniu pliku docelowego o tej samej nazwie
-u - przenosi pliki tylko wówczas, gdy istniejące pliki docelowe są starsze
chmod [-R][ugoa][+-=][rwx] plik_lub_katalog
Opis : zmiana atrybutów pliku
Opcje :
-R - zmiana praw dla plików i katalogów wraz z podkatalogami
-u (user) - właściciel pliku lub katalogu
-g (group) - grupa, do której należy dany plik lub katalog
-o (other) - wszyscy pozostali
+ - dodaje prawa
- - odbiera prawa
= - sprawia, że plik lub katalog będzie miał prawa tylko takie, jakie zostaną podane po tej opcji
-r - prawo czytania danych
-w - prawo zapisu (edycji)
-x - prawo uruchamiania
chown [-Rf] właścicel[:grupa] plik_lub_katalog
Opis : zmiana właściciela pliku lub katalogu
Opcje :
-R - zmiana właściciela i/lub grupy plików i katalogów wraz z podkatalogami
-f - zmienia właściciela i/lub grupę tylko tym plikom, które należą do podanego właścicela i/lub grupy
mkdir [-mp] katalog
Opis : tworzenie katalogów
Opcje :
-m=prawa - nadaje tworzonym katalogom podane prawa
-p - nie ostrzega, jeśli katalog o podanej nazwie już istnieje
rmdir [-p] katalog
Opis : kasowanie katalogów
Opcje :
-p - usuwa katalog wraz z katalogami nadrzędnymi
ls [-al] plik_lub_katalog
Opis : wyświetla informacje o plikach i katalogach
Opcje :
-a - wyświetla wszystkie pliki w katalogu, wraz z plikami ukrytymi
-l - listuje w długim formacie pełną informację o plikach i katalogach
ln [-dfs] plik_lub-katalog link
Opis : tworzenie dowiązań
Opcje :
-d - tworzy dowiązanie twarde do katalogów
-f - nie informuje o nadpisywaniu istniejącego pliku
-s - tworzy dowiązanie symboliczne
less nazwa_pliku
Opis : podgląd plików tekstowych
cat nazwa_pliku
Opis : przesyła plik na standardowe wejście
Polecenia związane z systemem plików :
df [-aht] urządzenie
Opis : sprawdzenie ilości wolnego miejsca na dysku
Opcje :
-a - wyświetla informacje o każdym systemie plików
-h - wyświetlane informacje są podawane w łatwych do odczytania jednostkach
-t=typ - wyświetla informacje tylko o systemie danego typu
mkfs [-t] [-c] urządzenie_blokowe
Opis : tworzenie systemu plików
Opcje :
-t - określa typ tworzonego systemu plików, domyślnie ext2
-c - sprawdza uszkodzone bloki urządzenia przed utworzeniem systemu plików
mount [-t] [-o] urządzenie_lub_katalog
Opis : montowanie systemu plików
Opcje :
-t - typ montowanego systemu plików
-o - po tej opcji następuje podanie oddzielonych przecinkami wartości :
remount - przemontowanie zamontowanego już systemu plików
ro - montuje system plików w tryb tylko do odczytu
rw - montuje system plików w tryb tylko do odczytu i zapisu
nouser - zabrania zwykłemu użytkownikowi montowania systemu plików
umount urządzenie_lub_katalog
Opis : odmontowanie systemu plików
e2fsck [-pcf] [-b] urządzenie
Opis : testowanie systemu plików
Opcje :
-p - napraw automatycznie system plików bez żadnych pytań
-c - uruchom program badblocks w celu znalezienia uszkodzonych bloków
-f - wymuś sprawdzanie, nawet jeśli system plików wydaje się być czysty
-b superblok - użyj podanego superbloku
fdisk [-lv] [-s] urządzenie
Opis : obsługa partycji
Opcje :
-l - drukuje tablice partycji
-v - drukuje numer wersji fdiska
-s partycja - jest partycją wybranego dysku
urządzenie - jest plikiem z katalogu /dev wskazującym na nasz dyski (np.: hda)
fdformat [-n] urządzenie
Opis : niskopoziomowy format dyskietki
Opcje :
-n - wyłączenie weryfikacji sformatowanej dyskietki
Polecenia związane z zarządzaniem użytkownikami :
useradd [-d] [-g] [-G] [-s] [-u] nazwa_użytkownika
Opis : dodawanie użytkowników
Opcje :
-d katalog_domowy - wartość ta określa katalog domowy użytkownika, domyślnie zmienna ta przyjmuje wartość taką samą jak nazwa użytkownika
-g gupa_początkowa - jest nazwą grupy początkowej użytkownika. Grupa ta musi już istnieć. W przypadku nie podania tej zmiennej system sam utworzy grupę dla użytkownika o nazwie zgodnej z nazwą użytkownika
-G inne_grupy - lista dodatkowych grup, do których zostanie przypisany użytkownik
-s powłoka - nazwa powłoki użytkownika
-u uid - numeryczna wartość identyfikatora użytkownika. Wartość ta musi być niepowtarzalna i większa od 99. W przypadku nie podania tej zmiennej system sam przydzieli użytkownikowi pierwszy wolny numer.
userdel [-r] nazwa_użytkownika
Opis : usuwanie użytkowników
Opcje :
-r - zostaną usunięte pliki w katalogu domowym użytkownika, sam katalog domowy i pliki buforowania poczty
groupadd [-g] nazwa_grupy
Opis : dodawanie grup
Opcje :
-g gid - numeryczna wartość identyfikatora grupy. Wartość ta musi być niepowtarzalna. Wartości od 0-99 są zarezerwowane dla kont systemowych i nie powinny być używane. W przypadku nie podania gid system sam przydzieli grupie pierwszą wolną wartość.
groupdel nazwa_grupy
Opis : usuwanie istniejących grup
usermod [-d] [-g] [-G] [-s] [-u] [-l] nazwa_użytkownika
Opis : modyfikowanie danych użytkowników
Opcje :
-l login - nowa nazwa użytkownika
pozostałe opcje mają identyczne znaczenie jak opcje z polecenia useradd
groupmod [-g][-n] grupa
Opis : modyfikowanie danych grup
Opcje :
-g gid - numeryczna wartość identyfikatora grupy
-n grupa - nowa nazwa grupy
passwd [-l][-u][-d][-S] nazwa_użytkownika
Opis : zmiana hasła użytkownika
Opcje :
-l - zablokowanie konta
-u - ponowne udostępnienie konta
-S - wyświetlenie informacji o stanie konta
su nazwa_użytkownika
Opis : chwilowa zmiana aktywnego użytkownika
Polecenia związane z zarządzaniem modułami jądra :
insmod [-fp] [-o] plik_modułu
Opis : instalowanie modułu jądra
Opcje :
-f - usiłuje załadować moduł nawet jeśli wersja uruchomionego jądra i jądra dla którego moduł został skompilowany nie zgadza się
-p - sprawdza czy moduł może być załadowany bez kłopotów
-o nazwa_modułu - podanie dokładnej nazwy modułu
rmmod [-a] moduł
Opis : usuwanie modułu
Opcje :
-a - usuń wszystkie nieużywane moduły
lsmod
Opis : listowanie aktywnych modułów
depmod moduł
Opis : sprawdzanie zależności między modułami
modprobe moduł
Opis : instalowanie modułu z potrzebnymi opcjami i modułami
modinfo [-adnp] plik_modułu
Opis : informacje o modułach
Opcje :
-a - wypisuje autora modułu
-d - wypisuje opis modułu
-n - wypisuje nazwę pliku modułu
-p - wypisuje parametry wspierane przez moduł
Polecenia związane z procesami :
top [-p]
Opis : listuje procesy o największym obciążeniu procesora i wyświetla ich statystyki w czasie
rzeczywistym
Opcje :
-p - monitoruje jedynie proces o danym id procesu
pidof nazwa_programu
Opis : wyświetlenie numeru procesu wybranego programu
ps [-auxr][txx]
Opis : listuje aktywne procesy
Opcje :
-a - pokaż procesy innych użytkowników
-u - format użytkownika - podaje nazwę użytkownika i czas startu
-x - pokaż procesy bez kontrolującego terminala
-r - pokaż tylko pracujące procesy
-txx - pokaż tylko procesy z kontrolującym tty XX
kill [-s] numer_procesu
Opis : zakańcza działanie procesu
Opcje :
-s - rodzaj wysłanego sygnału
jobs
Opis : listuje aktywne programy
fg numer_zadania
Opis : ustawienie procesu na front
bg numer_zadania
Opis : przeniesienie procesu w tło
Polecenia związane z siecią :
ifconfig <if> <IP> <nm> <bc>
Opis : konfigurowanie interfejsu sieciowego
Opcje :
if - rodzaj interfejsu (np.: Eth0)
IP - adres IP interfejsu
nm - maska sieci
bc - adres rozgłoszeniowy
ifconfig interfejs up
Opis : uruchamianie interfejsu sieciowego
ifconfig interfejs down
Opis : zatrzymywanie interfejsu sieciowego
route add|del [-net|-host] gw cel netmask dev
Opis : kontrola trasowania
Opcje :
add - dodanie drogi do tablicy trasowania
del - usunięcie drogi z tablicy trasowania
-net - oznacza, że celem jest sieć
-host - oznacza, że celem jest stacja
gw brama - adres bramy sieciowej
cel - docelowa sieć lub stacja
netmask netmaska - maska sieci
dev interfejs - wymusza związanie trasy z podanym interfejsem
netstat [-riM]
Opis : wyświetla połączenia sieciowe i statystyki połączeń
Opcje :
-r -wyświetl tablice routingu
-i - wyświetla tablice wszystkich działających interfejsów sieciowych
-M - wyświetl listę wszystkich maskaradowanych sesji
Polecenia związane z wyszukiwaniem :
grep [-civ] wzorzec [plik]
Opis : wyszukiwanie ciągów znaków
Opcje :
-c - podaje liczbę wierszy w których znaleziono pasujący wzorzec
-i - pomija różnicę w wielkości liter
-v - wyświetla wiersze, w których nie ma podanego wzorca
plik - nazwa pliku, w którym nastepuje przeszukanie
find
Opis : szukanie plików
whereis [-bms] nazwa pliku
Opis : lokalizuje źródła, binaria i dokumentację man
Opcje :
-b - szukaj tylko binariów
-m - szukaj tylko sekcji dokumentacji man
-s - szukaj tylko źródeł
Polecenia związane z szukaniem pomocy :
man polecenie
Opis : manual systemowy
info
Opis : podręcznik GNU
apropos klucz
Opis : przeszukuje bazy z dokumentacją pod kątem słów kluczowych
Inne polecenia :
date [-ds]
Opis : podaje lub ustawia datę systemową i czas
Opcje :
-d DATA - podaje datę i czas, określone podanym wyrażeniem
-s DATA - ustawia podany czas i datę
logout , exit
Opis : zakończenie sesji
clear
Opis : czyszczenie ekranu terminala
shutdown [-akh] czas ostrzeżenie
Opis : restart lub wyłączenie systemu
Opcje :
-a - użyj /etc/shutdown.allow w celu zabronienia wykonywania tego polecenia
-k - wyślij komunikat o zamknięciu ale nie wykonuj prawdziwego zamknięcia systemu
-h - zatrzymaj po wyłączeniu systemu
czas - czas po którym system zostanie zamknięty.
Forma czasu : HH(godzina):MM(minuty) lub +m gdzie m jest liczbą minut do odczekania
halt
Opis : zamknięcie systemu
reboot
Opis : przeładowanie systemu
SHELL
1) Co to jest powłoka ?
2) Zmienne
3) Historia poleceń
4) Aliasy
5) Dowiązania stałe i symboliczne
6) Przekierowania wejścia i wyjścia
7) Łączenie poleceń za pomocą potoków
8) Metaznaki
9) Polecenie echo i znaki cytowania
10) Zmiana powłoki logowania
11) Zarządzanie zadaniami
12) Pliki związane z powłoką
13) Skrypty powłoki
1) Co to jest powłoka ?
Powłoka (shell) jest interpretatorem poleceń przeczytanych z klawiatury lub pliku - jest czymś w rodzaju command.com w systemach windowsowych.
Każde polecenie wpisane z klawiatury zostaje zamienione przez powłokę na język zrozumiały dla jądra systemu, które może odpowiednio zareagować na to polecenie.
Linuks posiada kilka powłok : bash, sh, csh, tcsh, ale domyślnym shell'em dla Mandrake jest bash, dlatego pozostałe opisy będą dotyczyć tej właśnie powłoki.
2) Zmienne systemowe
Zmienne można podzielić na trzy grupy :
zmienne lokalne
zmienne globalne
zmienne specjalne
zmienne programowe
Zmienne lokalne określają konfigurację powłoki i są widoczne tylko dla shell'a dla którego zostały zdefiniowane.
Aby zobaczyć ustawienia zmiennych lokalnych możemy wydać polecenie :
set
Ważniejsze zmienne to :
BASH=/bin/bash - nazwa naszej powłoki
BASH_VERSION=1.14.7(1) - wersja naszej powłoki
COLUMNS=80 - liczba kolumn znaków na naszym ekranie
LINES=25 - liczba linii na ekranie
HOME=/home/student - nasz katalog domowy
LOGNAME=student - nasz login
OSTYPE=Linux - typ systemu
PATH=/usr/bin:/sbin:/bin:/usr/sbin - domyślna ścieżka dostępu
PS1=[\u@\h \W]\$ - ustawienie znaku zachęty
PWD=/home/student - nasz aktualny katalog roboczy
SHELL=/bin/bash - nazwa naszej powłoki
USERNAME=student - nazwa użytkownika, który jest aktualnie zalogowany w systemie
EDITOR=vim - nazwa domyślnego edytora tekstu
HISTFILE=/home/student/.bash_history - plik zawierający historię poleceń
MAIL=/var/spool/mail/$USER - określa plik, do którego dopisywane są listy przychodzące na nasze konto
Jeśli chcemy zobaczyć ustawienie pojedynczej zmiennej wydajemy polecenie :
echo $HOME
Do zdefiniowania nowej zmiennej lokalnej służy polecenie export z parametrem -n powodującym usunięcie atrybutu eksportu dla danej zmiennej :
export -n nazwa_zmiennej=nowa_wartość
np.:
export EDITOR=mcedit
Zmienne globalne są to zmienne widoczne w każdym podshellu.
Aby ustalić nową zmienną lub przypisać inną wartość starej należy użyć polecenia :
export EDITOR=mcedit
Zmienne specjalne są definiowane przez system i w przeciwieństwie do innych zmiennych nie można zmieniać ich wartości.
Najczęściej zmienne te wykorzystywane w skryptach do sterowania programem.
Przykładowe zmienne specjalne to :
$# - liczba parametrów przekazanych do programu
#? - kod zakończenia polecenia lub programu wywołanego z programu powłoki
$0 - pod zmienna tą kryje się nazwa uruchomionego programu
$1,$2 - kolejne parametry programu
Zmienne programowe to zmienne definiowane przez użytkownika w skryptach powłoki.
Definicja zmiennej programowej wygląda następująco :
nazwa_zmiennej=wartość
np.:
x=123
imie="Darek"
Pod zmienna programową można podstawić również wynik dowolnego polecenia , np.:
sciezka=`pwd`
Do zmiennej odwołujemy się poprzez podanie jej nazwy poprzedzonej znakiem $ , np.:
echo $imie
3) Historia poleceń
Powłoka bash posiada zdolność przywoływania wcześniej wydawanych poleceń przez użycie klawiszy kursora. Bash rejestruje je w pliku .bash_history , który znajduje się w katalogu domowym użytkownika.
Historię poleceń określają dwa parametry :
HISTFILE - wskazuje na plik zawierający wywołane wcześniej polecenia
HISTSIZE - określa ile ostatnio wydanych poleceń ma być przechowywanych w pliku historii
Aby obejrzeć listę ostatnio wydawanych poleceń bez otwierania powyższego pliku należy skorzystać z polecenia history z parametrem określającym liczbę wierszy, które mają być wyświetlone :
history 10
pokaże 10 ostatnio użytych poleceń.
Aby powtórzyć wcześniej wydane polecenie można użyć następującej komendy :
!3
gdzie 3 jest trzecią komendą z listy wyświetlonej poleceniem history .
4) Aliasy
Bash daje nam ciekawy mechanizm aliasów umożliwiających zastępowanie złożonych poleceń krótszymi, łatwiejszymi do zapamiętania nazwami.
Aliasy tworzymy korzystając z polecenia alias , którego składnia jest następująca :
alias 'nasza_definicja'='polecenie'
np.:
alias 'p'='ps -aux'
Teraz poprzez wydanie polecenia p otrzymamy listę wszystkich procesów.
Zdefiniowane aliasy możemy zlikwidować poleceniem unalias :
unalias p
5) Dowiązania stałe i symboliczne
Mechanizm dowiązań (linków) ułatwia dostęp do plików ukrytych głęboko w strukturze katalogów lub umożliwia zgromadzenie potrzebnych plików w jednym katalogu.
Linki dzielimy na stałe i symboliczne.
Dowiązania stałe charakteryzują się tym, że posiadają ten sam i-węzeł co wskazywany plik. W praktyce oznacza to, że dowiązanie takie zawiera pełną informację o pliku i w razie skasowania oryginalnego pliku dowiązanie nadal będzie zawierać informacje o tym pliku (jego zawartość).
Dowiązanie stałe tworzymy poleceniem :
ln plik_lub_katalog link
Dowiązania symboliczne służą jedynie do wskazywania na jakiś plik. Umożliwiają one prace na danym pliku poprzez jego dowiązanie. W przypadku skasowania pliku, do którego prowadzi link symboliczny niemożliwe staje się korzystanie z tego dowiązania (nie zawiera on wówczas żadnych informacji).
Dowiązania symboliczne tworzymy poleceniem :
ln -s plik_lub_katalog link
6) Przekierowania wejścia i wyjścia
Przekierowania zazwyczaj wykorzystywane są do odczytania danych z jakiegoś urządzenia lub pliku albo do wysłania danych na urządzenie lub plik.
Do przekierowań danych służą specjalne znaki :
< dane na wejście
> dane z wyjścia
Najprostszym przykładem przekierowania może być wyświetlenie zawartości jakiegoś pliku poleceniem :
cat < plik.txt
Aby utworzyć nowy plik i wpisać do niego dowolny tekst możemy użyć przekierowania danych z wyjścia :
cat > plik.txt
Polecenie to utworzy nam plik : plik.txt i umieści w nim tekst wpisany z klawiatury.
Jeśli będziemy chcieli ponownie dodać jakiś tekst do tego pliku należy użyć polecenia :
cat >> plik.txt
Spowoduje to dodanie następnych wierszy z informacją do pliku.
Innym przykładem przekierowań może być zapisanie do pliku zawartości jakiegoś katalogu :
ls -al > plik.txt
7) Łączenie poleceń za pomocą potoków
Połączenie poleceń za pomocą potoków oznacza wysłanie wyniku z jednego polecenia na wejście drugiego polecenia. Potoki są bardzo często wykorzystywane podczas pisania wszelakich skryptów.
Polecenie :
ls -al | less
łączy ze sobą dwa polecenia :
ls -al - listuje zawartość katalogu
less - umożliwia przeglądanie dużych plików za pomocą klawiszy kursora.
Wynikiem tego połączenia jest możliwość obejrzenia zawartości dużego katalogu za pomocą klawiszy kursora.
8) Metaznaki
Meta-znaki to pewien zbiór znaków pełniący specjalne funkcje w powłoce Linuksa.
Znaczenia meta-znaków :
* - oznacza dowolną sekwencję, dowolną ilość znaków
? - oznacza dowolny pojedynczy znak
[qwA1] - oznacza dowolny pojedynczy znak, wymieniony w nawiasach
[a-z] - oznacza dowolną małą literę
[A-G] - oznacza dowolną dużą literę od A do G
[a-zA-Z0-9] - oznacza dowolną małą lub dużą literę i dowolną cyfrę
Meta-znaki najczęściej wykorzystywane są do listowania zawartości katalogów :
ls *
wyświetla wszystkie pliki w katalogu z wyjątkiem zaczynających się od '.' kropki (są to pliki ukryte)
ls *.*
wyświetla wszystkie pliki zawierające w nazwie '.'
ls [A-B]*
wyświetla wszystkie pliki zaczynające się od A lub B
ls ??1
wyświetla pliki, których nazwa składa się z dwóch dowolnych liter i jedynki na końcu.
9) Polecenie echo i znaki cytowania
Do wyświetlenia tekstu lub wartości zmiennych na ekranie służy polecenie echo.
Polecenie to może być stosowane z kilkoma opcjami :
-n - nie wyświetlaj nic i przejdź do następnej linii
-e - włącz interpretację następujących komend występujących po \ :
\a - dzwonek
\b - kasuj ostatni znak
\c - przechodź do następnej linii
\n - nowa linia
\t - tabulator
\\ - znak \
Powłoka Bash odróżnia i inaczej interpretuje trzy rodzaje znaków cytowania :
cudzysłów " " - umożliwia wyświetlenie tekstu, zmiennej ($), zacytowanie polecenia (``) lub użycie znaków specjalnych występujących po \
apostrof ' ' - wszystko to co zawarte jest między apostrofami interpretowane jest jako zwykły tekst
odwrotny apostrof ` ` - przydaje się w sytuacji gdy chcemy podstawić lub zacytować jakieś polecenie
10) Zmiana powłoki logowania
Powłokę, którą system przydziela nam po zalogowaniu ustawia administrator podczas procesu tworzenia nowego użytkownika.
Jako zwykły użytkownik mamy jednak możliwość zmiany przydzielonej nam powłoki dzięki poleceniu:
chsh nowa_powłoka
Należy jednak pamiętać, że powłoka, którą chcemy wybrać musi być wyszczególniona w pliku /etc/shells
11) Zarządzanie zadaniami
Każdy program uruchomiony z konsoli może zostać przeniesiony w tło co oznacza że będzie on widoczny jedynie jako działający proces zwalniając wiersz poleceń i umożliwiając dalszą pracę na konsoli.
Aby uruchomić jakiś program lub polecenie w tle należy skorzystać ze znaku & i umieścić go na końcu nazwy programy lub polecenia :
ps -aux > procesy &
Istnieje również możliwość przeniesienia w tło już uruchomionego zadania, poprzez zatrzymanie go :
[Ctrl]+[z]
i przeniesienie w tło poleceniem :
bg numer_zadania
gdzie
numer_zadania to liczba pojawiająca się w nawiasie kwadratowym przy nazwie zatrzymanego programu.
Aby wyświetlić listę z uruchomionymi lub zatrzymanymi zadaniami należy użyć polecenia :
jobs
Każde zadanie przeniesione w tło możemy z powrotem umieścić na pierwszym planie używając polecenia :
fg numer_zadania
12) Pliki związane z powłoką
Przed uruchomieniem powłoki system sprawdza pliki konfiguracyjne shell'a z katalogu /etc/ i z katalogu macierzystego użytkownika.
Główne pliki konfiguracyjne z katalogu /etc/ :
bashrc , profile - podstawowe ustawienia powłoki
inputrc - konfiguracja edytora poleceń basha
Pliki konfiguracyjne z katalogu użytkownika :
.bash_profile , .bashrc - wykonywane podczas uruchamiania powłoki
.bash_logout - wykonywane podczas zamykania powłoki
13) Skrypty powłoki
Skrypty powłoki są programami składającymi się z poleceń powłoki i poleceń sterujących programem, takich jak : IF, FOR, REPEAT, WHILE itp.
Skrypty umożliwiają pobranie danych od użytkownika lub z pliku, przetworzenie ich i wyświetlenie wyniku na ekranie monitora lub zapisanie go na dowolnym urządzeniu.
Aby nasz skrypt mógł zostać uruchomiony należy nadać mu prawo do uruchamiania poleceniem :
chmod +x nazwa_skryptu
Każdy skrypt powinien rozpoczynać się linijką :
#!/bin/bash
Zapis ten oznacza to, że do przetworzenie skryptu zostanie użyta powłoka bash.
Przykładowy skrypt może wyglądać następująco :
#!/bin/bash
# to jest tylko komentarz
echo 'skrypt wyswietla aktualny katalog roboczy'
echo -e "biezacy katalog :\n\a`pwd`"
#!/bin/bash
echo "informacje o uruchomionym skrypcie"
echo "nazwa skryptu : $0"
echo "ilosc parametrow : $#"
echo "pierwszy parametr to : $1"
echo "drugi parametr to : $2"
echo -e "zestawienie wszytkich parametrow :\n$*"
INSTALACJA I URUCHAMIANIE PROGRAMÓW
Dystrybucje Linuksa obsługujące pakiety RPM posiadają trzy identyczne sposoby instalowania programów:
1) RPM
2) Instalowanie z pakietów RPM
3) Instalowanie pakietów źródłowych RPM
4) Instalowanie programów źródłowych
5) Uruchamianie programów
1) RPM
RPM jest menadżerem pakietów służącym do instalowania, usuwania i tworzenia nowych pakietów oraz pobierania informacji o nich.
Pakiety RPM to archiwa plików wchodzących w skład danego programu, biblioteki czy zbioru dokumentów. Pakiety te zawierają skompresowane pliki oraz kilka dodatkowych plików z informacjami, takimi jak : nazwa pakietu, wersja i krótki opis.
Aby zachować orientację w pakietach nadaje się im nazwy konstruowane według konkretnych zasad. Nazwa pakietu składa się z czterech części :
- nazwy właściwej
- numeru wersji i podwersji (np.: 3.0.5-9.6x)
- oznaczenia typu (np.: źródło - src, nazwa architektury, dla której skompilowano pakiet - i386, brak zależności od architektury - noarch)
- identyfikatora - rpm
Przykładowy pakiet RPM może wyglądać tak :
Narzedzia-3.0.5-9.6x.i586.rpm
Korzystanie z pakietów RPM daje dodatkowe korzyści w porównaniu ze zwykłą instalacją.
Pakiety RPM możemy :
uaktualniać - nowe wersje oprogramowania mogą być instalowane bez nadpisywania plików
konfiguracyjnych
usuwać - pakiety oprogramowania są bez problemu usuwane w całości ze wszystkich
zajmowanych katalogów
weryfikować - po zainstalowaniu pakietu możemy sprawdzić czy pliki wchodzące w jego skład
nie zostały uszkodzone
pytać - możemy uzyskać informacje o pakiecie, do którego należy określony plik
Większość plików systemu RPM znajduje się w katalogu /var/lib/rpm/ .
Największy z tych plików to packages.rpm , zawierający bazę danych o zainstalowanym oprogramowaniu.
Pakiety RPM mogą zawierać również źródła programu. Wówczas pakiet taki należy najpierw skompilować i dopiero później zainstalować.
Największą trudność początkującemu użytkownikowi sprawia instalacja oprogramowania źródłowego. Spowodowane jest to częstym występowaniem komunikatów o błędzie wynikającym z braku odpowiednich bibliotek w systemie, dlatego należy szczególnie uważnie czytać dokumentację dostarczaną wraz z programem.
2) Instalowanie z pakietu RPM
Gotowy pakiet RPM instalujemy poleceniem :
rpm -i [opcje] nazwa.pakietu
Uaktualnianie pakietów RPM
rpm -U [opcje] nazwa.pakietu
Usuwanie pakietów RPM
rpm -e [opcje] nazwa.pakietu
najważniejsze opcje to:
-v - wyświetla dodatkowe informacje o działaniach programu RPM
-h - wyświetla semigraficznie informacje o postępie instalacji
--percent - wyświetla procentowy wskaźnik zaawansowania instalacji
--test - przeprowadzenie procesu instalacji bez instalowania żadnych plików - przydatne do sprawdzenia czy podczas instalacji nie wystąpi jakiś konflikt
--force - wymusza instalację pakietu
3) Instalowanie pakietów źródłowych RPM
Instalacja pakietów źródłowych przebiega w następujących krokach :
- należy skopiować pakiet :
nazwa.pakietu.src.rpm
do katalogu
/usr/src/redhat/SOURCE/
- w katalogu tym wydajemy polecenie :
rpm -rebuild nazwa.pakietu.src.rpm
Jeśli wszystko przebiegło bez problemów gotowy pakiet RPM można znaleźć w katalogu :
usr/src/redhat/RPMS/i386/ lub usr/src/redhat/RPMS/noarch/ w zależności od architektury komputera.
Instalacja gotowego pakietu RPM została pokazana w pk. 1)
Niektóre pakiety można spróbować przekompilować pod kątem wydajności swojego komputera.
Dla procesora Pentium II kompilację przeprowadzamy poleceniem :
rpm -rebuild nazwa.pakietu.src.rpm -target=i686
4) Instalowanie programów źródłowych
Instalacja programów ze źródeł obejmuje trzy proste kroki :
KROK 1 : rozpakowanie pliku:
W zależności od użytego archiwizatora używamy poleceń :
dekompresja *.tar
tar -xvf nazwa_pakietu.tar
dekompresja *.tar.gz
tar -zxvf nazwa_pakietu.tar.gz
dekompresja *.gz
gzip -d nazwa_pakietu.gz
dekompresja *.bz2
bzip2 -d nazwa_pakietu.bz2
KROK 2 : konfiguracja źródeł :
W katalogu ze źródłami wydajemy polecenie :
./configure
Aby dostosować program do własnych potrzeb możemy w wywołaniu tym podać dodatkowe parametry określone w pliku INSTALL.
Możemy na przykład określić miejsce, w które program będzie przekopiowany po instalacji :
./configure -prefix=katalog
Typową lokalizacją dla programów kompilowanych samodzielnie jest :
/usr/local/nazwa.instalowanego.programu/
KROK 3 : kompilacja programu i właściwa instalacja
Program kompilujemy poprzez wydanie polecenia :
make
jeśli program nie zwrócił błędu to przechodzimy do instalacji wydając polecenie :
make install
5) Uruchamianie programów
Jeśli chcemy uruchomić jakiś program wystarczy podać nazwę tego programu :
startgame
Jeśli nasza zmienna systemowa PATH nie zawiera ścieżki do miejsca, w którym znajduje się ten program, należy podać nazwę programu wraz z pełną ścieżką dostępu :
/usr/loca/bin/startgame
Jeśli znajdujemy się już w katalogu z naszym programem możemy podać tylko nazwę tego programu, wstawiając przed jego nazwą ./ :
./startgame
SYSTEM X WINDOW
1) Co to jest X Window
System X Window jest podstawą graficznego interfejsu Linuksa. Udostępnia on podstawowy zestaw protokołów komunikacyjnych oraz funkcji służących do tworzenia interfejsów okienkowych. X Window od początku rozwijany był jako system o budowie modularnej z przeznaczeniem do zastosowań sieciowych.
Programy lub aplikacje pracujące w środowisku X-ów są nazywane klientami. Programy te nie wpływają bezpośrednio na obraz wyświetlany na monitorze tylko komunikują się z serwerem X-ów, który zarządza tym obrazem.
Program uruchamiający serwer X-ów to :
/usr/X11R6/bin/X
System X Window używany w większości dystrybucji Linuksa jest zbiorem programów dostarczanych przez Xfree86 Project.
2) Konfiguracja systemu Xfree86
Najważniejszym plikiem konfiguracyjnym systemu X Window jest XF86Config znajdujący się w katalogu /etc/X11/. Plik ten jest tworzony automatycznie podczas procesu instalacji.
XF86Config podzielony jest na kilka sekcji zawierających dane konfiguracyjne :
Files - informuje serwer X-ów, gdzie znajdują się czcionki, kolory lub konkretne moduły programowe
Module - zawiera informacje, które moduły powinny zostać załadowane
Server Flags - sekcja ta zawiera listę konkretnych czynności, których wykonywania możemy zabronić lub zezwolić poprzez specjalne znaczniki - flagi
Keyboard - zawiera informacje o używanej klawiaturze
Pointer - zawiera informacje o urządzeniu wskazującym
Input - specjalna sekcja dla urządzeń, takich jak tablet lub piórko świetlne
Monitor - zawiera szczegółowe ustawienia monitora
Device - znajdują się tu szczegółowe informacje na temat układu graficznego
Screen - informuje serwer X-ów jakiej głębi kolorów, rozmiaru ekranu i rozmiaru wirtualnego ekranu ma używać
Istnieje kilka narzędzi do konfiguracji X serwera. Najpopularniejsze z nich uruchamiane z wiersza poleceń konsoli, jako root to :
Xconfigurator , xf86config lub XF86Setup.
Poza tym środowiska graficzne, takie jak GNOME czy KDE posiadają własne programy konfiguracyjne.
3) Uruchamianie sesji X-ów
Istnieją dwa sposoby uruchamiania sesji X-ów :
- uruchamianie automatyczne podczas startu systemu
- uruchamianie ręczne w trybie tekstowym komendą startx
Uruchamianie automatyczne podczas startu systemu
Aby X-y uruchamiały nam się automatycznie podczas startu systemu, należy wybrać piąty poziom pracy systemu. Poziom ten można ustawić edytując plik :
/etc/inittab/
i ustawiając odpowiednią wartość w linijce zawierającej wpis :
id:poziom_pracy:initdefault
id:5:initdefault
Automatyczny start X Window odbywa się poprzez program xdm, którego konfiguracja znajduje się w pliku /etc/X11/xdm/xdm-config.
Logowanie do systemu następuje w trybie graficznym poprzez menadżer logowania, który umożliwia wybranie jednego z kilku zainstalowanych menadżerów wyświetlania.
Uruchamianie ręczne w trybie tekstowym komendą startx
Podczas uruchamiania X Window komendą startx system wykonuje następujące kroki :
- sprawdza zawartość katalogu użytkownika w poszukiwaniu skryptu .xinitrc uruchamiającego wybrany menadżer wyświetlania
- jeśli skrypt taki nie istnieje w katalogu użytkownika to uruchomienie domyślnego menadżera następuje poprzez uruchomienie skryptu /etc/X11/xinit/xinitrc.
Przykładowa zawartość pliku .xinitrc uruchamiającego IceWM może wyglądać następująco :
exec icewm
Należy pamiętać o ustawieniu prawa do uruchamiania dla tego skryptu.
4) Menadżery okien
Istnieje spora grupa menadżerów okien dla Linuksa. Każdy z nich różni się oprawą graficzną, funkcjonalnością, wymaganiami systemowymi i objętością. Ja spróbuję tylko w kilku słowach opisać najbardziej popularne, a wybór tego, którego najlepiej używać zostawię wam.
Stronę z menadżerami wyświetlania znajdziecie w dziale Linki.
KDE - bardzo ładny i dobrze spolszczony interfejs (podobny do Windows). Duża funkcjonalność i konfiguralność. Duże wymagania sprzętowe. Nie do końca stabilny.
GNOME - podobnie jak KDE - ładny i spolszczony interfejs. Duża funkcjonalność. Spore wymagania sprzętowe. Stabilny.
WINDOWMAKER - menadżer ten obsługuje technologię drag&drob. Umożliwia zmianę wyglądu biurka dzięki mechanizmowi tematów. Posiada rozbudowane możliwości i jest stosunkowo szybki.
IceWM - niskie wymagania sprzętowe. Pulpit podobny do tego z Windows 95. Konfiguracja tylko poprzez ręczną edycję plików konfiguracyjnych. Szybki.
Enlightenment - w menadżerze tym duży nacisk położono na wygląd. Funkcjonalność dość dobra. Nie duże wymagania systemowe.
TWM - bardzo niskie wymagania systemowe. Maksymalnie uproszczony interfejs. Brak obsługi wirtualnych desktopów, ikon, pasków zadań. Konfiguracja poprzez edycję plików konfiguracyjnych.
USŁUGI URUCHAMIAJĄCE PROGRAMY W OKREŚLONYM
CZASIE : CRON , AT
con i at są programami, które umożliwiają zaplanowanie jakiegoś działania w określonym czasie. Dzięki tym usługom możemy nakazać komputerowi wysłać e-meila o określonej godzinie, sprawdzić pocztę, skasować pliki z katalogu /tmp/ lub wykonać nasz skrypt.
Cron różni się od at tym, że zadania, które zaplanujemy w cron-ie mogą być cyklicznie powtarzane w odpowiednich porach, at natomiast wykonuje zaplanowane zadanie tylko raz.
1) Polecenie at
2) Polecenie crontab
1) Polecenie at
Składnia polecenia at jest następująca :
at -f {plik z zadaniem} czas_uruchomienia_zadania
lub
at czas_uruchomienia_zadania
Po naciśnięciu klawisza ENTER wpisujemy zadanie do wykonania.
Określanie czasu dla polecenia at.
Czas można określić na wiele sposobów. Domyślnie przyjmowany jest czas 24-godzinny. Podawanie minut jest opcjonalne. Jeśli dodany zostanie przyrostek am lub pm, czas będzie traktowany jako czas 12-godzinny.
Przy podawaniu czasu dozwolone jest stosowanie słów mających specjalne znaczenie:
midnight (północ), noon (południe), today (dziś), tomorrow (jutro) oraz now (teraz).
Po słowie now należy podać czas, po jakim polecenie ma zostać wykonane.
Oprócz wartości oznaczających godziny można również podawać, w którym miesiącu zadanie ma się rozpocząć (za pomocą liczb od 1 do 12 lub pierwszych trzech liter angielskiej nazwy miesiąca). Rok oznaczany jest liczbą czterocyfrową. Dni tygodnia podaje się za pomocą pierwszych trzech liter nazwy angielskiej.
Odstępy czasu pozwalają na podanie pory rozpoczęcia zadania w odniesieniu do czasu bieżącego. Do ich określania służy znak +, po którym następuje liczba i jeden z wyrazów: minute, hour, day, week lub year (można również używać liczby mnogiej, na przykład weeks). Słowo next (następny) ma takie samo znaczenie, jak +1.
Oto kilka przykładów :
at 14:12 January 9
at 2:12am Jan 9
at now + 5 minutes
2) Polecenie crontab
Składnia polecenia crontab :
crontab -l | -r | -e
-e otwiera plik z zadaniami
-l listuje zadania
-r usuwa zadania
Określanie czasu dla polecenia crontab :
Składnia pliku z zadaniami jest następująca :
min godz dzień_miesiąca miesiąc dzień_tygodnia zadanie
Dane podawane są w pięciu kolumnach rozdzielonych przecinkami; myślnik oznacza zakres, natomiast gwiazdka - wszystkie dostępne wartości.
Oto lista poszczególnych pól i dostępnych w nich wartości :
Minuty 0-59
Godziny 0-23
Dni miesiąca 1-31
Miesiące 1-12
Dni tygodnia 0-6, 0 = niedziela
Oto kilka przykładów :
co pięć minut
*/5 * * * * /zadania/zad1
co godzinę -1 minutę po pełnej godzinie
01 * * * * /zadania/zad1
codziennie 5 minut po północy
05 0 * * * /zadania/zad1
co tydzień w niedziele 10 minut po północy
10 0 * * 0 /zadania/zad1
ZAMYKANIE SYSTEMU
Ważną rzeczą jest, aby system Linuks był odpowiednio zamknięty przed wyłączeniem zasilania. Każde wyłączenie komputera przed zamknięciem systemu może doprowadzić do uszkodzenia systemu plików i utraty cennych danych.
Podczas zamykania systemu przechodzi on na 0-wy poziom pracy i uruchamia skrypty mające na celu zatrzymanie pracy usług, wszystkich aktywnych procesów, zaktualizowanie
struktury wszystkich plików i na koniec uruchamiany jest skrypt halt z katalogu init.d powodujący zatrzymanie pracy systemu.
System Linuks posiada kilka skryptów powodujących jego zamknięcie :
halt - natychmiastowe zamknięcie systemu
reboot - zrestartowanie systemu
shutdown - program ten posiada najwięcej opcji i może służyć zarówno do zatrzymania pracy systemu, restartu, jak i do ostrzegania o zamknięciu systemu. Użytkownik root może zabronić wykonywania tego polecenia innym użytkownikom poprzez umieszczenie ich w pliku /etc/shutdown.allow .
Więcej informacji na każdy z tych skryptów można uzyskać wydając polecenie :
man nazwa_skryptu