Podstawy Linuksa

Z Fedora Wiki
Skocz do: nawigacji, wyszukiwania
Tools.png
Ta strona wymaga rozbudowy i uzupełnienia
Do zrobienia: rozwinięcie podstawowych poleceń, rozwinięcie informacji o podkatalogach szczególnie w katalogu /etc, ...
http://www.linuxdriver.co.il/system
Interaktywna mapa GNU/Linux OS i FOSS

Spis treści

Podstawy Linuksa

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/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)

Zalety Linuksowej organizacji 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

Inne źródła pomocy, polecane strony

Osobiste
Przestrzenie nazw

Warianty
Działania
Wiki
Nawigacja
Inne
Narzędzia