[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ dalej ]

Debian Reference
Część 4 - Samouczki Debiana


Ten rozdział przedstawia nowym użytkownikom podstawową wiedzę o świecie Linuksa. Jeśli używałeś już Linuksa, potraktuj go jako przypomnienie wiadomości.


4.1 Źródła informacji

Patrz do Debian Documentation Project (DDP), gdzie znajdują się najbardziej wiarygodne informacje o Debianie. Zazwyczaj wiele z tych dokumentów jest instalowanych w /usr/share/doc/. Spójrz też do /usr/share/doc-base/, gdzie zamieszczone są odnośniki do dokumentacji systemu. Dodaj export CDPATH=.:/usr/share/doc:/usr/src/local do ~/.bash_profile, aby mieć łatwiejszy dostęp do katalogów z dokumentacją.

Linux Documentation Project (LDP) posiada najbardziej wiarygodne, ogólne informacje o Linuksie. Zawartość LDP jest zwykle instalowana w /usr/share/doc/HOWTO/.

Poruszaj się wśród dokumentów na lokalnych i zdalnych FTP, używając F9 w programie Midnight Commander (zob. Midnight Commander (MC), Rozdział 4.3).


4.2 Konsola Linuksa


4.2.1 Login

W zwykłym systemie Linux znajduje się sześć niezależnych pseudoterminali. Przełączaj się między nimi wciskając jednocześnie klawisze Lewy-Alt i klawisze od F1 do F6. Każdy pseudoterminal pozwala na niezależne logowanie się do kont użytkownika. Środowisko wieloużytkownikowe to wspaniała cecha Uniksa, po poznaniu której ciężko pracować inaczej.

Dobrym nawykiem uniksowym jest logowanie się na konto zwykłego użytkownika do większości zadań. Muszę przyznać, że kiedyś używałem konta superużytkownika (konto root) częściej, niż potrzebowałem, głównie z powodu wygody i mojego niechlujstwa.

Obecnie, zwykle używam normalnego konta oraz polecenia sudo, super czy su -c, aby uzyskać ograniczone przywileje roota.


4.2.2 Dodawanie konta użytkownika

Po instalacji systemu zwykle dodaję konto zwykłego użytkownika. Jeśli nazwą użytkownika jest „penguin”,

     # adduser penguin

utworzy to konto.

Używam polecenia vigr do modyfikacji /etc/group jak niżej:

     adm:x:4:admin
     src:x:40:admin, debian, ...
     ...

Przy domyślnej instalacji systemu, członkowie grupy adm mogą czytać wiele plików dziennika z /var/log/ oraz używać xconsole. Grupa staff będąca właścicielem /home, sprawia, że jej członkowie mogą zarządzać kontami. Grupa src jest właścicielem /usr/src/, który jest używany do kompilacji jądra, itd. By uzyskać pełniejsze informacje o znaczeniu użytkowników i grup, zobacz Użytkownicy i grupy.

Osobiście używam grupy staff dla użytkowników wykonujących czynności administracyjne i mających wyłączny przywilej su (zob.„Dlaczego GNU su nie obsługuje grupy wheel”, Rozdział 9.2.2) oraz src dla CVS (zob. CVS, Rozdział 12.1).

Zobacz adduser, addgroup, vipw, vipw -s, vigr, oraz vigr -s do właściwej konfiguracji użytkowników i grup.


4.2.3 Jak zamykać system

Tak jak każdy współczesny OS, który cache'uje pliki w pamięci, Linux wymaga właściwej procedury zamykania systemu, zanim zasilanie może zostać bezpiecznie wyłączone. Polecenie dla trybu wieloużytkownikowego:

     # shutdown -h now

Polecenie dla trybu jednego użytkownika:

     # poweroff -i -f

Poczekaj na wyświetlenie przez system informacji „System halted” i dopiero wtedy wyłącz zasilanie. Jeśli APM zostało włączone w BIOSie i Linuksie, komputer wyłączy się sam. Zobacz Automatyczne wyłączanie komputera oraz komputery z większą ilością pamięci, Rozdział 3.7.4 w celu zapoznania się ze szczegółami.


4.2.4 Edycja w linii poleceń

Domyślna powłoka, bash, posiada możliwość edycji historii. Użyj klawisza kursora „góra”, aby wejść do historii, a następnie klawiszy kursora tak, jak oczekujesz. Inne ważne kombinacje klawiszy:

     Ctrl-U:            Usuwa linię przed kursorem
     Ctrl-D:            Przerwanie wprowadzania
     Kliknięcie lewym przyciskiem myszy i przeciągnięcie: Zaznacz i skopiuj do schowka (gpm)
     Kliknięcie środkowym przyciskiem myszy: Wklej schowek na miejsce kursora (gpm)
     Ctrl-V TAB:        Wstawia TAB bez rozszerzeń.

W normalnej konsoli Linuksa tylko lewe klawisze Ctrl i Alt działają, jak oczekujesz.


4.2.5 Wykonywanie poleceń

Typowe wywołanie polecenia korzysta z następującego wpisu w powłoce:

     $ LC_ALL=fr ls -la

W podanym przykładzie program ls jest uruchamiany w tle ze zmienną środowiskową LC_ALL ustawioną na fr dla uzyskania języka francuskiego i argumentem linii poleceń ustawionym na -la dla wyświetlania wszystkiego ze szczegółami. Jeśli linia poleceń jest zakończona znakiem &, to polecenie jest uruchamiana w tle. Działanie w tle pozwala użytkownikowi na uruchamianie wielu programów w jednej powłoce.

Na wykonywanie poleceń można wpływać następującymi skrótami klawiszowymi.

     Ctrl-C:                  Kończy program
     Ctrl-Z:                  Tymczasowo zatrzymuje program
     Ctrl-S:                  Zatrzymuje wyświetlanie na ekran
     Ctrl-Q:                  Przywraca wyświetlanie na ekran
     Ctrl-Alt-Del:            Reboot/zatrzymanie systemu (zob. /etc/inittab)

O zarządzaniu wykonywaniem programu przeczytaj w bash(1) o jobs, fg, bg i stop.


4.2.6 Najbardziej podstawowe polecenia do zapamiętania

Poniżej znajdują się podstawowe polecenia Uniksa:

     ls, ls -al, ls -d, pwd, cd, cd ~user, cd -, 
     cat /etc/passwd, less, bg, fg, kill, killall, 
     uname -a, type nazwa_polecenia, sync, netstat,
     ping, traceroute, top, vi, ps aux, tar, zcat, 
     grep, ifconfig, ...

Sprawdź znaczenie poleceń przez wpisanie ich w powłoce albo wpisanie man lub info plus nazwa polecenia. Wiele poleceń linuksowych wyświetla skróconą pomoc po wywołaniu ich w następujący sposób:

     $ nazwa_polecenia --help
     $ nazwa_polecenia -h

whatis nazwa_polecenia wyświetla jednoliniowe podsumowanie o każdym poleceniu w systemie, dla którego istnieje wpis w podręczniku (manual).


4.2.7 System X Window

Aby uruchomić system X Window z konsoli w linii poleceń wpisujemy:

     # exec startx

Prawe kliknięcie na głównym oknie spowoduje pojawienie się menu.


4.2.8 Ważne skróty klawiszowe

Oto niektóre ważne kombinacje klawiszy do zapamiętania (plus i minus odnoszą się do klawiatury numerycznej):

     Alt-F1 do F6:        Przełączenie między pseudoterminalami
     Ctrl-Alt-F1 do F6:   Przełączenie między pseudoterminalami
                          (z X-window, DOSEMU, itd.)
     Alt-F7:              Przełączenie z powrotem do X-window
     Ctrl-Alt-minus:      Zmiana rozdzielczości ekranu w X-window
     Ctrl-Alt-plus:       Zmiana rozdzielczości ekranu w przeciwną stronę w X-window
     Ctrl-Alt-Backspace:  Zakończenie X-ów
     Alt-X, Alt-C, Alt-V: Zwykłe windowsowe/makowe Wytnij, Kopiuj, Wklej, z tym, że
                          klawisz Ctrl w niektórych programach jest zastąpiony 
                          przez Alt (np. w Netscape Composer).

4.3 Midnight Commander (MC)

Midnight Commander (MC) jest uniwersalnym narzędziem dla konsoli Linuksa oraz innych środowisk terminalowych.


4.3.1 Instalowanie MC

     # apt-get install mc

Następnie zmień wpisy w ~/.bashrc (lub /etc/bash.bashrc, wywoływanym z .bashrc), tak jak dokładnie opisano to w jego podręczniku, mc(1), w opisie opcji -P. To pozwala MC na zmianę katalogu roboczego na wyjściu.

Jeśli uruchamiasz MC w terminalu, np. kon i Kterm dla japońskiego, który używa pewnych znaków graficznych, dodanie -a do linii poleceń MC może pomóc w uchronieniu przed problemami.


4.3.2 Uruchamianie MC

     $ mc

MC zajmuje się wszystkimi operacjami na plikach wykonywanymi przez jego menu, wymagając minimalnego wysiłku od użytkownika.


4.3.3 Menedżer plików

Domyślne ustawienie to dwa okna zawierające listy plików. Kolejnym użytecznym trybem jest ustawienie prawego okna w tryb „informacja”, co pozwala zobaczyć prawa dostępu itp. Poniżej są niektóre ważniejsze skróty klawiszowe. Z użyciem uruchomionego demona gpm można też używać myszy. (Upewnij się, że naciskasz klawisz Shift w celu uzyskania normalnego działania Kopiuj i Wklej w MC.)


4.3.4 Triki linii poleceń


4.3.5 Edytor

Wewnętrzny edytor ma interesujący schemat kopiuj-i-wklej. Naciśnięcie F3 oznacza początek wyboru, kolejne wciśnięcie F3 oznacza koniec wyboru i podświetla zaznaczony obszar. Wtedy możesz ruszać kursorem. Gdy naciśniesz F6, zaznaczony obszar zostanie przeniesiony do miejsca, w którym jest kursor. Gdy przyciśniesz F5, zaznaczony obszar zostanie skopiowany i wklejony w miejsce, w którym jest kursor. F2 zapisuje plik. F10 powoduje zakończenie MC. Klawisze kursora zwykle działają intuicyjnie.

Edytor może być wywołany dla pliku:

     $ mc -e plik_do_edycji
     $ mcedit plik_do_edycji

Nie jest to edytor wielookienkowy, ale możesz osiągnąć podobny efekt używając wielu konsoli linuksowych. Aby kopiować pomiędzy oknami, użyj klawiszy Alt-Fn do przełączania konsol wirtualnych, a do wklejania fragmentu pliku do innego pliku, użyj „Plik->Wstaw plik” lub „Plik->Kopiuj do pliku”.

Wewnętrzny edytor może być zastąpiony przez dowolnie wybrany zewnętrzny.

Także wiele programów używa zmiennej środowiskowej EDITOR czy VISUAL by określić, którego edytora użyć. Jeśli nie odpowiada Ci vim, ustaw go na mcedit przez dodanie poniższych linii do ~/.bashrc:

     ...
     export EDITOR=mcedit
     export VISUAL=mcedit
     ...

Zalecam jednak ustawienie ich na vim, jeśli to możliwe. Przywyknięcie do poleceń vi(m)a jest dobrą rzeczą, gdyż są one nieodłączną cechą świata Linuksa/Uniksa.


4.3.6 Podgląd

Bardzo sprytne narzędzie. Jest świetny do wyszukiwania słów w dokumentach. Zawsze używam go do przeglądania plików w katalogu /usr/share/doc. To najszybszy sposób na przeglądanie mas informacji o Linuksie. Podgląd można uruchomić bezpośrednio w taki sposób:

     $ mc -v nazwa_pliku_do_podglądu

(Zauważ, że niektóre pakiety łamią zasady i wciąż przechowują swoje dokumentacje w /usr/doc.)


4.3.7 Własności auto-startu

Wciśnij Enter na pliku i właściwy program zajmie się jego zawartością. Jest to bardzo wygodna cecha MC.

     wykonywalny:       Wykonanie pliku wykonywalnego
     plik man, html:    Przesłanie zawartości pliku przez przeglądarkę
     plik tar, gz, rpm: Przeglądanie zawartości pliku jako podkatalogu

W celu umożliwienia działania funkcji przeglądania, „przeglądalne” pliki nie mogą być określone jako wykonywalne. Zmień ich status używając polecenia chmod lub przez menu plików w MC.


4.3.8 Wirtualny system plików FTP

MC może służyć do dostępu do plików przez Internet przy użyciu FTP. Wejdź do menu wciskając F9, następnie wpisz `p', by aktywować wirtualny system plików FTP. Wpisz URL w formie: nazwa_użytkownika:hasło@nazwa_hosta.nazwa_domeny, co spowoduje pojawienie się katalogu zdalnego, wyglądającego jak lokalny.


4.4 Podstawy systemu plików GNU/Linux

Każdy plik i katalog w systemie plików GNU/Linux jest związany z użytkownikiem, który posiada plik (właściciel), oraz z grupą, do której należy. Wszystkie informacje o pliku są przechowywane w strukturze danych zwanej iwęzłem (inode).


4.4.1 Prawa dostępu do plików i katalogów

Prawa dostępu do plików i katalogów są definiowane oddzielnie dla następujących trzech kategorii użytkowników, których dotyczą:

Dla pliku każde prawo pozwala odpowiednio na:

Dla katalogu każde prawo pozwala odpowiednio na:

Tutaj prawo wykonania dla katalogu oznacza nie tylko prawo do odczytu plików w nim zawartych, ale także na przeglądanie atrybutów takich jak rozmiar i czas modyfikacji.

Aby otrzymać informacje o uprawnieniach (oraz inne) plików i katalogów, używa się polecenia ls. Zobacz ls(1). Gdy ls jest wywołane z parametrem -l, wyświetla następujące informacje w następującej kolejności:

Aby zmienić właściciela pliku, używa się z konta root polecenia chown. Zobacz chown(1). Aby zmienić grupę pliku, używa się polecenia chgrp z konta właściciela pliku lub konta root. Zobacz chgrp(1). Aby zmienić prawa dostępu do plików czy katalogów, używa się polecenia chmod, także z konta użytkownika lub konta root. Zobacz chmod(1).

Na przykład w celu uczynienia użytkownika foo właścicielem drzewa katalogów, a grupy bar współwłaścicielem, wykonaj następujące polecenia z konta root:

     # cd /some/location/
     # chown -R foo:bar
     # chmod -R ug+rwX,o=rX

Istnieją jeszcze trzy specjalne bity uprawnień:

Na wyjściu polecenia ls -l dużymi literami oznaczane są bity, na których miejscu bit wykonywalności nie był ustawiony.

Ustawienie ID użytkownika dla pliku wykonywalnego pozwala użytkownikowi na wykonanie tego pliku z ID właściciela pliku (na przykład root). Podobnie, ustawienie ID grupy dla pliku wykonywalnego, pozwala użytkownikowi na wykonanie pliku z ID grupy pliku (na przykład root). Pnieważ może to powodować ryzyko naruszenia bezpieczeństwa, włączanie tych opcji wymaga szczególnej ostrożności.

Ustawienie ID grupy dla katalogu uaktywnia schemat tworzenia plików w stylu BSD, w którym wszystkie pliki tworzone w tym katalogu należą do grupy, mającej do niego uprawnienia.

Ustawienie bitu lepkości dla katalogu zapobiega usuwaniu z niego plików przez użytkowników, którzy nie są właścicielami tych pliku. W celu zabezpieczenia zawartości pliku w katalogach zapisywalnych, takich jak /tmp czy w katalogach, w których prawo zapisu ma grupa, potrzeba nie tylko, by było wyłączone prawo zapisu dla pliku, ale także należy ustawić sticky bit dla katalogu. W innym przypadku plik może zostać usunięty, a następnie w jego miejsce może zostać utworzony nowy plik, o takiej samej nazwie przez dowolnego użytkownika, który ma prawo zapisu do tego katalogu.

Poniżej kilka interesujących przykładów praw do pliku.

     $ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd
     crw-rw----    1 root     dip      108,   0 Jan 18 13:32 /dev/ppp
     -rw-r--r--    1 root     root         1051 Jan 26 08:29 /etc/passwd
     -rw-r-----    1 root     shadow        746 Jan 26 08:29 /etc/shadow
     -rwsr-xr--    1 root     dip        234504 Nov 24 03:58 /usr/sbin/pppd
     $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src
     drwxrwxrwt    4 root     root         4096 Feb  9 16:35 /tmp
     drwxrwsr-x   10 root     staff        4096 Jan 18 13:31 /usr/local
     drwxrwsr-x    3 root     src          4096 Jan 19 08:36 /usr/src
     drwxrwsr-x    2 root     mail         4096 Feb  2 22:19 /var/mail
     drwxrwxrwt    3 root     root         4096 Jan 25 02:48 /var/tmp

4.4.2 Znaczniki czasu

Dla plików GNU/Linux istnieją trzy typy znaczników czasu:

Zauważ, że ctime nie jest czasem utworzenia pliku.

Zauważ, że nawet zwykły odczyt z pliku w systemie GNU/Linux powoduje normalnie operację zapisu w celu aktualizacji informacji atime w inode. Montowanie systemu plików z opcją noatime option pozwoli systemowi na ominięcie tej operacji i zaowocuje szybszym dostępem do pliku przy odczycie. Zobacz mount(8).


4.4.3 Dowiązania (links)

Istnieją dwie metody na związanie pliku foo z innym plikiem bar.

Spójrz na poniższe przykłady zmian w dowiązaniach, oraz na subtelne różnice w rezultacie polecenia rm.

     $ echo "Oryginalna zawartość" > foo
     $ ls -l foo
     -rw-r--r--    1 osamu    osamu           4 Feb  9 22:26 foo
     $ ln foo bar     # dowiązanie (hardlink)
     $ ln -s foo baz  # dowiązanie symboliczne
     $ ls -l foo bar baz
     -rw-r--r--    2 osamu    osamu           4 Feb  9 22:26 bar
     lrwxrwxrwx    1 osamu    osamu           3 Feb  9 22:28 baz -> foo
     -rw-r--r--    2 osamu    osamu           4 Feb  9 22:26 foo
     $ rm foo
     $ echo "Nowa zawartość" > foo
     $ cat bar
     Oryginalna zawartość
     $ cat baz
     Nowa zawartość

Dowiązanie symboliczne ma, jak widać w powyższym przykładzie, prawa dostępu „rwxrwxrwx”, a jego faktyczne prawa dostępu są takie jak wskazywanego pliku.

Katalog . jest dowiązaniem do katalogu, w którym sam się pojawia, zatem liczba dowiązań do nowego katalogu rozpoczyna się od 2. Katalog .. jest dowiązaniem do katalogu nadrzędnego, zatem liczba dowiązań do katalogu rośnie wraz z liczbą nowych podkatalogów.


4.5 Dalsza nauka

Jest wiele dobrych źródeł o Uniksie dla początkujących. Zwykle książki O'Reilly'ego są dobrym wyborem przy szukaniu przewodnika w tematach komputerowych. Dokument LDP The Linux Tips-HOWTO jest kolejnyn źródłem wartym sprawdzenia. W celu poszerzenia swoich wiadomości zajrzyj do Rozwiązywanie problemów, Część 15.


[ powrót ] [ Spis treści ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ dalej ]

Debian Reference

1.06-17, sobota, 31 styczeń 2004, 07:56:05 UTC

Osamu Aoki osamu@debian.org
Koordynator tłumaczenia: Bartosz Feński aka fEnIo fenio@o2.pl
Autorzy, Rozdział A.1