Podstawowe operacje w Linuxie


Podstawowe operacje w Linuxie

0x08 graphic
Zadania (1)

Wykonywanie programów: wielozadaniowość i sesje

0x08 graphic
Zadania (2)

Wykonywanie programów: wielozadaniowość i sesje (c.d.)

W dodatku powłoka (odpowiednik COMMAND.COM-u; większość używa bash-a) pozwala na zatrzymanie lub czasowe zawieszenie procesu, wysłanie procesu w tło, powrót procesu do pierwszego planu. W tym kontekście procesy nazywają się "jobs" (czyli zadania).

Działanie w tle, anulowanie i przerywanie

W Linuxie masz kontrolę nie tylko nad danymi wejściowymi i wyjściowymi (operacje przekierowywania, potoki) poleceń, ale również nad ich wykonywaniem. Możesz uruchomić proces w tle, podczas gdy wykonujesz inny proces. Możesz nawet przerwać proces, zanim zakończy się jego wykonywanie. Możesz go w końcu wznowić od miejsca, w którym poprzednio go przerwałeś.

0x08 graphic
Zadania (3)

Tło i pierwszy plan: , fg, bg

Uruchamianie polecenia w tle odbywa się poprzez umieszczenie znaku & (ampersand) na końcu polecenia. Jeśli to zrobisz, to po potwierdzeniu polecenia wciśnięciem klawisza Enter wyświetlany jest numer zadania użytkownika i numer (identyfikator) procesu systemu.

Przykład: polecenie wydrukowania pliku zyciorys

$ lpr zyciorys &

[1] 534

$

Do wykonania w tle można przenosić więcej niż jedno zadanie:

$ lpr publikacje &

[1] 547

$ cat *.c > mojeprogramy &

[2] 548

$ jobs

[1]+Running lpr publikacje

[2]-Running cat *.c > mojeprogramy

$

Polecenie jobs wypisuje listę zadań działających w tle. Każda pozycja na liście składa się z numeru w nawiasach kwadratowych, informacji, czy zadanie jest zatrzymane, czy działa oraz nazwy zadania.

Znak + oznacza, że zadanie jest właśnie wykonywane, zaś znak - oznacza, że zadanie czeka w kolejce do wykonania.

Jeśli chcesz, to możesz umieścić kilka poleceń jednocześnie w tle, wprowadzając polecenia w jednym wierszu poleceń i oddzielając je znakiem &.

0x08 graphic
Zadania (4)

Tło i pierwszy plan: , fg, bg (c.d.)

Przykład: jednoczesne uruchomienie dwóch zadań

$ sort *.l > ldok & lpr *.c &

[1] 534

[2] 567

$ jobs

[1]+Running lpr publikacje

[2]-Running cat *.c > mojeprogramy

$

Jeśli uruchomione przez Ciebie zadanie zakończyło się, a Ty jesteś w tym czasie zajęty np. edycją tekstu, to Linux nie przerwie tej operacji i nie poinformuje Cię o zakończeniu zadania. Aby zapewnić sobie tego typu informację (niezależnie od tego co robimy) należy użyć polecenia notify. Polecenie to przyjmuje jako argument numer zadania.

Przykład: system poinformuje o zakończeniu zadania nr 2

$ notify %2

Zadanie można przenieść z tła na pierwszy plan przy pomocy polecenia fg. Jeśli w tle działa tylko jedno zadanie, to polecenie fg bez argumentów przeniesie je na pierwszy plan. Jeśli jest więcej niż jedno zadanie w tle, musisz podać numer zadania jako argument polecenia, poprzedzonego znakiem procentu.

Przykład: przeniesienie drugiego zadania na pierwszy plan

$ fg %2obs

cat *.c > mojeprogramy

$

Istnieje również polecenie, które powoduje umieszczenie zadania w tle. Polecenie to jest zwykle używane do przerywanych zadań i zostanie omówione dalej.

Anulowanie zadań: kill

Aby zatrzymać zadanie działające w tle, należy wymusić jego zakończenie używając polecenia kill. Polecenie kill przyjmuje jako argument numer zadania użytkownika lub numer procesu.

0x08 graphic
Zadania (5)

Anulowanie zadań: kill (c.d.)

Numer zadania użytkownika musi być poprzedzony znakiem procentu % (numer ten jak pamiętasz możesz znaleźć dzięki poleceniu jobs).

Przykład: wylistowanie wszystkich zadań pracujących w tle i usunięcei zadania nr 2.

$ jobs

[1]+Running lpr publikacje

[2]-Running cat *.c > mojeprogramy

$ kill %2

Zadanie można usunąć także posługując się jego identyfikatorem procesu i korzystając z polecenia ps.

Przykład: wylistowanie wszystkich zadań pracujących w tle i usunięcei zadania nr 2.

$ ps

PID TTY TIME COMMAND

523 tty24 0:05 sh

567 tty24 0:01 lpr

579 tty24 0:00 ps

PID jest identyfikatorem procesu, TTY - identyfikatorem terminala, TIME - oznacza czas dotychczasowego wykonywania się procesu, zaś COMMAND - nazwę procesu.

Przykład: usunięcie procesu o identyfikatorze 579

$ kill 579

$

Przerwanie: <CTRL+Z>

Jeśli użyjesz kombinacji klawiszy <CTRL+Z>, to wstrzymane zostanie wykonywanie zadania pierwszoplanowego. Zadanie nie jest kończone, ale zawieszane do czasu jego wznowienia. Zadanie można kontynuować w tle lub na pierwszym planie (polecenie bg lub fg).

Z polecenia CTRL+Z korzystaj zwłaszcza wtedy, gdy chcesz umieścić w tle zadanie aktualnie wykonywane na pierwszym planie.

0x08 graphic
Zadania (6)

Przerwanie: <CTRL+Z> (c.d.)

Przykład: wstrzymanie wykonywania zadania na pierwszym planie i uruchomienie go w tle.

$ cat *.c > mojeprogramy

^Z

$ bg

System nie pozwoli na wylogowanie się do czasu pozostały jakieś niedokończone (wstrzymane) zadania. Aby się wylogować musisz najpierw wznowić przerwane zadanie przy pomocy polecenia fg. Listę wstrzymanych zadań możesz obejrzeć dzięki poleceniu jobs.

Przykład: wstrzymanie wykonywania zadania na pierwszym planie i uruchomienie go w tle.

$ jobs

[1]+Stopped vi regest.c

$ fg %1

zadane w tle lub na pierwszym planie (polecenie bg lub fg).

Pliki: pojęcia ogólne

Linux posiada system plików, tzn. strukturę katalogów i plików, bardzo podobny do DOS-owego. Pliki posiadają nazwy, które podlegają specjalnym zasadom, są zapisywane w katalogach, niektóre są wykonywalne, a wśród tych większość ma różne opcje. Możesz też używać masek ('*', '?'), przekierowań strumieni oraz potoków. Istnieją jednak pewne mniejsze różnice:

0x08 graphic
Pliki w Linuxie(7)

Pliki: pojęcia ogólne (c.d.)

Rodzaje plików w Linuxie

0x08 graphic
Pliki w Linuxie(7)

Porównanie podstawowych poleceń DOS-u i Linux-a

DOS Linux

COPY cp

DEL rm

REN mv

TYPE cat

MORE more, less - można też używać jako

polecenie, nie tylko jako filtr

nul /dev/null

prn,lst /dev/lp0, lpr

Przekierowywanie strumieni i potoki wygladają tak samo.

Maski: '*', '?' oraz [znaki]

[znaki] - oznacza pokolei każdy, ale zawsze jeden, z wymienionych w środku znaków, np:

ls *[abc] - wyświetl nazwy plików kończących się

na 'a' lub 'b' lub 'c'

ls *[a-g] - wyświetli nazwy plików kończących się

na jedną z liter od a do g

Przykłady: porównanie poleceń

DOS Linux

C:\GUIDO>copy joe.txt joe.doc $ cp joe.txt joe.doc

C:\GUIDO>copy *.* total $ cat * > total

C:\GUIDO>copy fractals.doc prn $ cat fractals.doc | lpr

C:\GUIDO>del temp $ rm temp

C:\GUIDO>del *.bak $ rm *~

C:\GUIDO>ren paper.txt paper.asc $ mv paper.txt paper.asc

C:\GUIDO>type letter.txt $ more letter.txt

C:\GUIDO>type letter.txt $ less letter.txt

C:\GUIDO>type letter.txt > nul $ cat letter.txt >/dev/null

n/d $ more *.txt *.asc

n/d $ cat section*.txt

n/d - niedostępne

Uwagi:

1) * jest sprytniejszą maską pod Linux-em: (1) * oznacza jakąkolwiek nazwę nie zaczynającą się na , (2) *.* oznacza nazwę, która ma w środku kropkę, (3) p*r oznacza nazwę zaczynająca się na p a kończącą na r

0x08 graphic
Pliki w Linuxie(8)

Porównanie podstawowych poleceń DOS-u i Linux-a

(4) *c* oznacza nazwę zawierającą w środku c

2) Podczas używania less możesz poruszać się po pliku: (1) w przód - spacja, (2) w tył - b, (3) lub strzałkami, (4) wszystkie dostępne funkcje otrzymasz naciskając h.

3) W Linux-ie NIE MA UNDELETE, więc pomyśl dwa razy zanim skasujesz.

4) W Linux-ie znaczek > przekierowuje standardowe wyjście, ale nie standardowe wyjście błędów; aby błędy także znalazły się w pliku musisz napisać np. cat plik >plik_log 2>&1 - ale to działa tylko w powłoce bash lub sh. Aby dowiedzieć się jaką powłokę używasz napisz echo $shell

5) Nie ma polecenia DOS-owego RENAME; tzn. ren *.xxx *.yyy nie zadziała

6) Używaj cp -i oraz mv -i, aby zostać ostrzeżonym, kiedy plik ma zostać zmazany.

Katalogi: porównanie poleceń DOS-u i Linux-a

DOS Linux

DIR ls, find, du

CD cd, pwd

MD mkdir

RD rmdir

Przykłady: porównanie poleceń

DOS Linux

C:\GUIDO>dir $ ls

C:\GUIDO>dir file.txt $ ls file.txt

C:\GUIDO>dir *.h *.c $ ls *.h *.c

C:\GUIDO>dir/p $ ls | more

C:\GUIDO>dir \*.tmp /s $ find / -name "*.tmp"

C:\GUIDO>cd $ pwd

n/d - patrz uwaga $ cd

n/d - patrz uwaga $ cd ~

n/d - patrz uwaga $ cd ~/temp

C:\GUIDO>cd \other $ cd /other

0x08 graphic
Pliki w Linuxie(9)

Katalogi: porównanie poleceń DOS-u i Linux-a (c.d.)

C:\GUIDO>cd ..\temp\trash $ cd ../temp/trash

C:\GUIDO>md newprogs $ mkdir newprogs

C:\GUIDO>md \progs\turbo $ mkdir /progs/turbo

C:\GUIDO>rd newprogs $ rmdir newprogs

C:\GUIDO>rd \progs\turbo $ rmdir /progs/turbo

Uwaga 1: jeśli chcesz skasować katalog rmdir musi on być pusty; możesz skasować katalog wraz z zawartością poleceniem rm -r.

Uwaga 2: znak ~ jest skrótem nazwy twojego katalogu domowego. Polecenia cd i cd ~ zmienią ścieżkę bieżącą na twój katalog domowy niezależnie od tego, gdzie jesteś w danym momencie; polecenie cd ~/tmp zmieni bieżący katalog na /home/twój_dom_kat/tmp.

Uwaga 3: cd - odwraca ostatnie polecenie cd.

Klasyfikacja plików: polecenia file i od

Polecenie Linuxa file pomaga określić typ i zastosowanie pliku. Sprawdza kilka pierwszych wierszy pliku i próbuje go sklasyfikować.

Przykład: sprawdzanie zawartości plików i ich klasyfikacja

$ file poniedziałek raporty

poniedziałek: text

raporty: directory

Przykład: bardziej złożóna klasyfikacja

$ file request.c proj nowedane

request: C program text

proj: executable

nowedane: empty

Polecenie file posiada opcję -f, pozwalającą na odczytywanie nazw klasyf. plików z pliku, bez wprowadzania ich w wierszu poleceń.

Przykład: nazwy plików odczytywane są z pliku klaspliki

$ cat klaspliki

request.c proj nowedane

$ file -f klaspliki

request: C program text

proj: executable

nowedane: empty

0x08 graphic
Pliki w Linuxie(10)

Klasyfikacja plików: polecenia file i od (c.d.)

Polecenie od pozwala na wylistowanie całego pliku bajt po bajcie. (domyślnie oktalnie, można jednak określić postać dziesiętną, znakową lub heksadecymalną).

Wyświetlanie zawartości plików: cat i more

Polecenia cat i more wyświetlają zawartość pliku na ekranie, chocaiż zastosowanie cat jest bardziej wszechstronne.

Przykład: wyświetlanie całej zawartości pliku na ekranie

$ cat pismo

Szanowna Pani,

Wadą polecenia cat jest to, że zawartość pliku wyświetlana jest za jednym razem, co w przypadku dużych plików uniemożliwia obejrzenie szybko przewijających się wierszy tekstu.

Polecenie more umożliwia pokonanie tej wady - wyświetla treść pliku ekran po ekranie. Można również przesuwać się powoli w przód i w tył po tekście.

Przykład: wyświetlanie zawartości pliku ekran p ekranie

$ more pismo

Kiedy more otwiera plik, wyświtlany jest pierwszy ekran z treścią. Aby kontynuować i wyświetlić nastepny ekran, wciśnij klawisz f lub spację. Aby przesunąć się w tył, naciśnij klawisz b. Możesz w dowolnej chwilii przerwać pracę wciskając klawisz q.

Dowiązania: plecenie ln

Posługując się poleceniem ln można plikowi nadać więcej niż jedną nazwę. Dodatkowe nazwy określane są często mianem dowiązań (czasami łączników).

Polecenie ln przyjmuje dwa argumenty: nazwę oryginalnego pliku i nową, dodatkową nazwę (synonim). Składnia polecenia:

$ ln oryginalna-nazwa-pliku dodatkowa-nazwa-pliku

0x08 graphic
Pliki w Linuxie(2)

Przykład: plik dzis dostaje dodatkową nazwę pogoda

$ ls

dzis

$ ln dzis pogoda

$ ls

dzis pogoda

Przykład: plikowi dzis przypisuje się dodatkowo dwie nazwy

$ ls

dzis pogoda

$ ln dzis lato

$ ln dzis pada

$ ls

dzis pogoda lato pada

Aby zobaczyć, że plik ma kilka dowiązań użyj polecenia ls z opcją -l.

Polecenie ln z opcją -l wypisuje takie informacje jak prawa dostępu do pliku (patrz dalej), liczbę dowiązań pliku, rozmiar pliku, datę ostatniej modyfikacji. W wierszu informacji pierwsza liczba poprzedzająca nazwę użytkownika określa liczbę dowiązań. Liczba przed datą jest rozmiarem pliku (w bajtach).

Przykład: polecenie wypisuje pełna informację o dwóch plikach

$ ls -l dzis pogoda

-rw-rw-r—- 2 chris group 563 Dec 07 10:20 dzis

-rw-rw-r—- 2 chris group 563 Dec 07 10:20 pogoda

Jak zobaczyć, które pliki są ze sobą powiązane? Użyj w tym celu polecenia ln z opcją -i. Łączników, które wypisuje nazwy plików wraz z przypisanym mu numerem i-węzła. Jest oczywiste (wynika to z własności i-węzła), że jeśli nazwy plików związane są z tym samym numerem i-węzła, to wszystkie odnoszą się do tego samego fizycznego pliku.

Przykład: listowanie plików wraz z numerami i-węzłów

$ ls -i dzis pogoda pada gronostaj

1234 dzis 1234 pogoda 1234 pada 4534 gronostaj

Dodatkowe dowiązania używane są często do odwoływania się do tego samego pliku z różnych katalogów. Załóżmy, że chcesz odwołać się do pliku z katalogu home z wewnątrz innego katalogu. Możesz stworzyć dowiązanie z tego katalogu do pliku w katalogu home.

0x08 graphic
Pliki w Linuxie(3)

Ponieważ dowiązanie jest w innym katalogu, może mieć taką samą nazwę jak oryginalny plik.

0x01 graphic

Aby dowiązać plik z katalogu domyślnego (roboczego) do innego katalogu, użyj nazwy tego katalogu jako drugiego argumentu polecenia ln:

$ ln nazwa-pliku nazwa katalogu

Załóżmy, że plik dziś w katalogu chris jest dowiązywany do katalogu raporty. Polecenie ls listuje plik dzis w obu katalogach chris i raporty. W rzeczywistości istnieje tylko jedna kopia pliku dzis, oryginalny plik znajdujący się w katalogu chris.

Przykład: dowiązywanie pliku do katalogu

$ ln dzis raporty

$ ls

dzis raporty

$ ls raporty

dzis

Możesz zmienić nazwę pliku, pod którą będziesz go widział w dowiązanym katalogu. W tym celu umieść nową nazwę pliku zaraz po nazwie katalogu, oddzielając ja ukośnikiem.

Przykład: dowiązywanie pliku dzis do katalogu raporty pod nazwą sroda

$ ln dzis raporty/sroda

$ ls

dzis raporty

$ ls raporty

sroda

0x08 graphic
Pliki w Linuxie(4)

Dowiązania: plecenie ln (c.d.)

Przykład: dowiązywanie pliku request.c z katalogu raporty do chris.

$ ln request.c /home/chris

Aby usunąć plik musisz usunąć wszystkie jego dowiązania. Nazwa pliku jest w rzeczywistości uznawana także za dowiązanie do pliku. Dlatego polecenie rm usuwa dowiązanie do pliku. Jeśli usuniesz oryginalne dowiązanie - oryginalną nazwę pliku, do pliku można nadal odwoływać się przy pomocy pozostałych łączników.

Przykład: dowiązywanie pliku dzis do katalogu raporty pod nazwą sroda

$ ln dzis pogoda

$ rm dzis

$ cat pogoda

Burza dzis przyszla i wyszlo slonce

$

0x01 graphic

Aby usunąć oryginalny plik, musisz również usunąć wszystkie jego dowiązania

Dowiązania symboliczne i sztywne

Dowiązania, o których była mowa do tej pory nazywane są dowiązaniami sztywnymi. Maja one jedną podstawową wadę: dowiązania sztywne mogą ni zadziałać w przypadku, gdy dowiązywania pliku do katalogu innych użytkowników, znajdujących się w innym systemie plików.

0x08 graphic
Pliki w Linuxie(5)

Dowiązania symboliczne i sztywne (c.d.)

Wynika to z faktu, że mimo iż systemy plików mają ten sam katalog główny, to w rzeczywistości każdy z nich sam zarządza swoimi plikami i katalogami. Oznacza to, że plik z jednego systemu plików nie może być połączony dowiązaniem sztywnym z plikiem w innym systemie plików. Aby pokonać to ograniczenie należy użyć dowiązania symbolicznego. Dowiązanie symboliczne przechowuje ścieżkę do pliku, z którym jest połączony. Zamiast rejestrować więc inną nazwę dla tego samego pliku, dowiązanie symboliczne można wyobrazić sobie jako inny symbol oznaczający dostęp do pliku. Dowiązanie symboliczne tworzy się przy pomocy polecenia ln z opcją -s.

Przykład: tworzenie dowiązania o nazwie lunch do pliku /home/george/listawarzyw

$ ln -s lunch /home/george/listawarzyw

Posługując się poleceniem ls z opcją -l można otrzymać także pełną informację o dowiązaniach symbolicznych.

Przykład: listowanie informacji o plikach

$ ls -l lunch /home/george/listawarzyw

lrw-rw-r—- 1 chris group 4 Dec 07 10:20 lunch

-rw-rw-r—- 1 george group 793 Dec 04 13:40 listwarzyw

Pierwszy znak w wierszu oznacza typ pliku. Typem pliku klunch jest l, co oznacza, że jest to dowiązanie symboliczne. Liczba po słowie group oznacza rozmiar pliku. Zwróć uwagę, że rozmiar pliku lunch wynosi tylko 4 bajt, potrzebne do przechowania informacji o ścieżce dostępu.

Aby usunąć plik, wystarczy usunąć tylko dowiązania sztywne: pozostawione dowiązania symboliczne nie będą po prostu w stanie odwołać się do nieistniejącego pliku. Pamiętaj, że polecenie pwd zawsze wyświetla aktualną nazwę katalogu, a nie nazwę symboliczną.

Przykład: wyświetlanie nazwy katalogu dowiązanego

$ ls -s lunch /home/chris/listy/dziekuje prezenty

$ cd prezenty

$ pwd

/home/chris/listy/dziekuje

0x08 graphic
Pliki w Linuxie(5)

Wyświetlanie informacji o pliku: ls -l

Polecenie ln -l wyświetla szczegółowe informacje o pliku. Najpierw wyświetlane są prawa dostępu, następnie liczba dowiązań, właściciel pliku, nazwa grupy, do której należy użytkownik, rozmiar pliku w bajtach, data i czas ostatniej modyfikacji oraz nazwa pliku.

Nazwa grupy oznacza grupę, która ma prawa dostępu dla grupy.

0x01 graphic

Prawa dostępu do plików i katalogów: chmod

Każdy plik i katalog w Linuxie posiada zestaw praw dostępu określających, kto ma dostęp do pliku i jakie ma prawa. Prawa te określa właściciel pliku, tzn. ten, kto utworzył plik lub katalog. Prawa właściciela nadawane są automatycznie w momencie tworzenia pliku (właściciel może je później zmienić).

Istnieją trzy różne kategorie użytkowników, którzy mogą mieć dostęp do pliku: właściciel, grupa i pozostali.

0x08 graphic
Pliki w Linuxie(6)

Prawa dostępu do plików i katalogów: chmod (c.d.)

Każda kategoria ma swój zestaw praw czytania, pisania i wykonywania. Prawa dostępu w ramach poszczególnych kategorii można obejrzeć dzięki poleceniu ls -l.

Przykład: wyświetlanie praw dostępu do pliku mojedane

$ ls -l mojedane

-rw-r—r-- 1 chris pogoda 207 Feb 20 11:55 mojedane

Brak prawa dostępu jest oznaczony znakiem minus, prawo odczytu - literką r, prawo zapisu - literką w, zaś prawo wykonania - literką x. Pierwszy znak oznacza typ pliku: jeśli pierwszym znakiem jest minus, to opis dotyczy pliku zwykłego, jeśli literka d - katalog. Interpretacja praw dostępu pliku mojedane jest na rysunku, przedstawionym poniżej.

0x01 graphic

Polecenia chmod używa się do modyfikacji praw dostępu. Polecenie wymaga podania dwóch list: listy zmian praw dostępu i listy nazw plików.

Listę praw dostępu można określić posługując się metodą symboliczną lub maską binarną (odpowiednio metoda względna lub bezwzględna). Bardziej oczywista jest metoda symboliczna.

0x08 graphic
Pliki w Linuxie(7)

Nadawanie praw dostępu metodą symboliczną

Każde z praw symbolicznie oznaczane r, w lub x może być dodane (znak +) lub usunięte (znak -).

Przykład: dodanie prawa wykonania i usunięcie prawa zapisu

$ chmod +x-w mojedane

Można posługiwać się także symbolami określającymi właściciela (symbol u), grupę (symbol g) i pozostałych (symbol o). Symbol kategorii umieszczany jest przed prawami odczytu, zapisu i wykonania. Jeśli nie użyto symbolu kategorii użytkowników, to domyślnie przyjmuje się wszystkie kategorie, co oznacz, że prawa są nadawane lub odbierane właścicielowi, grupie i pozostałym.

Przykład: nadawanie prawa odczytu i zapisu grupie oraz odczytu - pozostałym.

$ chmod g+rw mojedaane

$ chmod o+r mojedane

0x01 graphic

Przykład: nadawanie prawa odczytu i cofanie prawa zapisu oraz wykonania pozostałym użytkownikom

$ chmod o+r-wx mojedane

0x08 graphic
Pliki w Linuxie(8)

Nadawanie praw dostępu metodą symboliczną (c.d.)

Istnieje także dodatkowy symbol a, który oznacza wszystkie kategorie. Symbol ten jest domyślny.

Przykład: poniższe polecenia są równoważne

$ chmod a+r mojedane

$ chmod +r mojedane

Aby system mógł wykonać plik (program), użytkownik uruchamiający go musi mieć prawa wykonania.

Przykład: nadanie prawa wykonania i uruchomienie

$ chmod u+x lsc

$ lsc

main.c lib.c

Nadawanie praw dostępu przy pomocy maski binarnej

Metoda bezwzględna zmienia wszystkie prawa jednocześnie, zamiast określania jednego lub drugiego. Trzy kategorie praw, każde z trzema prawami, zgodne są z formatem ósemkowym. Podając więc prawa dostępu w postaci binarnej należy określić trzy liczby oktalne dla wszystkich trzech kategorii.

Przykład: nadanie praw plikowi mojedane

$ chmod 544 mojedane

0x01 graphic

Masek binarny często używa się do nadawania plikowi praw wykonania. W szczególności dotyczy to plików zawierających skrypty, które aby mogły być wykonane muszą mieć przypisane prawa wykonania.

0x08 graphic
Pliki w Linuxie(9)

Prawa dostępu do katalogów

Prawo odczytu nadane katalogowi pozwala na wylistowanie plików z katalogu. Prawo wykonania pozwala na przejście do tego katalogu. Prawo zapisu pozwala użytkownikowi na tworzenie i usuwanie jego własnych plików. W momencie tworzenia katalogu automatycznie nadawane są właścicielowi prawa odczytu, zapisu i wykonania

Katalogi, podobnie jak w przypadku plików, posiadają prawa dostępu podzielone na trzy kategorie użytkowników: właściciel, grupa i pozostali.

Przykład: przydzielanie praw do katalogu dziekuje

$ chmod g+rx-w listy/dziekuje

Prawa można nadawać także przy pomocy maski binarne.

Przykład: polecenie równoważne przedstawionemu powyżej (zakłądamy, że właściciel ma wszystkie prawa) oraz listowanie informacji o katalogu

$ chmod 750 listy/dziekuje

$ ls -ld listy/dziekuje

drwxr-x--- 2 chris 512 Feb 10 04:30 dziekuje

Polecenie ls -ld (opcja d) listuje jedynie informacje o katalogu).

Przy udostępnianiu swoich plików należy zwrócić uwagę na swoje drzewo katalogów. Na rysunku poniżej użytkownik chce udostępnić katalog dziekuje wszystkim użytkownikom.

0x01 graphic

0x08 graphic
Pliki w Linuxie(10)

Prawa dostępu do katalogów (c.d.)

Prawo zmiany trybu dostępu do pliku lub katalogu przysługuje tylko właścicielowi. Jeśli jednak chcesz dać innym użytkownikom kontrolę nad prawami do jednego z Twoich plików, możesz zmienić właściciela tego pliku na innego użytkownika. Służy do tego polecenie chown, które przyjmuje jako pierwszy argument nazwę innego użytkownika. Za nazwą użytkownika można umieścić listę plików, do których przekazujesz kontrolę.

Przykład: przekazanie użytkownikowi Robert prawa kontroli nad plikiem mojedane

$ chown Robert mojedane

$ ls -l mojedane

-rw-r--r-- 1 robert 207 Feb 20 11:55 mojedane

Przy pomocy innego polecenia chgrp można zmienić grupę, do której przynależy plik. Jako pierwszy argument polecenia należy podać nazwę nowej grupy dla pliku lub plików, a następnie listę plików, które mają znaleźć się w nowej grupie.

Przykład: przypisanie plików do nowej grupy

$ chgrp prognoza dzis weekend

$ ls -l

-rw-r--r-- 1 chris pogoda 207 Feb 20 11:55 mojedane

-rw-rw-r-- 1 chris prognoza 568 Feb 14 10:30 dzis

-rw-rw-r-- 1 chris prognoza 308 Feb 17 11:55 weekend

Systemy plików: mount i umount

0x08 graphic
Pliki w Linuxie(11)

Systemy plików: mount i umount (c.d.)

Składnia polecenia mount jest następująca:

# mount urządzenie punkt-montowania

Punkt montowania jest katalogiem w Twoim głównym drzewie katalogowym, do którego chcesz podłączyć pliki umieszczone na urządzeniu pamięciowym.

W momencie instalacji Linuxa i tworzenia partycji Linuxa na dysku twardym, system plikowy jest automatycznie konfigurowany tak, aby montować główny system plików w czasie uruchamiania systemu. System Linux będzie również automatycznie montował CD-ROM, jeśłi jest w napędzie w czasie uruchamiania systemu. Dyskietki musimy już jednak zamontować ręcznie.

Wszystkie zamontowane systemy plikowe muszą być odmontowane przed zamknięciem Linuxa. Główny system plików jest odmontowywany automatycznie. Podobnie musisz dokonać operacji odmontowania, jeśli chcesz zmienić system plików, np. z jednej dyskietki na inną.

# umount urządzenie punkt-montowania

Montowanie dyskietki

Wykonujemy je zwykle w trzech krokach, które są są oddzielnymi zadaniami w Linux-ie. Możliwe jest przygotowanie i używanie dyskietek w formacie MS-DOS, chociaż są także dostępne inne formaty; najpopularniejeszym jest ext2, ale dla dyskietek lepszy jest minix.

Oto sposób w jaki można przygotować dyskietkę (standardową 1.44 MB) do pracy:

0x08 graphic
Pliki w Linuxie(11)

Montowanie dyskietki (c.d.)

Teraz możesz używać dyskietki; jej obraz jest w katalogu /mnt. Uwaga! zanim wyjmiesz dyskietkę ze stacji - odmontuj ją: umount /mnt Oczywiście musisz formatować tylko nieużywane dyskietki. Jeśli chcesz korzystać ze stacji B: to zamień wszędzie fd0 na fd1.

Wszystko co robiłeś poprzez A: czy B: robi się teraz poprzez katalog /mnt. Przykłady:

DOS Linux

C:\GUIDO>dir a: $ ls /mnt

C:\GUIDO>copy a:*.* \docs\temp $ cp /mnt/* /docs/temp

C:\GUIDO>copy *.zip a:\zip $ cp *.zip /mnt/zip

C:\GUIDO>a: $ cd /mnt

A:\> /mnt$

Montowanie innych urządzeń

Podobnie jak dyskietkę możesz zamontować dowolne urządzenie z danymi (dysk twardy, CD-ROM, taśma itp.) Spójrz do katalogu /dev, żeby zobaczyć jakie możesz montować urządzenia.

UWAGA: jest tam około 1000 plików, lepiej użyj ls /dev | less

Np. aby zamontować CD-ROM napisz

mount -t iso9660 /dev/cdrom mnt/cdrom

To był "oficjalny" sposób na montowanie dyskietek, ale jest inny sposób - łatwiejszy. Ponieważ jest to uciążliwe ciągle się przełączać na root-a po to, aby zamontować dyskietkę - każdemu użytkownikowi możemy pozwolić na montowanie dyskietek. W taki sposób:

/dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 0

/dev/fd0 /mnt/a: msdos user,noauto 0 0

/dev/fd0 /mnt/a ext2 user,noauto 0 0

0x08 graphic
Pliki w Linuxie(11)

Montowanie innych urządzeń (c.d.)

Teraz żeby zamontować dyskietkę z systemem MS-DOS, ext2 albo CD-ROM napisz:

$ mount /mnt/a:

$ mount /mnt/a

$ mount /mnt/cdrom

/mnt/a, /mnt/a: i /mnt/cdrom są teraz dostępne dla każdego użytkownika. Aby móc pisać do /mnt/a od razu po przygotowaniu dyskietki trzeba napisać:

# mount /mnt/a

# chmod 777 /mnt/a

# umount /mnt/a

Pamiętaj, że udostępniając w ten sposób użytkownikom dyskietki robisz wielką dziurę w bezpieczeństwie systemu.

0x01 graphic

0x01 graphic

Jerzy Pejaś: Systemy Operacyjne: Unix

- 6 -



Wyszukiwarka

Podobne podstrony:
05 Wykonywanie podstawowych operacji ślusarskich
Blender 3D Bryły Podstawowe Podstawowe Operacje Tutorial
późniak koszałka,bazy?nych, Podstawowe operacje na?zach?nych
Podstawowe operacje logiczne, technik teleinformatyk
algorytmu ameba podstawowe operacje
3 podstawowe operacje cd id 339 Nieznany (2)
Ćw1 Podstawowe operacje wejściawyjścia (IO), instrukcja if
podstawowe operacje na wykresie Nieznany
Podstawowe operacje arytmetyczne na liczbach binarnych
SO Pliki Wsadowe wykonywanie podstawowych operacji na funkcjach
Podstawowe operacje arytmetyczn Nieznany
2 podstawowe operacjeid 20624 Nieznany
Podstawowe operacje na plikach i katalogach, Linux
05 Wykonywanie podstawowych operacji
istota myślenia podstawowe operacje umysłowe
06 Wykonywanie podstawowych operacji obróbki cieplnej
eco sciaga, 27. Podstawowe operacja bankowe, Prawo popytu - wraz ze wzrostem ceny danego dobra, zmal
Metoda Perkala podstawowe operacje ststystyczne wykonywane w programie IDRISI

więcej podobnych podstron