LINUX NEWBIE ADMINISTRATOR GUIDE

ver. 0.61 2000-02-05

Część 3: Najczęstsze pytania odnośnie podstawowych operacji

Stan i Peter Klimas

Proste odpowiedzi na pytania często zadawane przez początkujących, którzy zainstalowali Linuksa na swoich domowych komputerach i administrują swoimi domowymi sieciami

Rozpowszeniany na zasadach General Public Licence http://www.gnu.org/copyleft/gpl.html Twój odzew, komentarze, poprawki i ulepszenia są mile widziane. Wyślij je do penguin@thepenguin.zzn.com


Szybkie odnośniki

Start:   Linux Newbie Administrator Guide
Część 0: Dla niezdecydowanych (zalety Linuksa)
Część 1: Przed instalacją Linuksa
Część 2: Zasoby Linuksa, pomoc i trochę odnośników
Część 3: >Najczęszcze pytania odnośnie podstawowych operacji<
Część 4: c
Część 5. Uczenie się z Linuksem
Część 6: Jak uaktualnić jądro systemu
Część 7: Linuksowe komendy i skróty (Shortcuts)
Część 8: Ważne linuksowe aplikacje (komercyjne i nie tylko)


Zawartość tej strony:

3.1 Podstawy

3.1.1 Nazwy plików
3.1.2 Po co są te wszystkie katalogi?
3.1.3 Jak uruchomić program?
3.1.4 Jak zmienić domyślną ścieżkę wyszukiwania plików (PATH)?
3.1.5 Jak mogę bezpiecznie wyłączyć komputer?
3.1.6 Co zrobić z zawieszonym programem?
3.2  Użytkownicy, hasła, prawa dostępu do plików i bezpieczeństwo
3.2.1 Katalogi domowe, root, dodawanie użytkowników
3.2.2 O bezpieczeństwie haseł
3.2.3 Zapomniałem hasła root'a
3.2.4 Mam problemy z atrybutami plików. Jak działają prawa dostępu i prawa własności?
3.2.5 Mój odtwarzacz MP3 się dławi. Dźwięk jest przerywany (jak ustawić suid'a)
3.3 Ustawianie harmonogramu prac z "at", "bash" i "cron'em"
3.3.1 Jak uruchomić komendę o określonym czasie (używając "at" lub "batch")?
3.3.2 Jak skonfigurować cron'a?
3.4 Przestrzeń wymiany (swap)
3.4.1 Partycje wymiany (swap)
3.4.2 Pliki wymiany
3.5  Shell
3.5.1 Co to jest szell i czy mogę potrzebować jakiegoś innego?
3.5.2 Jak napisać prosty skrypt szella?
3.6 Jak zainstalować program ściągnięty z Internetu?


Najczęstsze pytania odnośnie podstawowych operacji

3.1 Podstawy

3.1.1 Nazwy plików

W Linuksie wielkość liter ma znaczenie. Na przykład: moj_Plik, moj_plik i moj_PLIK to trzy różne pliki. Podobnie Twój login i hasło. (Wynika to z tradycji, zarówno UNIX'a i języka programowania "c", które rozróżniają wielkość liter.) Zasady nazywania plików i katalogów są takie same. Wszystkie pliki i katalogi, które tworzę (dla siebie, jako użytkownik systemu) są pisane małymi literami, chyba że istnieje specjalny powód nazwania ich inaczej.
Nazwy plików w Linuksie mogą mieć do 256 znaków i normalnie zawierają litery, liczby, "." (kropki), "_" (podkreślenia) i "-" (myślniki). Można użyć innych znaków, ale nie jest to dobry pomysł. W szczególności nie zaleca się użycie specjalnych meta-znaków: "*" (gwiazdka), "?" (znak zapytania), " " (spacja), "$" (symbol dolara), "&" (ampersand), wszelki nawiasy, etc. Wynika to z faktu, że meta-znaki mają specjialne znaczenie w powłoce Linuksa (powłoka [ang. "shell" - dop. tłumacza] jest czymś w rodzaju COMMAND.COM, procesora komend pod DOS).  Możliwym jest użycie w nazwie pliku spacji, ale nie zalecamy tego - używamy w zamian podkreśleń.
Nie można absolutnie użyć "/" (shash'a) jako znaku w nazwie pliku, ponieważ "/" jest używany dla oznaczenia szczytu struktury katalogów i jako rozdzielnik w ścieżkach plików (podobnie jak "\" w DOS'ie).
By zrobić coś z plikiem, który zawiera metaznaki, używam pary ' (apostrofów), w ten sposób metaznaki są "zacytowane" i dzięki temu szell nie interpretuje ich znaczenia. Na przykład, by usunąć plik my file* (zawierający spację i gwiazdkę), wykonał bym:
rm 'my file*'
Zwróć uwagę, że użyłem pary ' (apostrofów) by zacytować. Cytowanie przy użyciu pary " (cudzysłowów) jest generalnie słabsze, niż cytowanie przy używaniu '. Jeśli użyjesz " (cudzysłowów) pewne mataznaki mogą zostać zinterpretowane.
Oto znaczenie niektórych metaznaków:
*  = Oznacza dowolną sekwencję dowolnej ilości (także zerowej) znaków. (za wyjątkiem kropki "." na początku nazwy plików).
?  = Oznacza dowolny pojedynczy znak.
[abC1]  = Oznacza dowolny pojedynczy znak, wymieniony w nawiasach. W tym przykładzie są to: 'a',  'b',  'C', i '1'.
[a-z] = Oznacza dowolną małą literę.
[A-F] = Ozncza dowolną dużą literę od A do F.
[0-9] = Oznacza dowolną cyfrę.
[a-zA-Z0-9] = Oznacza dowolną literę (małą lub dużą) lub dowolną cyfrę.
Przykładowo: Ta komenda pokaże wszystkie pliki w bieżącym katalogu, za wyjątkiem plików zaczynających się od "." (kropki):
ls *
Ekwiwalentem tej komendy jest wpisanie po prostu "ls" lub "dir". Pliki zaczynające się od "." nie są pokazywane.
ponieważ "." jako pierwszy znak w nazwie pliku nie podchodzi pod "*" (gwiazdkę). Traktuj pliki z nazwami zaczynającymi się od "." jako ekwiwalentne dosowym plikom ukrytym. Użyj ls -a (wylistuj z opcją "all" [czyli "wszystko" - dop. tłumacza) lub ls .* by zobaczyć te pliki. Pliki z kropką na początku są często stosowane w katalogach domowych użytkowników i typowo zawierają konfigurację różnych programów na poziomie użytkownika.
Ta komenda pokaże wszystkie pliki zawierające w nazwie kropkę:
ls *.*
Ta komenda pokaże wszystkie pliki zawierające w nazwie dwie kropki:
ls *.*.*
Zwróć uwagę, że Linux nie ma "rozszerzeń plików" jak w DOS'ie, jednak nic nie stoi na przeszkodzie, abyś ich używał. Na przykład mogę mieć plik o nazwie my_text.txt.zip.  Podobnie jak w DOS'ie, nie mogę mieć pliku o nazwie . albo o nazwie .. (kropka lub dwie kropki) --oznaczają one bowiem odpowiednio bieżący i wyższy katalog, dokładnie tak, jak w DOS'ie. Inne DOS-owskie "features" odnośnie nazw plików są Linuksowi obce (jak na przykład "Micros~1.doc", który przychodzi mi teraz do głowy).
Ta komenda pokaże wszystkie pliki w bieżącym katalogu, które rozpoczynają się od "a" lub "b", albo od dowolnej dużej litery:
ls [abA-Z]*
Dla zobrazowania problemów, które możesz napotkać, używając nierokomendowanego nazewnictwa plików, spróbuj utworzyć plik z nazwą zaczynającą się od myślnika a później spóbuj go usunąć-- wydaje się, że nie ma na to sposobu (myślnik normalnie poprzedza opcje komend). Na przykład komenda
dir > -junk
utworzy taki zabawny plik (jak w DOS'ie, symbol ">" przekierowywuje wyjście z komendy dir do pliku nazwanego-junk).  Ponieważ zwyczajna metoda usuwania pliku -junk nie działa, używam
rm ./-junk
Kropka i kreska na początku oznacza "bieżący katalog" i w tym przypadku jest użyta tylko po to, aby schować początkowy myślnik tak, aby nie był interpretowany jako wstęp do opcji komendy rm.  Konkludując, raczej wolę trzymać się tradycyjnego nazewnictwa plików, niż narażać się na okazjonalne problemy.

3.1.2 Po co są te wszystkie katalogi?

Jest to bardzo dobrze wyjaśnione w Linux System Administrator Guide (SAG), który jest dostępny na Twoim dysku. Spróbuj:
cd /usr/doc/LDP/sag
lynx sag.html
Komenda ta uruchomi tekstową przeglądarkę "lynx" do oglądania tej książki w html'u. Możesz również użyć do tego dowolnej innej przeglądarki, np. Netscape dla Linuksa lub Windowsa. Ta książka jak i inne książki LDP są aktualnie całkiem łatwe do czytania.
Obrazowo, Linux zawiera pięć systemów plików. Te systemy mogą znajdować się na pojedynczym lub na wielu fizycznych twardych dyskach i/lub partycjach, w zależności od rozmiarów i potrzeb Twojego systemu. (Pojedynczy system plików może być także rozłożony na różnych fizycznych urządzeniach, gdy istnieje taka potrzeba.)
Nadrzędny ("root" - czyli dosłownie korzeń - dop. tłumacza) system plików "/" --zawiera podstawowe operacyjne i systemowe narzędzia. Zawartość tego systemu plików powinna być wystarczająca by wystartować system i przeprowadzić niezbędne naprawy, jeśli to konieczne.
/usr system plików--zawiera wszystkie komendy, biblioteki, dokumentację i inne pliki, które normalnie nie są zmieniane podczas normalnej pracy systemu. Zawiera on także większość aplikacji, zapewne te, które są zawarte w Twojej dystrybucji, na przykład Netscape.
/var system plików --zawiera pliki, które się zmnieniają: pliki buforowe, pliki z logami, pliki "lock", pliki tymczasowe i sformatowane strony podręcznika.
/home system plików--zawiera pliki użytkowników, (ustawienia użytkowników, pliki z konfiguracją aplikacji, dokumenty, dane, pocztę, "caches" np. przeglądarek).
/proc system plików --zawiera całkiem iluzoryczne pliki. W rzeczywistości one nie istnieją i nie zajmują miejsca na Twoim dysku (chociaż ls -l pokaże ich rozmiar). Kiedy je przeglądasz, w rzeczywistości dostajesz się do informacji zawartych w pamięci. Jest on używany dla łatwego dostępu do informacji o systemie.
Częściami nadrzędnego "/" systemu plików są:
/bin--pliki wykonywalne (binarne) potrzebne podczas startu, które mogą być używane przez normalnych użytkowników.
/sbin--pliki wykonywalne (binaria systemowe), których normalni użytkownicy nie potrzebują (mogą oni używać ich, jednak ten katalog nie jest na ich ścieżce dostępu (PATH)).
/etc--pliki z konfiguracją całego systemu operacyjnego.
/root--katalog domowy administratora systemu (zwanego "super-user albo "root").
/dev--pliki urządzeń. Urządzenia w Linuksie reprezentowane są przez pliki, więc łatwo do nich zapisywać.
/mnt--punkt zamontowania dla nośników wymiennych (dyskietki, cdrom'y, zip'y), partycji innych systemów (n.p. MS Windows), dysków sieciowych, i wszystkiego innego, co montowane jest w systemie tymczasowo. Normalnie katalog ten zawiera oddzielne podkatalogi, w których te napędy/dyski pojawiają się --w Linuksie nie ma liter dla oznaczenia napędów.
/lib--dzielone biblioteki dla programów, które zawarte są w głównym systemie plilków.
/boot--pliki używane przez LILO (menadżera startu, rzecz, która jest uruchamiana pierwsza po starcie komputera i zazwyczaj daje ci wybór, który system operacyjny uruchomić, gdy masz więcej niż jeden na swoim komputerze). Zazwyczaj zawiera także jądro Linuksa (ang. "kernel" - przyp. tłumacza), może być ono jednak gdzieś indziej, jeśli tylko LILO wie gdzie.
/opt--duże, opcjonalne aplikacje, dla przykładu kde w RedHat'cie 5.2 (w RedHat'ie 6.0 kde jest rozłożone, jak wszystkie inne aplikacji X-Window i główne pliki wykonywalne są w katalogu /usr/bin).
/tmp--pliki tymczasowe. Ten katalog może być czyszczony automatycznie.
/lost+found--pliki odzyskane podczas naprawiania twardego dysku.
Najciekawsze części systemu plików /usr to:
/usr/X11R6--X-windows system (version 11, release 6).
/usr/X11--to samo, co /usr/X11R6 (jest to dowiązanie symboliczne /usr/X11R6).
/usr/X11R6/bin --sporo małych aplikacji X-window, pewnie również dowiązania do plików wykonywalnych niektórych większych aplikacji X-window, które znajdują się w swoich własnych katalogach gdzieś indziej
/usr/doc--Dokumentacja Linuksa.
/usr/bin and /usr/sbin--podobnie, jak ich ekwiwalenty w nadrzędym systemie plików (/bin i /sbin), jednak nie niezbędne dla zwykłego startu (przydatne na przykład przy naprawianiu czegoś).
/usr/local--zainstalowane aplikacje "lokalnych użytkowników", na przykład Netscape (każda aplikacja w oddzielnym podkatalogu).
/usr/local/bin--prwdopodobnie mniejsze aplikacje "użtykowników", i dowiązania symboliczne do większych plików wykonywalnych, zawartych w oddzielnych katalogach w /usr/local .
Ważnym jest, abyś rozumiał, że wszystkie te katalogi są w jednym drzewie katalogów, nawet jeśli katalogi te są na innych partycjach, fizycznych dyskach (w tym dyskietkach, etc.), lub nawet, jeśli masz do nich dostę przez sieć. Tak więc nie ma podobnych do DOS'owych "liter dysków" w Linuksie.

3.1.3 Jak uruchomić program?

Wpisywanie nazwy pliku wykonywalnego nie działa? Spóbuj trzech możliwości.
Pierwsza możliwość : nie wpisałeś prawidłowo nazwy pliku wykonywalnego. Sprawdź wielkość liter--Linux ją rozróżnia. Na przykład wpisanie "Pico" lub "PICO" nie uruchomi edytora pico .
Druga możliwość: być może programu nie ma na Twojej ścieżce dostępu (PATH). Pod Linuksem (lub UNIX'em), plik wykonywalny musi być na Twojej ścieżce dostępu, bo go uruchomić, a bieżący katalog NIE jest na tej ścieżce. Wprowadź pełną ścieżkę dostępu przed nazwą pliku, albo wpisz:
cd the_program_directory
./program_name
Musisz wpisać kropkę i ukośnik przed nazwą programu, lub program się NIE uruchomi. (Nie dołączanie bieżącego katalogu do ścieżki dostępu jest innowacją podnoszącą bezpieczeństwo. Powoduje to utrudnienie zadziałania "koni trojańskich". "Koń trojański" to złośliwy program, który stara się udawać coś innego, niż w rzeczywistości jest..   Kropka oznacza "bieżący katalog" a slash "/" jest rozdzielnikiem pomiędzy nazwą katalogu a nazwą pliku (dokładnie jak "\" w DOS'ie).
Możesz zobaczyć swoją ścieżkę dostępu, używając:
echo $PATH
By dowiedzieć się, jak zmienić swoją ścieżkę wyszukiwania, lub jak dodać do niej aktualny katalog, zobacz następną odpowiedź.
Jeśli Twój program zagubił ci się w strukturze katalogów, możesz spróbować znaleźć go, używając (na przykład):
find -name "netscape"
by znaleźć plik o nazwie "netscape". Być może uda Ci się osiągnąć ten sam rezultat szybciej, używając:
locate netscape
("locate" działa szybcie, ponieważ opiera się on na gotowej bazie danych o plikach w systemie. Ta baza jest uktualniana przez proces działające w tle, który normalnie działa w nocy, więc nie licz na to, że locate znajdzie plik, jeśli regularnie wyłączasz komputer na noc, albo szukasz pliku przed chwilą zainstalowanego.)
Zwróć uwagę, że PATH jest różne dla "root-a" niż dla normalnych użytkowników (PATH "root'a" zawiera /sbin i /usr/sbin, a normalnych użytkowników nie). To dlatego normalni użytkownicy nie mogą wykonać komend zawartych w katalogach "sbin", zanim nie wpiszą pełnej ścieżki dostępu do komendy. Także, jeśli stałeś się superużytkownikiem wykonując komendę su, dziedziczysz PATH zwykłego użytkownika, i musisz wpisać pełną ścieżkę dostępu, by wykonać komedę ulokowaną w katalogu "sbin".
W drugą stronę, jeśli chcesz dowiedzieć się gdzie znajduje się jakiś plik wykonywalny, który jest na Twojej ścieżce dostępu w Twoim systemie (np. plik wykonywalny, który uruchamiasz wpisując jego nazwę, ale chciałbyś wiedzieć, gdzie on się znajduje), możesz użyć czegoś takiego, jak:
which netscape
Pokaże ci To pełną ścieżkę dostępu do programu wykonywalnego o nazwie "netscape".
Trzecia możliwość:  może plik nie jest wykonywalny. Jeśli powinien być, zmień jego prawa dostępu, by był wykonywalny. Na przykład (jako root albo użytkownik, który jest właścicielem pliku):
chmod a+x my_file
spowoduje, że plik "my_file" będzie mógł być wykonany przez wszystkich użytkowników. Sprawdź, czy to zadziałało, używając:
ls -l  my_file
Przeczytaj to jeśli nie rozumiesz wyniku działania tej komendy albo całego paragrafu "trzecia możliwość" .

3.1.4 Jak zmienić domyślną ścieżkę wyszukiwania plików (PATH)?

PATH jest listą katalogów, które są przeszukiwane w poszukiwaniu programu, który chcesz uruchomić. Możesz sprawdzić swój PATH, używając komendy:
echo $PATH
która, w moim systemie, pokazuje następujący PATH dla użytkownika "yogin":
/opt/kde/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/yogin/bin
Dwukropek ":" jest rozdzielnikiem, tak więc powyższy PATH oznacza następujące katalogi:
/opt/kde/bin
/usr/local/bin
/bin
/usr/bin
/usr/X11R6/bin
/home/yogin/bin
To jest efekt wykonania komendy "echo $PATH" na moim systemie z konta root'a:
/opt/kde/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
Możesz zmienić PATH dla wszystkich użytkowników systemu, edytując plik, /etc/profile, konkretnie zmieniając (jako root) linię zaczynającą się od "PATH=".  Ja robię to przy użyciu edytora pico (jako root):
pico -w /etc/profile
(Opcja -w wyłącza łamanie długich linii.)
Musisz się ponownie zalogować, aby zmiany odniosły skutek. By zmienić PATH dla indywidualnego użytkownika, zmień plik /home/user_login_name/.bash_profile (zwróć uwagę na kropkę na początku nazwy pliku--pliki z nazwą rozpoczętą od kropki są normalnie niewidoczne, musisz użyć ls -a  by je zobaczyć).
Jeśli na prawdę chcesz mieć bieżący katalog na swojej ścieżce wyszukiwania, dodaj "." (kropkę) do swojej zmienne środowiskowej PATH. Kropka użyta w miejscu, gdzie oczekiwana jest nazwa katalogu oznacza "bieżący katalog". Opis ścieżki dostępu w /etc/.bash_profile może wyglądać tak:
PATH="$PATH:$HOME/bin:"."
export PATH
Ta komenda bierze zawartość zmiennej środowiskowej o nazwie PATH (która jest ustawiana dla wszystkich użytkowników w /etc/profile), i dodaje do niej nazwę twojego bieżącego, ustawioną w zmiennej $HOME z dodanym "/bin"  a następnie dodaje kropkę. Ostatecznie, komenda przypisuje wyjściowy łańcuch znaków spowrotem do zmiennej PATH. Koniecznym jest użycie komendy "export" po zmodyfikowaniu PATH lub jakiejkolwiek innej zmiennej środowiskowej użytkownika, gdyż tylko po tym zmnienna jest widoczna poza skryptem, który ją ustawił.

3.1.5   Jak mogę bezpiecznie wyłączyć komputer?

W terminalu tekstowym, naciśnij <Ctrl><Alt><Del> ("trzech króli"), zaczekaj aż zakończy się proces zamykania systemu i wyłącz swoją maszynę, gdy zaczyna się już spowrotem uruchamiać. Jeśli jesteś w X-window, najpierw przełącz się na terminal tekstowy naciskając <Ctr><Alt><F1>  (trzy klawisze równocześnie). Nie wyłączaj swojej maszyny bez właściwego zamknięcia systemu, bo podczas następnego startu zobaczysz informacje o błędach na dysku. (Typowo, błędy wynikłe z nieprawidłowego zamknięcia systemu będą naprawione automatycznie podczas następnego startu, zdarza się jednak, że pojawią się poważniejsze problemy i wtedy będziesz musiał naprawić pliki ręcznie albo reinstalować!)
Jeśli wolisz, aby Twój komputer zatrzymywał się po naciśnięciu <Ctrl><Alt><Del> (zamiast standardowego ponownego uruchomienia), możesz to zmienić edytując plik /etc/inittab. Plik ten zawiera coś takiego:
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Zmień (jako root) opcję "-r" na "-h", tak, aby było coś takiego :
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -h now
Linia zaczynająca się od "#" jest tylko komentarzem (jest przeznaczona dla ludzi, dla komputera ona nie ma żadnego znaczenia).
Root może także użyć komendy shutdown. Ta komenda może być użyta do zarówno lokalnego jak i zdalnego zamknięcia systemu, ale najczęściej używa się ją do zdalnego zamknięcia, gdy klawiatura wpięta w komputer jest nie dostępna. Może to być bardzo użyteczne, jeśli jakiś program zawiesił się w ten sposób, że uczynił klawiaturę niedostępną. Na przykład:
telnet name_of_machine_with_no_operable_keyboard
[zaloguj się jako zwykły użytkownik]
su
[podaj hasło root'a]
Teraz albo: wykonaj ps axu | more, by znaleźć proces id tej wrednej komendy, która pozbawiła cię klawiatury i następnie
kill pid_wrednej_komendy albo też zrestartuj swoją maszynę używając:
/sbin/shutdown -rn now
Ta komenda wyłącza system na prawdę szybko, pomijając standardową (dłuższą) procedurę -- jest to użyteczne, gdy system na prawdę się sypie. (opcja -n spowoduje, że "shutdown" zabije wszystkie procesy przed restartem).
Zwróć uwagę, że z powodów bezpieczeństwa nie możesz zalogować się na zdalną maszynę jako root (na przykład przez telnet). Musisz zalogować się jako zwykły użytkownik, a następnie stać się super-użytkownikiem (root) wykonując su i podając jego hasło.
Komenda shutdown może być wykorzystana do wyłączenia komputera później, na przykład (jako root):
/sbin/shutdown -r 23:59
zrestartuje system minutę przed północą.
Jeśli komenda shutdown jest dla Ciebie za długa, możesz spróbować tych dwóch komend, które robią dokładnie to, co sugerują ich nazwy (jako "root"):
reboot
halt
Fantazyjnym sposobem zamknięcia Twojego komputera jest przełączenie systemu na zerowy (dla wyłączenia) albo szósty (dla restartu) poziom pracy. Spróbuj tego, używając (jako root):
init 0
Znaczenie różnych poziomów pracy jest wyjaśnione w pliku /etc/inittab i tutaj .

3.1.6  Co zrobić z zawieszonym programem?

Zapluskwione program będą zawieszać się pod Linuksem. Jednak zawieszenie się jakiejś aplikacji nie powinno zaszkodzić systemowi operacyjnemu, tak więc nie będziesz musiał często restartować Linuksa. Serwery linuksowe znane są z tego, że mogą pracować ponad rok bez restartu. Z naszych doświadczeń wynika, że złe zachowania systemu operacyjnego z reguły wynika ze złej konfiguracji albo problemów sprzętowych: notorycznie natpotykaliśmy problemy z "podkręconymi" procesorami Pentium (wiatrak na procesorze nie kręcił się tak szybko, jako powinien, albo się zatrzymywał z powodu nadmiaru brudu), złymi , albo o różnych czasach albo różnych producentów kośćmi pamięci (możeszz próbować ułożyć je w innej kolejności, może to pomóc), złymi ustawieniami BIOS'u (raczej powinieneś wyłączyć wszystkie "zaawansowane" opcje, Linux je znajdzie bez pomocy biosu). Błąd oznaczony jako "signal 11" jest typowo związany z problemami sprzętowymi i najczęściej się pojawia przy intensywnym obciążeniu komputera, np: instalowaniu Linuksa, kompilacji jądra, etc.
Czy aby na pewno on "wisi"?. Niektóre programy niedoświadczonym mogą sprawiać wrażenie zawieszonych, a w rzeczywistości po prostu czekają na dane wejściowe. Typowo zdarza się to, kiedy program oczekuje nazwy pliku, jako argumentu w linii komend, a jeśli żadna nie jest podana przez użytkownika, program oczekuje danych ze standardowego wejścia (którym jest konsola). Na przykład, komenda
cat
może wyglądać jak zawieszona, ale ona czeka na dane z klawiatury.   Spróbuj nacisnąć <Ctrl>d  (co oznacza "koniec-pliku") by zobaczyć, że to usatysfakcjonuje komendę "cat". Inny przykład: widziałem wiele pytań na grupach dyskusyjnych o "zawieszanie" się programu tar, podczas próby rozkompresowania pliku ściągniętego z internetu, na przykład:
tar -zxv my_tar_file
On czeka na dane od użytkownika także, gdyż nie ma opcji "-f nazwa pliku" więc drugi parametr nie jest rozpoznawany jako nazwa pliku. Prawidłowo komenda powinna być wydana w ten sposób:
tar -zxvf my_tar_filename
Zwróć uwagę, że nazwa pliku musi być natychmiast za opcją "f" (co symbolizuję nazwę pliku [ang. "filename" - dop. tłumacza]). Jeśli napiszesz tak jak poniżej, to NIE BĘDZIE DZIAŁAĆ (bardzo częsty błąd).
tar -zxfv my_tar_file
Każdy program (zawieszony lub nie) może być zabity.

Program na konsoli tekstowej (pod warunkiem, że nie działa w tle) może być często zabity poprzez naciśnięcie <Ctrl>c. Nie zadziała to dla większych aplikacji, które blokują <Ctr>c, by nie użyć go w nich przypadkowo. Możesz jednak odzyskać kontrolę nad konsolą, posyłając działający program w tło, naciskając <Ctrl>z  (nie gwarantuję, że to zadziała) albo przełączając się na inny terminal, na przykład używając <Ctrl><Alt><F2> i zalogowywując się jako ten sam użytkownik, który jest właścicielem zawieszonego programu (to powinno już zawsze zadziałać). Kiedy już masz władzę nad konsolą, znajdź program, który chcesz zgładzić, na przykład:

ps
Ta komenda oznacza "drukuj status" [ang. "print status" - dop. tłumacza] i pokazuje listę programów, które są aktualnie uruchomione przez aktualnego użytkownika. Na liście wyświetlonej przez komendę ps znajdujesz identyfikator programu (PID), który się zawiesił, i teraz już możesz go zabić. Na przykład:
kill 123
zabije program o identyfikatorze (PID) "123".
Jako użytkownik, możesz zabić tylko procesy, które są Twoją właśnością (te, które sam uruchomiłeś). Super-użytkownik (root) może zabić każdy program. By zobaczyć kompletną listę procesów, aktualnie uruchomionych w systemie wykonaj:
ps axu | more
Powyższe pokazuje listę wszystkich uruchomionych aktualnie procesów (opcja "a"), nawet nie podłączonych do żadnego terminala (opcja "x"), razem z nazwą każdego z użytkowników, który jest właścicielem danego procesu ("u"). Jako, że wynik działania tej komendy jest za długi, aby na raz zmieścił się na ekranie, użyłem przekierowania wyjścia ["pipe" czyli "rury" - dopisek tłumacza] z komendy "ps aux" do "more", tak, że wyświetlanie zatrzymuje się po każdym zapewnieniu ekranu.
Komenda kill ma pewnien skrót: killall, przy pomocy którego możesz zabijać programy według nazw, na przykład:
killall netscape
zabije wszystkie programy, mające w swojej nazwie "netscape".
Programy pod X-window nie mają terminali kontrolujących i można je łatwiej zabić, używając tego (wpisanego w jakiś X-terminal):
xkill
kursor zmieni się w coś kojarzącego się ze śmiercią; przenieś go nad okno programu, który chcesz zabyć i naciśnij lewy przycisk myszy; okno niknie na dobre, a skojarzony z nim program jest zabity.
Jeśli cały Twój X-Window zawiesił się i nie możesz nic zrobić, najprostszym może okazać się zabicie X-serwera, naciskając <Ctrl><Alt><BkSpace>. Po tym, dobrym pomysłem może być wykonanie ps axu, znalezienie jakichkolwiek programów X-Window, które jeszcze działajć i zabicie ich. Jeśli tego nie zrobisz, program, który spowodował wyłożenie się X-Window może znowu przysporzyć problemów.
Jeśli masz programy w tle, system operacyjny sprzeciwi się Twojej próbie wylogowywania się i zwróci Ci uwagę wiadomością typu: "There are stopped jobs".  [Istnieją zatrzymane zadania]. By z nich zrezygnować i wylogować się mimo wszystko, powtórz natychmiast komendę "logout" (albo exit) - programy w tle będą automatycznie zabite, a ty będziesz wylogowany.
Pliki Core. Kiedy program się wykłada, często tworzy plik "core" w Twoim katalogu domowym. Równocześnie informuje się o tym. Plik core to obraz pamięci (plus informacje dla debagera), tworzony z myślą o debagerach, czyli programach pomocnych w znajdowaniu błędów. Jeśli jesteś użytkownikiem, który nie nosi się z zamiarem debagowania programów, możesz zwyczajnie usunąć pliki core:
rm core
albo nic nie robić (plik core będzie nadpisany, gdy następny program je stworzy). Możesz także uniemożliwić tworzenie plików core, używając komendy:
ulimit -c 0
Sprawdź, czy to zadziałało, używając:
ulimit -a
(Pokaże to "user limits", czyli "ograniczenia użytkowników", opcja "-a" oznacza "wszystkie"). Jeśli chcesz trwale uniemożliwić tworzenie plików core dla wszystkich użytkowników, zmień plik /etc/profile (jako root), gdzie ulimit jest definiowany i ustaw właściwe parametry. Zaloguj się ponownie, aby zmiany w /etc/profile odniosły skutek.
Jeśli chciałbyć dowiedzieć się, co można zrobić z plikami core, spróbuj (w katalogu, gdzie masz taki plik):
gdb -c core
Uruchomi się GNU  debugger, analizując plik "core" i wyświetli nazwę programu, który stworzył plik core, sygnał w wyniku którego program został zatrzymany, etc. Wpisz "quit" by wyjść z debuggera. By poznać znaczenie różnych sygnałów, spróbuj:
cat /usr/include/bits/signum.h

3.2 Użytkownicy, hasła, prawa dostępu do plików i bezpieczeństwo

3.2.1 Katalogi domowe, root, dodawanie użytkowników

Tym (prawie) jedynym miejscem na twardym dysku, gdzie zwykli użytkownicy (nie-root) mogą zapisywać są ich katalogi domowe, czyli /home/user_login_name .
Katalog "domowy" jest przeznaczony na wszystkie pliki użytkownika: ustawienia, pliki konfiguracyjne programów, dokumenty, dane, "cache" netscape'a, pocztę, etc. Jako użytkownik możesz tworzyć podkatalogi w swoim katalogu domowym, by utrzymywać porządek. Inni użytkownicy nie mogą czytać Twoich plików, lub zapisywać do Twojego katalogu domowego, zanim nie dasz im na to zezwolenia.
Normalni użytkownicy mogą także widzieć, czytać i wykonywać wiele innych plików w systemie (poza swoimi katalogami domowymi), ale normalnie nie mogą ich modyfikować lub usuwać.
"root" (zwany także "super-użytkownik") jest specjalnym kontem administracyjnym, które ma możliwość modyfikować dowolny plik w systemie. Nie jest dobrym pomysłem stała praca na Twoim systemie jako root -- Twoje błędy mogą Cię drogo kosztować. Skonfiguruj i używaj konto zwykłego użytkownika do codziennej pracy dla siebie, inny dla Twojego syna, jeszcze inny dla żony. Konto "root-a" jest jedynym, które istnieje w Linuksie po instalacji systemu.
Konto użytkownika może być stworzone przez "root-a", używając - na przykład:
adduser joe
passwd joe
[wpisz hasło dla użytkownika joe]
Root może zmienić dowolne hasło użytkownika, jednak nie może przeczytać go. [Hasła są szyfrowane przy pomocy algorytmu jednokierunkowego i tylko zaszyfrowana wersja jest zapisywana w systemie w pliku /etc/passwd, "otwarta" wersja nigdy nie jest zapisywana. Kiedy się logujesz, hasło, które wpisałeś jest szyfrowane ponownie, przy użyciu tego samego jednokierunkowego algorytmu, i jest porównywane z już zaszyfrowaną wersją, zapisaną w systemie w pliku /etc/passwd (w przypadku starszych systemów) lub /etc/shadow  (nowsze systemy) .]
Oddzielenie administratora i użytkowników sprawia, że Linux jest bezpieczny i odporny --nawet wirusy w Linuksie mają problem (programy, które uruchomił użytkownik mogą tylko zapisywać do jego katalogu domowego, więc nie mogą zaatakować systemu operacyjnego).
Normalnym jest, że użytkownicy mogą zmienić swoje hasło natychmiast po pierwszym zalogowaniu, na przykład w ten sposób:
passwd
(current) UNIX password:  STARE_hasło
New UNIX password:  NOWE_hasło
Retype New UNIX password:  NOWE_hasło
W rzeczywistości, hasło nie pojawi się na ekranie w czasie wpisywania (ze względów bezpieczeństwa).

3.2.2 O bezpieczeństwie haseł

Słabe hasła są prawdopodobnie najczęstszą przyczyną pogwałceń bezpieczeństwa. Nawet w domu, możesz narazić się na niebezpieczeństwo, ponieważ ktoś może zaatakować Twój komputer, gdy przeglądasz internet. Tak więc miej bezpieczne hasło, nawet w domu. Oto pewne przykłady niebezpiecznych haseł:
-  brak hasła (to możliwe!);
- słowo "hasło" (wow, to jest na prawdę słabe!);
- Twoje pierwsze imię lub nazwa Twojego konta;
- imię Twojej żony (męża), córki, przyjaciółki, psa, etc.;
- nazwa twojej firmy, wydziału, grupy roboczej, etc.;
- data Twoich urodzin;
- hasło zapisane w Twoim kalendarzu, na Twoim biurku, na boku Twojego komputera;
- dowolne słowo, które występuje w słowniku (słownik nie zawiera tak wielu słów, jak mogło by się wydawać, zręczny haker może stworzyć program, który sprawdzi je wszystkie);
- hasło, którego używasz w jakimś niebezpiecznym publicznym miejscu, na przykład w sklepie internetowym, lub na liście mailingowej.
Dobre hasło jest relatywnie długie (minimum 6 liter), zawiera zarówno litery (małe i duże, jeśli to możliwe) i liczby i jest zmieniane dość regularnie (co 8-16 tygodni?).
Administrator systemu może wprowadzić politykę haseł (minimalna długość, wymaganie specjalnych znaków, wygasanie ważności haseł) poprzez narzędzie zawarte w programie konfiguracyjnym (uruchom jako root):
linuxconf
w menu "user account"-"policies"-"password & account policies".  Normalni użytkownicy nie będą zdolni do ustawienia hasła, które jest zbyt krótkie, jest słowem występującym w słowniku lub nie zawiera pewnej liczby znaków nie-alfanumerycznych (ale root może zmienić dowolne hasło na jakie zapragnie, będzie tylko ostrzegany o niebezpieczeństwie).
Upewnij się także, że każdy plik, który zawiera hasło (na przykład /root/.kde/share/config/kppprc) ma bezpieczne atrybuty, tak, aby nie mógł być czytany przez każdego. Na przykład, najpewniej powinieneś:
chmod 600 kppprc

3.2.3 Zapomniałem hasła root'a

Nawet, jeśli nigdy nie zapomniałem żadnego hasła, przeczytał bym to dokładnie, bo być może dzięki temu odkryję w jaki sposób moja matka mogła przeczytać logi z moich konwersacji na ICQ :-)
Pierwsza metoda. Najprostsza metoda na rozwiązanie problemu z zapomnianym hasłem root'a jest wystartowanie Linuksa w trybie jedno-użytkownikowym (ang. single-user - dop. tłum.), mianowicie po znaku zachęty "lilo" (podczas startu) wpisz:
linux single
Do ci to konto root'a bez pytania o hasło. Teraz, będąc root'em, możesz zmienić swoje hasło, używając tej komendy (znajomość starego hasła nie jest potrzebna):
passwd
Jeśli wydaje ci się to wielką dziurą w bezpieczeństwie, zwróć uwagę, że żaden system komputerowy nie jest bezpieczny, jeśli ludzie mają fizyczny dostęp do Twojego sprzętu. Mimo to, nie lubię dziury "lunux single" w moim domowym komputerze i zatkałem ją, dodając następujące linie do mojego /etc/lilo.conf (na końcu sekcji "image="):
password="my_password"
restricted
[Hasło "lilo" jest wymagane, gdy wyświetlany jest znak zachęty LILO podczas startu systemu i ktoś wpisze słowo "linux" nawet bez żadnych parametrów (normalny start bez żadnych parametrów jest wciąż możliwy bez hasła)] By zmiany w /etc/lilo.conf odniosły skutek musisz ponownie wydać komendę lilo .  Hasło lilo nie jest szyfrowane, więc muszę ustawić prawo odczytu /etc/lilo.conf tylko dla root'a:
chmod 600 /etc/lilo.conf
Druga metoda.  Innym sposobem rozwiązania problemu z zapomnianym hasłem root'a, jest uruchomienie komputera z dyskietki, znalezienie głównej partycji Linuksa, podmontowanie jej, i zmiana w pliku /etc/passwd .  Można to zrobić, ponieważ po uruchomieniu z dyskietki, stajesz się root'em bez pytania o hasło.)  W pliku z hasłami wykasuj zaszyfrowane hasło dla root'a, tak, aby zostało puste. Na przykład linia odnośnie root'a w /etc/passwd może wyglądać tak:
root:abcdefghijklm:0:0:root:/root:/bin/bash
To "abcdefghijklm" jest hasłem zakodowanym w 13 znakowy ciąg (aktualnie sa to dwa znaki "ziarna" używanego do szyfrowania i 11 znaków zaszyfrowanego hasła). Zmienił bym tą linię, aby wyglądała tak:
root::0:0:root:/root:/bin/bash
Teraz konto root'a nie ma hasła, więc możesz zrestartować komputer i po chęcie do logowania wpisać "root" a jako hasło zwyczajnie nacisnąć ENTER (puste, bez hasła). Po udanym zalogowaniu natychmiast ustaw hasło dla root'a, używając komendy:
passwd
Powyższe odnosi się do plików z hasłami z tradycyjnych UNIX'ów i RH5.2. W nowszych systemach (np. RH6.0 i RH6.1) użyta jest nowsza metoda, używająca pliku "shadow password". W tym przypadku, plik /etc/passwd zawiera tylko "x" w polu, gdzie tradycyjnie było zaszyfrowane hasło. To zaś jest przechowywane w pliku /etc/shadow. [Podnosi to bezpieczeństwo systemu, gdyż zastosowe są inne atrybuty plików: plik /etc/passwd może być czytany przez każdego, ale /etc/shadow już nie. Dodatkowo shadow password umożliwia hasła dłuższe niż 8 znaków, dodaje kilka dobrodziejstw, jak wygasanie haseł, etc.]. Jako root możesz manipulować plikiem /etc/shadow tak samo, jak /etc/passwd .
By dostęp do mojego komputera przez start z dyskietki był nieco bardziej skomplikowany, wymontowałem z niego stację dyskietek :-). Niestety, płyty CD z Linuksem są boot'owalne w dzisiejszych czasach. Ustawiłem sekwencję urządzeń startowych komputera (w moim BIOS'ie) tak, żeby system startował najpierw z twardego dysku, a później sprawdzane są dyskietki i CDrom i dodałem hasło "administracyjne" na zmiany w BIOS'ie. Ciągle jednak się martwię, że te hasła BIOS'u są na prawdę łatwe do złamania, a ponadto zawsze można wyciągnąć mój twardy dysk i podłączyć do innego komputera :-). Zastanawiam się na szyfrowanym systemem plików [ang. "encrypted file system" - dop. tłum.], dostępnym już na Linukse, jednak zważyszy wszystkie problemy z nim związane, chyba zdecyduję się na zamknięciem mojego pokoju :-) Wydaje ci się to wszystko paranoją? Prawdopodobnie jest, jednak ilustruje to fakt, że trudno o bezpieczeństwo komputera, nawet pod Linuksem, jeśli potencjalny włamywacz ma fizyczny dostęp do komputera.

3.2.3a Zapomniałem mojego hasła użytkownika.

Jeśli zwykły (nie-root) użytkownik zapomni swoje hasło, nie jest to problemem, gdyż root może zmienić każde hasło. Na przykład (jako root):
passwd barbara
zapyta o nowe hasło dla użytkownika "barbara" (znajomość starego hasła nie jest potrzebna). Jeśli użytkownik (nie-root) chce zmienić swoje hasło, bedzie pytany o stare. (To jest rozwiązanie poprawiające bezpieczeństwo, tak, aby nikt nie mógł zmienić Twojego hasła, jeśli zostawisz swój terminal, bez wylogowania się).
Jeśli potrzebujesz tymczasowego zablokowania dowolnego konta użytkownika, nie ma potrzeby zmieniania jego hasła. Wystarczy wpisać gwiazdkę "*" na początku pola z hasłem (przed zaszyfrowanym hasłem) w pliku /etc/passwd lub /etc/shadow .  Gwiazdka "*" oznacza, że nie zezwala się na logowanie na to konto. Kiedy chcesz odblokować konto, wystarczy wymazać gwiazdkę i wszystko działa dobrze ze starym hasłem.
3.2.4  I Mam problemy z atrrybutami plików. Jak działają prawa własności i prawa dostępu?
Linux (tak samo jak UNIX) jest bezpiecznym, wieloużytkownikowym systemem, a to wiąże się z całokształtem zagadnień związanych z "atrybutami plików". Problemy z atrybutami mogą powodować nieoczekiwane i uciążliwe problemy. Zrozumienie tych zasad jest całkowicie niezbędne, aby administrować wieloużytkownikowym systemem operacyjnym (którym jest na przykład UNIX, WinNT lub Linux). Radził bym: naucz się konwencji dotyczących atrybutów plików w Linuksie (lub w dowolnym UNIX'ie), a nie będziesz tego żałował.
Zasady atrybutów są takie same odnośnie zwykłych plików, jak i katalogów, więc cokolwiek poniżej będzie napisane o plikach, odnosi się również do katalogów. Ważnym jest, aby pamiętać, że katalogi niższego poziomu (i pliki zawarte w tych katalogach) dziedziczą atrybuty wyższych katalogów. Tak więc nie oczekuj, że będziesz miał żądane prawa w podkatalogu, jeśli nie masz tych praw odnośnie dowolnego wyższego katalogu.
Właściciele plików.  Każdy plik należy do jakiegoś właściciela (typowo jest to nazwa, używana do logowania) i do jakiejś grupy. Właścicielem jest typowo osoba, która stworzyła (lub skopiowała) plik. Grupa często zawiera jedną osobę--czyli właściciela i ma identyczną jak on nazwę, ale nie musi tak być. Plik może być usunięty (wykasowany) tylko przez właściciela pliku, albo członka grupy, będącej właścicielem pliku albo przez root'a. Jednak inni użytkownicy mogą modyfikować lub usunąć plik, jeśli jeśli zostanie im nadane do tego prawo--czytaj dalej. Właściciel oraz grupa, która jest właścicielem pliku jest pokazywana przez komendę ls -l (="listuj w długim [ang. "long" - dop. tłum.] formacie"). Na przykład komenda:
ls -l junk
dała następujący wynik na moim ekranie:
-rwx------   1 yogin    inca           27 Apr 24 14:12 junk
Oznacza to plik "junk", przynależny użytkownikowi "yogin" i grupie "inca".
Prawo własności pliku może być zmienione, przy użyciu komendy chown [skrót od angielskiego "change owner", czyli "zmień właściciela" - dop. tłum.] oraz chgrp [skrót od angielskiego "change group", czyli "zmień grupę" - dop. tłum.], którą normalnie uruchamia root:
chown peter junk
chgrp peter junk
ls -l junk
Po wykonaniu tych trzech komend, komenda ls-l junk dała następujący wynik na moim ekranie:
-rwx------   1 peter    peter           27 Apr 25 20:27 junk
Zmiana własności plików jest przydatna, gdy kopiujesz/przesuwasz pliki jako root dla innych użytkowników. Na końcu takiego porządkowania typowo będziesz potrzebował zmienić własność plików dla odpowiednich użytkowników.
Pozwolenia plików .  Teraz, właściciel pliku może sprawić, by plik był dostępny w trzech trybach: read (r) - odczyt, write (w) - zapis i execute (x) - wykonanie dla trzech klas użytkowników: owner (u) - właściciel, członkowie grupy (g), inni użytkownicy w systemie (o). Możesz sprawdzić aktualne prawa dostępu, używając:
ls -l filename
Jeśli plik jest dostępny dla wszystkich użytkowników (użytkownika, grupy, pozostałych) we wszystkich trzech trybach (czytanie, zapis, wykonanie, komenda ta pokaże:
-rwxrwxrwx
Pomijając pierwszą "-" (ona oznacza "d" dla katalogów, "-" dla normalnych plików, "l" dla linków, "c" dla urządzeń znakowych [ang. character devices -sorry, jeśli po polsku to niezupełnie tak - dop. tłum.], "b" dla urządzeń blokowych). Po tym wstępnym znaku, pierwsza trójka pokazuje prawa dostępu właściciela pliku, druga trójka pokazuje prawa dostępu grupy, będącej właścicielem pliku, a trzecia trójka pokazuje prawa dostępu do pliku dla pozostałych użytkowników. Brak zezwolenia jest pokazywany jako "-". Oto wynik dziania komendy ls -l na pliku, będącym własnością root'a, do którego właściciel (root) ma pełne prawa, ale grupa może go tylko czytać i wykonywać:
drwxr-xr-x   2 root     root        21504 Apr 24 19:27 dev
Pierwsza litera "d" pokazuje, że plik jest obecnie katalogiem.
Możesz zmienić prawa dostępu do pliku, którego jesteś właścicielem, używając komendy chmod (="change mode" czyli "zmień tryb"). Na przykład, ta komenda doda prawa do odczytu dla pliku "junk" wszystkim (=właścicielowi + grupie + innym):
chmod a+r junk
W powyższej komendzie, zamiast "a" (="all" czyli wszyscy), mogłem użyć "u", "g" lub "o" (="user", "group" lub "others" czyli "użytkownik", "gupa", "inni"). Zamiast "+" (="dodaj prawa"), mogłem użyć "-" lub "=" ("odbierz prawa" lub "nadaj takie prawa"). Zamiast "r" (="prawo odczytu"), mogłem użyć "w" lub "x" ("prawo do zapisu" lub "prawo do wykonania").
Na przykład powyższa komenda zabierze prawo do wykonania pliku "junk" pozostałym użytkownikom (którzy nie są ani właścicielem pliku, ani nie należą do grupy):
chmod o-x junk
Zamiast liter, można użyć także liczb, by określić atrybuty. By zrozumieć zasadę, spójrz na to:
odczyt=4
zapis=2
wykonanie=1
Ostateczne prawa dla klasy właściciela pliku są sumą tych trzech. Tak więc:
1 = tylko wykonanie (chyba nieużywane)
2 = tylko zapis (chyba nieużywane)
3 = zapis i wykonanie (chyba nieużywane)
4 = tylko odczyt (powszechne)
5 = odczyt i wykonanie (powszechne)
6 = odczyt i zapis (powszechne)
7 = zapis, odczyt i wykonanie (powszechne).
Prawa dla wszystkich trzech klas (właściciel, grupa, pozostali) otrzymuje się poprzez zestawienie obok siebie wszystkich trzech cyfr, jedna po drugiej. Na przykład komenda:
chmod 770 junk
da właścicielowi i jego grupie pełne prawa, ale żadnych dla innych. Komenda:
chmod 666 junk
daje wszystkim klasom (właścicielowi, grupie, innym) prawo do zapisu i odczytu (ale nie do wykonania) przykładowego pliku o nazwie "junk". Zwróć uwagę na "666". Jest całkiem często używane, a przynajmniej dla jednej ze znanych mi osób jest to dowodem, że Linux (każdy UNIX w tej materii) jest dziełem diabła >:-0.
Komenda:
chmod 411 junk
da właścicielowi pliku prawo tylko do jego czytania, a grupie i innym prawo tylko do jego wykonania. Ten przykład może nie jest użyteczny, ale może wydać się zabawny, przynajmniej dla tych użytkowników Linuksa z Ameryki Północnej, którzy dzwonią pod numer telefoniczny 411 directory assistance. Wyślij mi list, jeśli znasz jakieś inne zabawne prawa (może 007?).
Numeryczna reprezentacja atrybutów pliku jest nazywana "oktalną", ponieważ liczby są w systemie ósemkowym. Największą liczbą w tym systemie jest 7 (system ósemkowy ma 8 cyfr: 0 do 7, analogicznie jak dziesiętny ma od 0 do 9). Oktalna reprezentacja atrybutów plików jest tylko umownym odzwierciedleniem binarnej reprezentacji, gdzie każde zezwolenie jest reprezentowane jako "tak" lub "nie" przy pomocy jedynek i zer,jak w poniższym diagramie:
user class:                                    owner  group others
example permissions:                            rwx    rw-    r--
absent permissions:                             ---    --x    -wx
binary representation of the permissions:       111    110    100
octal representation  of the binary:             7      6      4
Domyślne atrybuty plików.  Kiedy tworzony jest nowy plik, dostaje on domyślne atrybuty. W moim systemie są to:
-rw-r--r--
Oznacza to, że pliki tworzone przez użytkownika mogą być czytane i zapisywane przez użytkownika, a jego grupa i inni użytkownicy mogą je tylko czytać. Jednak na moim RedHat'cie 5.2 użytkownicy nie mogą czytać plików innych użytkowników w ich katalogach domowych, ponieważ katalogi te mają takie prawa:
drwx------
Mogę sprawdzić domyślne atrybuty plików, nadawane moim nowo-tworzonym plikom przy użyciu:
umask -S
(Opcja "-S" oznacza "symbolicznie" i nakazuje umask wyświetlenie atrybutów w formie łatwiej do czytania.)
Mogę zmienić domyślne atrybuty plików dla nowo-tworzonych plików, używając komendy, jak:
umask u=rwx,g=,o=
która da właścicielowi nowotworzonych plików wszystkie prawa, zaś grupa i pozostali nie będą mieli żadnych.
W ustawianiu domyślnych atrybutów przy pomocy liczb jest pewien podstęp. Liczby pokazują prawa, które zabierasz użytkownikom ( wprzeciwieństwie do chmod).  Tak więc:
umask 000
da odnośnie nowo-tworzonych plików pełne prawa wszystkim. Następny przykład da pełne prawa właścicielowi, żadnych dla wszystkich pozostałych: (chyba tak, jak często chce się zrobić):
umask 077

3.2.5 Mój odwarzacz MP3 się dławi. Dźwięk jest przerywany (jak ustawić suid'a).

Odtwarzacz MP3 może nie mieć wystarczająco dużo mocy procesora (a wyma on jej wiele). Być może dzieje się tak, z powodu wolnego systemu, albo może uruchamiasz za dużo, mocno obciżających procesor, aplikacji równocześnie. Albo - co najbardziej prawdopodobne - potrzebujesz uruchomić odtwarzacz z większym priorytetem. (Priorytet programu może być ustawiony komendą nice -- zobacz man nicelubinfo nice). Spróbuj uruchomić odtwarzacz jako root--programy uruchomione przez root'a mają większy priotytet, niż uruchomione przez normalnych użytkowników. Jeśli to rozwiązuje problem, ustaw "suid" na pliku wykonywalnym, tak więc wszyscy użytkownicy tego programu dostaną "efektywny user id [czyli identyfikator użytkownika - dop. tłum.]" root'a, kiedy uruchamiają go. Na przykład:
chmod a+s x11amp
zrobi ten trik dla programu x11amp. Wynik komendy
ls -l x11amp
na moim komputerze to teraz:
-rwsr-sr-x   1 root     root       319172 Mar 13  1998 x11amp
Pierwszy "s" oznacza, że bit substitute-user-id (suid) jest zapalony. Drugi "s" oznacza, że substitute-group-id (sgid) jest także zapalony. Tak więc, każdy, kto uruchomi x11amp dostaje "efektywny identyfikator użytkownika" właściciela programu lub "efektywny identyfikator grupy", które w powyższym przykładzie oznaczają "root'a".
Ustawianie suid'a dla programu może być dziurą w bezpieczeństwie systemu. W przypadku zamkniętych domowych sieci, albo w przypadku programu, którego pochodzenie jest dobrze znane, nie musi to być specjalnym zagrożeniem. Mimo to, nawet w domu, nie dawał bym suida na żaden kawałek kodu, co do którego jestem nie pewny, nawet jeśli instrukcja instalacji to nakazuje.
Jednak niektóre programy wymagają suid'a, dla właściwego działania, na przykład kppp (popularny program do połączeń przez modem na protokole "ppp", z KDE).

3.3 Ustawianie harmonogramu prac przy pomocy "at", "batch", i cron'a

3.3.1 Jak wykonać komendę o określonym czasie (używając "at" lub "bash")?

Komenda at wykona określone przez Ciebie komendę (komendy) w podanej dacie i określonym czasie. Na przykład mógłbym włączyć muzykę z CDROM'u o 7 rano w ten sposób:
at 7:00
cdplay<Ctrl>d
W powyższym przykładzie, wpisałem pierwszą linię "at 7:00" na konsoli i nacisnąłem ENTER. Wtedy komenda at wyświetla zaproszenie "at>". Po tym wpisałem komendę "cdplay" i następnie nacisnąłem klawisz "control" (Ctrl) i równocześnie "d", by zakończyć wprowadzanie. Jeśli zamiast naciśnięcia <Ctrl>d ,  nacisnął bym "Enter", pojawiło by się zaproszenie "at>" do wpisania kolejnej komendy, która była by wykonana po "cdplay", także o 7:00. I tak dalej, można by wpisać więcej komend do wykonania jedna po drugiej, zaczynając o 7 rano. Po wpisaniu ostatniej komendy, nacisnąłem <Ctrl>d.  Należy to traktować, jako wysyłanie "końca linni" do aktualnego wejścia. Nie naciśnij <Ctrl>d dwukrotnie, bo to Cię wyloguje -- właśnie taka jest funkcja <Ctrl>d, gdy naciśniesz je bezpośrednio na linii komend Linuksa.
Możesz zobaczyć listę prac, które zleciłeś, używając:
at -l
co da Ci ponumerowaną listę oczekujących prac.
Jeśli zmieniłeś zdanie, możesz usunąć zadanie z listy. Na przykład:
atrm 8
usunie zadanie numer 8 z listy.
Mógłbym także zadać wykonanie jakiejś pracy znacznie później, na przykład:
at 23:55 12/31/00
startx
wstartowało by mój X-window system zaraz przed nowym milienium (5 minut przed północą 31 grudnia 2000). .
Jeśli nie możesz wykonać komendy at, sprawdź, czy daemon "at" ("atd") jest załadowany (jako root, użyj setup - "system services"). Jeśli nie możesz wykonać komendy at jako zwykły użytkownik, a działa z konta root'a, sprawdź, czy pusty plik /etc/at.deny istnieje, i czy nie ma pliku /etc/at.allow. Powinno tak być po normalnej istalacji i zezwala to wszystkim użytkownikom na użycie komendy at.  Jeśli chcesz, by wybrani użytkownicy mieli prawo użycia at, utwórz plik /etc/at.allow i wymień w nim tychże.
Aby poznać inne opcje, zobacz:
man at
Jeśli chcesz wykonać jakieś mocno obciążające procesor zadania, w czasie, kiedy obciążenie systemu jest niskie, możesz użyć komendy batch. Dla przykładu, mógłbym uruchomić "setiathome" (program przetwarzający dane, by pomóc w poszukiwaniu kosmitów, SETI), używając:
batch
at>setiathome<Ctrl>d
W tym przykładzie, wpisałem komendę batch a potem po zachęcie "at>", wpisałem komendę, którą chciałem uruchomić w tle. Komenda chce wystartować natychmiast, ale kontynuuje tylko wtedy, gdy obciążenie systemu jest poniżej 0.8. Możesz sprawdzić aktualne obciążenie systemu, oglądają zawartość (wirtualnego) pliku /proc/loadavg . Na przykład:
cat /proc/loadavg
Kiedy praca "batch" zostaje zakończona, jej wynik zostaje wysłany przez e-mail.

3.3.2 Jak skonfigurować cron'a?

Cron (Linuksowy program, który wykonuje zadania w tle, często w nocy) jest konfigurowany standardowo na Twoim RedHat'ie. Nie musisz więc robić z nim niczego, zanim nie chcesz dodać pewnych zadań, które będą wykonywane regularnie w Twoim systemie, albo nie chcesz zmienić czasu ich wykonywania.
Zwróć uwagę, że pewne zadania cron'a mogą mieć fundamentalne znaczenie dla działania systemu w dłuższej perspektywie. Wśród innych zadań cron może:
- odbudowywać bazę danych o plikach, która jest używana przez komendę locate,
- czyścić katalog /tmp,
- odbudowywać strony podręcznika,
- dokonywać "rotacji" plików z logami, w tym na przykład: usuwać najstarsze, tworzyć nowe, i zmieniać nazwy pośrednich,
- przeprowadzać pewne inne zadania, jak na przykład dodawanie czcionek, które niedawno skopiowałeś do swojego systemu.
Przez to, wyłączanie komputera zawsze na noc może nie być najlepszym pomysłem, -- w takim przypadku prace cron'a nigdy nie będą miały szansy być wykonane. Jeśli lubisz wyłączać komputer na noc, możesz potrzebować zmiany czasu wykonywania przez cron'a swoich obowiązków.
By dowiedzieć się, kiedy cron się budzi by wykonywać swe prace, zobacz na plik /etc/crontab, na przykład:
cat /etc/crontab
Może on zawierać na przykład coś takiego:
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Jak widzisz, są cztery kategorie zadań crona: wykonywane co godzinę, dzień, tydzień i miesiąc. Możesz je modyfikować i dodawać swoje własne kategorie. Oto jak to działa:
Kolumny we wpisach pokazuję: minutę (0-59), godzinę (0-23), dzień miesiąca (1-31), miesiąc roku (1-12), dzień tygodnia (0-6--Niedziela do Soboty). Gwiazdka "*" oznacza "dowolną prawidłową wartość".
Tak więc, w powyższym przykładzie, prace cogodzinne wykonywane są za każdym razem, gdy zegar komputera wskazuje na "minutę po", co zdarza się co godzinę, jedną minutę po każdej godzinie. Codzienne prace wykonywane są zawsze, gdy zegar pokazuje dwie minuty po czwartej rano, co zdarza się raz dziennie. Cotygodniowe prace wykonywane są 22 minuty po 4 rano w każdą niedziele. Comiesięczne prace są wykonywane 42 minuty po 4 rano pierwszego dnia miesiąca. Katalog, zawierający komendę (komendy), które mają zostać wykonane jest widoczny, jako ostatni wpis w każdej linii
Jeśli chcesz, aby Twoje zadania były wykonywane o północy, zamiast o 4 rano, zmień czwróki na 12-stki. Cron budzi się co minutę i sprawdza, czy plik /etc/crontab nie zmienił się, więc nie ma potrzeby restartowania czegokolwiek za każdym razem, gdy dokonujesz zmian.
Jeśli chciałbyś dodać jakieś zadanie cron'a, umieść skrypt uruchamiający twoją pracę (albo link do tego skryptu) w katalogu /etc/cron.hourly lub cron.daily lub /etc/cron.weekly, lub /etc/cron.monthly.

3.4  Przestrzeń wymiany (swap)

Przestrzeń wymiany (swap) jest rozszerzeniem fizycznej pamięci komputera. Najprawdopodobniej stworzyłeś partycję wymiany podczas instalacji RedHat'a. Możesz sprawdzić ilość przestrzeni wymiany dostępnej w systemie, używając:
cat /proc/meminfo
Ogólne zalecenia są takie, że trzeba mieć co najmniej 4 MB przestrzeni wymiany, co najmniej 32 MB całkowitej (fizycznej+swap) pamięci dla systemu działającego tylko w trybie tekstowym, co najmniej 64 MB całkowietej (fizycznej+swap) pamięci, dla systemu działającego pod kontrolą X-window, a stosunek pamięci fizycznej do przestrzeni wymiany powinien wynosić około 1 : 1,5.
Jeśli jest to za skomplikowane dla Ciebie, wystarczy jeśli będziesz miał dwukrotnie więcej przestrzeni wymiany niż fizycznej pamięci, ale w sumie nie mniej niż 64 MB.
Jeśli kiedykolwiek chciałbym zmienić rozmiar swojej pamięci wymiany, oto pewne podstawowe wiadomości.

3.4.1 Partycje wymiany (swap)

Możesz mieć wiele partycji wymiany, każdą aż do 124 MB. Oto kroki do utworzenia i uaktywnienia partycji wymiany:
- Utwórz partycję o odpowiednim rozmiarze, używając fdisk (partycję typu 82, "Linux swap").
- Sformatuj partycję, sprawdzając czy nie ma uszkodzonych bloków, na przykład tym poleceniem:
mkswap -c /dev/hda4
Musisz w miejsce /dev/hda4 wstawić nazwę swojej partycji. Nie określiłem rozmiaru partycji, będzie więc on rozpoznany automatycznie.
- Uaktywnij przestrzeń wymiany, na przykład:
swapon /dev/hda4
By przestrzeń wymiany automatycznie uaktywniała się podczas startu systemu, musisz dodać wpis do swojego /etc/fstab , na przykład:
/dev/hda4 swap swap defaults 0 0
Jeśli potrzebował byś kiedyś zdezaktywować swap, możesz to zrobić tak:
swapoff /dev/hda4

3.4.2 Swap files

Pliki wymiany są zwykle wolniejsze od partycji, nie jest to więc rekomendowana technika pamięci wymiany. Utworzenie jednak takiego pliku może być przydatne, jeśli potrzebujesz tymczasowo więcej pamięci wymiany. Możesz mieć do ośmiu plików wymiany, każdy o rozmiarze do 16 MB. Oto procedura tworzenia plików wymiany:
- Utwórz plik o rozmiarze, jakiego potrzebujesz na przestrzeń wymiany :
dd if=/dev/zero of=/swapfile bs=1024 count=8192
To fizycznie utworzy plik wymiany /swapfile, rozmiar bloku to 1024 kB, plik zawiera ich 8192, tak więc całkowity rozmiar wynosi około 8 MB. (Komenda dd kopiuje pliki. W powyższym przykładzie, plikiem wejściowym (if) było /dev/zero, plikiem wyjściowym (of) było /swapfile. Nie możesz użyć komendy cp (copy) do stworzenia pliku wymiany, ponieważ musi on być jednym fragmentem na twardym dysku.)
- Uaktywnij plik komendą:
mkswap /swapfile 8192
- Wymuś zapis bufora cache na dysk, wykonując komendę:
sync
- Uaktywnij przestrzeń wymiany komendą:
swapon /swapfile
Jeśli nie potrzebujesz już pliku wymiany, możesz wyłączyć go i usunąć:
swapoff /swapfile
rm /swapfile
Ponadto może Ci się przydać więcej informacji, zawartych w pliku napisanym przez Linus'a Torvalds'a osobiście:
man mkswap

3.5  Shell

3.5.1 Co to jest shell i czy mogę potrzebować jakiegoś innego?

Szell to program, który interpretuje to, co wpisałeś w linii komend i decyduje, co z tym zrobić. Szell może także być użyty w sposób nieinteraktywny, na przykład by wykonać wcześniej przygotowaną listę komed, zawartą w pliku tekstowym ("skrypt szell'a). Traktuj szell'a jako ekwiwalent dosowskiego "command.com" (intepretator linii komend) a skrypt szell'a jako ekwiwalent dosowskich plików wsadowych (*.bat).
Istnieje dużo szell'i, dostępnych dla Linuksa (jeśli je zainstalowałeś) bash ("Bourne Again" shell), sh (Bourne shell), csh (C shell, ze składnią pokrewną składni języka programowania "C"), pdksh (public domain Korn shell), tcsh (enhanced C shell), ash, zsh, i pewnie wiele innych.
Domyślnym szelem w moim systemie (i co najbardziej prawdopodobne, w Twoim także) jest bash , który jest na prawdę wspaniałym i standardowym shell'em, i na prawdę nie widzę powodów, dla których początkujący - jak ja - miałby go zmnieniać. bash jest wpełni kompatybilny "w dół" z Bourne shell (najpopularniejszym shellem na UNIX'ach) i zawiera wiele ulepszeń i najlepszych rozwiązań z innych shell'i. Z perspektywy początkującego, inne shell'e są zawarte w Linuksie z powodów historycznych i dla kompatybilności "w dół" niektórych skryptów, które wymagają konkretnego shell'a do uruchomienia.
Jeśli chciałbyś spróbować innego shell'a, na przykład wpisz
tcsh
i uruchomisz alternetywny c shell. Kiedy skończysz, wpisz:
exit
i powrócisz do poprzedniego shell'a.
Shell dla każdego użytkownika jest określony przez ostatnie pole w pliku z hasłami /etc/passwd. Jeśli na prawdę chciałbyś go zmienić, wyedytuj ten plik (jako root) i zamień "/bin/bash" na shell, który wybrałeś.

3.5.2 Jak napisać prosty skrypt shell'a?

Utwórz plik tekstowy (ASCII), który będzie zawierał skrypt. Na przykład, użył bym edytora pico, by napisać skrypt, który uruchomi program tar z parametrami zwykle niezbędnymi by rozkompresować "starowany" plik, ściągnięty z internetu (nigdy nie mogę zapamiętać opcji tar'a. Zdecydowałem się nazwać mój skrypt "untar": :
pico untar
Plik "untar" nie istniał w moim bieżącym katalogu, został więc stworzony przez edytor pico. Teraz wpisuję zawartość mojego skryptu: :
#!/bin/bash
echo to jest skrypt $0
echo rozkompresowuwuję plik tar: $1
# to wywoła tar'a z opcjami -xvzf (wyciągaj, werbalnie, przefiltruj przez gzip'a, pobierz nazwę pliku)
tar -xvzf $1
Nagrałem ten plik, używając <Ctrl>o i opuściłem edytor poprzez <Ctrl>x
Pierwsza linia skryptu, zaczynająca się od "#!" (nazywana pound-bang), ma specjalne znaczenie -- mówi powłoce, który program powinien zostać użyty do intepretowania skryptu. W tym przykładzie, skrypt powinien być interpretowany przez bash'a /bin/bash .  Pierwsza linia musi zaczynać się od #!  albo skrypt nigdy się nie uruchomi (lub też plik zostanie potraktowany jako zwykły plik tekstowy). Inne linie, zaczynające się od # są komentarzami dla autora (czytelników, użytkowników) skryptu i są kompletnie ignorowane przez komputer.
$0, $1, $2 ... w moim skrypcie to parametry przekazywane skryptowi. Na przykład, jeśli uruchomił bym skrypt o nazwie "myscript" z takimi parametrami::
myscript a b c d e f g
wtedy $0 było by widoczne wewnątrz "myscript" jako mające wartość "myscript", $1 miało by wartość "a",  $2 było by "b",  $3 było by "c", etc.
W drugiej i trzeciej linii mojego przykładowego skryptu, komenda echo wypisuje na ekranie wszystko, co jest zamieszczone w tej samej linii, zamieniając $0 i $1 na wartości przekazane skryptowi przez jego parametry. Czwarta linia jest komentarzem, który napisałem dla siebie, bym pamiętał co chcę zrobić, gdybym kiedykolwiek na przykład chciał zmodyfikować swój skrypt. Piąta linia przeprowadza właściwą pracę.
Kiedy skrypt został napisany, robię go wykonywalnym przez właściciela:
chmod u+x untar
i jest on gotowy do użycia:
./untar my_tar.tar.gz
Posługiwanie się skryptami w Linuksie daje bogate możliwości, jest elastyczne i może być złożone. Jednak, nie jest wymagana jakaś specijalna wiedza, by napisać prosty skrypt do automatyzowania codziennych zadań. Zwyczajnie zbierz razem grupę często wykonywanych jedna po drugiej komend, i wpisz je wszystkie do pliku. Używam skryptów, gdyż jestem zbyt leniwy, by wpisywać te same grupy komend wciąż w kółko.

3.6 Jak zainstalować program ściągnięty z Internetu?

o Jeśli program jest binarnym pakietem RedHat'a (*.rpm),  używam menadżera pakierów z RedHat'a - rpm. Najpierw czytam informacje o zawartości pakietu:
rpm -qpi moj_nowy_plik.rpm
W ten sposób zapytuję (tryb "q" [czyli ang. "query", pol. "odpytywanie" - dop. tłum.], "q" musi być pierwszą literą po myślniku) jeszcze nie zainstalowany pakiet (opcja p), aby wyświetlił mi informacje o sobie, które zawiera (opcja "i"). Jeśli chcę zainstalować program, uruchamiam (jako root):
rpm -ihv moj_nowy_plik.rpm
Uruchamia to rpm nakazując zainstalować pakiet (tryb "i" [jak ang. "install" - dop. tłum.], litera "i" musi być pierwszą literą po myślniku), równocześnie wyrzucając na ekran więcej informacji niż zwykle (opcja "h" - pokazuj "hasches" [czyli "#" - dop. tłum.] by zilustrować postęp procesu instalacji, opcja "v" = "bądź gadatliwy"). Zawartość pakietu jest umieszczana w odpowiednich katalogach. Po instalacji program jest gotowy do działania, trzeba tylko znaleźć pliki wykonywalne. Jeśli mam z tym problem, to polecenie pokazuje wszystkie pliki w pakiecie wraz z ich katalogami docelowymi.
rpm -qpl moj nowy plik.rpm
Zapytuje (opcja "q") jeszcze nie zainstalowany pakiet (opcja "p"), by pokazał listę (opcja "l") wszystkich plików, zawartych w pakiecie.
Istnieją także graficzne nakładki na rpm:  glint (bardzo powolny, zamieszczony w RH5.2), gnopro (pogmatwany, zamieszony w RH6.0), i kpackage (obecnie najpelszy z tych trzech, ale musi być instalowany niezależnie -- sprawdź swoją ulubioną stronę z oprogramowaniem Linuksowym, powinien tam być do ściągnięcia).
o Jeśli ściągnąłeś z sieci kod źródłowy, skompresowany w jeden plik tar'a, procedura jest dłuższa, niż z binarnym rpm'em. Typowo instaluję program jako root.
Najpierw zmieniam bieżący katalog na /usr/local  :
cd /usr/local
Następnie dekompresuję plik tar, który ściągnąłem z sieci:
tar -xvzf  /home/katalog_w_ktorym_plik_tar_jest/moj_plik_tara.tar.gz
To wyciąga (opcja "x") zawartość pliku *.tar.gz (lub *.tgz), rozkompresowywuje (unzip - opcja "z") równocześnie dając więcej informacji niż zwykle (opcja "v" = "verbose" czyli gadatliwie). Zwróć uwagę, że opcja "f" oznacza "plik", więc nazwa pliku musi pojawić się natychmiast za literą "f". Zawartość pliku jest wyciągana do podkatalogu, który tar tworzy w bieżącym katalogu, w tym przypadku /usr/local/  Plik tar'a wie, ja ten podkatalog powinien się nazywać.
Jeśli plik tar'a nie jest kompresowany, mogę użyć:
tar -xvf /home/katalog_w_ktorym_plik_tar_jest/moj_plik_tara.tar
Po trzecie, muszę sprawdzić, czy został utworzony podkatalog i jak się nazywa, by następnie zrobić do niego cd:
cd nowy_podkatalog_programu
Jako, że wiele katalogów ma długie nazwy, by mniej pisać, używam wspaniałej opcji autodopełniania, - po prostu wpisuję kilka pierwszych liter i naciskam <TAB>.
Po czwarte, większość programów kompiluje się poprzez wykonanie tych trzech komend:
./configure
make
make install
powyższe komendy mogą potrzebować trochę czasu na zrobienie swojej pracy (0.5h?). Jeśli któraś z nich zwróci błąd, dobrze jest przeczytać README lub INSTALL lub cokowiek jest dostarczone z programem. Niektóre programy mogą wymagać dostosowania środowiska (np. dodania swoich katalogów do PATH'a) albo instalacji dodatkowej biblioteki, lub czegoś innego. Czasem może to być bolesne. Bardzo proste programy mogą nie potrzebować "./configure" i/albo "make install", gdyż wszystko robi "make".
Po piąte, jeśli wszystko poszło dobrze, mogę znaleźć pliki wykonywalne nowego programu. Ich nazwy pojawią się na zielono, gdy uruchomię tę komendę:
ls --color
Teraz mogę uruchomić plik wykonywalny:
./plik_wykonywalny
Po szóste, jeśli planuję używać programu częściej, tworzę dowiązanie symboliczne do pliku wykonywalnego z katalogu /usr/local/bin :
cd /usr/local/bin
ln -s /usr/local/podkatalog_nowego_programu/plik_wykonywalny .
W ten sposób, plik wykonywalny (konkretnie, dowiązanie symboliczne do niego) jest na mojej ścieżce wyszukiwania i może być uruchomiony poprzez zwykłe wpisanie jego nazwy (nie trzeba więcej wpiswać pełnej ścieżki dostępu). Niektóre programy umieszczą pliki wykonywalne (albo linki do nich) w katalogu bin, więc możesz pominąć ostatni krok.
o Istnieją także programy rozpowszechniane jako "źródłowy pakiet rpm". Wymagają one instalacji pakietu *.rpm przy pomocy programu "rpm", a następnie kompilacji kodu źródłowego poprzez wykonanie takiej samej sekwencji: "./configure -  make - make install" jak dla kodów źródłowych, rozpowszechnianych jako pliki tar.
Przejdź do części 4: Najczęściej zadawane pytania przez nowych administratorów Linuksa