Podręczny spis podstawowych komend początkującego Linuksowca
Zarządzanie plikami:
cd -zmiana katalogu (cd .. -do katalogu wyżej).
chmod -zmiana atrybutów plików, lub praw.
chown -zmiana właściciela pliku i grupy.
cp -kopiuje pliki.
ls -wyświetla zawartość katalogu.
mkdir -tworzy katalog.
mv -przenosi pliki, lub zmienia nazwy.
rm -usuwa pliki.
rmdir -usuwa katalogi.
find -szukanie plików.
Używanie plików:
grep -znajduje wyrażenia w pliku
less -wyświetla plik ekran po ekranie (można poruszac się od góry do dołu i z powrotem).
more -wyświetla plik ekran po ekranie (można poruszać się tylko z góry na dół).
wc -zlicza wiersze, słowa i znaki danego pliku.
zcat -wyświetla zawartość skompresowanego pliku.
Zarządzanie procesami:
kill -wysyła sygnały do procesów (używany do zatrzymywania procesów).
ps -wyświetla listę aktualnie działających procesów.
reboot -rebootuje system (wyłącza i włącza ponownie).
top -wyświetla listę procesów zajmujących najbardziej czas procesora.
uname -wyświetla informacje o jądrze systemu.
Zarządzanie użytkownikami:
add -dodanie użytkownika
passwd -zmienia hasło
whoami -wyświetla nazwę użytkownika.
Podstawy Linuksa
Do systemu Linux zawsze dostajesz się poprzez interfejs nazywany kontem, które identyfikowane jest poprzez nazwę użytkownika (login) oraz hasło (password). Czyli po uruchomieniu Linuksa musisz podać nazwę użytkownika oraz hasło które zadeklarowałeś podczas instalacji. Wpisywane hasło ze względu na bezpieczeństwo nie jest widoczne na ekranie. W Linuksie można uruchomić jednocześnie kilka takich kont, są to jakby oddzielne wirtualne komputery.
Za pomocą klawiszy ALT + F1 do F6 możesz przełączać się miedzy tymi kontami (konsolami).
Specjalnym kontem administaracyjnym jest konto root nazywane inaczej "super użytkownik" (su). Root ma nieograniczone uprawnienia i możliwości, dlatego ze względu na bezpieczeństwo systemu nie powinieneś wykorzystywać tego konta do normalnej pracy.
Do codziennej pracy używaj konta zwykłego użytkownika.
Gdy zalogujesz się jako zwykły użytkownik, na twojej konsoli pojawi się znak dolara $, jeśli zalogowałeś się jako root znakem tym będzie # .Linux ładowany jest domyślnie z powłoką (shellem) BASH która posiada właśnie taki monit ($ lub #). Znak ten oznacza początek wiersza poleceń. Wpisujesz polecenie, naciskasz ENTER w celu potwierdzenia wykonania. Zadanie możesz przerwać i zatrzymać za pomocą klawiszy CTRL + C
Wspaniałym programem narzędziowym ułatwiającym pracę, jest Midnight Commander, uruchamiany poleceniem mc , za pomocą tego programu bez szczegółowej znajomości poleceń, możesz wykonać większość operacji na plikach lub katalogach. Mc posiada prosty i wygodny edytor tekstowy, przydatny do edycji wszelkiego rodzaju plików konfiguracyjnych.
Wpisując polecenie dmesg | less, na ekranie wyświetlone zostaną komunikaty wygenerowane przez jądro podczas startu systemu. Po wydaniu polecenia uname -a dowiesz się wszystkiego o swoim systemie ( nazwę systemu i hosta, wersję jądra, itp. ). Kolejną pożyteczną komendą jest free, pokazuje nam ilość wolnej pamięci i na co została zużyta.
Jeżeli chcesz pracować w graficznym interfejsie użytkownika X-Window, uruchomisz je wpisując w wierszu poleceń startx. Pamiętaj aby przedtem zamknąć MC.
System możesz zamknąć za pomocą jednoczesnego naciśnięcia klawiszy CTRL+ALT+DEL, podczas ponownego uruchamiania się systemu, wyłącz komputer. Taki sam efekt uzyskasz po napisaniu polecenia reboot lub shutdown. Innym sposobem jest wykonanie polecenia halt, po zatrzymaniu wszystkich procesów, pojawi się napis: system halted i teraz wyłącz komputer, możliwe że system ATX wyłączy się automatycznie.
32-bitowy dostęp do twardego dysku w Linuksie
Prawdopodobnie jeżeli twój dysk jest nowszej generacji, nie są w pełni wykorzystane jego możliwości.
Aby się o tym przekonać wykonaj następujące kroki.
Zaloguj się jako root i wydaj polecenie: hdparm -c /dev/hda
Jeżeli otrzymasz komunikat jak wyżej to znaczy że masz wyłączony 32-bitowy dostęp do dysku, następnie za pomoca polecenia: hdparm -d /dev/hda sprawdź bezpośredni dostęp do pamięci.Gdy w wyniku otrzymasz 0, to nie masz także bezpośredniego dostęu do pamięci (rys. poniżej).
Jeżeli w obu przypadkach otrzymasz wynik 1 to możesz opuścić dalszą część opisu, gdyż dysk jest w pełni wykorzystany.
Następny krok to sprawdzenie aktualnej prędkości dysku za pomocą komendy: hdparm -t /dev/hda
Na moim dysku IBM 15GB było tak, jak na rysunku powyżej. Zapisz wynik swojego dysku. Teraz za pomocą polecenia: hdparm -c 1 /dev/hda włącz 32-bitowy dostęp.
Włącz bezpośredni dostęp do pamięci za pomocą: hdparm -d 1 /dev/hda Następnie w celu sprawdzenia prędkości dysku po zmianach napisz: hdparm -t /dev/hda Porównaj z poprzednim wynikiem.
W moim przypadku jak widać powyżej, nastąpiło zwiększenie wydajności dysku o około 400%. Porównaj swoje wyniki.Jeżeli prędkość się zwiększyła możesz zatwierdzić nowe ustawienia poleceniem hdparm -k 1 /dev/hda , ustawienia te będą aktywne do ponownego restartu.
Jeśli wszystko działa poprawnie i chcesz aby nowe ustawienia zawsze były aktywne, musisz w pliku /etc/rc.d/rc.local dopisać na końcu linię: hdparm -c 1 -d 1 -k 1 /dev/hda
Pliki i katalogi w Linuksie.
Pliki podobnie jak w innych systemach umieszczone są w katalogach. Układ katalogów przypomina strukturę drzewa, czyli jest katalog główny - korzeń ( root direktory ), a gałęzie to podkatalogi i pliki.
Katalog główny czyli root, jest katalogiem specjalnym ułożonym podczas instalacji Linuksa, większość z nich są to katalogi systemowe i muszą występować w określonej hierarchii, w zależności od dystrybucji mogą występowąć pewne różnice.
Możesz tworzyć nowe katalogi oraz pliki, w ich nazwach zabronione jest używanie ukośników, znaków zapytania oraz gwiazdek. Nazwa może mieć długość do 256 znaków.
W nazwach plików możesz używać rozszerzenia, jest to część nazwy po kropce. Rozszerzenia stosuje się w celu określenia kategorii pliku, np nazwa kelwin.mp3 oznacza: plik ten jest plikiem muzycznym, a read.txt jest plikiem tekstowym. Możesz tworzyć własne rozszerzenia lub używać nazw bez rozszerzeń.
Istnieją także specjalne pliki ukryte, poprzedzone kropką (dot files), są to najczęściej pliki inicjujące i konfiguracyjne.
Opis niektórych katalogów w Linuksie. (Redhat)
/home |
- zawiera katalogi domowe (osobiste) użytkowników |
/bin |
- znajdują się tu standardowe polecenia i programy |
/lib oraz /usr/lib |
- wszelkiego rodzaju biblioteki |
/usr/doc oraz /usr/share/doc |
- zawiera dokumentację Linuksa oraz programów |
/etc |
- zawiera pliki konfiguracyjne |
/sbin |
- polecenia administracyjne ( powinny być używane tylko przez roota ) |
/var |
- pliki zmienne np. logi systemowe, poczta, kolejki wydruków i inne. |
/usr |
- polecenia i programy dla użytkowników (zawiera wiele podkatalogów) |
/dev |
- pliki odpowiadające urządzeniom |
/root |
- katalog domowy administratora |
/usr/man oraz /usr/share/man |
- pliki podręczników elektronicznych |
/tmp |
- zawiera pliki tymczasowe |
/boot |
- pliki niezbędne do uruchomienia systemu |
Niektóre polecenia, używane do zarządzania katalogami oraz plikami
ls |
- polecenie do wyświetlania nazw plików i katalogów |
ls -R |
- wylistowanie katalogu wraz z podkatalogami. |
mkdir |
- polecenie służy do stworzenia nowego katalogu np. mkdir dokumenty |
rmdir |
- do usunięcia katalogu np. rmdir dokumenty |
cd nazwa katalogu |
- zmiana katalogu na zadany katalog, |
cd |
- powrót do katalogu domowego |
cd.. |
- przejście do katalogu nadrzędnego |
cp |
- kopiowanie pliku. Polecenie jako argumenty przyjmuje oryginalną nazwę pliku i nazwę jego kopii, np. cp nazwa nowa-nazwa |
mv |
- przeniesienie lub zmiana nazwy pliku lub katalogu |
ln |
- tworzenie dowiązań do plików lub katalogów |
rm |
- usuwanie plików |
pwd |
- wyświetlenie nazwy ścieżki bieżącego katalogu |
du |
- wyświetlenie ilość zajętego miejsca przez katalogi |
df |
- wyświetla ilość zajętego miejsca na wszystkich dyskach i partycjach |
more |
- wyświetlanie pliku w kilku częściach, gdy nie mieści się na ekranie. |
chmod |
- zmienia atrybuty plików. |
chown |
- zmienia właściciela pliku i przynależność do grup |
gzip i gunzip |
- gzip- kopmresuje pliki, a gunzip dekompresuje. |
tar |
- tworzy archiwum plików z jednego lub kilku katalogów. |
fdformat |
- formatuje dyskietki |
fsck |
- sprawdza i naprawia systemy plików wyszczególnione w pliku /etc/fstab |
Niektóre pliki konfiguracyjne Systemu Linux
/etc/fstab |
- plik zawiera nazwy dysków, partycji, inne systemy plików które mają być zamontowane w czasie startu systemu |
/etc/inittab |
- głowny plik startowy systemu. Zawiera listę terminali, z których możliwe jest otwarcie sesji, oraz listę procesów do uruchomienia w czasie ładowania systemu. |
/etc/ld.so.conf |
- plik zawiera nazwy ścieżek bibliotek |
/etc/lilo.conf |
- plik konfiguracyjny LILO (Linux Loadera) |
/etc/man.config |
- plik konfiguracyjny elektronicznych podręczników (manuali) Man, dla aplikacji |
/etc/mime.types |
- plik konfiguracji skojarzeń |
/etc/modules.conf |
- plik konfiguracyjny modułów |
/etc/printcap |
- konfiguracja drukarek |
/etc/profile |
- konfiguracja powłoki BASH |
/etc/resolv.conf |
- plik zawiera adresy serwerów DNS |
/etc/X11/XF86Config lub /etc/X11/XF86Config-4 |
- plik konfiguracyjny X Window System |
/etc/X11/fs/config |
- plik konfiguracyjny font serwera |
/etc/httpd/conf/httpd.conf |
- plik konfiguracyjny serwera Apache |
/etc/issue |
- w tym pliku znajduje się domyślne powitanie twojego systemu |
/etc/crontab |
- zawiera plan zadań do wykonania o określonej porze, przez system |
/etc/httpd/conf/httpd.conf |
- plik określa ogólne atrybuty serwera Apache |
/etc/httpd/conf/access.conf |
- plik konfigurujący dostęp do serwera WWW |
/etc/httpd/conf/srm.conf |
- plik konfiguracyjny zasobów serwera Apache - dokumentów i innych informacji, udostępnionych przez serwer użytkownikom |
Szczegółowe informacje na temat sposobu zastosowania poszczególnych poleceń, uzyskasz w elektronicznych podręcznikach man, np. polecenie man cp, wyświetli Ci wszystko na temat polecenia cp.
W man-ie tekst przeglądasz za pomocą kursorów, góra, dół. Wyjście z podręcznika za pomocą klawisza Q.
Dostęp do CD-ROM-u, napędu dyskietek oraz partycji i dysków z innymi systemami operacyjnymi.
Aby partycja z innym systemem ,lub inny dysk oraz CDROM były widziane przez Linuksa należy je zamontować.
W tym celu w katalogu /mnt/ utwórz katalogi które będą odnosiły się do twoich dysków i partycji. Katalog może mieć dowolną nazwę np: dla CDROM-u możesz utworzyć /mnt/cdrom, a dla partycji z systemem Windows /mnt/winda.
Następnie za pomocą komendy mount -t vfat /dev/hda1 /mnt/winda zamontuj katalogi i pliki Windows do drzewa katalogów Linuksa.
Teraz kilka słów wyjaśnień:
1.vfat - oznacza system plików używanych przez Windows. Istnieją jeszcze iso9660, używany do CDROM-ów oraz ext zastosowany w Linuksie. 2./dev/hda1 - oznacza pierwszą partycję na pierwszym dysku twardym, /dev/hda2 oznacza drugą partycję na pierwszym dysku itd, /dev/hdb będzie oznaczało drugi dysk na pierwszym kanale IDE tzw. slave. Pierwszy dysk na drugim kanale IDE oznaczamy jako /dev/hdc, a drugi (slave) /dev/hdd. W przypadku dysków SCSI zamiast hd musisz napisać sd. 3.Stację dyskietek oznacza się jako /dev/fd0 4.CDROM to /dev/cdrom
Dyskietkę zamontujesz poleceniem, mount /dev/fd0 /mnt/floppy - oczywiście wcześniej musisz w katalou /mnt utworzyć katalog /floppy. Gdy chcesz zmienić dyskietkę, przed wyjęciem musisz ją odmontować komendą, umount /dev/fd0 /mnt/floppy , to samo dotyczy CDROM-ów.
Zawsze przed odmontowaniem musisz być poza katalogiem który jest odmontowywany, w przypadku gdy bedziesz w katalogu systemu plików, który następnie odmontowujesz, zobaczysz komunikat błędu, że urządzenie jest zajęte.
Metoda ręcznego montowania plików jest niewygodna przypadku częstego korzystania z danego systemu plików. Istnieje możliwość automatycznego montowania plików. Aby Linux automatycznie zamontował twoją partycję, musisz dodać jej nazwę w pliku /etc/fstab
Plik /etc/fstabzawiera kilka pól odzielonych tabulatorem lub spacją:
pierwsze pole jest nazwą systemu plików do zamontowania np: /dev/hda1 oznacza pierwszą partycję dysku twardego.
Drugie pole to katalog w systemie plików Linuksa, tam zostanie zamontowany system plików danego urządzenia np: /mnt/winda
Trzecie pole oznacza typ montowanego systemu np: vfat
Następne pole to opcje montowania np:b defaults
- defaults, oznacza że urządzenie jest do odczytu i zapisu, jest asynchroniczne , blokowe, zwykły użytkownik nie może montować na nim innych systemów plików, mogą na nim być wykonywane programy
- ro, oznacza system tylko do odczytu
- noauto, system nie jest automatycznie montowany. Opcja ta wykorzystywana jest z CDROM i napędami dyskietek, ponieważ nie wiadomo czy w czasie uruchamiania systemu, będziesz miał cokolwiek w napędach.
- async, wszystkie operacje we/wy związane z systemem plików powinny być wykonywane asynchronicznie
- auto, system plików ma być zamontowany automatycznie.
- exec, oznacza pozwolenie na wykonywanie programów. - nouser, zabrania zwykłemu użytkownikowi montowania systemu plików.
- rw, do odczytu i zapisu.
- sync, wszystkie operacje we/wy powinny być wykonywane synchronicznie.
- user, zezwala na montowanie plików zwykłemu użytkownikowi.
Piąte pole to wartość wykorzystywana przez polecenie dump w celu określenia, czy ma zostać wykonana kopia zapasowa. Ostatnie pole ustawia wartość dla polecenia fsck
- 1 oznacza sprawdzenie systemu
- 0 oznacza, że system plików nie będzie sprawdzany
Powyższe operacje musisz wykonywać jako root.
Zwróć uwagę że dyskietka i CDROM na powyższym przykładzie nie będą montowane automatycznie przy starcie systemu. Aby zamontować dyskietkę należy wpisać w wierszu poleceń mount /mnt/floppy, dla CDROM-u mount /mnt/cdrom.
W menadżerach graficznych aby zamontować kliknij na ikonie dyskietki lub CDROM u, aby odmontować kliknij trzecim przyciskiem myszy i wybierz odmontuj (umount).
Polskie znaki w Linuksie
Częstym problemem początkującego użytkownika Linuksa jest ustawienie wyświetlania polskich znaków diaktrycznych. Do ustawienia polskich ustawień możemy użyć programu locale_config dołączonego standardowo do dystrybucji Linuksa, w efekcie czego powinniśmy uzyskać w pliku /etc/sysconfig/i18n wpis:
LANG="pl_PL"
LC_ALL="pl_PL"
LINGUAS="pl_PL"
SYSFONT=lat2u-16
UNIMAP=lat2u
SYSFONTACM=iso02
Możemy również wpisać je tam ręcznie, korzystając z powyższego wzoru. Po czym wydajemy polecenia:
# /sbin/setsysfont
# loadkeys pl
W Midnight Commanderze powinniśmy także wybrać w opcji ustawień wyświetlania znaków ISO-8599-1 oraz pełne 8-bitowe wejście.
Aby uzyskać polskie znaki w X-sach należy je najpierw zainstalować, można je ściągnąć z "Polskiej strony ogonkowej". W większości nowych dystrybucji czcionki te już są, wystarczy je zaznaczyć podczas instalacji.
Czcionki powinny znaleźć się w katalogu:
/usr/share/fonts/ISO8859-2/
lub
/usr/X11R6/lib/X11/fonts/ISO8859-2/
W poszczególnych katalogach z czcionkami powinien znajdować się plik fonts.dir, jeżeli go nie ma to musimy go utworzyć poleceniem mkfontdir. Następnie dopisujemy ścieżkę dostępu do czcionek do pliku /etc/X11/fs/config, powinno to wyglądać mniej więcej tak:
catalogue = /usr/share/fonts/ISO8859-2/misc:unscaled,
/usr/share/fonts/ISO8859-2/75dpi:unscaled,
/usr/share/fonts/ISO8859-2/100dpi:unscaled,
/usr/share/fonts/ISO8859-2/misc,
/usr/share/fonts/ISO8859-2/Type1,
/usr/share/fonts/ISO8859-2/75dpi,
/usr/share/fonts/ISO8859-2/100dpi
/usr/X11R6/lib/X11/fonts/misc:unscaled,
/usr/X11R6/lib/X11/fonts/75dpi:unscaled,
/usr/X11R6/lib/X11/fonts/100dpi:unscaled,
/usr/X11R6/lib/X11/fonts/misc,
/usr/X11R6/lib/X11/fonts/Type1,
/usr/X11R6/lib/X11/fonts/Speedo,
/usr/X11R6/lib/X11/fonts/75dpi,
/usr/X11R6/lib/X11/fonts/100dpi,
/usr/share/fonts/default/TrueType,
/usr/share/fonts/default/Type1,
Ważne jest aby polskie czcionki znalazły się na początku listy.
Wyświetlanie polskich znaków - GNOME
Aby polskie znaki poprawnie się wyświetlały powinniśmy mieć już ustawione polskie LOCALE i zainstalowane czcionki ISO8859-2. Następnie uruchamiamy Centrum Sterowania GNOME i w sekcji Wybór motywu zaznaczamy wykorzystanie czcionki użytkownika i wybieramy czcionkę z filtrem ISO8859-2. Po tych zabiegach GNOME powinien już przemówić do nas po polsku.
Wyświetlanie polskich znaków - KDE
Robimy to następująco: wchodzimy w Ustawienia, następnie Desktop i Czcionki. Dla wszystkich czcionek ustawiamy kodowanie na ISO-8859-2, zaś w sekcji Język ustawiamy jako pierwszy język polski (pl). Po zapisaniu zmian i restarcie KDE powinniśmy zobaczyć polski interfejs z poprawnie wyświetlającymi się polskimi znakami.
Po tych zabiegach nasz Linux w końcu przemówi po polsku.
Powłoka Linuksa (shell).
Powłoka (shell) jest podstawowym programem, interpretującym polecenia i rozkazy w wierszu poleceń, i decydujący o ich wykonaniu. Czyli służy komunikacji między użytkownikiem a jądrem systemu.Istnieje kilka rodzajów shelli, najbardziej popularnym jest powłoka BASH (Bourne Again Shell), i ona jest domyślnym szelem w Linuksie. Inne najbardziej znane powłoki to PDKSH (Public Domain Corn Shell) i TCSH.
Jeżeli chcesz popracować z inną powłoką, napisz w linii poleceń tcsh lub ksh i naciśnij ENTER. Gdy chcesz wrócić z powrotem do powłoki domyślnej wpisz exit, lub naciśnij CTRL+d.
Rodzaj shella dla użytkownika, określony jest w ostatniej linii pliku z hasłami /etc/passwd.
Gdy zalogujesz się na swoje konto urochomiona zostaje powłoka logowania zwana inaczej powłoką użytkownika, następnie powłoka sprawdza parametry, obowiązujące wszystkich użytkowników w pliku /etc/profile. Potem zostają uruchomione pliki w katalogu użytkownika:
/.bash_profile |
/.bash_login |
/.profile |
Jeżeli w twoim katalogu domowym nie ma tych plików, możesz je skopiować z katalogu /etc/skel/ Plik .bash_profile zawiera polecenia powłoki, zawierające zmienne środowiskowe.Na przykład gdy się logujesz, shell musi wiedzieć w jakich katalogach znajdują się polecenia i programy Linuksa, określa to zmienna Path. W pliku tym znajduje się polecenie export, udostępniające zmienne specjalne w każdej powłoce, którą uruchomisz. Można wyeksportować kilka zmiennych używając jednego polecenia eksport. Twój plik .bash_profile jest plikiem tekstowym i możesz go konfigurować według swoich potrzeb, np. dodać katalogi do zmiennej PATH, dodać nowe definicje zmiennych. Wprowadzone zmiany uaktywnią się po wylogowaniu się i ponownym zalogowaniu, lub poprzez polecenie .bash_profile. Pamiętaj że zmienne specjalne w .bash_profile są ważniejsze od tych w pliku .profile. Poniżej .bash_profile z mojego katalogu.
Następnum plikiem zawsze wykonywanym przy uruchamianiu powłoki jest .bashrc.
Linux zawiera ogólny, dla wszystkich użytkowników plik /etc/bashrc, oraz plik .bashrc użytkownika, umieszczony w jego katalogu domowym, jest on wykonywany przy każdym nowym uruchomieniu shella. W pliku użytkownika znajduje się polecenie do wywołania ogólnego /etc/.bashrc Plik ten najczęściej zawiera definicje aliasów i zmienne określające włściwości powłoki, potrzebne wszystkim użytkownikom. Do .bashrc znajdującego się w twoim katalogu, możesz dodać własne aliasy, polecenia lubdefinicje. Jeżeli chcesz je uaktywnić w czasie bieżącej sesji wykonaj polecenie: source .bashrc
Shell BASH pozwala na tworzenie prostych skryptów i złożonych programów powłoki. Posiada włąściwości programistyczne podobne do tych, jakie mają inne języki programowania.
Pracując z powłoką masz do dyspozycji kilka wspaniałych udogodnień.
Wiersz poleceń posiada cechę umożliwiającą uzupełniania nazw plików i poleceń. Jeżeli wprowadzisz niepełną nazwę lub polecenie i naciśniesz klawisz TAB system je uzupełni. Jeżeli isnieje więcej niż jedno polecenie lub plik z tym samym początkiem, usłyszysz sygnał dźwiekowy, a powłoka poczeka aż wprowadzisz więcej znaków, pozwalając jednoznacznie określić polecenie lub nazwę pliku. Oczywiście uzupełnienie nazwy pliku, nastąpi tylko ze znajdujących się w bieżącym katalogu.
Powłoka może również uzupełnić nazwę pliku, wypisując częściowo pasujące pliki w bieżącym katalogu. Gdy naciśniesz ESC z następującym po nim znakiem zapytania, zostaną wyświetlone wszystkie nazwy plików pasujące do niepełnej nazwy.
W powłoce BASH masz możliwość łatwej edycji i modyfikacji wprowadzanych poleceń. W celu edycji wprowadzonego polecenia (np: aby poprawić błąd) możesz używać kursorów w lewo i w prawo. CTRL+E spowoduje przeskok kursora na koniec wiersza, CTRL+Aprzeskok na początek wiersza, CTRL+K usunie tekst począwszy od pozycji kursora do końca wiersza, CTRL+Y przywróci usunięty tekst.
Shell posiada pamięć ostatnio wykonywanych poleceń, historię. Jeżeli chcesz zobaczyć ostatnio wykonywane polecenia wpisz history. Narzędzie historii pozwala na odwoływanie się do poleceń poprzednio wykonanych i umieszczenie ich w wierszu poleceń oraz wykonanie. Najprostszym sposobem jest użycie kursora w górę lub w dół. Możesz również odwołać się do historii za pomocą polecenia ze znakiem !,za znakiem wpisz tekst rozpoczunający polecenie lub numer z listy historii. Ilość poleceń do zapamietania określona jest w pliku .bash_history, za pomocą wartości nadanej zmiennej HISTSIZE
.
Zmienne Specjalne powłoki BASH - definiowalne. |
|
SHELL |
Określenie ścieżki do programu powłoki, jakigo używasz |
PATH |
Lista ścieżek katalogów przeszukiwanych dla znalezienia poleceń do wykonania. |
PS1 |
Monit podstawowy |
PS2 |
Monit wtórny |
IFS |
Symbol ogranicznika pól |
Nazwa pliku poczty, sprawdzanego przez program pocztowy w celu poszukiwania nowych wiadomości |
|
MAILCHECK |
Czas między sprawdzeniami nowo otrzymanej poczty |
MAILPATH |
Lista plików poczty, które mają być sprawdzane w poszukiwaniu nowo otrzymanych wiadomości |
TERM |
Nazwa terminala |
CDPATH |
Nazwy ścieżek katalogów przeszukiwanych przez cd w poszukiwaniu katalogów |
EXINIT |
Polecenia inicjacyjne dla edytorów ex/vi |
$ set -+o właściwość |
Włączenie i wyłączenie włąściwości powłoki za pomocą polecenia set; -o włącza włąściwość, +o wyłącza ją. np: |
Ignoreeof |
Zablokowanie wylogowania poprzez CTRL+d |
noclobber |
Nienadpisywanie plikó przez przekierowanie. |
Noglob |
Zablokowanie znaków specjalnych używanych do rozwijania nazw plików: *,?,~,[,] |
LILO czyli Linux Loader
LILO jest jednym z najważniejszych elementów systemu Linux. Służy do wczytania jądra systemu do pamięci i następnie jego uaktywnieniu. LILO może być umieszczone w głównym sektorze startowym dysku twardego tzw. MBR, lub sektorze startowym dowolnej partycji na dysku. Tę decyzję najczęściej podejmujesz w czasie instalacji Linuksa. Umieszczenie LILO w MBR jest najpopularniejsze i najczęściej stosowane, ma tylko jedną wadę, w momencie przeinstalowania systemu Windows 9x lub innego, informacja w MBR zostaje zamazana i nie będziesz mógł uruchomić Linuksa. Dlatego w czasie instalacji Linuksa, zawsze należy stworzyć awaryjną dyskietkę startową. Gdyby coś takiego Cię spotkało należy wystartować komputer z takiej dyskietki, po zgłoszeniu się LILO wpisać linux i poczekać na załadowanie systemu. Następnie zaloguj się jako root i wydaj komendę lilo w celu ponownego umieszczenia bootloadera w MBR.
Konfiguracja LILO zapisana jest w pliku /etc/lilo.conf, plik zawiera nazwy systemów jakie mogą być uruchomione oraz wskazuje, w jakim miejscu na dysku znajduje się program uruchomieniowy. Pierwsza linijka określa konfigurację jaka jest automatycznie wczytana gdy upłynie czas określony w timeout i jeżeli niema dyrektywy default. Do zmiany domyślnego systemu służy opcja default z odpowiednią etykietą. W przykładowym pliku do default możesz przypisać etykietę linux, suse lub windows. W konfiguracji na obrazku, domyślnym systemem który uruchomi się po upływie 15 sekund jest windows. Zauważ że czas określany jest w 0.1 sekundy. Sekcje zaczynające się od image= odnoszą się do Linuksa, a zaczynające się od other= dotyczą innych systemów np. DOS czy Windows.
Istnieje możliwość przekazywania poprzez LILO parametrów do jądra.
Na przykład zapis append = "mem=128M" w lilo.conf poinformuje że w komputerze masz 128 MB pamięci RAM (niektóre starsze wersje jądra nie widziały pamięci powyżej 64 MB). Pamiętaj aby po każdej zmianie w pliku lilo.conf, w celu zarejestrowania zmian, wydać komendę lilo w wierszu poleceń.
W czasie startu systemu po ukazaniu się monitu LILO: i po naciśnięciu klawisza [Tab], wyświetlone zostaną nazwy systemów możliwych do załadowania. Wpisz nazwę systemu i naciśnij [Enter].
Istnieje możliwość uruchomienia Linuksa w specjalnym trybie pojedyńczego użytkownika - linux single, jest to tzw. tryb bezpieczeństwa używany w wyjątkowych wypadkach, np. gdy zapomniałeś hasła roota. Aby uruchomić ten tryb, po znaku zachęty LILO: wpisz linux single. System uruchomi się w trybie root bez pytania o hasło, możesz teraz zmienić ustawienia plików konfiguracyjnych, aby zmienić hasło wydaj komendę passwd. Komenda exit zrebootuje system.
Częto po instalacji Linuksa, w czasie startu komputera ukazuje się LI i system wisi. W takim wypadku uruchom Linuksa z dyskietki lub CD-ROM'u i w pliku /etc/lilo.conf za pomocą dowolnego edytora (np. naciśnij F4 w mc) dodaj lba32, następnie wydaj komendę lilo, powinien ukazać się mniej więcej taki komunikat ja obok w okienku xterma.
Jeżeli to nie zadziała prawdopodobnie masz wersję LILO nie obsługującą tej opcji. Zdobądź najnowszą wersję i ponownie wykonaj te czynności. W większości wypadków powinno pomóc. Jeżeli to nie pomoże to znaczy BIOS twego komputera ma ograniczenie które powoduje że partycja startowa nie może przekraczać poza 1024 cylinder twego pierwszego dysku twardego. By obejść to ograniczenie musisz utworzyć taką startową partycję tak, aby kończyła się przed 1023 cylindrem, lub startować system z dyskietki.
Jeżeli LILO nie działa, lub chcesz odinstalować Linuxa, oraz usunąć LILO z master boot sector (MBR) załaduj DOS z dyskietki i wydaj komendę fdisk /mbr, teraz będziesz mógł za pomocą FDISK-a usunąć partycje Linuksowe. Inną metodą usunięcia LILO jest zalogowanie się jako root i napisanie komendy lilo -U. Najnowsze wersje LILO oferują graficzny interfejs wyboru systemu, oraz inne udogodnienia.
Więcej informacji o LILO uzyskasz wydając w wierszu poleceń,
man lilo
man lilo.conf
info lilo
Opcje LILO dla wiersza poleceń i pliku lilo.conf |
|
lilo -U |
wyinstalowanie LILO |
lilo -V |
wyświetlenie numeru wersji LILO |
lilo -t |
test LILO |
lilo -I |
wyświetlenie nazwy i nazwy ścieżki działającego jądra; nazwa przechowywana jest w zmiennej powłoki boot_image |
map = plik_mapy |
użycie innego pliku mapy zamiast domyślnego |
linear |
generowanie liniowego adresowania sektorów zamiast adresowania przez sektor/głowicę/cylinder |
distab = plik |
użycie pliku z parametrami geometrii dysku7 |
install = bootsektor |
plik, jaki ma być użyty jako nowy bootsektor |
default = nazwa |
użycie jako domyślnego jądra o zadanej nazwie zamiast pierwszego na na liście |
compact |
odblokowanie upakowania mapy (przyspiesza inicjację) |
boot = urządzenie bootujące |
określenie urządzenia bootującego np: boot = /dev/hda |
Dowiązania w
Linuksie - ln
Dowiązania ( linki, odnośniki, łączniki ) umożliwiają w systemie Linux nadać plikowi więcej niż jedną nazwę. Możesz odwoływać się do pliku używając innej nazwy, plik znajdujący się w jednym katalogu może być dostępny w innym katalogu. Podczas instalacji Linuksa automatycznie utworzonych zostaje wiele dowiązań. Dowiązanie przechowuje informację gdzie znajduje się określony plik.
Dowiązanie utworzysz stosując następującą komendę:
ln nazwa_oryginalna_pliku nowa_nazwa_pliku
Dowiązania dzielą się na stałe i symboliczne. Łącznik stały jest powiązany z konkretnym miejscem na dysku (i-węzeł), w którym znajduje się dany plik, dzięki temu plik ten może występować pod różnymi nazwami i zawsze będzie wskazywał ten sam zbiór danych. Zlikwidowanie jednego z dowiązań stałych nie usunie pliku. Aby usunąć plik musisz zlikwidować wszyskie dowiązania stałe. Linki stałe mogą nie zadziałać, gdy będziesz chciał łączyć plik z katalogiem innego użytkownika lub położonym na innym dysku.. Ponadto wszystkie zmiany praw dostępu lub właściciela odnoszą się także do jego dowiązań stałych.
Linki symboliczne wskazuje tylko ścieżkę do pliku z którym jest połączony, może także odnosić się do katalogu. Skasowanie pliku do którego było dowiązanie symboliczne, spowoduje przerwanie dowiązania (broken link). Dowiązania symboliczne prawa zapisu, odczytu i wykonania, mają zawsze ustawione na wartość "dla wszystkich".
Przykład wykorzystania:
ln /home/andrzej/obrazki/foto_krajobraz ~/krajobraz
W twoim katalogu zostanie utworzone dowiązanie stałe krajobraz połączone z plikiem foto_krajobraz umieszczonym w katalogu domowym andrzej.
Polecenie ln -s /home/andrzej/zdjęcia_z_wakacji/ ~/foto
utworzy katalog / link symboliczny o nazwie foto wskazujący na katalog zdjęcia_z_wakacji w katalogu domowym andrzej.
Na zrzucie widać dowiązanie stałe o nazwie plik_sta, dowiązanie symboliczne plik_sym, oraz dowiązanie przerwane (broken link) plik2sym po skasowaniu pliku źródłowego.
Opcje tworzenia dowiązań do plików i katalogów
ln -b oryginalna_nazwa nowa_nazwa |
(backup) tworzy kopie zapasowe plików przed ich usunięciem lub nadpisaniem |
ln -f oryginalna_nazwa nowa_nazwa |
(force) nadpisuje istniejący plik o takiej samej nazwie |
ln -i oryginalna_nazwa nowa_nazwa |
(interaktive) oczekuje na potwierdzenie przed usunięciem |
ln -s oryginalna_nazwa nowa_nazwa |
(symbolic) tworzy dowiązania symboliczne zamiast stałych |
ln -v oryginalna_nazwa nowa_nazwa |
(verbose) wypisuje nazwę każdego pliku przed utworzeniem dowiązania |
Polecenia
UWAGA! W odróżnieniu od DOSa w Linuxie istotną rzeczą jest wielkość liter!
df -{pokazuje ilość wolnego miejsca};
cat /proc/meminfo -{informacja o pamięci};
cat [plik] -{wyświetla tekst, odpowiednik DOSowskiego- type};
pwd -{pokazuje bieżący katalog};
date -{zgadnij :};
ls -{wyświetla zawartość, DOSowskie- dir};
cd .. -{do nadrzędnego katalogu};
cd / -{wędrujesz na samą górę};
cd [katalog] -{np.: cd /root wchodzimy do właściwego katalogu};
mkdir -{tworzenie katalogu};
rmdir -{kasuje katalog, jeżeli użyjemy parametru '-r', skasujemy katalog wraz z zawartością};
mv -{przenosimy plik};
cp -{kopiowanie};
rm -{kasuje plik};
mount -{montownie urzadzenia np.: dyskietki, cdromu, czy dysku twardego};
umount -{odmontowanie urządzenia};
history [liczba.poleceń] -{wyświetla listę użytych poleceń, np.: 'history 10'- ostatnie 10 poleceń};
mc -{uruchamiamy Midnight Commandera};
startx -{przejście do trybu graficznego}.
clear -{czyści ekran};
reboot -{restart systemu};
shutdown -x now -{zamknięcie systemu, pod x wstaw -r wtedy restart, lub -h całkowity koniec pracy};
Wyświetlanie zawartości katalogów - ls
Polecenie ls jest skrótem od słowa list i służy do wyświetlenia zawartości katalogów. Polecenie to może być użyte z różnymi opcjami.
Najprostsze użycie tego polecenia to poprostu:
ls
w wyniku otrzymasz listę plików i katalogów znajdujących się w bieżącym katalogu. Aby wyświetlić zawartość konkretnego katalogu należy podać odpowiednią ścieżkę, np:
ls /usr/local/games
Polecenie ls domyślnie sortuje nazwy w porządku alfabetycnym i wyświetla w kolumnach. Kolory do oznaczania rodzajów plików zdefiniowane są w pliku /etc/DIR_COLORS. Gdybyś chciał zdefiniować inne kolory, powinieneś skopiować ten plik do swego domowego katalogu zmienić nazwę na ./dir_colors i zmienić odpowiednie wartości. Domyślnie nie wyświetlane są pliki ukryte (z kropką) aby je wyświetlić użyj polecenia z opcją -a :
ls -a
Innymi wersjami ls jest polecenie dir oraz vdir. Więcej szczegółowych informacji o poleceniu ls uzyskasz cztytając manuale (man ls).
Niektóre opcje stosowane z poleceniem ls ( ls [-opcje] [nazwa katalogu] )
-a |
wyświetlone zostaną wszystkie pliki, także ukryte (zaczynające się od kropki). |
-b |
znaki niedrukowalne w nazwach plików przedstawione zostaną w postaci kodów ósemkowych. |
-c |
wyświetlone pliki będą posortowane według dat i godzin ich utworzenia. |
-C |
wyświetl nazwy w komórkach |
-d |
wyświetla katalogi bez ich zawartości |
-f |
zawartość katalogów zostanie pokazana bez sortowania, zgodnie z ich fizycznym umiejscowieniem na dysku twardym. |
-F |
do wyświetlenia z oznaczeniem katalogów, plików wykonywalnych, dowiązań. |
-i |
pokazuje numery indeksowe ( i-node, i-węzły) każdego pliku. Numery te jednoznacznie identyfikują pliki w ramach danego systemu plików. |
-l |
wyświetlone zostaną dokładne informacje o każdym pliku |
-m |
pokazuje pliki poziomo oddzielone między sobą przecinkiem i spacją |
-r |
sortowanie plików w odwrotnej kolejności |
-R |
Pokazyje rekurencyjnie zawartość wszystkich katalogów zagniżdżonych (podkatalogi). |
-s |
z lewej strony nazwy każdego pliku zostanie podana jego wielkość w kilobajtach |
-S |
pliki zostaną uszeregowane według rozmiaru |
-t |
pliki zostaną wyświetlone według czasu modyfikacji, najnowsze jako pierwsze |
--help |
wyświetlona zostanie pomoc. |
-v |
pokazuje wersję programu |
Tworzenie i uaktualnianie plików w Linuksie - touch
Polecenie touch służy do uaktualniania i tworzenia plików w Linuksie. Aby utworzyć nowy plik należy wydać polecenie:
touch nazwa_pliku
na przykład polecenie touch dane spowoduje utworzenie pliku o zerowej wielkości i nazwie dane . Możliwe jest utworzenie kilku plików jednocześnie, przykładowo wydając polecenie: touch dane adresy.txt baza utworzone zostaną trzy pliki o nazwach: dane, adresy.txt i baza. W przypadku użycia polecenia na istniejącym pliku, zostanie zmieniona godzina i data jego modyfikacji na bieżącą.
Polecenie touch, może być użyte z opcjami przedstawionymi w tabeli poniżej:
touch -c nazwa_pliku |
- zabrania tworzenia pliku, gdy plik taki już istnieje |
touch -a nazwa_pliku |
- zmiana tylko czasu dostępu |
touch -m nazwa_pliku |
- zmiana tylko czasu modyfikacji |
touch -t czas nazwa_pliku |
- użycie wskazanego czasu (MMDDhhmm - czyli miesiąc,dzień, godzina, minuta) |
touch --help |
- wyświetli pomoc do polecenia |
touch --version |
- wyświetli numer wersji programu |
Aby dowiedzieć się więcej o poleceniu polecam lekturę man touch
Tworzenie katalogów w systemie Linux
Do tworzenia katalogów w systemie Linux służy polecenie mkdir (make directory). Aby utworzyć nowy katalog należy wydać następujące polecenie:
mkdir nazwa_katalogu
Za pomocą tego polecenia stosując opcję -p możesz tworzyć całe struktury katalogów, przykładowo polecenie mkdir -p gry/strategiczne utworzy katalog gry z podkatalogiem strategiczne, katalogi istniejące nie zostaną nadpisane.
Standartowo katalogi tworzone są z uprawnieniami 0777 ( rwxrwxrwx ), aby utworzyć katalog z innymi uprawnieniami zastosuj polecenie z opcją -m i odpowiednimi atrybutami, przykład: mkdir -m 0500 programy, utworzy katalog programy z atrybutami do odczytu i wykonania przez właściciela.
Polecenie mkdir --help wyświetli informacje na temat polecenia. Polecam także lekturę man mkdir.
Kasowanie plików i
katalogów w Linuksie.
Do kasowania plików i katalogów w Linuksie służy polecenie:
rm (opcje) pliki_lub_katalog
Obok kilka przykładów:
Wydanie polecenia,
rm plik1 plik2
usunie plik1 i plik2
W natępnym poleceniu do skasowania tychże plików zastosowano maskę:
rm plik*
zastosowanie maski jest wygodnym sposobem usuwania większej ilości plików o takim samym początku nazwy.
Kasowanie plików i katalogów wymaga dużej ostrożności i aby zabezpieczyć się przed omyłkowym skasowaniem plików, w poleceniu stosuje się opcję -i , dzieki temu przed skasowaniem każdego pliku będziesz proszony o potwierdzenie (mysisz napisać y lub Y i nacisnąć ENTER):
rm -i plik*
Aby usunąć wszystkie pliki znajdujące się w katalogu wraz z nim samym, stosujemy polecenie z opcją -r wraz z podaną nazwą katalogu:
rm -r katalog
będziesz przy tym proszony o potwierdzenie usunięcia każdego pliku w katalogu oraz samego katalogu. Obok na zrzucie ekranowym, wynik działania przykładowego polecenia.
Do kasowania całej struktury katalogu bez prośby o potwierdzenie musisz użyć polecenia z opcją -r oraz - f :
rm -fr katalog
Do usuwania wyłącznie pustych katalogów służy inne polecenie:
rmdir (opcje) katalog
Użycie polecenia z opcją -p usunie wszystkie puste katalogi nadrzędne:
rmdir -p katalog
Należy pamiętać że aby usunąć plik lub katalog trzeba mieć do nich uprawnienia. Użycie polecenia rm razem z opcjami -rf z konta administratora (root`a) może być katastrofalne w skutkach, gdyż może doprowadzić do nieodwracalnego usunięcia całego systemu plików. Upewnij się ponad wszelką wątpliwość że na pewno chcesz usunąć jakieś pliki. Najlepiej przed tego typu operacjami utwórz kopię zapasową najważniejszych danych.
Na zakończenie polecam dodatkową lekturę man rm oraz man rmdir
Naprawa systemu plików w Linuksie - fsck
W czasie ładowania systemu Linux uruchamiany jest program fsck, zadaniem jego jest wychwycenie uszkodzonych plików i ich ewentualne naprawienie. W zależności od typu systemu plików, program uruchamia odpowiednie polecenia do przeprowadzenia sprawdzania i naprawy. Część danych normalnie przechowywanych na dysku jest okresowo przechowywana w pamięci komputera, gdy system nie będzie miał możliwości zapisania tych danych na dysku, system plików może zostać uszkodzony.
W wiekszości przypadków uszkodzenie systemu plików następuje gdy:
praca systemu została nagle przerwana w wyniku zaniku lub spadku napięcia w sieci
wyłaczenie sytemu nastąpiło przyciskiem reset lub wyłącznikiem zasilania
W normalnej sytuacji gdy Linux został zatrzymany za pomocą odpowiedniej komendy (shutdown, halt, reboot), wszystkie systemy plików zostają zapisane i odłączone przed ponownym załadowaniem systemu. Program fsck za pomocą sygnatury, którą jądro przypisuje systemowi plików, przed ich załadowaniem, sprawdza czy są w porządku. Po pomyślnym załadowaniu systemu plików sygnatura ta jest usuwana.
Gdy fsck uzna że coś jest tak, z systemem plików, rozpoczyna pełny test kontrolujący zawartość poszczególnych katalogów. Na ogól fsck potrafi automatycznie naprawić wszystkie błędy, bez angażowania użytkownika i system zostanie naprawiony oraz pomyślnie załadowany.
Gdyby okazało się jednak że system plików jest poważnie uszkodzony, automatyczny proces naprawy zostanie zatrzymany i zostaje uruchomiony shell (powłoka), dzięki czemu jako root będzie możliwe ręczne uruchomienie fsck i naprawa systemu. Pojawi się taki oto komunikat:
*** An error occured during the filesystem check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for mainteance
(or type Control-D for normal startup):
Powinieneś podać teraz hasło root`a i nacisnąć [ENTER]. System zgłosi się następującym komunikatem:
Repair filesystem #
Jeżeli przedtem na ekranie pojawiła się informacja jaki system plików jest uszkodzony np: hda3 napisz na konsoli:
fsck -r /dev/hda3
naciśnij [ENTER] i odpowiadaj na pytania fsck w celu podjęcia przez niego odpowiedniej akcji. Jeżeli za bardzo nie wiesz o co chodzi z tymi pytaniami, naciskaj po prostuy (yes).
W przypadku gdu nie wiesz który system plików został uszkodzony musisz sprawdzić każdy system plików, zrobisz to poleceniem:
fsck -A -V ; echo == $? ==
Tak samo jak w poprzednim poleceniu musisz odpowiadać na pytania. fsck w komunikatach wyświetlanych między znakami równości, będzie wyświetlał cyfry. Jeżeli watość tej cyfry będzie mniejsza od 4, to oznacza że wszystko jest w porządku. Poniżej znaczenie poszczególnych cyfr:
0 - brak błędów.
1 - błędy zostały naprawione
2 - system powinien zostać przeładowany
4 - błędy nie zostały naprawione
8 - błąd operacyjny (operational error)
16 - błąd użycia (składni)
128 - bład wspólnej biblioteki
Na ogól fsck radzi sobie z naprawą sytemu plików i gdy problem zostanie usunięty, shell informuje o wykonaniu zadania. Teraz po napisaniu exit i zatwierdzeniu, system powinien załadować się ponownie, tym razem już bez błędów.
Opcje fsck do sprawdzania i naprawiania systemu plików (fsck [opcje] system_plików)
-A |
sprawdzenie wszystkich systemów plikó wymienionych w /etc/fstab |
-R |
ignoruje główny system plików (podczas sprawdzania wszystkich systemów) |
-T |
nie wyświetla tytyłu |
-N |
wyświetla co może zrobić, ale tego nie robi |
-V |
tryb z wypisywaniem dodatkowych komunikatów |
-t |
określenie typu sytemu plików, który ma zostać sprawdzony np.ext2 |
-a |
automatyczne naprawianie ewentualnych błędów |
-n |
odpowiada negatywnie na wszystkie pytania (tylko dla systemu plików ext2) |
-p |
przeprowadza wszystkie naprawy bez pytania o potwierdzenie (tylko dla ext2) |
-y |
odpowiada pozytywnie na wszystkie pytania (tylko dla systemu plików ext2) |
-r |
pyta o potwierdzenie przed podjęciem akcji |
Polecam lekturę man fsck oraz info fsck
Prawa dostępu w Linuksie
W systemie operacyjnym Linux każdy plik i katalog posiada zestaw praw określający, kto ma dostęp do pliku i jakie ma prawa. Każdy plik lub katalog może mieć prawo czytania (read), pisania (write), i wykonywania.Każde z tych praw dostępu reprezentowane jest odpowiednią literą i posiada przypisany odpowiedni parametr cyfrowy.
Litera |
Znaczenie |
Parametr Liczbowy |
r |
prawo odczytu |
4 |
w |
prawo zapisu |
2 |
x |
prawo uruchomienia |
1 |
- |
brak praw dostępu |
0 |
Do każdego pliku lub katalogu możemy wyszczególnić trzy zestawy takich praw:
prawa właściciela
prawa grupy
prawa pozostałych użytkowników
Do wyświetlenia praw dostępu do plików możesz posłużyć się poleceniem ls z opcją -l
przykład:
[waldek@localhost waldek]$ ls -l
razem 944
-rw-r--r-- 1 waldek waldek 16561 sty 28 16:38 blackbox-menu
drwxrwxr-x 6 waldek waldek 4096 sty 25 19:18 loki/
lrw-rw-r-- 1 waldek waldek 86720 sty 26 15:56 snap.sna
Pierwsza kolumna składająca się z dziesięciu znaków opisuje prawa dostępu, przy czym pierwszy znak określa rodzaj pliku (np. - (minus) oznacza plik, d oznacza katalog, l dowiązanie itd).
Znak drugi, trzeci i czwarty określa prawa właściciela do pliku,
znak piąty, szósty i siódmy określa prawa grupy do której należy plik,
natomiast znak ósmy, dziewiąty i dziesiąty prawa innych użytkowników systemu.
Jak widać w powyższym przykładzie do pliku blackbox-menu przypisano następujące uprawnienia:
prawo odczytu i zapisu dla właściciela (rw-) |
prawo odczytu dla grupy (r--) |
prawo odczytu dla pozostałych użytkowników (r--) |
Dodając do siebie odpowiednie paramatry, zestaw trzech praw możemy przedstawić za pomocą jednej cyfry.
Oto kilka najczęściej spotykanych kombinacji:
Prawa |
Wartość |
Znaczenie |
--- |
0 |
brak praw |
r-- |
4 |
prawo do zapisu |
rw- |
6 |
prawo do zapisu i odczytu |
rwx |
7 |
prawo do zapisu, odczytu i uruchomienia |
r-x |
5 |
prawo do odczytu i uruchomienia |
--x |
1 |
prawo do uruchomienia |
W ten sposób za pomocą trzech cyfr możemy przedstawić całkowity (tzn. trzy zestawy) zbiór praw dostępu do pliku (pierwsza cyfra - prawa właściciela, druga cyfra - prawa grupy, trzecia - prawa dla pozostałych użytkowników).
Prawa dostępu |
Wartość liczbowa |
Znaczenie |
-rw------- |
600 |
prawo do odczytu i zapisu tylko dla właściciela pliku |
-rw-r--r-- |
644 |
Prawo odczytu i zapisu dla właściciela oraz odczytu dla wszystkich pozostałych użytkowników. |
-rw-rw-rw- |
666 |
prawo odczytu i zapisu dla wszystkich użytkowników. |
-rwx------ |
700 |
wszystkie prawa (odczyt, zapis, uruchomienie) tylko dla właściciela pliku. |
-rwxr-xr-x |
755 |
prawo do odczytu, zapisu i uruchomienia dla właściciela pliku oraz odczytu i uruchomienia dla wszystkich innych użytkowników |
-rwxrwxrwx |
777 |
wszystkie prawa dla wszystkich użytkowników (ustawienie niebezpieczne) |
-rwx--x--x |
711 |
prawo odczytu zapisu i uruchomienia dla właściciela pliku oraz prawo uruchomienia dla pozostałych użytkowników. |
drwx------ |
700 |
Dotyczy prawa zapisu i odczytu w katalogu tylko przez właściciela. Katalogom zawsze musi być ustawione prawo dostępu x. |
drwxr-xr-x |
755 |
Do takiego katalogu wszyskie prawa ma właściciel, a wszyscy pozostali użytkownicy mogą tylko odczytać jego zawartość. |
drwx--x--x |
711 |
Wszystkie prawa ma właściciel. Katalog z takimi prawami dostępny jest także dla wszystkich pozostałych użytkowników, lecz jego zawartość jest przed nimi ukryta (polecenie ls nie wyświetli listy plików umieszczonych w tak oznaczonym katalogu). Aby odczytać plik użytkownik musi znać jego nazwę. |
Zmiana właścicieli plików
Do zmiany włąściciela pliku służy polecenie chown
Należy mieć uprawnienia do takich zmian lub zalogować się jako root i napisać:
chown nazwa_właściciela nazwa_pliku
Przykładowo jeżeli chcesz plik readme.txt przypisać dla użytkownika krystian wydaj polecenie takiej treści:
chown krystian readme.txt
Isnieje możliwość zmiany właściciela całego katalogu (z podkatalogami), aby to zrobić użyj opcji -R np:
chown -R krystian dokumenty
i w ten sposób katalog dokumenty stał się własnością użytkownika krystian
Aby zmienić także przynależność do grupy należy dopisać nazwę nowej grupy do nazwy użytkownika, odzielając obie nazwy kropką:
chown krystian.root readme.txt
Użytkownik krystian przypisany został do grupy root i stał się właścicielem pliku readme.txt
Zmiana praw dostępu do plików
Do zmiany praw dostępu do plików w systemie Linux służy polecenie chmod.
Składnia polecenia pzy wykorzystaniu metody cyfrowej wygląda tak:
chmod prawa_dostępu nazwa_pliku
prawa_dostępu to jedna z opisanych wyżej trzycyfrowych liczb.
Przykładowo aby zmienić prawa dostępu do pliku readme.txt na -rw------- (prawo odczytu i zapisu tylko dla właściciela pliku) musiusz napisać:
chmod 600 readme.txt
Gdybyś chciał zmienić prawa dostępu do wszystkich plików w danym katalogu i jego podkatalogach skorzystaj z opcji -R Przykładowo aby ustawić zestaw uprawnień 644 dla wszystkich plików w katalogu /home/waldek/pub napisz tak:
chmod -R 644 /home/waldek/pub
Inną metodą nadawania uprawnień jest metoda symboliczna, polega na zdefiniowaniu odpowiedniego ciągu pojedyńczych liter.W tabelce poniżej przedstawione są znaczenia poszczególnych liter.
Kto |
Działanie |
Uprawnienie |
u użytkownik |
+ dać |
r odczyt |
g grupa |
- zabrać |
w zapis |
o inni |
= przypisać |
x wykonanie |
a wszyscy |
s suid |
|
Składnia polecenia przy wykorzystaniu tego sposobu wygląda następująco:
chmod [ugoa][+ - =][rwxs] nazwa_pliku
Przykłady:
chmod +x playit - plik playit może być uruchomiony przez dowolnego użytkownika.
chmod u+x playit - daje właścicielowi pliku playit prawo jego wykonania.
chmod a-w readme - odbiera wszystkim prawo do zapisu do pliku readme
chmod a+r * - daje wszystkim użytkownikom prawo do odczytu do wszystkich plików znajdujących się w danym katalogu.
W Linuksie istnieje specjalne prawo dostępu zwane SUID (SetUID). Normalnie program może być uruchomiony przez użytkownika który jest jego właścicielem, ale są sytuacje gdy program ( należący do roota ) musi być uruchomiony przez osobę, do której nie należy (np.ping należy do roota a mimo tego, może być uruchomiony przez innych użytkowników). Aby umożliwić pozostałym użytkownikom korzystanie z takich programów trzeba nadać im specjalny atrybut SUID. Aby to zrobić należy liczbę określającą prawa dostępu poprzedzić cyfrą 4, przykład:
chmod 4755 /bin/ping
lub w metodzie symbolicznej użyj opcji s:
chmod +s /bin/ping
Prawa czytania, pisania i wykonania w takich plikach widoczne są jako rws a nie rwx
Bardzo dobrym narzędziem do wykonania opisanych tu operacji jest MidnightCommander (MC).