Technikum Energetyczne Elektrowni Jaworzno III S.A. w Jaworznie
PRACA PRZEJŚCIOWA
Temat: Ćwiczenia z systemu LINUX Red Hat 5.1 Manhattan.
Wykonał: Promotor:
Daniel Liszka mgr inż. Mirosław Kowalczyk
Jaworzno, październik 1998
Spis ćwiczeń
1 Czym tak w ogóle jest Linux ?
Czym tak w ogóle jest Linux ?
Linux, odmiana UNIX-a, został opracowany w znacznej części przez Linusa Torvaldsa z Uniwersytetu Helsińskiego w Finlandii i udostępniony szerokiemu gronu użytkowników w roku 1991. Informacja o narodzinach nowego systemu upowszechniła się szybko za sprawą Internetu zaś wielu programistów UNIX-owych podjęło wyzwanie usprawnienia go. Dziś, ta wszechstronna i wysoce niezawodna implementacja systemu UNIX posiada następujące, warte odnotowania cechy:
32-bitowość (wykorzystuje pełnię mocy obliczeniowej CPU, w przeciwieństwie do 16-bitowych systemów DOS)
pamięć wirtualną (może wykorzystywać całość pamięci RAM; nie ma ograniczenia do 640K)
całkowitą kompatybilność z X Window (standardowy graficzny, unixowy interfejs użytkownika)
wielozadaniowość
obsługę sieci opartą na protokole TCP/IP (umożliwia pracę w Internecie)
Linux rozprowadzany jest wraz z dużą ilością darmowych programów unixowych na Licencji Publicznej GNU ( General Public License); istota rzeczy jest jednak taka: możesz modyfikować, sprzedawać lub rozdawać oprogramowanie, o ile tylko udostępniasz pełny kod źródłowy i nie nakładasz ograniczeń na to, co inni mogą z nim robić).
Większość odmian UNIX-a wymaga drogich i szybkich stacji roboczych. Linux jest jednak wyjątkiem: działa na komputerach osobistych (wyposażonych w procesory Intela 386, 486, Pentium i nowsze). Ponadto został napisany zupełnie „od zera”, bez wykorzystywania oryginalnego kodu UNIX-a.
Linuxem potocznie nazywa się cały system operacyjny, ale nazwa ta właściwie odnosi się tylko do jego jądra. Reszta tego, co mamy na dysku , to programy użytkowe, aplikacje dla servera czy interfejs graficzny X Window, które potrzebne są do prawidłowego funkcjonowania systemu i wygodnej pracy. Wszystkie te elementy zebrane razem i tworzące działającą wersję nazywamy dystrybucją Linux'a (obecnie dostępne dystrybucje to min. Red Hat, Debian, Linux Pro czy Slackware). Musi ona zawierać jeszcze jeden ważny składnik: program instalacyjny. On sprawia, że całe oprogramowanie w względnie łatwy i bezpieczny sposób może znaleźć się na dysku twardym użytkownika.
Aby móc używać Linuxa - czy jakiejkolwiek odmiany UNIX-a - musisz wiedzieć to i owo o powłokach. Powłoka (shell) jest programem, który pełni rolę pośrednika między Tobą a mechanizmami systemu operacyjnego. W środowisku DOS rolę powłoki pełni COMMAND.COM. Powłoki Linuxa mają bardziej interesujące nazwy (jak nap. Bash, pdksh czy tcsh), lecz ich funkcja jest podobna. Oprócz tłumaczenia poleceń na język zrozumiały dla jądra systemu, powłoki mają szereg zastosowań, które uzupełniają możliwości „gołego” systemu operacyjnego.
Linux ma jeszcze jedną bardzo ważną cechę. Nawet jeśli do Twojego komputera podłączona jest tylko jedna fizyczna konsola (monitor plus klawiatura), możliwe jest jednoczesne logowanie się na wiele różnych kont użytkowników. Służą do tego wirtualne konsole. Możesz ich używać do jednoczesnego wykonywania kilku czynności równolegle. Konsole wirtualne są szczególnie użyteczne, jeśli chcesz wykonywać jakieś czasochłonne zadanie, na przykład zainstalować nowy pakiet oprogramowania z CD-ROM-u: możesz wówczas otworzyć nową konsolę, zalogować się powtórnie i pracować nad czymś innym, aż komputer nie zakończy kopiowania danych z kompaktu. Oczywiście nie musisz w każdej konsoli logować się jako inny użytkownik. Linux pozwala na jednoczesne, wielokrotne wykorzystywanie tego samego konta.
Wielozadaniowość tego systemu nie różni się zbytnio od otwierania wielu okien pod Windows 95. Jednym poważniejszym odstępstwem jest to, że nawet jeżeli działasz pod wieloma konsolami jednocześni to, w danym momencie możesz widzieć na ekranie tylko jedną z nich, chociaż reszta przez cały czas pracuje w tle. Ale o tym jak wykorzystywać wirtualne konsole dowiesz się w dalszej części tej pracy.
Nie ma jednak róży bez kolców. Osobom, które nie są „wychowane” na UNIX-ie, obsługa Linuxa może sprawić trochę kłopotów. Nie wszystko da się zrobić intuicyjnie, za pomocą klikania myszką, i to nawet przy wykorzystaniu interfejsu graficznego X Window. Należy również jasno powiedzieć, że z powodu odmiennego znaczenia dla rynku komercyjnego liczba aplikacji dostępnych dla Linuxa jest znaczne mniejsza niż dla MS Windows. Ciągle rosnąca liczba instalacji Linuxa jest jednak oczywistym znakiem tego, że przy rozważaniu zalet i wad tego systemu coraz większa grupa użytkowników potrafi docenić jego walory.
Podstawowe operacje w systemie Linux.
Logowanie w systemie Linux
W przeciwieństwie do DOS-a, Linux jest systemem wieloużytkownikowym. Oznacza to, że przed rozpoczęciem pracy należy się doń zalogować. Po zalogowaniu znajdziesz się automatycznie w powłoce bash.
Ćwiczenie 1
Na samym początku poproś nauczyciela o dyskietkę i cdrom, które są niezbędne w ćwiczeniach
Włącz komputer i włóż dyskietkę oraz cdrom do odpowiednich stacji
Gdy pojawi się na ekranie hasło lilo: wpisz linux <Enter>
Gdy pojawi się ekran logowania wpisz nazwę użytkownika opro5a <Enter>
Następnie gdy zostaniesz zapytany o hasło wpisz opro98 <Enter>
Red Hat Linux release 5.1 (Manhattan)
Kernel 2.0.34 on an i586
localhost login: opro5a
Password:
Last login: Sun Sep 27 17:17:27 on tty1
[opro5a@localhost opro5a]$
Uwaga!: I Pamiętaj, że Linux jest systemem, który rozpoznaje małe i duże litery.
II Wpisując hasło pamiętaj, że wpisywane znaki nie będą widoczne.
Wirtualne konsole
Wcześniej pisałem już o konsolach wirtualnych. Konsolę zmieniamy przez naciśnięcie [ALT]+[Fx] (standardowo jest aktywnych sześć konsoli od [ALT]+[F1] do [ALT]+[F6]). Teraz będziesz mógł to wypróbować. Aktualnie jesteś zalogowany na konsoli nr 1. Przejdziesz na konsole nr 2 i zalogujesz się jako opro5b. Potem wylogujesz się poleceniem logout i znowu przejdziesz na konsolę nr1.
Ćwiczenie 2
Najpierw zmień konsolę naciskając ALT-F2
Wpisz nazwę użytkownika opro5b i potwierdź naciskając <Enter>
Następnie gdy zostaniesz zapytany o hasło wpisz opro98 <Enter>
Jesteś zalogowany na konsoli nr 2 jako opro5b. Teraz wyloguj się używając polecenia logout <Enter>
Zmień konsolę naciskając ALT-F1
Red Hat Linux release 5.1 (Manhattan)
Kernel 2.0.34 on an i586
localhost login: opro5b
Password:
Last login: Sun Sep 27 17:15:56 on tty2
[opro5b@localhost opro5b]$ logout
Przechodzenie na konto innego użytkownika
Czasami zdarza się tak, że musimy przejść na konto innego użytkownika i wykonać jakąś czynność wymagającą jego uprawnień. Można oczywiście się wylogować lub zmienić konsolę. Ale szybszym i łatwiejszym sposobem jest wykorzystanie polecenia su (switch user).
Ćwiczenie 3
Wpisz su - opro5b <Enter> („-” - wykorzystanie powłoki użytkownika).
W odpowiedzi system poprosi Cię o podanie hasła - wpisz opro98 <Enter>
Teraz okaże się znajdujesz się na koncie użytkownika opro5b. Aby powrócić do poprzedniej tożsamości, wpisz exit <Enter>
[opro5a@localhost opro5a]$ su - opro5b
Password:
[opro5b@localhost opro5b]$
[opro5b@localhost opro5b]$ exit
[opro5a@localhost opro5a]$
Sprawdzanie informacji o użytkownikach
*Aby lepiej zrozumieć działanie tych poleceń uruchom konsolę nr 2 i zaloguj się jako opro5b.
Czasami chcemy się zorientować z kim jednocześnie jesteśmy w systemie. Wykorzystujemy w tym celu wiele różnych poleceń. Niektóre z nich przedstawiłem w poniższym cwiczeniu.
Ćwiczenie 4
Jeśli chcesz poznać nazwę użytkownika bieżącego konta wpisz whoami <Enter>
Wpisując who am i <Enter> otrzymamy to co poprzednio z informacją o nazwie komputera, numerze terminala (konsoli), dacie i czasie rozpoczęcia pracy.
Wpisz polecenie users <Enter> a dowiesz się kto oprócz Ciebie jest zalogowany
Ale aby wiedzieć więcej wpisujemy who <Enter>
Naprawdę dużo informacji otrzymamy wpisując polecenie w <Enter>
[opro5a@localhost opro5a]$ whoami
opro5a
[opro5a@localhost opro5a]$ who am i
localhost.localdomain!opro5a tty1 Sep 27 17:18
[opro5a@localhost opro5a]$ users
opro5a opro5b root
[opro5a@localhost opro5a]$ who
opro5a tty1 Sep 27 17:18
opro5b tty2 Sep 27 17:22
root tty3 Sep 27 15:50
[opro5a@localhost opro5a]$ w
5:22pm up 1:53, 3 users, load average: 1.00, 1.00, 0.78
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
opro5a tty1 5:18pm 0.00s 0.26s 0.03s w
opro5b tty2 5:22pm 51.00s 0.22s 0.07s -bash
root tty3 3:50pm 1:26 24:17 0.09s vi lin
5:22pm - bieżąca godzina
up 1:53 - jak długo pracuje nasz system
3 users - ilu użytkowników pracuje
load average - obciążenie systemu przez programy
USER - identyfikator użytkownika
TTY - nazwa terminalu
FROM - informacja dodatkowa
LOGIN@ - godzina zalogowania
IDLE - ile czasu upłynęło od ostatniego naciśnięcia klawisza
JCPU - czas zużyty przez wszystkie programy na danym terminalu
PCPU - oraz przez wszystkie programy w danym momencie
WHAT - nazwa aktywnego procesu
Blokowanie dostępu do terminala
Niekiedy zachodzi potrzeba odejścia od komputera i wtedy jakaś niepowołana osoba może skorzystać z naszych praw i zamieszać w systemie. Dlatego w Linuxie jest dostępne polecenie, za którego pomocą możemy zablokować terminal - vlock.
Ćwiczenie 5
Wpisz polecenie vlock <Enter> - terminal jest zablokowany
Wpisz hasło użytkownika aby odblokować terminal - opro98 <Enter>
[opro5a@localhost opro5a]$ vlock
This TTY is now locked.
Use Alt-function keys to switch to other virtual consoles.
Please enter the password to unlock.
opro5a's Password:
[opro5a@localhost opro5a]$
System plików w Linux'ie
W większości systemów operacyjnych plik jest po prostu zbieraniną informacji przechowywanych na dysku pod określoną nazwą. Plik może być listą liczb czy nazw, przepisem na sernik lub programem, który można uruchomić. W Linux'ie jednak, wszystko jest plikiem. Oprócz danych i wykonywalnych programów, Linux traktuje katalogi - a nawet fizyczne elementy komputera - jako pliki.
Podczas nazywania plików możesz wykorzystywać małe i duże litery, cyfry oraz niektóre znaki specjalne. Pamiętaj również, że Linux rozróżnia duże i małe litery (najlepiej jest zawsze stosować małe litery przy nazywaniu plików, chyba że masz naprawdę dobry powód).
W przeciwieństwie do DOS-a, kropka (.) nie posiada tu specjalnego znaczenia - Linux traktuje ją jak każdy inny znak. W związku z tym programy linuxowe nie potrzebują specjalnych rozszerzeń, jak EXE czy BAT. Istnieje jeszcze jedna drobna różnica między linuxowymi i DOS-owymi systemami plików. Linux wykorzystuje zwykły ukośnik (/) do oznaczenia ścieżek, podczas gdy DOS stosuje w tym celu backslash (\) - jednak to DOS był pierwotnie wzorowany na UNIX-ie!
Poruszanie się po drzewie katalogowym
Najważniejsze jest to abyś się nauczył szybkiego poruszania po drzewie linuxowym. Oto najważniejsze polecenia, które powinieneś znać. Możesz je sam wypróbować.
pwd - podaje nazwę katalogu, w którym się obecnie znajdujemy
cd - zmienia katalog (ang. change directory) - tak jak w DOS-ie
cd .. - przejdziemy do wyższego katalogu (rodzica)
cd katalog1 - wejdziemy do katalogu 'katalog1'
cd /etc/rc.d - wejdziemy do katalogu '/etc/rc.d'
cd / - wejdziemy do głównego (root) katalogu!
Dla ułatwienia możesz używać klawisza TAB, który powoduje, że system w inteligentny sposób kieruje nami podczas wędrówki po katalogach. Jego zastosowanie przedstawię Ci na prostym ćwiczeniu. Twoim zadaniem będzie jak najłatwiej przejść z katalogu głównego do katalogu osobistego /home/opro5a:
Ćwiczenie 6
Przejdź do głównego katalogu wpisując polecenie cd / <Enter>
Naszym zadaniem jest wejście do katalogu osobistego. Wpisz cd i naciśnij dwa razy klawisz TAB. Zostanie wyświetlona zawartość katalogu głównego (dokładnie jego katalogi, do których możemy wejść). Mamy najpierw wejść do katalogu home; więc wpisujemy literkę h i naciskamy klawisz TAB i Linux kończy za nas robotę. Nie naciskamy jeszcze klawisza <Enter> tylko znowu TAB. W tej chwili Linux wpisuje nam część wspólną dla katalogów więc naciskamy znowu TAB dwa razy i wiemy jakie mamy możliwości. Kończymy ścieżkę wpisując a i dopiero potwierdzamy klawiszem <Enter>
Jeżeli za bardzo nie zrozumiałeś działania klawisza TAB to powtórz to ćwiczenie jeszcze raz.
[opro5a@localhost /]$ cd
bin dev lib proc tmp win
boot etc lost+found root usr
core home mnt sbin var
[opro5a@localhost /]$ cd home/opro5
opro5a opro5b
[opro5a@localhost /]$ cd home/opro5a
[opro5a@localhost opro5a]$
Uwaga: Częstym błędem czynionym przez użytkowników Linuxa jest stawianie ukośnika przed nazwą pliku w sytuacji, gdy jest on zbędny. Załóżmy, że posiadasz w swoim katalogu osobistym podkatalog bin. Gdybyś w /home/opro5a napisał cd /bin, znalazłbyś się w podkatalogu bin katalogu głównego! ( Linux interpretuje ukośnik przed bin jako rozkaz przejścia do katalogu głównego, a stamtąd - do podkatalogu bin). Poprawnym sposobem osiągnięcia katalogu /home/opro5a/bin jest wpisanie cd bin w katalogu /home/opro5a. Nie poprzedzaj nazwy ukośnikiem, chyba że chcesz przejść do podkatalogu katalogu głównego.
Wypisywanie plików
Jeżeli chcesz się dowiedzieć co zawiera w sobie dany katalog użyj polecenia ls (odpowiednik DOS-owego dir). Domyślnie, ls wypisze prostą listę gołych nazw plików. Można jednak uzyskać więcej informacji przez dodanie doń jednego lub większej ilości parametrów. Aby dołączyć do polecenia parametr, wpisz w linii poleceń ls, następnie zrób odstęp i dopisz parametr, poprzedzając go znakiem minus (-).
Oto kilka najczęściej wykorzystywanych parametrów polecenia ls:
a - wypisz wszystkie pliki, razem z ukrytymi
l - wypisz wszystkie dane o pliku, łącznie z jego rozmiarem, datą modyfikacji i właścicielem
F - dopisz ukośnik po nazwach katalogów, gwiazdkę po nazwach plików wykonywalnych i znak @ po nazwach plików powiązanych (coś w stylu skrótów w Windows)
r - wypisz pliki w odwrotnej kolejności po posortowaniu
t - sortuj listę według daty ostatniej modyfikacji pliku.
Uwaga: Jeżeli lista plików będzie bardzo długa i nie będziesz mógł uzyskać pełnych informacji, gdyż przeleci szybko przez ekran to w takim wypadku użyj klawiszy Shift-Page Up lub Shift-Page Down.
Ćwiczenie 7
Wejdź do jakiegoś katalogu i wypróbuj polecenie ls z różnymi parametrami
[opro5a@localhost test]$ ls
moje normal skrot wykonywalny
[opro5a@localhost test]$ ls -F
moje/ normal skrot@ wykonywalny*
[opro5a@localhost test]$ ls -al
total 11
drwxrwxr-x 3 opro5a opro5a 1024 Oct 3 00:15 .
drwx------ 4 opro5a opro5a 1024 Oct 3 00:10 ..
-rw-r--r-- 1 opro5a opro5a 3768 Sep 23 22:54 .ukryty
drwxrwxr-x 2 opro5a opro5a 1024 Oct 3 00:10 moje
-rw-r--r-- 1 opro5a opro5a 732 May 6 01:34 normal
lrwxrwxrwx 1 opro5a opro5a 15 Oct 3 00:10 skrot -> /sbin/bg_backup
-rwxr-xr-x 1 opro5a opro5a 2864 May 4 18:32 wykonywalny
Tworzenie katalogów
Jeśli dysponujesz grupą powiązanych ze sobą plików porozrzucanych po katalogu osobistym, dobrze jest utworzyć dla nich oddzielny katalog. W tym celu możesz użyć polecenia mkdir (odpowiednik DOS-owego md).
Ćwiczenie 8
Jeżeli nie jesteś w katalogu osobistym /home/opro5a przejdź do niego
Teraz utwórz katalog kawaly poleceniem mkdir kawaly
Następnie utwórz katalogi, które później zostaną wykorzystane w ćwiczeniach; mkdir przepisy inne moje
Tworzenie i edycja plików
Do tworzenia plików wykorzystujemy polecenie touch. Możesz także tworzyć pliki wydając polecenie [nazwa edytora][nazwa pliku].
Ćwiczenie 9
Jeżeli nie jesteś w katalogu osobistym /home/opro5a przejdź do niego
Następnie utwórz plik dla_wszystkich i tylko_moje wpisując polecenie touch tylko_moje dla_wszystkich
Przejdź do katalogu /home/opro5a/kawaly
Utwórz pliki wpisując polecenie touch humor1 humor2 humor3
Jeśli chcesz wyedytować dany plik możesz skorzystać z linuxowych edytorów tekstu. My zajmiemy się edytorem vi ponieważ jest elementem każdej wersji UNIX-a czy Linuxa. Jego obsługa jest dosyć skomplikowana - dziwaczne polecenia, denerwujący interfejs i całkowity brak znaków gotowości. Jeśli jednak skoncentrujesz się na kilku podstawowych poleceniach, będziesz w stanie wklepać swój tekst.
Najtrudniejszym elementem obsługi vi jest zawarta w nim koncepcja trybów. Używając vi zawsze znajdujesz się w trybie poleceń lub w trybie edycji. Niestety edytor nie daje najmniejszej wskazówki, który tryb w danej chwili jest aktywny. W trybie poleceń możesz ruszać kursorem, szukać interesujących Cię znaków lub kasować istniejący tekst. Aby jednak wprowadzić nowy tekst, musisz przełączyć się w tryb edycji.
Oto spis najważniejszych poleceń:
Polecenia |
Opis |
a |
przejście w tryb edycji (dopisuje tekst po pozycji kursora) |
Esc |
przełącza edytor w tryb poleceń |
R |
Przejście do trybu wprowadzania z nadpisywaniem. Istniejący tekst zastępowany jest przez nowe znaki |
i |
wstawianie tekstu przed kursorem |
:q! |
wyjście bez zapisu |
ZZ |
zapisuje plik i zamyka vi |
yy |
Kopiowanie aktualnego wiersza do bufora |
p |
(paste) wstawianie skopiowanego fragmentu z bufora za kursorem |
P |
(Paste) wstawianie skopiowanego fragmentu z bufora przed kursorem |
u |
(undo) cofa ostatnio dokonaną zmianę |
/wzorzec |
Wyszukiwanie najbliższego identycznego ciągu znaków w tekście |
n |
Powtórzenie ostatniego wyszukiwania |
x |
Usuwanie znaku, na którym znajduje się kursor |
X |
Usunięcie znaku, przed którym znajduje się kursor |
D |
Usunięcie pozostałej części tekstu od kursora do końca wiersza |
dd |
Usunięcie całego wiersza |
Ćwiczenie 10
Przejdź do katalogu /home/opro5a/kawaly
Utworzymy teraz nowy plik humor wpisując polecenie vi humor
Wciśnij teraz a aby przejść w tryb edycji i wpisz dowolny tekst - podczas postaraj się wykorzystać poznane funkcje
Teraz naciśnij Esc, aby przejść w tryb poleceń
Następnie wpisz ZZ, aby zapisać plik i opuścić edytor
Kontrolowanie dostępu do plików
Jeśli dzielisz system linuxowy z innymi użytkownikami, z pewnością będziesz chciał uchronić niektóre pliki przed niepowołanym odczytem, a inne z kolei udostępnić. Możesz kontrolować dostęp do swoich plików przez odpowiednie ustawienie parametrów dostępu. Kiedy omawialiśmy polecenie ls, pewnie zastanawiałeś się nad znaczeniem dziwnych śmieci w pierwszych paru kolumnach listy wyprowadzanej przez ls -l . Oto przykładowa zawartość danego katalogu:
Zezwolenia Użytkownik Grupa Rozmiar Data Nazwa
drwxrwxr-x 3 opro5a opro5a 1024 Oct 3 00:15 .
drwx------ 4 opro5a opro5a 1024 Oct 3 00:10 ..
-rw-r--r-- 1 opro5a opro5a 3768 Sep 23 22:54 .ukryty
drwxrwxr-x 2 opro5a users 1024 Oct 3 00:10 moje
-rw-r----- 1 opro5a opro5a 732 May 6 01:34 normal
lrwxrwxrwx 1 opro5a opro5a 15 Oct 3 00:10 skrot -> /sbin/...
-rwxr-xr-x 1 opro5a opro5a 2864 May 4 18:32 wykonywalny
Dla każdego wypisanego pliku wyszczególniono jego zezwolenia, właściciela, nazwę grupy, rozmiar, datę ostatniej modyfikacji i nazwę. My zajmiemy się najpierw zezwoleniami. Wyświetlane są one zawsze w postaci łańcucha poprzedzającego pozostałe dane o pliku. Dane o zezwoleniach składają się z dziesięciu znaków, z których każdy ma swoje znaczenie. Chcąc odczytać zezwolenia danego pliku należy rozbić je na grupy.
Znak na pierwszej pozycji mówi nam o rodzaju „obiektu” - literka `d` oznacza, że jest to katalog, `-` mówi nam, że jest to zwykły plik, `l' oznacza łącze symboliczne (link - pomysł ten zapożyczyła firma Microsoft, wprowadzając skróty w Windows 95).
Następnie określane są przywileje, kolejno po trzy dla właściciela, grupy i reszty użytkowników. Literka `r' oznacza możliwość czytania, `w' zapisywania, a `x' uruchamiania. Jeżeli zamiast litery w pewnym polu pojawia się znak minus `-`, należy to rozumieć jako brak danego zezwolenia. Przykładowo `rw-` oznacza, iż plik można odczytać i zapisać, lecz nie uruchamiać.
W przypadku katalogów zezwolenia będą miały nieco inny sens. Prawo odczytu katalogu oznacza, że można wypisać znajdujące się się w nim pliki poleceniem ls; prawo zapisu oznacza, iż w danym katalogu można tworzyć i kasować pliki, a prawo uruchamiania daje możliwość przejścia do katalogu za pomocą polecenia cd.
k |
user |
group |
other |
||||||
d |
r |
w |
x |
r |
w |
x |
r |
- |
x |
user - użytkownik, właściciel
group - grupa
other - inni użytkownicy
k - rodzaj kategorii - `-` dla pliku, `d' dla katalogu i `l' dla wskaźnika
r - uprawnienia do odczytywania pliku
w - uprawnienia do zapisywania (modyfikacji) pliku
x - uprawnienia do wykonywania pliku
Zwróć uwagę na poniższy przykład, w którym to
-rw-r----- 1 opro5a opro5a 732 May 6 01:34 normal
pierwszy znak `-` mówi nam, że jest to zwykły plik. Plik może być odczytywany i zapisywany przez właściciela, tylko i wyłącznie odczytywany przez członków grupy, a pozostali użytkownicy nie mają doń dostępu.
Jeżeli przyjrzysz się danym opisującym moje
drwxr-x--- 2 opro5a users 1024 Oct 3 00:10 moje
dowiesz się, że jest to katalog ( literka 'd' na pierwszej pozycji). Użytkownik opro5a posiada zezwolenie na odczyt i zapis, co w przypadku katalogu przekłada się na możliwość wypisywania jego zawartości oraz tworzenia i kasowania w nim plików. Właściciel ma również prawo do „uruchamiania” tego katalogu, co w praktyce oznacza możliwość wejścia do niego poleceniem cd. Członkowie grupy users mają możliwość wypisywania plików w katalogu i przechodzenia do niego za pomocą cd, podczas gdy reszta użytkowników nie ma doń żadnego dostępu.
Mam nadzieję, że już wiesz jak odszyfrować zezwolenia danego pliku. Teraz dowiesz się jak je modyfikować. Możesz dojść do wniosku, że zawartość jakiegoś pliku jest zbyt poufna, aby wszyscy mogli go odczytywać; możesz również chcieć, by wszyscy byli w stanie uruchomić dany program. Tym wszystkim zajmuje się polecenie chmod, którego składnia wygląda następująco:
chmod <parametry zezwoleń> <nazwa lub nazwy plików czy katalogów>
Parametry zezwoleń tworzymy przez kombinację następujących znaków:
Kogo dotyczy? (wybierz jeden lub więcej) |
Sposób modyfikacji (wybierz jeden) |
Typ dostępu (wybierz jeden lub więcej) |
|
u - właściciel |
a - wszyscy |
`+' - przyznaj |
r - prawo odczytu |
g - grupa |
|
`-` - usuń |
w - prawo zapisu |
o - reszta |
|
|
x - prawo uruchamiania |
Oto kilka przykładów:
chmod g+r obiekt - nadaje grupie, możliwość czytania danego pliku lub wyświetlania zawartości danego katalogu
chmod u+x obiekt - nadaje właścicielowi, prawa wykonywania pliku lub wchodzenia do danego katalogu
chmod o-x obiekt - odbiera pozostałym użytkownikom, prawa do wykonywania pliku lub wchodzenia do danego katalogu
chmod ugo-w obiekt - odbiera wszystkim prawa do czytania danego pliku lub tworzenia i zapisywania plików w danym katalogu
chmod a-x obiekt - to samo co poprzednio
Uwaga: W przypadku katalogów jeżeli na końcu składni polecenia chmod dodamy parametr -R to ustawienia obejmą także wszystkie pliki znajdujące się w tym katalogu
Za pomocą polecenia chmod można też nadawać uprawnienia w formie octalnej. Najlepiej zapamiętaj, że zezwoleniu na odczyt pliku przyporządkowujemy 4, zapis pliku 2 i uruchomienie 1. Obraz uprawnień do nago pliku powstaje z cyfr będących sumą poszczególnych (aktywnych) zezwoleń. Oto kilka przykładów:
chmod 777 obiekt - pełne uprawnienia dla wszystkich
r |
w |
x |
r |
w |
x |
r |
w |
x |
4 + 2 + 1 |
4 + 2 + 1 |
4 + 2 + 1 |
||||||
7 |
7 |
7 |
chmod 760 obiekt - pełne uprawnienia dla właściciela, prawo czytania i pisania dla grupy
r |
w |
x |
r |
w |
- |
- |
- |
- |
4 + 2 + 1 |
4 + 2 + 0 |
0 + 0 + 0 |
||||||
7 |
6 |
0 |
chmod 777 obiekt - uprawnienia do czytania dla właściciela oraz prawo do czytania oraz pisania dla innych użytkowników
r |
- |
- |
- |
- |
- |
r |
w |
- |
4 + 0 + 0 |
0 + 0 + 0 |
4 + 2 + 0 |
||||||
4 |
0 |
6 |
Ćwiczenie 11
Wejdź do swojego katalogu /home/opro5a i wyświetl listę plików poleceniem ls -l
Następnie zmień uprawnienia grupy i reszty użytkowników do pliku tylko_moje wpisując polecenie chmod go-rw
W tej chwili prawo do odczytu i zapisu pliku tylko_moje ma jedynie jego właściciel
Po tej operacji nadaj uprawnienia ( w formie octalnej) wchodzenia do katalogu dla_wszystkich, wypisywania, tworzenia i zapisywania w nim plików grupie, a reszcie użytkowników tylko wchodzenia do niego; wpisz polecenie chmod 771 dla_wszystkich
Wypisz listę plików jeszcze raz i sprawdź jak się zmieniły uprawnienia do tych plików
Następnie przywróć uprawnienia ( w formie octalnej) pliku tylko_moje do stanu poprzedniego wpisując polecenie chmod 666 tylko_moje
Nadaj uprawnienia wchodzenia do katalogu dla_wszystkich, wypisywania, tworzenia i zapisywania w nim plików reszcie użytkowników; wpisz polecenie chmod o+rwx dla_wszystkich
Zmień teraz właściciela pliku tylko moje wpisując polecenie chown root tylko_moje
Zmień grupę, do której należy ten plik: chgrp root tylko_moje
Podstawowe operacje na plikach
Wyświetlanie zawartości plików
Do wykonania tego zadania służą polecenia tj. cat, more i less. Polecenie cat wyrzuca po prostu zawartość pliku na ekran - odpowiednik dosowego type. Jeżeli w pliku znajduje się więcej danych niż można naraz wyświetlić, jego zawartość przeleci przez ekran nie dając czasu na przeczytanie czegokolwiek. Polecenie more rozwiązuje ten problem, wyświetlając plik strona po stronie - przerywa wyświetlanie tekstu po wypełnieniu ekranu i czeka na naciśnięcie spacji. Polecenie less działa jak more z jednym wyjątkiem - pozwala ono na przeglądanie tekstu zarówno w przód [Space], jak i w tył [B].
Ćwiczenie 12
Wyświetl zawartość pliku humor za pomocą poznanych poleceń: cat humor, more humor,less humor
Kopiowanie plików
Kopiowanie plików pod Linuxem jest podobne do analogicznej czynności w DOS-ie. W tym celu wykorzystujemy polecenie cp (odpowiednik DOS-owego copy). Jeżeli chcemy skopiować cały katalog musimy dołączyć parametr -rf.
Ćwiczenie 13
Przejdź do katalogu /home/opro5a/kawaly
Skopiuj plik humor1 do katalogu /home/opro5a/moje wpisując polecenie cp humo1 /home/opro5a/moje
Następnie skopiuj plik humor2 i humor3 do katalogu /home/opro5a/inne wpisując polecenie cp humo2 humor3 /home/opro5a/moje
A teraz skopiuj katalog moje do katalogu /home/opro5a/inne wpisując polecenie cp -rf /home/opro5a/moje /home/opro5a/inne
Za pomocą polecenia ls, które już znasz sprawdź czy operacje się udały
Zmiana nazw plików
Jeśli chcesz zmienić nazwę pliku lub przenieść go do innego katalogu użyj polecenia mv (odpowiednik DOS-owego rename).
Ćwiczenie 14
Przejdź do katalogu /home/opro5a/kawaly
Przenieś pliki humor2 do katalogu /home/opro5a/przepisy wpisując polecenie mv humor2 /home/opro5a/przepisy
Wejdź do katalogu /home/opro5a/przepisy i sprawdź czy operacja się udała
Następnie zmień nazwę pliku humor2 na humorek wpisując polecenie mv humor2 humorek
Kasowanie plików
Czas na trochę działalności destruktywnej. Rozpoczniemy od kasowania plików -możesz to zrobić używając polecenia rm (odpowiednik DOS-owego del). Obchodź się z tym ostrożnie, ponieważ wielofunkcyjny charakter Linuxa nie pozwala na odzyskiwanie skasowanych plików tak jak to ma miejsce w DOS-ie.
Ćwiczenie 15
Przejdź do katalogu /home/opro5a/kawały i sprawdź jego zawartość
Następnie skasuj pliki humor1 i humor3 wpisując polecenie rm humor1 humor3
Wejdź teraz do wyższego katalogu poleceniem cd .. i sprawdź jego zawartość
Skasuj pliki dla_wszystkich i tylko_moje poleceniem rm dla_wszystkich i tylko_moje
Kasowanie katalogów
Jeżeli chcesz skasować dany katalog możesz użyć polecenia rmdir. Polecenie to skasuje podany katalog, lecz tylko wówczas, gdy jest on pusty. Jeżeli natomiast w katalogu znajdują się pliki lub podkatalogi, będziesz je musiał użyć polecenia rm -r. Parametr -r daje rm prawo kasowania katalogów, znajdujących się wewnątrz plików, a nawet podkatalogów.
Ćwiczenie 16
Teraz skasujemy wszystkie te katalogi, które utworzyliśmy
Najpierw skasuj pusty katalog kawaly poleceniem rmdir /home/opro5a/kawaly
Następnie skasuj pozostałe katalogi moje, inne i przepisy, które zawierają pliki: wpisz polecenie rm -r moje inne przepisy
Korzystanie z urządzeń zewnętrznych
Podpinanie dodatkowych urządzeń
My jako użytkownicy mamy tylko dostęp tam gdzie pozwoli nam administrator. Często jednak zachodzi potrzeba skorzystania z danych znajdujących się na dysku obsługiwanym przez inny system operacyjny, dyskietce czy CD-ROM-ie. W tym celu należy najpierw utworzyć katalog, w którym dane urządzenie będzie widoczne, a później musimy je tam „zamontować” używając polecenia mount. Jednak tą operację może wykonać jedynie administrator. My jednak wykorzystamy automatycznie „zamontowaną” stację dysków i CD-ROM (dlatego właśnie ważne było aby dyskietka była umieszczona w stacji w czasie ładowania.
Obecnie CD-ROM i stacja dyskietek są widoczne w katalogach: /mnt/cdrom i /mnt/floppy. Wszystkie operacje na tych nośnikach np. kopiowanie, kasowanie czy tworzenie plików lub katalogów są analogiczne do tych operacji na samych plikach i katalogach np. jeżeli chcesz skopiować dany plik na dyskietkę to po prostu kopiujesz go do katalogu /mnt/floppy ( katalog ustala administrator). Poniższe ćwiczenie pozwoli Ci to lepiej zrozumieć.
Ćwiczenie 17
Skopiuj Twój katalog osobisty na dyskietkę: cp /home/opro5a /mnt/floppy i sprawdź czy operacja się udała
Następnie utwórz plik moje na dyskietce: touch /mnt/floppy/moje i sprawdź czy operacja się udała
Teraz sam skopiuj dowolny plik z CD-ROM'u (/mnt/cdrom) na dyskietkę (/mnt/floppy); sprawdź czy operacja się udała i skasuj go
Usuń przekopiowany wcześniej katalog: rm -r /mnt/floppy/opro5a
A teraz usuń plik moje: rm /mnt/floppy/moje
Chcąc skorzystać z innej dyskietki należy tą „odmontować” poleceniem umount, wyjąć ją wsadzić nową i znowu „zamontować” poleceniem mount. Chociaż tą operację może wykonać jedynie administrator zostanie ona tutaj również przedstawiona.
mount -t <system plików> <rodzaj urządzenia> <gdzie zamontować>
Możliwe systemy plików:
ext2 - Linux
minix - Minix
vfat -Windows 95
msdos - DOS
iso9660 - CD-ROM
nfs -(Network File System) system stosowany podczas mapowania danych udostępnianych przez inny komputer w sieci
i trochę oznaczeń urządzeń:
/dev/hda - oznacza pierwszy dysk twardy (IDE/EIDE)
/dev/hda1 - pierwszą partycje na pierwszym dysku twardym
/dev/hda2 - drugą partycje na pierwszym dysku twardym
/dev/hdb - drugi dysk twardy lub CD-ROM
/dev/sda - pierwszy dysk twardy (SCSI)
/dev/sda1 - pierwsza partycja na pierwszym dysku twardym
/dev/sdb - drugi dysk twardy (SCSI)
/dev/fd0 - pierwsza stacja dysków elastycznych
/dev/fd0H1440 - dyskietka 3.5" 1.44MB
/dev/fd0H1200 - dyskietka 5.25" 1.20MB
/dev/fd1 - druga stacja dysków elastycznych
/dev/cua0 - COM1
/dev/cua1 - COM2
/dev/lp0 - LPT1
Informacje o wykorzystaniu dysku
Warto wiedzieć jak sprawdzić ilość wolnego miejsca na dysku lub dyskach. Informacje te możemy uzyskać za pomocą dwóch poleceń: df i du. Pierwszy z nich informuje o ilości wykorzystanego miejsca na całym dysku, a drugi pokazuje ilość miejsca (w kilobajtach), zajmowanego przez pliki w danym katalogu oraz we wszystkich podkatalogach, a jako ostatnią wyświetloną liczbę, podaje łączną objętość wszystkich plików w tych katalogach. Pamięć w systemie Linux możemy skontrolować wyświetlając plik /proc/meminfo poleceniem cat /proc/meminfo.
Ćwiczenie 18
Wpisz polecenie df, a dowiesz się ile zajmuje twój system i nie tylko
Teraz wejdź do dowolnego katalogu np. /etc
i wpisz polecenie du, aby dowiedzieć się oile zajmuje ten katalog
Aby uzyskać informacje o pamięci użyj polecenia cat /proc/meminfo
[opro5a@localhost X11]$ df
Filesystem 1024-blocks Used Available Capacity Mounted on
/dev/hda4 347407 246896 82569 75% /
/dev/hda1 461376 425632 35744 92% /win
[opro5a@localhost X11]$ du
6 ./AnotherLevel/decors
11 ./AnotherLevel/scripts
102 ./AnotherLevel
1 ./TheNextLevel
48 ./wmconfig
24 ./fvwm
25 ./fvwm2
2 ./fs
4 ./twm
25 ./xdm
2 ./xsm
6 ./xinit
252 .
[opro5a@localhost X11]$ cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 6762496 6393856 368640 8986624 430080 2363392
Swap: 20639744 0 20639744
MemTotal: 6604 kB
MemFree: 360 kB
MemShared: 8776 kB
Buffers: 420 kB
Cached: 2308 kB
SwapTotal: 20156 kB
SwapFree: 20156 kB
[opro5a@localhost X11]$
Filesystem - nazwa danego systemu plikowego
1024-blocks - ilość 1024-bloków (kb)
Used - ilość używanych 1024-bloków (kb)
Available - ilość wolnych 1024-bloków (kb)
Capacity - ile procent dysku jest zajmowane
Mounted on - gdzie dane urządzenie jest „zamontowane”
Midnight Commander
System operacyjny Linux jest dla użytkownika (zwłaszcza niedoświadczonego) środowiskiem mało wygodnym. Dlatego też stworzono nakładkę systemową - Midnight Commander ułatwiającą pracę. Jedną z większych zalet MC jest dosyć duże podobieństwo do popularnego Norton Commander'a, co nie jest bez znaczenia dla osób nie mających dużego doświadczenia w pracy z systemem Linux. Przystępny sposób uzyskiwania informacji i łatwość wydawania poleceń czynią ten program bardzo popularnym.
Obsługa Midnight Commander'a
Midnight Commander uruchamiamy poleceniem mc <Enter> - znajdziesz się od razu w swoim katalogu osobistym. Na ekranie pojawią się dwa okna (między którymi przechodzisz za pomocą klawisza Tab), w których wyświetlane są pliki - jak wiecie w Linux'ie nie ma podziału na poszczególne dyski (np. C, D czy E ) tylko wszystko przedstawiane jest w postaci plików. Poruszanie się po MC jest bardzo łatwe ze względu na intuicyjny charakter tego programu. Do „skakania” po drzewie katalogowym używamy klawiszy strzałkowych, Home, End, Page Up, Page Down i Enter, który umożliwia wchodzenie do katalogów i uruchamianie programów. Bezpośrednio pod oknami znajduje się znak zgłoszenia systemu, po którym można wprowadzać poznane już wcześniej polecenia systemowe. Najniższa linia ekranu przedstawia znaczenie klawiszy funkcyjnych, do których masz również dostęp z pozycji górnego menu.
F1 - wyprowadzanie na ekran okna z tekstem pomocy
F2 - wyprowadzanie na ekran menu stworzonego przez użytkownika
F3 - wyświetlanie zawartości aktualnego ( podświetlonego ) zbioru
F4 - edycja aktualnego zbioru
F5 - kopiowanie aktualnego zbioru lub grupy zbiorów
F6 - zmiana nazwy lub przenoszenie aktualnego zbioru lub grupy zbiorów
F7 - utworzenie katalogu
F8 - usunięcie aktualnego zbioru lub grupy zbiorów
F9 - wejście do górnego menu
F10 - zakończenie pracy z programem
Menu u samej góry przedstawia poszczególne sekcje, do których możemy wejść, bądź to naciskając klawisz [F9], bądź klikając na nie myszką.
Left - zawiera funkcje służące do zmiany sposobu wyświetlania plików
Right - zawiera funkcje służące do zmiany sposobu wyświetlania plików
File - zawiera funkcje służące do wykonywania operacji na plikach
Command - zawiera funkcje służące do wykonywania bardziej zaawansowanych funkcji w linuxowym systemie plików
Options - zawiera funkcje do konfiguracji MC
Inne polecenia zostaną przedstawione później podczas opisu poszczególnych sekcji górnego menu. W MC stosujemy trochę inne, kłopotliwe skróty jak w NC np.
M-u - należy przytrzymać [Alt] i nacisnąć klawisz [u]
C-u - należy przytrzymać [Ctrl] i nacisnąć klawisz [u]
C-x q - należy przytrzymać [Ctrl] i nacisnąć klawisz [x], puścić i nacisnąć szybko klawisz [q] - jest to dosyć kłopotliwe
Teraz przedstawię Ci opis standartowych katalogów w systemie Linux, z którymi będziesz się mógł lepiej zapoznać przy użyciu MC.
/bin - wykonywalne polecenia i programy systemowe
/dev - zawiera specjalne pliki urządzeń, odpowiadające poszczególnym elementom komputera
/etc - zawiera pliki konfiguracyjne Linux'a i reszty zainstalowanego oprogramowania
/home - zawiera katalogi osobiste (domowe) wszystkich użytkowników systemu
/lib - różnego rodzaju biblioteki wykorzystywane przez system
/lost+found - katalog używany przez program fsck
/mnt - używany jako punkt do przyłączania (mounting) np: innego dysku, CD-ROM czy tez innego systemu plików
/root - katalog własny nadzorcy systemu /sbin - zawiera oprogramowanie linuxowe (specjalne programy użytkowe tylko dla administratorów)
/usr - zawiera różne programy i inne ogólnodostępne pliki, jak gry, systemy pomocy i dokumentację
/tmp - katalog dla plików tymczasowych
Ćwiczenie 19
Jeżeli jeszcze nie uruchomiłeś Midnight Commander'a zrób to wpisując w linii komend polecenie mc <Enter>
Poświęć teraz trochę czasu na zaznajomienie się z programem korzystając z przedstawionego powyżej opisu - spróbuj zwrócić uwagę na różnice pomiędzy MC a Norton Commander'em
Wejdź teraz do górnego menu i w sekcji left lub right uruchom funkcję listing mode..., która służy do zmiany sposobu wyświetlania plików w oknach - w dowolny sposób zmieniaj parametry (full, brief lub long file list ), które się pojawią i po potwierdzeniu sprawdź co się zmieniło ( powtórz ten krok kilka razy, za każdym razem dokonując innych zmian)
Najedź teraz na dowolny plik i wyświetl jego zawartość używając kombinacji [C-x q] (co w MC, jak już pisałem, oznacza - przytrzymać [Ctrl] i nacisnąć [x], puścić oba klawisze i szybko nacisnąć [q] ). Można także wejść do górnego menu i użyć funkcji Quick view. Plik zostanie wyświetlony w przeciwnym oknie. Jeśli chcesz wrócić do poprzedniego stanu użyj funkcji listing mode....
Teraz wyświetlimy skrócone informacje o pliku - naciśnij [C-x i] (już wiesz jak to zrobić) lub po prostu wejdź do górnego menu i uruchom funkcje Info. Oto wyjaśnienie niektórych pozycji:
Owner - właściciel / grupa
Size - rozmiar obiektu
Created - data i czas utworzenia
Modified - data i czas modyfikacji
Filesystem - miejsce gdzie jest umieszczony dany obiekt
Device - urządzenie na którym obiekt jest umieszczony
Type - rodzaj systemu plików
Free space - wolne miejsce na danym dysku lub innym nośniku
Teraz będziesz przeglądał pliki w postaci struktury drzewa katalogowego - użyj funkcji Tree w sekcji Right lub Left górnego menu. Poruszanie się w ten sposób jest podobne do standardowej pracy z MC, dlatego też nie powinieneś mieć kłopotów. Gdy wypróbujesz wszystkie możliwości tej funkcji przejdź do standardowego okna przy pomocy poznanej już opcji listing mode...
Teraz wypróbuj jeszcze dwie funkcje: Sort order... i Filter.... Pierwsza z nich służy, jak sama nazwa wskazuje, do sortowania plików i katalogów według nazwy, rodzaju czy rozmiaru itp. Druga natomiast „filtruje” wyświetlane pliki według podanego wzorca np. wzór *dat spowoduje, że zostaną wyświetlone wszystkie pliki, których nazwa kończy się na dat.
Podstawowe operacje w MC
W MC wszystkie poznane przez Ciebie operacje systemowe można wykonać o wiele szybciej i łatwiej. My na razie zajmiemy się poleceniami wyświetlonymi w najniższej linii MC, które możesz wywoływać za pomocą klawiszy funkcyjnych - oczywiście przed naciśnięciem klawisza trzeba najechać na plik, który będzie poddany danej operacji. Wykonaj poniższe ćwiczenie, a sam się o tym przekonasz.
Ćwiczenie 20
Na samym początku utworzymy podkatalogi w Twoim katalogu osobistym /home/opro5a. Użyj w tym celu klawisza [F7], wpisz nazwę moje i potwierdź naciskając OK. Powtórz tą operację jeszcze dwa razy i utwórz dodatkowe katalogi inne i system.
Teraz utworzymy plik w katalogu moje. Naciśnij [Shift]+[F4] - pojawi się okno, w którym łatwo możesz dokonać edycji pliku - wpisz krótki tekst. Następnie naciśnij [F2] aby zapisać plik - wpisz humor jako nazwę pliku. Po potwierdzeniu naciśnij [F10] aby opuścić edytor.
W tym samym co poprzednio katalogu utwórz dodatkowe dwa pliki spis i adresy używając znanego Ci już polecenia touch.
Skopiuj teraz humor z katalogu moje do inne wciskając klawisz [F5]; możesz w lini to: napisać gdzie dany plik ma być skopiowany (/home/opro5a/inne). Oczywiście możesz też w oknie po drugiej stronie wejść do katalogu docelowego, powrócić z powrotem klawiszem [Tab] i wtedy w lini to: nic nie musisz wpisywać.
Przenieś plik spis do system wciskając klawisz[F6]; tak jak poprzednio możesz to zrobić na dwa sposoby.
Zmień nazwę pliku adresy na telefony wciskając klawisz[F6]; w tym przypadku katalog docelowy musi być katalogiem, w którym znajduje się dany plik. W linii to: wpisz /home/opro5a/moje/telefony lub jak poprzednio skorzystać z drugiego okna.
Wejdź do katalogu moje i zaznacz za pomocą klawisza [Insert] wszystkie pliki. Używając klawisza [F8] skasuj je.
W katalogu /home/opro5a zaznacz podkatalogi moje, inne i system. Używając klawisza [F8] skasuj je.
Spis ćwiczeń
Strona 24
Czym tak w ogóle jest Linux
Podstawowe operacje w systemie Linux
System plików w Linux'ie
Korzystanie z urządzeń zewnętrznych
Midnight Commander