23 stycznia 2022
56 pytań i odpowiedzi o Linuksa
Przedstawiam zebrane pytania i odpowiedzi dotyczące systemu Linux. Możesz je wykorzystać, aby sprawdzić swoja wiedze na temat systemu . Mogą tez posłużyć jako pytania rekrutacyjne na stanowiskach technicznych, gdzie działamy z Linuksem.

- Czym jest Linux?
Linux to system operacyjny wzorowany na systemie Unix.. Jego zadaniem jest zarządzanie zasobami sprzętowymi (procesor pamięć, dysk) i magazynowymi a także komunikacja pomiędzy sprzętem a oprogramowaniem. Pierwsza wersja została stworzona przez Linusa Torvaldsa w 1991 roku Linux. Obecnie jest instalowany na każdym typie urządzenia – od serwerów po urządzenia IoT. - Jakie są główne cechy Linuksa?
Jest darmowy i jednoźródłowy.
Jest stabilny i elastyczny. Linux może działać przez dłuższy czas bez awarii i jest uważany za bardzo odporny na zagrożenia bezpieczeństwa. Łatwo można go zmieniać dostosować do swoich potrzeb.
Jest bezpieczny. Zapewnia bezpieczeństwo za pomocą funkcji uwierzytelniania, szyfrowania, czy inspekcji bezpieczeństwa i kontroli dostępu do systemu plików.
Jest wielozadaniowy. Wiele aplikacji może działać jednocześnie.
Obsługa aplikacji. Posiada własne repozytorium oprogramowania, czyli miejsce przechowywania, z którego można pobrać i zainstalować dedykowane oprogramowanie. - Jakie są podstawowe elementy systemu Linux?
Kernel (jądro) – rdzeń systemu Linux i jest ogólnie odpowiedzialny za wszystkie główne działania systemu operacyjnego, takie jak zarządzanie procesami, zarządzanie sprzętem, itp.
Biblioteki systemowe – są to specjalne funkcje lub programy, za pomocą których aplikacje lub narzędzia mogą uzyskiwać dostęp do funkcji jądra.
Narzędzie systemowe – odpowiedzialne są za wykonywanie specjalnych zadań. . Pozwalają użytkownikom wygodnie i bezpiecznie zarządzać komputerem.
Shell – to środowisko, w którym możemy uruchamiać nasze polecenia, skrypty i programy. Jest to interfejs między użytkownikiem a systemem. - Jaka jest strukturę katalogów ma Linux?
Podstawowe katalogi mogą się trochę różnic w zależności od dystrybucji Linuksa.
/bin – katalog na binarki, programy
/boot – katalog zawiera niezbędne rzeczy do bootowania. Użytkownik zwykle tam z nie zagląda
/dev – tu znajdziesz wszystkie urządzenia jakie widzi system/etc – tu znajdziemy pliki konfiguracyjne programów
/home – katalog domowy użytkownika
/lib – katalog na biblioteki
/lib32- katalog na biblioteki
/lib64- katalog na biblioteki
/mnt – tu znajdziesz inne zamontowane urządzenia na przykład pendrive (zwykle montowanie przez użytkownika)
/media – tu znajdziesz inne zamontowane urządzenia na przykład pendrive (zwykle montowanie przez system)
/opt – opcjonalny folder na instalację programów (na przykład virtualbox tu wrzuca pliki)
/proc – katalog na procesy
/root – katalog domowy użytkownika root
/run – katalog dzie system przechowuje rzeczy uruchomione w ram
/srv – katalog na pliki usług. Na przykład pliki usługi FTP
/sys – zawiera systemowe pliki
/sbin – katalog na narzędzia systemowe (dla administratorów)
/tmp – katalog na tymczasowe pliki
/usr – katalog na aplikacje użytkownika
/var – zawiera zmienne programów. Na przykład /var/log to logi - Co to jest konto root?
Konto root jest kontem o najwyższych uprawnieniach, takie konto administratora systemu i pozwala na pełną kontrolę nad systemem. Tutaj możesz tworzyć i utrzymywać konta użytkowników, przypisując różne uprawnienia do każdego konta. Jest to domyślne konto w każdej dystrybucji Linuksa. - Co to jest BASH?
BASH (Bourne Again Shell) to interpreter języka poleceń. Został napisany przez Briana Foxa dla GNU. Jest to domyślna powłoka (Shell) użytkownika w większości dystrybucji systemu Linux. - Co to jest Kernel (jądro)?
Jest to podstawowy element systemu Linux. To taki menedżer zasobów, jest mostem pomiędzy sprzętem a oprogramowaniem. Jest pierwszym programem wczytywanym po uruchomieniu komputera. Jest tak zwanym programem niskiego poziomu (low-level). Do zadań należy zarządzanie pamięcią, procesami, urządzeniami, dyskami i dostępem. - Jakie są tryby pracy z Linuksem?
Są dwa tryby pracy z Linuksem: graficzny (np. KDE) i w konsoli linii poleceń (Shell). - Jakie są główne dystrybucje Linuksa?
Wśród głównych dystrybucji Linuxa można wyróżnić: Debian, Fedora, SUSE - Jakie są popularne dystrybucje Linuksa?
Ubuntu, Linux Mint, Manjaro, Elementary OS, CentOS - Jakie są rodzaje Shella?
CSH (C Shell), KSH (Korn Shell), BASH (Bourne Again Shell), TCSH, ZSH, Bourne Shell - Co to są deamony w Linuksie?
To są procesy, które głównie działają we tle. Takie usługi (services) w Windows. Zwykle startują, gdy system wstaje i kończą pracę gdy system jest zamykany. Rozszerzają funkcjonalność systemu operacyjnego.
Na przykład deamon odnośnie drukowania nazywa się Line printing daemon. - Co to jest LILO?
LILO (Linux Loader) to tak zwany bootloader dla Linuksa, który służy do ładowania Linuksa do pamięci i uruchamiania systemu operacyjnego. Znany jest również jako menedżer rozruchu, który ułatwia także wybór systemu komputera (multi-boot). Może działać jako główny program rozruchowy lub pomocniczy program rozruchowy. Wykonywać różne funkcje, takie jak: lokalizowanie jądra, identyfikowanie innych programów pomocniczych, ładowanie do pamięci i uruchamianie jądra.
Inne przykłady bootloaderów: GRUB, BURG, Syslinux - Co to jest Swap?
Swap czyli przestrzeń wymiany, to taka specjalna przestrzeń na dysku twardym (partycja systemowa), która jest używana szczególnie, gdy ilość pamięci fizycznej RAM jest pełna. Jest to swego rodzaju substytut pamięci fizycznej. Jego główną funkcją zastępowanie pamięci RAM, gdy tej nie wystarcza do przechowywania wszystkich wykonywanych programów i wymagane jest więcej miejsca. W prostych słowach: swap może być używany jako rozszerzenie pamięci RAM przez Linuksa. Zwykle rozmiar swapa wynosi dwukrotność zainstalowanej pamięci RAM.
Korzystanie ze swapa jest o wiele wolniejsze niż z pamięci RAM. - Co to jest LVM?
LVM (Logical Volume Management) to narzędzie do zarządzania woluminami logicznymi. - Co to jest cron?
Jest to program/usługa (daemon), który uruchamia inne zadania według harmonogramu. - Co to jest crontab?
Jest to plik konfiguracyjny gdzie zapisane jest zadanie do wykonania przez usługę cron. - Jakie są stany procesu w Linuksie?
New/Ready to stan w którym proces jest utworzony i gotowy do uruchomienia
Running to stan w którym proces działa (jest wykonywany).
Blocked/Wait to stan w którym proces oczekuje na akcje ze strony użytkownika lub stan w którym proces oczekuję ponieważ nie ma aktualnie zasobów do wykonania (brak pamięci, miejsca lub dostępu).
Completed/Terminated to stan procesu, który zakończył działanie lub został przerwany przez system.
Zombie to stan procesu który został przerwany (zwykle nieoczekiwanie) a informacje odnośnie procesu nadal istnieją w tablicy procesów. Zombie to uszkodzona instancja procesu. - Co to jest Zombie proces?
Jest to proces w Linuksie nazywany również niedziałającym lub martwym procesem, to proces, który zakończył wykonywanie, ale jego wpis pozostaje w tabeli procesów. Zwykle dzieje się tak z powodu braku korespondencji między procesami rodzica i dziecka. Ten proces występuje dla procesu podrzędnego, ponieważ proces nadrzędny musi odczytać status procesu podrzędnego. Po zakończeniu przy użyciu wywołania systemowego wait proces ten jest usuwany z tabeli procesów. - Czym się różni wątek od procesu?
Proces to działający program z przydzielonymi zasobami, takimi jak: obszar pamięci, procesor, sockety, urządzenia, itp. Natomiast wątek działa w ramach procesu i korzysta z jego zasobów. Tworzenie wątków jest szybsze aniżeli procesu, jednak wątki zużywają więcej zasobów w trakcie działania. Zakończenie wątku nie zakańcza procesu. - Co to jest SSH?
SSH (Secure Shell) jest protokołem używanym do bezpiecznego łączenia się zdalnie z systemami Linux. Przesyła dane za pośrednictwem zaszyfrowanych kanałów. Aby połączyć się ze zdalnym serwerem przez SSH, musisz posiadać adres IP i dane dostępowe (użytkownik i hasło). SSH działa na porcie 22. - Co to jest softlink?
Soft link (symbolic link) jest jak skrót w Windowsie. Plik-wskaznik, który wskazuje na inny plik. Ma inny numer inode. - Co to jest hardlink?
To jest jakby kopia oryginalne pliku. Wskazuje na ten sam inode. - Co to jest inode?
Inode czyli index node to unikalna nazwa nadana każdemu plikowi przez system operacyjny. Przechowuje różne informacje o plikach, takie jak własność, rozmiar pliku, typ pliku, tryb dostępu, liczba łączy itp.
Inode nie zawiera pliku samego pliku i zawiera też nazwy pliku. - Jakie są typy uprawnień na plik lub katalog w Linuksie?
Read ( r ) – pozwala otworzyć i przeczytać plik lub wylistować katalog
Write (w ) – pozwalaj otworzyć i zmodyfikować plik lub dodać nowy plik do katalogu
Execute ( x ) – pozwala wykonać/uruchomić plik lub wyszukać plik w katalogu - Jaki plik automatycznie montuje system plików (mount file system)
Fstab który znajduje się w katalogu /etc/
Edytować go możemy poleceniemsudo gedit /etc/fstab
- Co to są strumienie (streams) w Linuksie?
Strumień to rodzaj kanały komunikacyjnego do przesyłania danych, pomiędzy programem a środowiskiem. Strumienie tworzone są podczas uruchamiania programu. W Linuksie występują trzy rodzaje strumieni:
stdin – standardowe wejście (np. z klawiatury)
stdout – standardowe wyjście (np. na ekran, do pliku)
stderr – strumień błędów (np. na ekran, do pliku) - Co to jest Process Id (PID)?
Identyfikator procesu (identyfikator): Jest to unikalny identyfikator nadawany każdemu procesowi. Służy po prostu do jednoznacznej identyfikacji aktywnego procesu w całym systemie, dopóki proces się nie zakończy. - Jaki jest pierwszy proces uruchamiany przez kernel?
Ten proces to init i jego Process Id to 1 - Jak zakończyć lub przerwać działanie procesu?
Każdy proces na swoje id (PID), które można wykorzystać jako prefiks do poleceniakill
- Jakim poleceniem sprawdzić status procesów?
Najlepiej poleceniem z paramtremps -ux
- W jaki sposób proces rodzica i dziecka komunikują się ze sobą?
Proces nadrzędny komunikuje się z procesem podrzędnym za pomocą potoków, gniazd (sockets), kolejek wiadomości, itp. - Jakiego polecenia użyć aby sprawdzić rozmiar plików lub katalogu?
Poleceniadu
(disk usage), najlepiej z parametrem-h
- Jakim poleceniem policzymy znaki, słowa lub linie w pliku?
Poleceniemwc
(word count). - Do czego jest polecenie lsof?
To polecenie służy do wylistowania otwartych plików z informacja jaki proces ich używa. - Do czego służy polecenie grep?
Grep służy do wyszukiwania i wyodrębniania linii zawierających ciąg znaków pasujący do szukanego wyrażenia. - Do czego służy polecenie env?
Polecenieenv
służy do wylistowania zmiennych środowiskowych. Może również uruchomić inny proces w innym środowisku bez żadnych modyfikacji aktualnego. Innymi Słowy pozwala uruchamiać programy w zmodyfikowanym środowisku. Jest zwykle używany przez skrypty do uruchomienia interpretera. - Co to jest polecenie pwd?
Print Working Directory – wyświetla ścieżkę gdzie aktualnie się znajdujemy w strukturze katalogów. - Jakim poleceniem sprawdzimy wolną pamięć RAM?
free, top
(wykorzystanie pamięci)htop
(memory load każdego procesu). - Co to jest pipe I ?
Pipe jest to przekierowanie wyniku jednego polecenia jako danych wejściowych do drugiego polecenia. - Jakim poleceniem sprawdzimy komunikaty bootowania?
dmesg
- Jak dostac sie do kolejnych partycji w Linuksie?
Poprzez kolejne urządzenia/dev/hda1, /dev/hda2, /dev/hda3
itd. - Do czego służy polecenie df?
Poleceniedf
(disk free) służy do wyświetlenia wolnego miejsca na dysku - Co to jest load average?
Informuje o obciążeniu systemu. Jest to średnie obciążenie systemu obliczane w danym okresie czasu – odpowiednio dla 1 minuty, 5 minut i 15 minut. Można je znaleźć za pomocą poleceń „top” i „uptime”.
Sama dużą wartość AV nie określa nam że brakuje nam mocy. Dodatkowo warto sprawdzić wartość iowait bo często wyskoki load jest spowodowany słabą wydajnością dysku i operacji dyskowych. - Do czego używany jest /etc/resolv.conf ?
Plik zawiera listę serwerów DNS. - Co to jest plik /etc/hosts ?
Plik mapuje hosty na IP jak w Windowsie plik w kataloguC:\Windows\system32\drivers\etc\hosts
- Jakie są zalety teamingu kart NIC?
Load Balancing , Failover - Do czego służy polecenie netstat?
To polecenie generalnie służy do wyświetlania połączeń tcp/ip i generalnie troubleshootingu.
Na przykład aby wyświetlić wszystkie nasłuchujące i serwisy w systemie trzeba wydać polecenie netstat -ntlp - Jakiego polecenia użyć aby sprawdzić domyślny poziom uruchomienia systemu?
W pliku /etc/inittab - Co to jest samba?
Jest to oprogramowanie dla Linuksa umożliwiające komunikacje w sieci z maszynami Windows wykorzystujących protokół SMB czy CIFS. - Do czego jest iptables?
Narzędzie iptables blokuje lub zezwala na ruch na hoście. Działa podobnie do firewalla. Może uniemożliwić konkretnym aplikacjom odbieranie lub przesyłanie żądań. - Gdzie ustawić adres IP na Ubuntu?
Najlepiej w pliku/etc/network/interfaces
. Na przykład:iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1dns-nameservers 8.8.8.8
Natomiast dla adresu z pobieranego z DHCP:auto eth0
iface eth0 inet dhcp - Podaj przykład symboli wieloznacznych w Linuksie
* (gwiazdka) – zastępuje dowolny ciąg znaków
? (znak zapytania) – zastępuje dowolny jeden znak - Jak łączyć wiele poleceń w linuksie w jednej linii?
Za pomocą średnika ; - Podaj przykłady systemu plików wykorzystywanego w systemach Linux
ext3/ext4 – obecnie najpopularniejszy system plików. Wydajny i bezpieczny.
Btrfs – system plików wykorzystywany głównie w Fedorze i OpenSuse.
ZFS – system plików idealny do macierzy dyskowych.
XFS – system plików do obsługi bardzo dużych dysków
ReiserFS – bardzo dobrze obsługuje duża ilość małych plików - Co to są sygnały w Linuksie?
Do komunikacji pomiędzy procesami w systemie wykorzystywane są potoki, sockety sieciowe, pliki i sygnały. Sygnały właściwie służą do manipulowania procesami, a w większości do ich zakończania.
Sygnały działają asynchronicznie i w momencie wystąpienia sygnału działanie programu jest przerywane aby obsłużyć sygnał.
Sygnały mogą być generowanie przez jądro, inny proces, czy nawet terminal – wciskając kombinacje CTRL+Z
Wszystkich sygnałów jest 31. A poniżej parę przykładów:
SIGHUP id: 1 – zerwanie komunikacji z terminalem sterującym
SIGINT id: 2 – przerwanie procesu za pomocą kombinacji klawiszy (CTRL+Z)
SIGQUIT id: 3 – proces zakończony przez użytkownika
SIGKILL id: 9 – proces natychmiastowo przerwany
SIGTERM id: 15 – proces zakończony poprawnie
c.d.n.
Polecane książki:
