pliki w LINUX ie opis

background image

Linuksowy system plików

Linuksowy system plików


1. Pliki i katalogi w systemie Linux. Poruszanie się po katalogach, operacje na plikach, kopiowanie,

przenoszenie, tworzenie linków

2. Struktura systemu plików, podstawowe katalogi i pliki systemu

3. Prawa dostępu do plików i katalogów, polecenia chmod, chown, chgrp
4. Konfigurowanie środowiska pracy systemu Linux, zmienne systemowe

5. Edytor

vi




1

background image

Linuksowy system plików

1. Pliki i katalogi w systemie Linux.

Poruszanie się po katalogach, operacje na plikach,

kopiowanie, przenoszenie, tworzenie linków


Podczas procesu instalacji, opisanego w module pierwszym i wykonanego przez słuchacza
na dysku twardym, w komputerze zostały zapisane dane niezbędne do działania systemu
operacyjnego Linux. Dane te zostały zapisane w postaci plików, tak jak to jest
wykonywane w innych systemach operacyjnych, na przykład Windows. Pliki są
zapisywane w wielu katalogach, odpowiednio nazwanych i umieszczonych w strukturze
katalogów na dysku. Pod tym względem linuksowy system plików zasadniczo nie różni się
od znanego systemu występującego w środowisku Windows. W katalogu głównym są
katalogi, w których mogą znajdować się zarówno pliki, jak i katalogi niższego rzędu,
które tworzą drzewo, symbolizujące rozgałęziającą się strukturę podziału na katalogi
niższego rzędu. Użytkownicy systemu operacyjnego Windows wiedzą, że poszczególne
dyski logiczne oznacza się kolejnymi literami z dwukropkiem. Podstawowym dyskiem jest
dysk oznaczony jako C:, dalsze dyski lub napędy CD-ROM, DVD czy dyski wymienne
oznacza się kolejnymi literami D:, E: itd. W systemie Linux wszystkie zainstalowane dyski
tworzą jeden system plików, którego katalog główny jest oznaczony prawym ukośnikiem,
czyli znakiem „/”. Również ten znak (w systemach Windows znak „\”) jest
wykorzystywany w systemie Linux do oddzielania od siebie poziomów katalogów. Dla
użytkownika systemu nie ma znaczenia, czy dane są zapisane na pierwszym, drugim czy
kolejnym dysku. Najważniejsze, by znał położenie pliku (lub katalogu) w systemie plików,
czyli znał tzw. ścieżkę do pliku. Obecnie zostaną omówione podstawowe polecenia
służące do poruszanie się po linuksowym systemie plików. Podstawowym poleceniem
wyświetlającym zawartość katalogu, czyli nazwy i ewentualnie inne informacje o plikach
jest polecenie ls (skrót od angielskiego słowa list).


2

background image

Linuksowy system plików

Rysunek 1. Przykład działania polecenia ls


Jak widać na rysunku, w bieżącym katalogu jest tylko jeden plik o nazwie procesy.txt

(plik ten został utworzony w poprzednim ćwiczeniu poleceniem ps). Zawartość tego pliku
można wyświetlić na ekranie poleceniem cat procesy.txt (należy przypomnieć
wiadomości z poprzedniego modułu, że do wykonania tego polecenia wystarczy napisać
na klawiaturze cat p i wcisnąć klawisz tabulatora).


Rysunek 2. Wyświetlanie zawartości pliku poleceniem cat


3

background image

Linuksowy system plików

Plik ten jest na tyle duży, że jego zawartość nie mieści się na jednym ekranie.
Początkowe linie pliku można wyświetlić poleceniem head nazwa_pliku, a końcowe tail

nazwa_pliku.


Rysunek 3. Przykład działania poleceń head i tail

Wykonane wcześniej polecenie ls wyświetliło na ekranie zawartość katalogu bieżącego,
czyli jakiego? Jaki jest katalog bieżący? Łatwo jest to sprawdzić poleceniem pwd (od
angielskiego print working directory). Jak widać z rysunku poniżej, tym katalogiem jest
/home/jacnow. Jest to tak zwany katalog domowy użytkownika, czyli katalog, który staje
się bieżącym bezpośrednio po zalogowaniu się użytkownika. Katalogiem domowym
użytkownika test1 jest /home/test1, użytkownika test2 /home/test2.


4

background image

Linuksowy system plików

Rysunek 4. Przykład działania polecenia pwd


Do poruszania się w systemie plików między katalogami służy polecenie cd (od
angielskiego change directory). Parametrem wywołania polecenia jest nazwa katalogu,
który ma stać się katalogiem bieżącym. Szczególne przypadki wywołania polecenia cd
następujące:
cd .. — parametrem są dwie kropki (nie dwukropek), powoduje przejście do

katalogu nadrzędnego,

cd — polecenie wywołane bez parametru, powoduje przejście do katalogu domowego

użytkownika,

cd ~ — parametrem jest znak tyldy (~), tak jak powyżej powoduje przejście do

katalogu domowego użytkownika,

cd / — parametrem jest ukośnik „/”, powoduje przejście do głównego katalogu

systemu plików.


Przykłady użycia polecenia cd są pokazane na rysunku powyżej.
Opisane wcześniej polecenie cat procesy.txt spowodowało wyświetlenie na ekranie
zawartości pliku, który znajdował się w katalogu bieżącym. Często jednak korzysta się
z programów lub plików, które nie są w katalogu bieżącym, więc trzeba w takim
przypadku jednoznacznie określić położenie pliku w strukturze katalogów. Poza podanym
sposobem wykonania tego polecenia, można wywołać je, podając tzw. pełną ścieżkę
dostępu do pliku, czyli pisząc cat /home/jacnow/procesy.txt. Podany parametr, często
zwany bezwzględną ścieżką do pliku, musi rozpoczynać się od znaku ukośnika „/”, gdyż
jest to oznaczenie katalogu głównego. Parametr określający położenie pliku względem

5

background image

Linuksowy system plików

katalogu bieżącego, czyli tzw. względna ścieżka do pliku, nie rozpoczyna się od ukośnika.
Na poniższym rysunku zostały pokazane różne przykłady wyświetlenia zawartości
katalogu, w którym jest plik procesy.txt, zarówno w przypadku prawidłowego podania
ścieżki bezwzględnej i względnej, jak i błędnego, na co system zareagował komunikatem
„Nie ma takiego pliku ani katalogu”.

Użytkownik systemu Linux ma możliwość zbudowania swojej, odpowiadającej jego
potrzebom, struktury podkatalogów w jego katalogu domowym. Do tworzenia katalogów
jest wykorzystywane polecenie mkdir nazwa_katalogu, a do usuwania katalogów
polecenie rmdir nazwa_katalogu. Parametrem jest nazwa katalogu mogąca zawierać
zarówno ścieżkę w postaci względnej (nierozpoczynającej się od znaku „/”), jak
i bezwzględnej (rozpoczynającej się od znaku „/”).


Rysunek 5. Przykłady określania ścieżki dostępu do pliku lub katalogu


W trakcie pracy użytkownik nieustannie zmienia zawartość swojego dysku, tworzy nowe
pliki, kasuje stare, kopiuje, przenosi, tworzy kopie zapasowe, czasami zachodzi
konieczność znalezienia pliku, który się zawieruszył na dysku. Oczywiście dysk powinien
być uporządkowany, odpowiednie pliki powinny się znajdować we właściwych katalogach
na dysku. Podstawa zachowania porządku na dysku to możliwość zarządzania
katalogami, ich tworzenie i usuwanie.

6

background image

Linuksowy system plików

Polecenia pomagające użytkownikowi zapanować nad hierarchiczną strukturą danych:

mkdir nazwa_katalogu — służy do tworzenia katalogu,

rmdir nazwa_katalogu — służy do kasowania katalogu.


Nazwa katalogu, który zostanie utworzony, może być podana zarówno z pełną
(bezwzględną), jak i względną ścieżką. Przykład tworzenia i kasowania katalogów jest
pokazany na poniższym rysunku.


Rysunek 6. Przykład tworzenia katalogów



W łatwy sposób użytkownik może sprawdzić, czy utworzona struktura katalogów jest

prawidłowa. Polecenie tree wyświetla w prosty sposób strukturę katalogów na dysku, co
jest przedstawione na kolejnym rysunku. Komunikaty [error opening directory]
potwierdzają, że użytkownik jacnow nie ma praw dostępu do katalogów innych

użytkowników. Polecenie tree pozwala również na wyświetlenie struktury całego
linuksowego systemu plików. Należy podejść do tego zadania z rozwagą, gdyż wykonanie
tego polecenia może trwać kilka lub kilkanaście minut.

7

background image

Linuksowy system plików

Rysunek 7. Wyświetlanie struktury katalogów poleceniem tree



Podstawowe operacje na plikach to ich kopiowanie, usuwanie i przenoszenie.

cp plik_źródłowy plik_docelowy — kopiowanie pliku,

rm plik_źródłowy plik_docelowy — usuwanie pliku,

mv plik_źródłowy plik_docelowy — zmiana nazwy lub położenia pliku.


W powyższych poleceniach zamiast plików mogą także wystąpić katalogi. Polecenie to
— choć wydaje się bardzo proste do wykonania — posiada kilka przydatnych opcji
opisanych skrótowo poniżej:
cp i plik_źródłowy plik_docelowy — interaktywnie program pyta, czy

nadpisywać istniejące pliki docelowe,

cp r plik_źródłowy plik_docelowy operacja jest wykonywana rekurencyjnie

na całym drzewie podkatalogów,

cp — f plik_źródłowy plik_docelowy — usuwa pliki docelowe.

Poza możliwością skopiowania pliku, system Linux pozwala na utworzenie tak zwanego
linku, czyli dowiązania symbolicznego. Inaczej mówiąc, plik może mieć wiele nazw, co
pozwala na odwołanie się do pliku przez wiele identyfikatorów. Jak widać z poniższego
rysunku, pliki oznaczające dowiązania są wyświetlane w innym kolorze. sendmail to
w istocie dowiązanie (link) do pliku ../sbin/sendmail, podobnie X11 stanowi link do pliku
../X11R6/lib/X11.


8

background image

Linuksowy system plików

Rysunek 8. Przykład wyświetlania zawartości katalogu



Korzystanie z linków ułatwia dostęp do plików i katalogów, gdyż można — korzystając
z krótkiej nazwy — odwołać się do pliku o długiej nazwie, znajdującego się głęboko
w strukturze katalogów. Tworzenie linków jest realizowane poleceniem:

ln oryginał link lub ln –s oryginał link.


Pierwsze z nich tworzy tzw. twardy link, czyli oryginał i link są nierozróżnialne.
Użytkownik — na przykład odczytując zawartość pliku — nie wie, czy pracuje
z oryginalnym plikiem, czy jego linkiem. Skasowanie pliku jest możliwe dopiero po
usunięciu wszystkich twardych linków do niego. Przykład utworzenia takiego twardego
linku jest pokazany na poniższym rysunku. Jak widać, oryginał i link mają takie same
rozmiary. Tworzenie twardych linków jest możliwe tylko w obrębie tego samego systemu
plików, czyli na przykład na tej samej partycji dysku. Liczba znajdująca się w drugim polu
informacji o pliku oznacza liczbę twardych dowiązań do pliku i — jak widać na przykładzie
— po utworzeniu twardego linku została zwiększona do 2.


9

background image

Linuksowy system plików

Rysunek 9. Przykład tworzenia linku, czyli dowiązania symbolicznego



Drugie z poleceń służy do tworzenia tzw. miękkiego linku. Przykład jego utworzenia jest
przedstawiony na poniższym rysunku. Linki tego typu można tworzyć między obiektami
znajdującymi się na różnych systemach plików.

Rysunek 10. Przykład tworzenia tzw. miękkiego linku




10

background image

Linuksowy system plików

Przy kopiowaniu bądź przenoszeniu plików można stosować tzw. znaki globalne, które
znacznie ułatwiają i przyspieszają pracę. Znak „?” (znak zapytania) może symbolizować
dowolny znak w nazwie występujący tylko na tej pozycji, a „*” dowolny znak do końca
pliku. Z tego wynika, że polecenie cp * wyklady spowoduje skopiowanie całej zawartości
bieżącego katalogu do folderu wyklady.

11

background image

Linuksowy system plików

2. Struktura systemu plików,

podstawowe katalogi i pliki systemu


Po zalogowaniu się użytkownika katalogiem bieżącym jest jego katalog domowy. Nie
oznacza to, że pracujący w systemie Linux nie może „obejrzeć” zawartości dysku,
zorientować się, jakie dane są zapisane na serwerze linuksowym. W ramach bieżącego
tematu zostanie w zarysie przedstawiona struktura danych zawartych na dysku, ich
przeznaczenie i uprawnienia użytkowników do ich przeglądania i modyfikacji.
Przykładowo wyświetlenie zawartości katalogu głównego można wykonać
poleceniem ls /.


Rysunek 11. Przykład wyświetlania zawartości katalogu



Jak widać z rysunku w katalogu głównym znajduje się około 10 obiektów i są to katalogi
stanowiące poszczególne gałęzie systemu plików. Na jakiej podstawie można zorientować

się, że są to katalogi? Poleceniem ls –l zostały wyświetlone rozszerzone informacje
o zawartości katalogu, które należy odczytać następująco:

drwxr-xr-x 17 root root 77824 sie 26 19:28 dev

12

background image

Linuksowy system plików

d

litera d umieszczona w pierwszej kolumnie oznacza katalog,

w przypadku pliku występuje znak „–” (minus),

rwxr-xr-x

kolejne znaki, które mogą być dowolną kombinacją liter r, w, x oraz

znaku „–” (minus) oznaczają uprawnienia użytkowników do danego
pliku lub katalogu,

20

oznacza liczbę dowiązań do danego pliku lub katalogu,

root

nazwa

użytkownika, który jest właścicielem pliku lub katalogu,

root

nazwa grupy użytkowników, do której należy plik lub katalog,

116736 rozmiar

wyrażony w bajtach,

sie 26 13:06 data i godzina ostatniej modyfikacji pliku lub katalogu,

dev

nazwa pliku lub katalogu.


Dodatkowym ułatwieniem jest to, że nazwy katalogów są wyświetlane w kolorze
niebieskim. Poniżej zostanie skrótowo opisana zawartość poszczególnych katalogów

Tabela 1. Zawartość podstawowych katalogów w systemie Linux

Nazwa Zawartość

/bin

Zawiera podstawowe programy narzędziowe, jego nazwa pochodzi od

binaries

/boot

Zawiera pliki z systemem operacyjnym wczytywane przy uruchamianiu
komputera

/dev

Zawiera pliki urządzeń. Linux traktuje wszystko, z czego może odczytać
dane lub je zapisać, jak pliki. W tym katalogu są pliki określające wszystkie

urządzenia znajdujące się w komputerze

/etc

W tym katalogu i podkatalogach są przechowywane pliki konfiguracyjne

systemu i wszystkie pozostałe pliki systemowe, stąd jego nazwa. Zazwyczaj
są to pliki tekstowe, które mogą być łatwo edytowane przez administratora

w celu zmiany konfiguracji systemu

/home

Są tu zawarte wszystkie katalogi domowe użytkowników systemu (tzw.
home directory)

/lib

Są tu zawarte biblioteki wykorzystywane przez kompilatory przy linkowaniu
programów

/lost+found

Zawiera pliki zagubione i odzyskane

/mnt

Katalog używany do montowania urządzeń: stacji dyskietek, CD-ROM-u,
partycji dyskowych

/proc

Zawiera informacje o różnych parametrach pracy systemu

13

background image

Linuksowy system plików

/root

Katalog domowy administratora

/sbin

Zawiera programy służące do administrowania systemem i uruchamiane

automatycznie

/tmp

Zawiera pliki tymczasowe

/usr

Zawiera pliki i polecenia systemowe

/var

Zawiera pliki, które się zmieniają, np. pocztę, serwis WWW


Jest to wykaz orientacyjny i nie zawiera szczegółowego omówienia, większość
z katalogów jest bardzo rozbudowana. Przeglądając różne katalogi, można było
zauważyć, że nazwy plików i katalogów zazwyczaj są pisane małymi literami i rzadko
zawierają rozszerzenia nazwy, a jeżeli — to nazwy są wieloczłonowe i mogą zawierać
wiele kropek, przykładowo libBrokenLocale-2.2.4.so. W systemie Windows wiadomo, że
program wykonywalny ma rozszerzenie .exe. W systemie Linux rozszerzenie nazwy nie
ma wpływu na to, czy program jest wykonywalny. W zasadzie nie wydziela się
rozszerzenia nazwy pliku. Polecenie file nazwa_pliku

pozwala na określenie typu pliku.

Przykłady określania typu pliku są pokazane na kolejnym rysunku.


Rysunek 12. Przykładowe rodzaje zawartości pliku rozpoznawane programem file



14

background image

Linuksowy system plików

Do omówienia w ramach niniejszego tematu pozostało zagadnienie poszukiwania plików.

Do tego celu służy polecenie find, którego składnię można opisać następująco:

find katalog — opcje kryterium.

katalog oznacza katalog, w którym system będzie szukał plików, np. katalog /home
oznacza katalogi domowe wszystkich użytkowników, a zgodnie z wcześniejszymi
informacjami znak „/” (ukośnik) oznacza przeszukiwanie całego systemu plików.

Znaczenie opcji jest następujące:
name wzorzec — są poszukiwane pliki, których nazwa pasuje do wzorca,
size numerc — są poszukiwane pliki, których rozmiar jest równy podanej liczbie

wyrażonej w blokach lub bajtach (np. 1024c),

mtime numer — są poszukiwane pliki, które zostały zmodyfikowane numer dni temu,
newer wzorzec — są poszukiwane pliki, które były modyfikowane później niż ten,

którego nazwa pasuje do wzorca.


Rysunek 13. Przykład poszukiwania plików w systemie

15

background image

Linuksowy system plików

3. Prawa dostępu do plików i katalogów,

polecenia chmod, chown, chgrp


Poniższy rysunek pokazuje część listy nazw z katalogu głównego serwera linuksowego
oraz zawartość katalogu /home. Nie jest to katalog domowy, co może sugerować jego
nazwa. Jest to katalog nadrzędny nad katalogiem domowym użytkowników.


Rysunek 14. Przykład wyświetlania pełnej informacji o zawartości katalogu


Właścicielem katalogów zawartych w katalogu głównym serwera jest użytkownik root
(czyli administrator komputera), należący do grupy root. W katalogu /home właścicielami
poszczególnych katalogów są poszczególni użytkownicy należący do grup, których nazwy
są takie same jak użytkownik, czyli właścicielem katalogu test1 jest użytkownik logujący
się do systemu jako test1, który jest członkiem grupy również o nazwie test1. Należy
przypomnieć, że podczas instalacji systemu Linux zostały utworzone takie konta
użytkowników, a jak widać również takie grupy użytkowników.


16

background image

Linuksowy system plików

Rysunek 15. Przykład zmiany katalogu bieżącego z odmową dostępu



Na powyższym rysunku zostały przedstawione przykłady poleceń wydanych przez
użytkownika jacnow, których zadaniem były różne zmiany katalogów i przejrzenie ich
zawartości. Użytkownik przeszedł z katalogu /home do swojego katalogu domowego
(czyli /home/jacnow), wyświetlił jego zawartość w postaci szczegółowej (poleceniem

ls –l), a następnie z katalogu /home spróbował przejść do podkatalogu test1, czyli

katalogu domowego (często stosuje się określenie prywatnego) użytkownika, logującego
się jako test1. Okazuje się, że nie było to możliwe, system wyświetlił komunikat
Permission denied, co można przetłumaczyć jako dostęp zabroniony. Jest to prosty
przykład potwierdzający tezę, że system Linux zapewnia użytkownikowi ochronę jego
zasobów, czyli tylko on (i oczywiście administrator) ma do nich dostęp. Nie ma obawy
o to, że inny użytkownik zapozna się z zawartością katalogów i plików nienależących do
niego i tym bardziej ich nie zmodyfikuje lub nie usunie. W poprzednim punkcie został

omówiony wydruk pełnej informacji o pliku (poleceniem ls –l), w której w pierwszych
kolumnach są drukowane uprawnienia do pliku w postaci kombinacji znaków r, w, x oraz
minus (–). Ich znaczenie jest następujące:
r — oznacza prawo do odczytu (read),
w — oznacza prawo do zapisu (write),
x — oznacza prawo do wykonania (eXecute),
 – — oznacza brak uprawnienia.

17

background image

Linuksowy system plików

Kombinacja tych znaków powtarza się trzykrotnie. Pierwsza grupa oznacza uprawnienia
przysługujące właścicielowi pliku (lub katalogu), druga — innych użytkowników,
należących do tej samej grupy, co właściciel pliku, trzecia trójka znaków dotyczy
uprawnień pozostałych użytkowników systemu. Przykładowo oznaczenia dla pliku
–rwxr-xr-- należy odczytać następująco:
rwx — właściciel pliku ma do niego pełne prawa, może go odczytać, zapisać (co

również oznacza skasować) i wykonać,

r-x — inni użytkownicy, należący do tej samej grupy, co właściciel, mogą ten plik

odczytać i uruchomić,

r-- — pozostali użytkownicy systemu mogą ten plik odczytać.

Jak zmienić uprawnienia do pliku? Służy do tego polecenie chmod. Składnia polecenia jest
następująca:

chmod uprawnienia nazwa_pliku
Przykład: chmod a+r procesy.txt

Wyjaśnienia wymagają uprawnienia, które w przykładzie mają postać a + r. Pierwsza
litera oznacza użytkowników i może być jedną z następujących: u — właściciel pliku
(user), g — grupa (group), o — pozostali użytkownicy (others), a — wszyscy (all),
kolejny znak to „+” (plus), co oznacza dodanie uprawnień lub „–” (minus), symbolizujący
odebranie uprawnień i ostatni znak r, w, x określający rodzaj uprawnień opisany
powyżej. Pomiędzy znakami nie może wystąpić spacja. W systemie Linux można również
zmieniać prawa dostępu do plików, posługując się zapisem ósemkowym. Każdemu
z uprawnień odpowiada bit ustawiony w określonej pozycji, co pozwala na łatwą
konwersję liczby dwójkowej na ósemkową, jak w poniższym przykładzie:


r w x r w x r w x

4 2 1 4 2 1 4 2 1

7 7 7

Rysunek 16. Przykład konwersji uprawnień oznaczanych literami na liczby ósemkowe


Uprawnienia rwxrwxrwx można zapisać liczbowo jako 777, czyli polecenie chmod

a+ra+wa+x p* można również zapisać w postaci chmod 777 p*, a wynik działania będzie

taki sam.

18

background image

Linuksowy system plików

r w x r – x r – –

4 2 1 4 0 1 4 0 0

7 5 4

Rysunek 17. Przykład konwersji uprawnień oznaczanych literami na liczby ósemkowe


Poniższy rysunek pokazuje różne przykłady działania polecenia chmod.

Rysunek 18. Przykłady działania polecenia chmod


Należy zwrócić uwagę na fakt wyświetlania pliku procesy.txt różnymi kolorami,
w zależności od tego, czy miał nadane uprawnienia do jego wykonania. Nadawanie
uprawnień prowadzi do kolejnego spostrzeżenia: o możliwości wykonania programu nie
decyduje rozszerzenie nazwy pliku (jak to ma miejsce w Windows), lecz prawo danego
pliku do wykonania (atrybut eXecute), które może być w każdej chwili nadane lub
odebrane przez uprawnionego użytkownika.

Nie tylko prawa dostępu do pliku mogą być zmieniane. Również właściciel pliku może
zostać zmieniony. Dokonuje się tego poleceniem

chown nowy_właściciel nazwa_pliku, jak w przykładzie: chown test2 procesy.txt.

19

background image

Linuksowy system plików

Przykład sposobu zmiany właściciela pliku jest przedstawiony na poniższym rysunku.
Należy zwrócić uwagę na fakt, że ta operacja była możliwa do wykonania jedynie przez
administratora systemu. Podobnie działa polecenie chgrp nowa_grupa nazwa_pliku.
Polecenie chgrp pozwala na jednoczesną zmianę właściciela pliku i grupy, jeśli parametr
poda się w postaci nowy_właściciel:nowa_grupa.


Rysunek 19. Przykłady działania polecenia chown


W uprawnieniach dostępu do pliku występują również znaczniki (bity) SUID i SGID.
Ustawienie bitu SUID pozwala użytkownikowi uruchamiającemu program wykonanie go
z prawami administratora. Jest to potencjalna luka w bezpieczeństwie systemu i należy
rozważnie korzystać z nadawania tych uprawnień użytkownikom. W przypadku
ustawienia bitu SGID program jest wykonywany z prawami dostępu grupy, do której
należy, a nie uprawnieniami grupy, do której należy użytkownik uruchamiający ten
program. Dodawanie lub usuwanie bitów SUID i GUID jest wykonywane poleceniem:
chmod u+s nazwa_pliku — ustawienie bitu SUID,
chmod u-s nazwa_pliku — usunięcie bitu SUID,
chmod g+s nazwa_pliku — ustawienie bitu GUID,
chmod g-s nazwa_pliku — usunięcie bitu GUID.

20

background image

Linuksowy system plików

Bity SUID i GUID można również ustawić poleceniem chmod, podając uprawnienia
w postaci liczbowej:

chmod 4755 nazwa_pliku ustawienie bitu SUID,

chmod 2755 nazwa_pliku ustawienie bitu GUID.

Do wyszukania w systemie plików z ustawionymi bitami SUID i GUID można użyć

polecenia find z odpowiednimi parametrami:

find /usr –perm +4000 — odszuka pliki z ustawionym bitem SUID, znajdujące się

w katalogu /usr i podkatalogach,

find /bin –perm +2000 — odszuka pliki z ustawionym bitem GUID, znajdujące się

w katalogu /bin i podkatalogach.

Informacja o ustawionych bitach SUID i GUID jest pokazana jako litera „s”

w uprawnieniach do pliku wyświetlanych poleceniem ls –l. Przykład zmian ustawienia
bitów SUID i GUID jest pokazany na następnym rysunku.


Rysunek 20. Przykłady informacji o plikach z ustawionymi bitami SUID




21

background image

Linuksowy system plików

4. Konfigurowanie środowiska pracy systemu Linux,

zmienne systemowe



Zalogowanie się użytkownika do systemu powoduje uruchomienie programu powłoki

(shella) określonego w pliku /etc/passwd. W Linuksie domyślną powłoką jest /bin/bash.
Tak jak w przypadku wielu programów i jego konfiguracja jest zapisana w różnych
plikach tekstowych, które tworzą profil użytkownika. Są to następujące pliki:
.bashrc — jest umieszczany automatycznie w katalogu domowym użytkownika,
.bash_profile — jest umieszczany automatycznie w katalogu domowym użytkownika,
.bash_history — zawiera listę ostatnio uruchomionych poleceń,
/etc/bashrc — zawiera listę aliasów systemowych,
/etc/profile — zawiera definicje zmiennych środowiskowych.

Jak widać z powyższego wykazu, pierwsze trzy pliki są plikami ukrytymi, znajdującymi
się w katalogu użytkownika (nazwa pliku ukrytego rozpoczyna się od kropki).


Rysunek 21. Lista plików ukrytych w katalogu domowym użytkownika


Domyślne środowisko pracy jest określone przez zestaw zmiennych systemowych
zdefiniowanych w pliku /etc/profile. Listę i wartości wszystkich zmiennych systemowych

można wyświetlić poleceniem env lub printenv. To ostatnie polecenie pozwala również

22

background image

Linuksowy system plików

na wyświetlenie wartości dowolnej wybranej zmiennej systemowej. Znaczenie wybranych
zmiennych systemowych jest przedstawione w poniższej tabeli.


Tabela 2. Znaczenie zmiennych systemowych

Zmienna Znaczenie

HISTSIZE

liczba poleceń zapamiętywanych w pliku historii

HOME

nazwa katalogu domowego aktualnego użytkownika

LOGNAME

identyfikator (login) aktualnego użytkownika

PATH

ścieżka przeszukiwania katalogów podczas uruchamiania programów

PS1

zgłoszenie systemowe linii poleceń

PS2

zgłoszenie systemowe w kolejnej linii poleceń, gdy są wymagane dodatkowe
parametry


Przykładowe wartości zmiennych systemowych wyświetlone poleceniem env są
przedstawione na poniższym rysunku.


Rysunek 22. Wyświetlone wartości zmiennych systemowych



23

background image

Linuksowy system plików

Domyślne zgłoszenie systemowe można zastąpić innym, zmieniając definicje zmiennych

PS1 i PS2. Przy definiowaniu tych zmiennych można wykorzystać symbole zestawione

w poniższej tabeli. Symbole w definicji zmiennych PS1 i PS2 należy umieszczać
w cudzysłowach.


Tabela 3. Symbole stosowane w zgłoszeniu systemowym

Symbol Znaczenie

\!

wyświetla numer polecenia w historii

\#

wyświetla kolejny numer aktualnego polecenia

\$

wyświetla znak #, jeśli zalogowanym użytkownikiem jest root, znak $

w pozostałych przypadkach

\\

wyświetla znak \

\[

oznacza początek ciągu niewyświetlanych znaków

\]

oznacza koniec ciągu niewyświetlanych znaków

\d

wyświetla aktualną datę

\h

wyświetla nazwę hosta

\n

znak końca wiersza (złamanie linii)

\nnn

wyświetla znak o kodzie ósemkowym nnn

\s

wyświetla nazwę shella

\t

wyświetla aktualną godzinę

\u

wyświetla identyfikator użytkownika

\W

wyświetla ścieżkę do katalogu bieżącego

\w

wyświetla nazwę katalogu bieżącego

Zdefiniowane zmienne systemowe mają zasięg lokalny, czyli są „widoczne” tylko
w powłoce, w której zostały zdefiniowane. Uruchomienie innego programu lub skryptu
generuje podpowłokę, w której nowo zdefiniowane zmienne nie będą już widoczne. By
udostępnić zmienne dla wszystkich powłok (procesów), należy zmienną „wyeksportować”

za pomocą polecenia export z nazwą zmiennej systemowej jako parametrem,
np. export PS1. Do zdefiniowanych zmiennych można się odwoływać i wykorzystywać je
w programach, poprzedzając ich nazwę znakiem $, na przykład polecenie echo $PATH
wyświetli aktualną wartość zmiennej PATH, czyli ścieżkę przeszukiwania katalogów. Jak
widać z przedstawionych przykładów nazwy zmiennych są zazwyczaj pisane wielkimi
literami, ale oczywiście nie jest to konieczne. Zmienne systemowe są tradycyjnie
oznaczane w ten sposób, ale użytkownik może zdefiniować dowolną zmienną, której
nazwa jest pisana małymi literami, jak w poniższym przykładzie:

24

background image

Linuksowy system plików

zm1=nowa_zmienna
export zm1

Nowa zmienna systemowa o nazwie zm1 została zdefiniowana, wyeksportowana i jest
dostępna dla wszystkich programów, gdyż jej wartość została wyświetlona poleceniem

printenv. Należy zwrócić uwagę na to, że przy definiowaniu zmiennych po obu stronach

znaku równości nie mogą wystąpić odstępy (spacje), co jest pokazane w pierwszej linii
powyższego przykładu.

Jedną z cech powłoki bash jest możliwość stosowania aliasów, czyli innych nazw poleceń.
Komenda alias bez parametrów wyświetla zdefiniowane aliasy.


Rysunek 23. Wyświetlanie aliasów poleceń


Jak widać, w systemie zostały już wcześniej zdefiniowane pewne aliasy. Są to aliasy
dostępne dla wszystkich użytkowników i są wpisane w pliku /etc/bashrc. Często
wykonywane polecenia, np. zawierające długie nazwy katalogów, można łatwo
przedefiniować na krótsze, jak w poniższym przykładzie:
alias xxx='cd /usr/X11/lib/X11config'

alias cp=’cp –i’
alias mv=’mv –i’

25

background image

Linuksowy system plików

Przedefiniować również można polecenia. W powyższym przykładzie znane i często

stosowane polecenia cp oraz mv zostały przedefiniowane tak, że będą działać w trybie
interaktywnym, czyli żądać potwierdzenia skasowania istniejących plików, co nie jest
domyślnym trybem działania tych poleceń. Należy zwrócić uwagę na to, że wokół znaku
równości nie mogą wystąpić spacje
. Usuwanie aliasu jest realizowane poleceniem

unalias zdefiniowany_alias. Przykłady definiowania i usuwania aliasów są pokazane

na kolejnym rysunku.


Rysunek 24. Przykłady definiowania i usuwania aliasów



Polecenia wprowadzane przez użytkownika są zapisywane w pliku .bash_history, a liczbę

linii tego pliku określa wartość zmiennej HISTSIZE. Domyślną wartością tej zmiennej jest
1000, czyli system pamięta ostatnich tysiąc poleceń. Użytkownik może wywołać dowolne
z poleceń wykonanych wcześniej, podając jego numer, początkowe znaki lub fragment
polecenia (wzorzec) poprzedzone wykrzyknikiem, jak w poniższych przykładach:
!5 — zostanie wykonane piąte polecenie w historii,
!cat — zostanie wykonane wydane wcześniej polecenie zaczynające się od cat,
!-8 — zostanie wykonane polecenie wydane osiem poleceń wcześniej.

Linie poleceń uruchomionych wcześniej można łatwo edytować. Służy do tego polecenie

fc. Uruchamia ono domyślny edytor (zazwyczaj vi) dla podanej linii. Parametry

wywołania po polecenia fc są takie same jak przy wywoływaniu poleceń z historii

26

background image

Linuksowy system plików

opisanych powyżej. Poniżej jest pokazany przykład uruchomienia edytora historii

poleceniem fc cat. Po zakończeniu edycji poprawione polecenie jest wykonywane.


Rysunek 25. Przykład działania edytora historii poleceń

27

background image

Linuksowy system plików

5. Edytor

vi


Parametry konfiguracyjne systemu Linux są zazwyczaj zapisane w plikach tekstowych,
których edycja pozwala na zmiany konfiguracji i wprowadzanie modyfikacji. Każdy
system operacyjny musi zapewniać podstawowe możliwości zapisania tekstu
wprowadzonego z klawiatury. W zasadzie do tego celu nie jest potrzebny edytor,
wystarczy wykorzystać możliwości terminala linuksowego. Przykład takiego wpisywania
tekstu z klawiatury jest przedstawiony na poniższym rysunku.


Rysunek 26. Przykład najprostszego edytora



Jak widać polecenie cat nowyplik umożliwia wpisanie tekstu z klawiatury i zapisanie go
w pliku. Nie jest możliwe poprawianie tekstu w taki sposób. Nieodłącznym składnikiem
systemu UNIX i Linux jest edytor vi, który wbrew powszechnym opiniom o swojej
prostocie ma bardzo szerokie możliwości edycji. Uruchomienia programu vi dokonuje się
w terminalu, podając nazwę pliku jako parametr, ale nie jest to konieczne.

28

background image

Linuksowy system plików

Rysunek 27. Praca z edytorem vi


Powyżej jest pokazany widok ekranu po wydaniu polecenia vi nowyplik. Edytor vi może
pracować w dwóch trybach — wydawania poleceń i edycji tekstu. Domyślnym trybem
pracy po uruchomieniu edytora jest wydawanie poleceń. Na tym ekranie możliwe jest
tylko przesuwanie kursora po tekście, nie jest możliwe wpisywanie tekstu. Edytor pracuje
w trybie poleceń, które są najczęściej pojedynczymi znakami, nie zaś w trybie edycji.
Przejście w tryb edycji jest możliwe po wpisaniu jednego z poleceń (czyli litery):

a — przechodzi do trybu edycji w miejscu za kursorem,

A — przechodzi do trybu edycji na końcu linii,

i — przechodzi do trybu edycji w miejscu przed kursorem,

I — przechodzi do trybu edycji na początku linii,

o — wstawia nową linię pod kursorem i przechodzi do trybu edycji w tej linii,

O — wstawia nową linię nad kursorem i przechodzi do trybu edycji w tej linii.


29

background image

Linuksowy system plików

Rysunek 28. Ekran edytora vi w trybie wpisywania tekstu


Praca edytora w trybie edycji jest sygnalizowana napisem INSERT wyświetlanym
w najniższej linii ekranu.

W trybie wydawania poleceń następujące polecenia pozwalają na usuwanie znaków:

x — usuwa znak wskazywany przez kursor,

X — usuwa znak przed wskazywanym przez kursor,

dw — usuwa słowo wskazywane przez kursor,

dd — usuwa linię wskazywaną przez kursor,

D — usuwa znaki od kursora do końca linii,

d0 — usuwa znaki od kursora do początku linii.

Edytor vi pozwala również na zaznaczanie, kopiowanie, usuwanie i wklejanie fragmentów
tekstu. Tryb zaznaczania włącza się poleceniem v (w trybie poleceń, w przeciwnym
wypadku zostanie napisana litera „v”). Po zaznaczeniu tekstu można użyć jednego
z poleceń:

d — usuwa zaznaczony tekst i przenosi do bufora,

y — kopiuje zaznaczony tekst do bufora,

U — zamienia małe litery na duże,

u — zamienia duże litery na małe.

Do wstawiania tekstu z bufora służy polecenie p.

30

background image

Linuksowy system plików


Przejście z trybu edycji do trybu wydawania poleceń następuje po naciśnięciu klawisza
Esc. W tym trybie są dostępne tzw. liniowe polecenia edycyjne, bardzo ważne, gdyż
umożliwiają zapis danych. Te polecenia są poprzedzane dwukropkiem, a ich działania są
następujące:

:w — zapisuje dane na dysku i kontynuuje edycję,

:x — zapisuje dane na dysku i kończy pracę edytora,

:r nazwa_pliku — wstawia plik tekstowy,

:q — kończy pracę edytora bez zapisywania danych.


Rysunek 29. Przykładowy komunikat edytora vi


Jak widać z powyższego rysunku edytor nie zakończy pracy, jeśli dane zostały zmienione
od czasu ostatniego zapisu na dysku. Można jednak wymusić odrzucenie wprowadzonych

zmian, kończąc polecenie wykrzyknikiem, czyli :q!. Wtedy użytkownik świadomie nie
zapisze zmienionych danych. Edytor vi nie jest lubiany przez użytkowników systemu
Linux. Jest to jednak standard wywodzący się z UNIX-a i występuje we wszystkich
odmianach i dystrybucjach Linuksa. Powyżej zostały zebrane jedynie niezbędne
informacje wystarczające do pracy z tym edytorem, ale jego możliwości są zazwyczaj
niewykorzystywane. Jednak podstawy posługiwania się nim w Linuksie są niezbędnym
elementem kursu.

31

background image

Linuksowy system plików

Innym — również popularnym edytorem — jest edytor pico. Widok ekranu z wczytanym
tym samym plikiem, co w edytorze vi jest przedstawiony na rysunku poniżej. Polecenia,
które są wyświetlane u dołu ekranu, są wywoływane przez naciśnięcie kombinacji
klawiszy Ctrl + litera.


Rysunek 30. Praca z edytorem pico



Obsługa najważniejszych poleceń jest następująca:
Ctrl + G — wyświetla pomoc do programu,
Ctrl + X — koniec pracy z edytorem, należy podać nazwę zapisywanego pliku
(jak na rysunku),


32

background image

Linuksowy system plików

33

Rysunek 31. Zapisywanie pliku w edytorze pico


Ctrl + J — wyrównanie tekstu,
Ctrl + R — wczytanie pliku,
Ctrl + W — poszukiwanie ciągu znaków.

Znajomość podstawowych zasad pracy z systemem Linux, a przede wszystkim z jednym
z edytorów, pozwoli na taką pracę w systemie, że studenci będą mogli podjąć próby
dostosowywania komputera pracującego z tym systemem operacyjnym do swoich
potrzeb i oczekiwań. Interfejs znakowy, jaki jest dotychczas wykorzystywany, jest
niezbędny do postawienia pierwszych kroków przy pracy w tym systemie.


Document Outline


Wyszukiwarka

Podobne podstrony:
pliki z?nymi opis
Kerberos opis systemu i instalacja w OS Linux
Pliki opis[Pascal]
opis ustawy o cudzoziemcach, pliki zamawiane, edukacja
LINUX, SZKOLNE PLIKI-mega zbiory (od podstawówki do magisterki), Systemy operacyjne
Opis - Emergency 2, pliki
Opis systemów operacyjnych-Linux, Informatyka -all, INFORMATYKA-all
Pliki opis Programowanie w C
żołądek i dwunastnic a- opis, Technik masażysta-przydatne pliki
Opis - Project IGI 1, pliki
kolokwium2-zap, opis programow, Wszystkie pliki poza zad1
linux Opis oprogramowania?u
opis ustawy o obywatelstwie polskim, pliki zamawiane, edukacja
Katalogi i pliki, Informatyka, Linux, Linux - Podręcznik
LINUX opis
opis i porady AW55-50, pliki, AISIN AW55-50SN

więcej podobnych podstron