Dwie komendy w jednej linijce ; passwd – zmiana hasła obecnie zalogowanego użytkownika whoami – sprawdza nazwe użytkownika obecnie zalogowanego date – pokazuje obecna pełną datę z godzina (nazwa dnia i miesiąca jest słownie) date +%R - pokazuje tylko godzine date +%x – pokazuje sama date w wersji liczbowej file /etc/passwd – wyswietla jakiego typu jest plik passwd cat /etc/passwd – polecenie pozwala zobaczyć zawartość danego pliku, cat file1 file 2, wyswietla zawartość dwóch plikow na raz, pozwala przekierować zawartość do terminala lub innego pliku. (cat wyswietla caly plik na raz w terminalu) less /etc/passwdd – to co cat tylko wyswietla zawartość w formie stron head – wyswietla pierwsze 10 linii zawartości pliku // head -n 5 etc/passwd wyswietla 5 linie od góry z pliku tail – wyswietla ostatnie 10 linii zawartości pliku //tail -n 5 etc/passwd wyswietla 5 linie od dolu z pliku wc etc/passwd (wyswietla liczbe linii,słów,znaków) wc -l (linie), wc -w (słowa), wc -c (znaki) history – pokazuje historie wpisywania ESC+. pobiera argument z poprzedniej komendy Skakanie po wierszu polecen: CTRL+A – początek komendy CTRL+E – koniec komendy CTRL+U – usuwa to co jest przed kursorem CTRL+K – usuwa to co za kursorem CTRL+LewaStrzałka – skacze do poprzedniego wyrazu w konsoli CTRL+PrawaStrzalka – skacze do następnego wyrazu w konsoli CTRL+R – sprawdza w historii uzycie danej komendy Chapter 3 – zarządzanie plikami z wiersza poleceń Foldery: /usr – zainstalowane oprogramowanie, biblioteki, dane tylko do odczytu /etc – pliki konfiguracyjne system /var – zmienne specyficzne, pliki dynamicznie zmieniające się takie jak pamięć cache, pliki logów /run – dane wykonawcze dla procesów włączonych od ostatniego rozruchu. Zawiera ID procesów /home – folder gdzie użytkownik przechowuje swoje dane personalne i konfiguracyjne swoich programów /root – folder administratora /tmp – folder dla plików tymczasowych, pliki które nie zostały zmienione lub zmodyfikowany w ciągu 10 dni są usuwane z tego folderu automatycznie. /boot – folder zawiera pliki niezbędne do rozruchu /dev – pliki urządzeń które są używane przez system do dostępu do hardware pwd – pokazuje pełną ścieżkę folderu w którym się obecnie znajduje touch – aktualizauje znacznik czasu pliku bez modyfikowania go. Tworzenie pustych plikow do cwiczen ls – wyświetlanie zawartości, ls -l (wszystkie informajce), ls -la (wszystkie fitry, ukryte pliki tez), ls -R wyswietla rekurencyjnie zawartość wszystkich folderów i tych folderów też, do samego końca zawartość mkdir – tworzy katalog mkdir Test{0..10} utworzy 10 katalogow o nazwie Test1, Test2, Test3 itd. mkdir -p – tworzenie wielu katalogów oddzielonych spacjami w jednej linii cp asd kopia – kopiuje plik asd do pliku kopia /jesteśmy w folder1, cp ~/Folder2/plik . (kropka to lokalizacja obecna) cp -r folder1 folder 2 – kopiuje folder1 z zawartoscia do folderu2. mv file new-file – zmienia nazwe lub przenosi plik lub katalog rm file – usuwa plik rm -r folder – usuwa folder z zawartością rm -ri folder – usuwa folder z zawartością, ale pyta się nas o każdy podfolder rmdir – usuwa pusty folderls Hard Links, Soft Links – wiele nazw wskazuje na ten sam plik Hard Links – każdy plik na początku ma 1 hard link czyli swoją nazwę, jak tworzymy nowy hard link to tworzymy inną nazwę która wskazuje na ten sam plik. Jak usuniemy jeden hardlink, a drugi zostanie to plik dalej znajduje się w pamięci ln file.txt /tmp/file-link.txt – tworzymy hard link pliku file.txt w folderze tmp o nazwie file-link.txt (LN) df – pokazuje system plików SoftLink – nie jest to zwykły plik, tylko specjalny typ pliku który wskazuje na istniejący plik lub folder, może wskazywać na dwa pliki o różnych systemach plików, może wskazywać na plik albo na folder, nie tylko na zwykły plik ln -s /tmp /home/student/tempdir – tworzy softlink folderu tmp w fikderze student o nazwie tempdir * dowolna ilość znakow ? jeden znak [abc] dowolny z tych znakow [!abc] nie zawiera jednego z tych znakow [^abc] to samo co wyżej [[:alpha:]] dowolny znak z alfabetu [[:lower:]] dowolny znak maly [[:upper:]] dowolny znak duzy [[:alnum:]] dowolny znak liczbowy lub cyforyw [[:punct:]] dowolny znak do wydruku nie spacja [[:digit:]] dowolna cyfra od 0 do 9 [[:space:]] dowolny biały znak Ls a* wyswietla plik który zaczyna się od a i ma dowolna ilość roznych znakow dalej, ls *a* zawiera w nazwie znak a Ls abc?? Wyświetla plik który zaczyna się na (abc) i ma dwa dowolne znaki – czyli ma 5 znakow, ls ???? – plik o 4 znakach Ls [abc]* dowolny plik zaczynający się na dowolna litere pomiędzy nawiasem kwadratowym ~ znak tyldy wskazuje na katalog domowy użytkownika echo służy do wyświetlania wartości znaków. echo raz (wyświetli raz), echo {raz,dwa}.text (wyświetli raz.text dwa.text) echo plik{1..4}.txt wyświetli plik1.txt plik2.txt plik3.txt plik4.txt echo plik{a{1,2},b,c}.txt wyświetli plika1.txt plika2.txt plikb.txt plikc.txt Tworzenie zmiennych przechowujących tekst: siema=op, echo ${siema} wyświetli op, echo {siema} wyświetli {siema} echo dzis jest ${date +%A} // wyświetli dziś jest poniedziałek Chapter 4 – korzystanie z pomocy w terminalu man – komenda zawiera informacje na temat komend, np. man passwd pokaze informacje na temat komendy passwd man -k whereis passwd – lokalizuje zrodlo komendy passwd man tar – tekstowa dokumentacja pinfo tar pinfo informacje – poruszamy się za pomocą strzałek, wybieramy enterem man –t passwd > passwd.ps - zapisujemy do pliku informacje z mana Chapter 5 – tworzenie, przeglądanie i edytowanie plików tekstowych > zapisywanie informacji do pliku date > /tmp/datka zapisujemy date do pliku datka tail -n 100 /var/log > /tmp/elo zapisujemy ostatnie 100 linijek z log do elo VIM h lewo l prawo k góra v dół :wq wychodzi z zapisywaniem :q! bez zapisywania i – wprowadzanie danych CTRL+V – przy zaznaczaniu obszaru zmienna = hello echo zmienna – wyświetli zmienna echo $zmienna – wyświetli hello Chapter 6 – zarządzanie lokalnymi użytkownikami i grupami id – informacje o obecnie zalogowanym użytkowniku id user02 – informacje o użytkowniku user2 ps – procesy su - user2 przelogowanie uztykownika su - przelogowanie na roota sudo i komenda uruchamiamy komendę z prawami roota echo $HOME wyświetla folder domowy uzytkownika echo $PATH wyswietla ścieżkę useradd user01 tworzy użytkownika ale bez hasla i nie da się na niego zalogowac passwd user01 tworzymy hasło do niego usermod modyfikacja konta użytkownika -c dodaje realne imie w komentarzu do konta usermod -c „uzytkownik1” user01 -g ustawia grupe podstawowa sudo usermod –g grupa01 user02 -G oddzielamy przecinkami, lista grup dodatkowych użytkownika -a opcja używana z –G po to żeby nie zamieniać grup dodatkowych tymi ktrore będziemy dodawać tylko je zaktualizujemy sudo usermod -aG grupa01 user03 -d określa konkretny katalog domowy dla użytkownika -m musi być uzyty z opcją –d przenosi katalog domowy do nowej lokacji -s określa konkretną powłokę logowania -L blokuje konto -U odblokowuje userdel user01 usuwa szczegoly z katalogu /etc/passwd ale zostawia katalog domowy tego użytkownika userdel –r user01 usuwa szczegoly z katalogu /etc/passwd oraz usuwa katalog domowy sudo groupadd -g 1000 grupa01 // -g ustawia konkretny indenfyfikator 1000 sudo groupadd –r grupa02 // -r tworzy grupe z ID wystepujacym w zakresie podanym w /etc/login.dfs sudo groupmod -n group002 group02 // -n modyfikuje nazwe grupy sudo groupmodd -g 2000 group02 / / zmienia identyifikator grupy GID sudo groupdel group02 //usuwa grupe group02 sudo chage -m 0 -M 90 –W 7 –I 14 user02 - edytuje polityke hasła –m(minimalny wiek) –M(maksymalny wiek) –W(okres ostrzegawczy) –I(okres bezczynności hasła) chage –d 0 user03 //użytkownik musi zmienić haslo przy następnym logowaniu chage –I user03 //wyswietla szczegóły przedawnienia hasła chage –E 2020-01-01 user03 //powoduje ze haslo użytkownika user03 wygasnie w tej dacie date –d „+45 days” +%F Chapter 7 – kontrolowanie dostępu do pliku r read w write x execute (wykonać) ls –l test -rw-rw-r--. – (zwykly plik), d (folder) l (softlink) właściciel + dodawanie uprawnienia - odejmowanie uprawnienia = ustawianie uprawnienia u – użytkownik g – grupa o – pozostali a – wszyscy chmod –R rekurencyjnie ustawia uprawnienia dla plików w całym drzewie katalogów chmod –R g+rwX dodajemy uprawnienia dla grupy read oraz write, ten X jest po to, ze jeśli plik ma już execute (x) dla tej grupy to jego uprawnienia są aktualizowane, to znaczy nie traci tego x chmod go-rw file1 usuwa uprawnienie read i write dla grupy i pozostałych do pliku file1 chmod a+x file2 dodaje uprawnienie wykonania dla wszystkich do pliku file2 chmod 541 - r-xr----x chmod 644 - rw-r--r-- wlasciciel może odczytac i pisac, grupa może odczyt, wszyscy mogą odczyt chmod 777 rwxrwxrwx chown student plik zmiana wlasciciela pliku chown –R student plik rekurencyjna zmiana wlasciciela dla drzewa plikow chown :admins plik zmienia grupe pliku chgrp admins plik zmienia grupe pliku chown visitor:guest plik zmienia wlasciciela oraz grupe pliku chown :consultants /home/consultants ustawiamy grupe konsultants dla pliku consultants specjalne pozwolenie u+s (suid) =4 plik zostanie wykonany jako użytkownik który jest jego właścicielem a nie użytkownik który go uruchomił, dla katalogu brak efektu g+s (sgid) =2plik zostanie wykonany jako grupa która jest właścicielem pliku g+s (sgid) katalog – pliki które będą utworzone w tym katalogu będą miały ustawione właściciela grupy takie jak ten katalog o+t (sticky) =1 dla pliku bez efektu, dla katalogu – użytkownicy z dostępem do zapisu do katalogu mogą usuwać tylko pliki których sa właścicielami, nie mogą usuwać ani wymuszać zapisów w plikach należących do innych użytkowników chmod 2777 /home/plik <- używamy tutaj tego g+s chmod 4777 /home/katalog <- używamy tutaj tego u+s umask (user mask) domyslna maska uprawnien katalogow i plikow zmieniając nasz umask modyfikujemy domyślne uprawnienia umask 002 plik -rw-rw-r-- katalog drwxrwxr-x umask 0 plik -rw-rw-rw- katalog drwxrwxrwx umask 007 plik -rw-rw---- katalog drwxrwxrwx umask 027 plik -rw-r----- katalog drwxr-x--- Chapter 8 – monitorowanie i zarządzanie procesami Proces-działająca instancja uruchomionego programu wykonywalnego, proces składa się z: Przestrzeń adresowa przydzielonej pamięci, właności bezpieczeństwa, uprawnienia, jeden lub więcej wątków wykonywania kodu programu, stan procesu. Istniejący proces (parent) duplikuje własną przestrzeń adresową (fork) by stworzyć nowy proces (child) Każdy proces ma swoje id o nazwie PID, proces – parent ma PPID. PID oraz PPID są elementami nowego srodkowiska procesu Stany procesów: Running R – proces jest uruchomiony, może wykonywać procedury lub być w kolejce do wykonania Sleeping S – proces czeka na pewien warunek lub sygnał D – nie reaguje na sygnały. Uzywany tylko gdy przerwanie procesu może spowodować nieprzewidziany stan urządzenia K – identyczny do stanu D ale zmodyfikowany,tak by umożliwić zadanie oczekujące na odpowiedź na sygnał, że należy go zabić (całkowicie wyjść) I – podzbiór stanu D. Nie można zliczyć procesów gdy obliczanie średniej jest obciążone. Stopped T – proces został zatrzymany (zawieszony), zazwyczaj przez sygnał wysłany przez użytkownika lub inny proces. Proces może być wznowiony przez inny sygnał który go powróci do Running T – proces który jest debugowany jest również tymczasowy Zombie Z – Proces potomny sygnalizuje swojemu rodzicowi, gdy wychodzi. Wszystkie zasoby oprócz tożsamości procesu (PID) są zwalniane. X – Gdy rodzic czyści (zbiera) pozostałą strukturę potomną procesu, proces jest teraz całkowicie zwolniony. Ten stan nigdy nie będzie przestrzegany w narzędziach listowania procesów. Wyświetlanie procesów: ps aux wyswietla wszystkie procesy łącznie z procesami bez kontroli terminala. ps lax dostarcza nam więcej technicznych szczegółów ps –ef również wyświetla wszystkie procesy ps bez zadnych opcji wyświetli procesy z tym samym ID użytkownika na jakim jesteśmy zalogowani ps wyswietla procesy raz, tak jakby zdjęcie z danego momentu, top na bieżąco pokazuje procesy sleep 10000 & uruchamia proces w tle jobs sprawdza stan naszych procesow fg %1 usypia/zatrzymuje proces <- po % jest numer naszego procesu krory możemy podejrzeć komenda jobs po uruchomieniu tej komendy: CTRL+Z uspi proces a CTRL+C usunie go ps j wyswietla procesy z identyfikatoram bg %1 uruchamia zatrzymany proces kill -l listuje nazwe i numer wszystkich dostępnych sygnałów sleep 100 & sleep 200 & sleep 1000 & uruchomione 3 procesy sleep killall sleep usuwa wszystkie procesy sleep uptime komenda pokazuje obecny czas, jak długo komputer pracuje, ile uzytkownikow jest, aktualne średnie obciążenie lscpu komenda pokazuje jak dużo jest procesorow, ogolne informacje o CPU grep określa liczbe logiczna procesorow Chapter 9 – kontrola usług i procesów w tle Daemons – procesy uruchomione w tle wykonujące różne zadania, zazwyczaj uruchamiane są automatycznie podczas bootowania i pracują do wyłączenia komputera lub wyłączenia ich manualnie. Nazwy procesów daemonowych często kończą się na literę d. systemd – zarządca procesów działających w tle (daemons), pozwala uruchomić oraz zarządzać usługami. W RHEL pierwszym procesem (PID1) jest systemd. Niektóre funkcje dostarczone przez systemd: - uruchomienie wielu usług jednocześnie, przez co zwiększają szybkość rozruchu systemu - uruchomienie procesów na żądanie bez potrzeby oddzielnej usługi - automatyczne zarządzanie usługami, co może zapobiec długim przerwom w działaniu. Na przykład usługa zależna od sieci nie podejmie próby uruchomienia, dopóki sieć nie będzie dostępna - metoda wspólnego śledzenia procesów za pomocą grup kontrolnych systemu Linux systemd używa jednostek do zarządzania różnymi typami obiektów - service units mają rozszerzenie .service i reprezentują usługi systemowe – używane to uruchamiania często dostępnych procesów takich jak serwer WWW - socket units mają rozszerzenie .socket i reprezentują gniazdo komunikacji międzyprocesowej które systemd powinien monitorować. Np. jeśli klient łączy się z gniazdem, systemd włączy proces i przekaże połączenie do niego. Socket units używane są do opóźnienia startu usługi w trakcie bootowania systemu oraz do uruchamiania rzadziej używanych usług na żądanie - path units mająrozszerzenie .path i są używane do opóźnienia aktywacji usługi dopóki nastąpi konkretna zmiana systemu plików. To jest często używane dla procesów które używają katalogów buforowania takich jak system drukowania systemctl komendą badamy aktualny stan systemu systemctl –t help wyświetli dostępne typy jednostek za pomocą system ctl można skracać nazwy jednostek, przetrwarzać wpisy drzewa i opisy jednostek systemctl list-units --type=service wyświetli procesy .service systemctl list-units --type=socket --all systemctl bez zadnych argumentów wyświetli zarówno załadowane jak i aktywne procesy systemctl list-unit-files --type=services wyświetlenie stanó☺w wszystkich zainstalowanych plików systemctl status sshd.service wyswietla status określonej jednostki (ssh.service w tym przypadku) Stany jednostek: Loaded – gdy service unit jest załadowana do pamięci Active – gdy service unit jest uruchomiona i jeśli jest to pokazuje jak długo jest już uruchomiona Main PID – identyfikator procesu PID, w tym nazwa polecenia Status – dodatkowe informacje o usłudze systemctl is-active sshd.service //sprawdzamy czy dana usługa jest uruchomiona systemctl is-enabled ssh.service //sprawdzamy czy dana usługa jest dostępna do startu podczas bootowania systemctl is-failed sshd.service //sprawdzamy czy dana jednostka nie powiodła się podczas uruchamiania systemctl --failed --type=service //pokazuje wszystkie jednostki failed systemctl start sshd.service //uruchamianie procesu systemctl start sshd //nie musimy dodawać tego .service systemctl stop sshd.service systemctl restart sshd.service systemctl reload sshd.service systemctl reload-or-restart sshd.service systemctl list-dependecies sshd.service //pokazuje hierarchiczne odwzorowanie zależności systemctl mask sendmail.service //maskowanie, nei da się potem uruchomić tego procesu systemctl unmask sendmail systemctl enable sshd.service //usługa uruchomi się przy włączaniu komputera systemctl disable sshd.serivce //usulga nie uruchomi się przy włączaniu komputera systemctl ma opcje: status,stop,start,restart,reload,mask,umask,enable,disable,list-dependecies