Polska społeczność Fedora Linux

Poradniki

Podstawy Linuksa na przykładzie Fedory

Czym się różni Linux od Windows? Często osoba zaczynająca przygodę z Linuksem instaluje jedną z wielu dostępnych dystrybucji i ze zdziwieniem dostrzega, że w Linuksie nie ma „dysków” w rozumieniu systemu Windows. Żadnego „C:\”, „D:\” itd.

Partycje i system plików

W przeciwieństwie do Windows w Linuksie nie ma podziału na dyski. W Linuksie wszystko opiera się na partycjach i systemie plików (ang. filesystem).. W uproszczeniu partycje to części dysków fizycznych zainstalowanych w komputerze. W celu umożliwienia dostępu do partycji (zapis i odczyt plików, katalogów, programów) na partycji tworzony jest system plików. W obrębie systemu plików tworzone są katalogi oraz pliki.

Wszystko zaczyna się w głównym katalogu (ang. root directory – korzeń katalogów (?)) oznaczanym „/” (slash). Od katalogu głównego odgałęzia się struktura podkatalogów systemu Linux. Najważniejszymi, spotykanymi we wszystkich dystrybucjach katalogami są:

  • /bin – katalog zawierający polecenia systemowe wykorzystywane zarówno przez zwykłego użytkownika jak i przez głównego użytkownika systemu tzw. root (odpowiednik Administratora z systemu Windows, root nazywany jest często superużytkownikiem (ang. superuser). Polecenia z tego katalogu są niezbędne do działania w tzw. trybie jednoużytkownikowym (ang. single-user mode)
  • /boot – zawiera pliki niezbędne do uruchomienia systemu
  • /dev – tu znajdują się pliki specjalne i pliki urządzeń
  • /etc – zawiera pliki konfiguracyjne programów i usług.
  • /etc/rc.d/init.d – zawiera wszystkie skrypty startowe systemu (dostępny także przez link symboliczny
  • /etc/init.d)
  • /etc/rc.d/rc[n].d – gdzie n przybiera wartości od 0 do 6. Wartości te są zgodne z numerami poziomów uruchamiania systemu
  • /etc/sysconfig – tu znajdują się bardzo ważne skrypty konfiguracyjne Fedory. Są to m.in:
    iptables – skrypt konfiguracyjny firewalla. Nie edytować ręcznie! Korzystamy z narzędzi iptables-save, iptables-restore
    i18n – odpowiedzialny za ustawienia języka używanego w systemie
    init – ustawienia tekstowego bootwania komputera (widoczne po wyłączeniu parametru jądra rhgb)
    network – m.in.nazwa komuptera (jeśli inna niż domyślna localhost.localdomain)
  • /etc/X11 – skrypty konfiguracyjne serwera Xorg m.in.xorg.conf (o ile jest potrzebny)
  • /etc/yum.repos.d – zawiera pliki *.repo konfigurujące dostęp do repozytoriów Fedory
  • /home – katalog w którym tworzone są podkatalogi domowe użytkowników
  • /lib – katalog zawierający współdzielone biblioteki systemowe
  • /lib64 – podobnie jak /lib, ale zawiera biblioteki specyficzne dla systemu 64-bitowego
  • /media – punkt montowania wszystkich urządzeń zewnętrznych takich jak CD-ROM, USB itp.
  • /mnt – katalog pozostawiony ze względów historycznych związanych ze wsteczna kompatybilnością. Pełnił kiedyś podobne funkcje jak obecnie /media
  • /opt – miejsce instalacji dodatkowego oprogramowania zazwyczaj dostarczanego przez dostawców nie związanych z dana dystrybucją (np.CrossOver)
  • /root – katalog domowy użytkownika root.
  • /sbin – katalog zawierający programy i skrypty systemowe. Domyślnie niedostępny dla użytkownika tj. nieumieszczony w zmiennej systemowej $PATH zwykłych użytkowników.
  • /var – katalog na pliki wykorzystywane przez usługi systemowe.

Więcej na temat standardowej sturktury katalogów możesz przeczytać wydając w terminalu polecenie

man hier

lub na stronie Filesystem Hierarchy Standard Group (strona w języku angielskim)

Linuksowa organizacja danych

Jako że dyski w sensie oddzielnych logicznych tworów nie istnieją, pojawiają się nowe możliwości. Proces podłączania dysku lub partycji do głównego systemu plików nazywamy montowaniem. Dyski lub partycje podłączone do /, widoczne są w katalogach zwanych punktami montowania. Taki układ głównego systemu plików pozwala na rozbicie poszczególnych składników systemu na oddzielne partycje, dyski fizyczne lub nawet zasoby sieciowe (NFS). W ekstremalnym przypadku, możliwe jest korzystanie z komputera pozbawionego dysku twardego (diskless mode) z głównym systemem plików montowanym przez sieć. Najpopularniejszym rozwiązaniem w zastosowaniach desktop jest utworzenie oddzielnej partycji /home, gdzie przechowywane są wszystkie ustawienia i dane użytkownika. Jest to znaczące ułatwienie w przypadku reinstalacji systemu – wszystkie nasze dane pozostają nietknięte, bez potrzeby zabawy w kopie zapasową.

Wszystko jest plikiem
Jedną z unikalnych właściwości systemów Uniksopobnych, jest „wszystko jest plikiem”. Co to oznacza? Między innymi niewiarygodną wręcz elastyczność systemu operacyjnego jeżeli chodzi o dostęp do urządzeń. Wyróżniamy trzy rodzaje plików:

  • pliki zwykłe – programy, pliki danych, pliki tekstowe
  • katalogi – katalog to też plik, tyle że zawiera listę plików które się w nim znajdują
  • pliki specjalne – czyli np. urządzenia, potoki i tzw. gniazda (ang. sockets)

Jaki to ma wpływ na zwykłego użytkownika? Najprostszy przykład to stworzenie kopii partycji dysku. W innych systemach, potrzebne do tego są specjalne (najczęściej płatne) programy. W Linuksie wystarczy jedna linijka w konsoli. Jest to możliwe ponieważ wszystko jest plikiem.

Podstawowe polecenia

Na temat wszystkich poniższych poleceń oraz związanymi z nimi opcjami możesz przeczytać uruchamiając terminal i wpisując polecenie

man polecenie

Niektóre proste polecenia są wbudowane w domyślną powłokę „bash” i jeśli zamiast strony konkretnego polecenia dostajemy stronę o bash, wówczas lepiej użyć polecenia „help”:

help polecenie

Istnieją również strony „info”, często zastępujące strony man w przypadku obszerniejszych dokumentacji.

info polecenie
pinfo polecenie # wersja kolorowa

Wiele poleceń wydawanych w terminalu to mnemoniczne skróty słów angielskich np. ls – list, cp – copy, rm – remove itd. Warto to wiedzieć, bo ułatwi to ich zapamiętanie.
Składnię polecenia możemy uzyskać wpisując:

polecenie -h

lub

polecenie --help

Najważniejsze polecenie w systemie Fedora

su – (ang. substitute user) przenosi na konto innego użytkownika przejmując jego prawa np.

su - jasio

przenosi nas na konto jasio i nadaje wszystkie jego uprawnienia (oczywiście o ile znamy hasło). To samo polecenie bez podania nazwy użytkownika

su -

przenosi nas (po podaniu właściwego hasła) na konto root’a.

Polecenia związane z operacjami na plikach

Wybrane podstawowe polecenia (GNU Coreutils)

  • pwd – wyświetla katalog w którym się znajdujemy,
  • cd – zmienia katalog, np:
    cd – bez parametrów przechodzimy do katalogu domowego,
    cd ~/pobrane – przejście do katalogu pobrane w katalogu domowym użytkownika (tylda (~) oznacza katalog domowy),
    cd / – przejście do głównego systemu plików (cd /etc -przejście do katalogu etc, cd /usr/lib – przejście do katalogu /usr/lib, itd.),
    cd pobrane/muzyka – przejście do katalogu muzyka znajdującego się w katalogu pobrane,
    cd .. – przejście do katalogu nadrzędnego,
    cd ../.. – przejście dwa katalogi „wyżej”,
    cd ../pobrane – przejście do katalogu pobrane znajdującego się katalog „wyżej”,
  • touch – tworzy puste pliki (jeżeli plik istnieje, uaktualnia jego datę utworzenia), np:
    touch plik.txt plik1.txt – zostaną utworzone dwa pliki o podanych nazwach,
  • mkdir – tworzy katalogi, np:
    mkdir 1 2 3 4 5 – utworzono pięć katalogów o nazwach 1, 2, itd.,
    mkdir muzyka/ulubione – tworzy katalog ulubione w katalogu muzyka, jeśli taki katalog istnieje,
    mkdir -p muzyka/ulubione – tworzy katalog ulubione w katalogu muzyka. Jeśli katalog muzyka nie istnieje to zostanie także utworzony,
    mkdir katalog{1,2,3} – tworzy 3 katalogi, katalog1, katalog2 itd… („rozwijanie” takiej listy to funkcja shella)
    mkdir {a..z} – utworzy cały alfabet katalogów (przydatne do sortowania)
    mkdir -p projekt/{lib/ext,bin,src,doc/{pl/{html,pdf},en},test/stat} – utworzy całe drzewo katalogów
    projekt
    |– bin
    |– doc
    | |– en
    | `– pl
    | |– html
    | `– pdf
    |– lib
    | `– ext
    |– src
    `– test
    `– stat
  • ls – wyświetla listę plików, np:
    ls -a – wyświetla także ukryte pliki (ich nazwy zaczynają się od kropki),
    ls -l – wyświetla szczegółowe informacje o plikach,
    ls -F – do nazw plików dołączane są symbole oznaczające typ pliku – dla katalogów lewy ukośnik (/), dla plików wykonywalnych gwiazdka (*), dla linków symbolicznych (@),
    ls -R – wypisywana jest także zawartość podkatalogów,
    Wyświetlając listę plików można skorzystać także z polecenia grep, które filtruje otrzymane wyniki, np:
    ls | grep tar.bz2 – wyświetlone zostaną tylko archiwa bzip,
    ls | grep ‚file*’ – wyświetlone zostaną pliki, których nazwa rozpoczyna się od file,
    ls | grep -v jakiśplik – wyświetla wszystko, poza nazwą „jakiśplik”.
  • cp – kopiuje pliki i katalogi, np:
    cp plik1 plik2 – kopiuje zawartość pliku plik1 do plik2,
    cp plik1 pobrane/ – kopiuje plik1 do katalogu pobrane,
    cp plik1 pobrane/plik2 – kopiuje plik1 do katalogu pobrane jako plik2,
    cp -a katalog1/ katalog2/ – kopiuje całą zawartość katalogu katalog1 do katalog2,
    cp -f plik1 plik2 – wymusza wykonanie kopiowania, jeśli plik2 już istnieje zostanie on zastąpiony,
  • mv – przesuwa pliki i katalogi lub zmienia ich nazwę, np:
    mv plik1 plik2 – zmienia nazwę pliku plik1 na plik2,
    mv bardzodługanazwa{,.kopia} – zmienia nazwę pliku bardzodługanazwa na bardzodługanazwa.kopia
    mv -f plik1 plik2 – wymusza przeniesienie/zmianę nazwy, jeśli plik docelowy istnieje zostanie on zastąpiony,
    mv plik1 pobrane/ – przenosi plik plik1 do katalogu pobrane,
    mv plik1 pobrane/plik2 – przenosi plik plik1 do katalogu pobrane jako plik2,
  • rm – kasuje pliki i katalogi, np:
    rm plik1 plik2 plik3 – usuwa wymienione pliki,
    rm pl* – usuwa pliki, których nazwa zaczyna się od pl,
    rm -r katalog1 katalog2 katalog3 – usuwa wymienione katalogi,
    rm -f plik1 – wymuszenie usunięcia pliku, błędy i ostrzeżenia są ignorowane,
    rm -rf katalog1 – wymuszenie rekursywnego usunięcia katalogu,
    Warn.png
    Uwaga
    Wykonanie polecenia rm -rf powoduje usunięcie katalogów bez wyświetlenia ostrzeżeń. Należy stosować je niezwykle ostrożnie. Szczególnie niebezpieczne jest wykonywanie tego polecenia z uprawnieniami użytkownika root – można skasować całą zawartość dysku !!!
  • cat – wyświetla plik (nie stronicuje), np:
    cat plik.txt – wyświetla zawartość pliku plik.txt,
    cat -n plik.txt – umieszcza numery linii w wyświetlanym pliku,
  • more, less – wyświetlają pliki zatrzymując po każdym ekranie, np :
    ls -R | more – <ENTER> wyświetla kolejne pliki, <q> kończy wyświetlanie plików,
  • ln – tworzy dowiązanie (link) do innego pliku znajdującego się na dysku, np:
    ln -s plik.txt link – tworzy dowiązanie symboliczne link do pliku plik.txt. Jeśli plik.txt zostanie usunięty dowiązanie link nie będzie już prawidłowe,
    ln plik.txt link – tworzy „twarde” dowiązanie do pliku plik.txt. Jeśli plik.txt zostanie usunięty dowiązanie link będzie nadal poprawne. Można stosować w obrębie tej samej partycji,
  • chmod, chown – zmienia uprawnienia/właściciela do pliku/katalogu. Więcej informacji w artykule opisującym uprawnienia.

Wyszukiwanie plików

Find

Polecenie find przegląda określony katalog oraz znajdujące się w nim podkatalogi w poszukiwaniu plików spełniających wprowadzone kryteria. Składnia polecenia ma postać:

find katalog_wyszukiwania kryteria_wyszukiwania

W przypadku braku podania katalogu_wyszukiwania zostanie przeszukany katalog w którym aktualnie się znajdujemy. Można stosować wiele kryteriów jednocześnie.
Najczęściej stosowane kryteria:

  • nazwa
    find katalog_wyszukiwania -name szukana_nazwa

    find -name fedora – wyszukanie w bieżącym katalogu pliku o nazwie fedora,
    find -name „fedora*” – wyszukanie plików, których nazwa rozpoczyna się od słowa fedora,
    find -name „*fedora*” – wyszukanie plików, których nazwa zawiera słowo fedora,
    find /usr/bin -name krusader – szukanie pliku krusader w katalogu /usr/bin,
    find /usr/bin -name „kru*” – wyszukiwanie w katalogu /usr/bin plików których nazwa zaczyna się na kru,
    find -name „*.rpm” – wyszukiwanie plików o rozszerzeniu rpm,

  • typ
    find katalog_wyszukiwania -type f | d | l | b | c | s
    Szukane pliki mogą być: f – zwykłym plikiem, d – katalogiem, l – dowiązaniem, b – urządzeniem blokowym, c – urządzeniem znakowym, s – gniazdem.
    find -type d – wyszukiwanie katalogów,
    find -type d -name „*fedora*” – wyszukiwanie katalogów których nazwa zawiera słowo fedora,
    find /usr/bin -type l -name „g*” – wyszukiwanie w katalogu /usr/bin dowiązań (linków symbolicznych) o nazwach rozpoczynających się na g,
  • wielkość pliku
    find katalog_wyszukiwania -size +/-wielkość
    Wielkość pliku można podać w: bajtach – c, kilobajtach – k, megabajtach – M, gigabajtach – G. Podając znak „+” wyszukamy pliki większe od wprowadzonej wartości, analogicznie „-” pliki mniejsze.
    find -size +500M – wyszukanie plików większych niż 500 megabajtów,
    find -size +700M -name „The*” – wyszukanie plików większych niż 700 megabajtów których nazwa rozpoczyna się na The,
    find -size +500M -size -1000M – wyszukanie plików większych niż 500 i mniejszych niż 1000 megabajtów,
  • Pozostałe, wybrane kryteria wyszukiwania:
    • właściciel pliku : -user nazwa_użytkownika,
    • grupa do której plik należy : -group nazwa_grupy,
    • ostatni dostęp do pliku : -atime n, n -liczba dni które upłynęły od ostatniego dostępu,
    • ostatnia modyfikacja pliku : -ntime n, n – liczba dni od ostatniej modyfikacji,
    • uprawnienia pliku : -perm p, p – kod uprawnień pliku,
    • puste pliki : -empty,

Locate

Locate przeszukuje bazę danych z nazwami i lokalizacją plików. Baza plików jest aktualizowana raz dziennie. Jeśli zachodzi taka potrzeba można to zrobić samodzielnie wydając jako root polecenie updatedb.

locate amarok – wyszukanie plików i katalogów zawierających amarok,
Bardziej przydatne może okazać się filtrowanie wyników za pomocą grep, np:

locate amarok | grep rpm – wyszukanie pakietów rpm zawierających amarok,
locate amarok | grep /usr/bin – pliki zawierające amarok znajdujące się w katalogu /usr/bin.

Whereis

Polecenie whereis wyszukuje pliki binarne (programy) oraz strony man danego polecenia, np:

whereis init

Napisz komentarz

Polska Społeczność Fedora Linux.
Logo Fedora jest znakiem towarowym należącym do Red Hat Inc. | Polska strona fedora.pl jest administrowana i utrzymywana przez osoby niezależne od Red Hat Inc.
O ile treść nie stanowi inaczej, artykuły na tej stronie są dostępne na licencji Creative Commons Attribution-ShareAlike 4.0 International License. | Kontakt do redakcji: redakcja fedora.pl