To repozytorium zawiera informację o podstawowych komendach używanych w systemie GNU/Linux wraz z krótkimi przykładami.
- Czym jest GNU/Linux, terminal i po co go używać
- Podstawowe polecenia
2.1 Katalogi i Pliki
2.2 Tekst
2.3 Użytkownicy
2.4 Uprawnienia
2.5 Procesy
2.6 Programy i pakiety
2.7 Symbole
2.8 Archiwa
2.9 Informacje o systemie
2.10 Inne - Słowniczek
GNU/Linux jest to system operacyjny, posiadający kernel Linux stworzony przez Linusa Torvaldsa i używający wolnego oprogramowania GNU.
Podstawowym programem używanym w tym systemie jest terminal(w zasadzie emulator terminala) znany również pod swoją angielską nazwą 'shell'. Umożliwia wpisywanie poleceń w formie tekstowej dlatego zaliczany jest do programów CLI(Command Line Interface), co jest przeciwieństwem dla graficznego interfejsu użytkownika GUI(Graphical User Interface).
Często jest on używany przez nieco bardziej zaawansowanych użytkowników, którzy w ten sposób automatyzują masę rzeczy i oszczędzają czas.
W codziennym użytku może pomóc rozwiązać większość problemów, które można napotkać, gdy coś się zepsuje w systemie oraz wykonać niektóre operacje dużo szybciej niż poprzez graficzny interfejs. Jest to przydatne również podczas reinstalacji systemu, gdyż zamiast żmudnego przeklikiwania się przez różne okna, można za pomocą kilku wcześniej przygotowanych poleceń zainstalować potrzebne programy oraz dostosować system pod siebie.
Trzeba przed rozpoczęciem nauki zapamiętać, że Linux, w przeciwieństwie do Windowsa, rozróżnia wielkość liter w nazwach plików oraz poleceń.
Dodatkowo trzeba pamiętać, że nie ma w Linuxie liter dysków, a wszystkie foldery są podfolderem głównego katalogu '/'. Istnieje kilka ważniejszych katalogów, które czasami mogą być używane np.:
- /home - Zawiera foldery domowe użytkowników
- /media - Montowane są tutaj dyski przenośne, pendrive itp.
- /mnt - Montowane są tutaj partycje dysków HDD oraz SSD Reszta folderów nie powinna być używana przez początkujących użytkowników
Część podstawowych pojęć oraz proces instalacji GNU/Linuxa jest wyjaśniony w repozytorium - https://github.com/qarmin/GNU-Linux-Podstawy/blob/master/README.md#informacje-o-repozytorium.
W przypadku błędów o braku dostępu, instrukcję należy poprzedzić poleceniem sudo
nadającym najwyższe prawa administratora, jednak należy używać tego z rozwagą.
Bardzo przydatne jest również autouzupełnianie komend za pomocą pojedynczego kliknięcia klawisza TAB. Gdy istnieje więcej niż jedno możliwe polecenie, naciśnięcie drugi raz klawisza wyświetli nam się listę wszystkich możliwości.
Nazwy oznaczone w opisie pojedynczym cudzysłowem(np. 'plik.txt') można dowolnie modyfikować w poleceniu w zależności od oczekiwanego rezultatu.
pwd
- Wyświetla ścieżkę w której aktualnie się znajdujemy
cd
- Polecenie do zmiany aktualnego katalogu
cd ..
- Przechodzi jeden katalog do górycd roman/zawory
- Przechodzi do katalogu 'zawory' znajdującego się wewnątrz innego folderu 'roman'
ls
- Polecenie służące do wyświetlenia listy plików i folderów w danym katalogu
ls -A
- Wyświetla wszystkie(również ukryte) pliki i foldery
ls -l
- Wyświetla informacje o właścicielach plików/folderów, uprawnienia do nich, rozmiar i czas utworzenia
mv
- Polecenie do przenoszenia plików oraz katalogów pomiędzy folderami używane również jako narzędzie do zmiany nazwy
mv plik.txt mapa
- Przenosi plik 'plik.txt' do folderu mapamv projekt.rar gniazdo/projekt2.zip
- Przenosi plik 'projekt.rar' do folderu gniazdo i jednocześnie zmienia jego nazwę na 'projekt2.zip'
cp
- Polecenie używane do tworzenia kopii plików lub folderów w danej lokalizacji
cp plik.txt plik2.txt
- Tworzy kopię pliku 'plik.txt' i zapisuje go pod nazwą 'plik2.txt'cp Tapety Tapety2 -R
- Kopiuje folder 'Tapety' do folderu 'Tapety2', dzięki opcji -R kopiuje również wszystkie elementy zawierające się w nim
mkdir
- Polecenie do tworzenie nowego folderu
mkdir polowy drugie
- Tworzy nowy folder 'polowy' oraz folder 'drugie'
rmdir
- Polecenie do usuwania podanego katalogu
rmdir wideo
- Usuwa katalog o nazwie 'wideo'rmdir --ignore-fail-on-non-empty dokumenty
- Usuwa katalog 'dokumenty' wraz z zawartością
touch
- Polecenie do tworzenia plików
touch plik.txt
- Tworzy pusty plik o nazwie 'plik.txt'
file
- Polecenie do sprawdzania zawartości pliku
file plik.txt
- Wyświetla rodzaj pliku 'plik.txt' bazując na zawartości, nie rozszerzeniu(plik z rozszerzeniem .txt nie musi być plikiem tekstowym)
cat
- Polecenie do wypisywania zawartości pliku na ekran oraz łączenia kilku plików w jeden
cat plik.txt
- Wyświetla zawartość pliku 'plik.txt' w konsoli
cat plik.txt plik2.txt plik.txt
- Łączy zawartość plików 'plik2.txt' oraz 'plik.txt' i wypisuje je na ekran
rm
- Polecenie służące do usunięcia folderu/pliku
rm -r wideo
- Usuwa katalog 'wideo' wraz z zawartością(parametr -r)rm -rf zdjecia
- Usuwa folder 'zdjecia' wraz z zawartością, bez żadnych pytań i ostrzeżeń(opcja -f)rm plik.txt
- Usuwa plik 'plik.txt'
ln
- Polecenie tworzące dowiązanie(skrót) do plików lub folderów
ln -s /home/rafal/aplikacja /usr/bin/aplikacja
- Tworzy skrót(dowiązanie symboliczne) do pliku '/home/rafal/aplikacja' w podanej lokalizacji '/usr/bin/aplikacja'
locate
- Polecenie do szybkiego wyszukiwania plików, korzystając z bazy danych, określając ich położenie bezwzględne. Bazę można zaktualizować poleceniem sudo updatedb
locate wszystko.txt
- Wyszukuje w systemie plik 'wszystko.txt'locate -i WiLk
- Szuka w systemie plik lub folder 'WiLk' nie uwzględniając wielkości liter(parametr -i) - pasuje również 'WILK', 'wilk' czy 'WILk'locate "*.png" -n 20
- Wyświetla maksymalnie 20 plików o dowolnej nazwie(* oznacza dowolny ciąg znaków) z rozszerzeniem 'png'
locate -c "*.jpg"
- Wyświetla ilość plików z rozszerzeniem 'jpg' w systemie
find
- Polecenie służące do wyszukiwania plików w podanej lokalizacji
find hasla.kbdx
- Szuka w aktualnej lokalizacji pliku 'hasla.kbdx'find /home/rafal -name DCIM.jpg
- Szuka w lokalizacji '/home/rafal' oraz wszystkich znajdujących się tam folderach pliku o nazwie 'DCIM.jpg'(parametr -name)find /home/rafal -iname dCiM
- Szuka w lokalizacji '/home/rafal' oraz wszystkich znajdujących się tam folderach pliku lub folderu o nazwie 'dCiM' bez względu na wielkość liter(parametr -iname)find /mnt/ -name *.mp3
- Wyświetla wszystkie pliki o rozszerzeniu 'mp3' w folderze '/mnt'
tail
- Polecenie do wyświetlania ostatnich linijek pliku
tail ffmpeg.sh -n 3
- Wyświetla 3 ostatnie linijki z pliku 'ffmpeg.sh'
head
- Polecenie do wyświetlania początkowych linijek pliku
head haldric.txt -n 15
- Wyświetla 15 początkowych linijek z pliki 'haldric.txt'
grep
- Polecenie wyświetlające linie zawierające określone frazy/wyrażenia regularne
ls | grep arch
- Wyświetla tylko te linijki z polecenia 'ls', które zawierają słowo 'arch'
sort
- Polecenie sortujące dane w pliku
sort plik.txt
- Sortuje plik 'plik.txt' rosnąco(domyślnie) i jego zawartość wypisuje na ekran terminala
sort plik.txt > posortowany.txt
- Sortuje plik 'plik.txt' malejąco(parametr -r) i rezultat zapisuje do pliku 'posortowany.txt'sort -c plik.txt
- Sprawdza czy plik 'plik.txt' jest posortowany
rg
- Polecenie wyświetlające tekst pasujący do danego wyrażenia regularnego
rg "ERR[_V]{0,2}\("
- Wyświetla i podkreśla tekst który pasuje do wyrażenia 'ERR[_V]{0,2}(' czyli np. 'ERR_V' lub 'ERR'
wc
- Polecenie służące do zliczania słów oraz wystąpień danych fraz
wc plik.txt
- Wyświetla kolejno liczbę linii, ilość słów oraz liczbę znaków w pliku plik.txt
ls | wc -l
- Wyświetla ilość wyników zwróconych przez polecenie 'ls'(w tym przypadku ilość plików i katalogów)
nano
- Polecenie otwierające plik w prostym edytorze tekstu(CTRL + X - Wyjście, CTRL + O - Zapis)
nano plik.txt
- Otwiera w edytorze tekstu plik 'plik.txt'
su
- Polecenie do zmiany aktualnego użytkownika(tylko w terminalu)
su rafal
- Zmienia aktualnego użytkownika na 'rafal'su
- Zmienia aktualnego użytkownika na root. Jest to skrót polecenia 'su root'. Aby móc go używać należy nadać hasło dla tego użytkownika poleceniem 'passwd'
sudo
- Polecenie wymuszające wykonanie podanego po nim polecenia z uprawnieniami administratora
sudo touch wada.txt
- Tworzy z uprawnieniami administratora plik 'wada.txt', którego inni użytkownicy nie mogą usunąć ani zmodyfikować
sudo !!
- Wykonuje ostatnio uruchomione polecenie z prawami administratora
useradd
- Polecenie do dodawania użytkownika. Aby móc się na dane konto zalogować, należy nadać mu hasło poleceniem passwd
useradd stefan
- Dodanie użytkownika 'stefan'
passwd
- Polecenie umożliwiające zmianę hasła danego użytkownika
passwd rafal
- Zmienia/Nadaje hasło dla użytkownika 'rafal'
who
- Polecenie wyświetlające listę zalogowanych użytkowników
whoami
- Polecenie wyświetla nazwę aktualnie zalogowanego użytkownika
chmod
- Polecenie do zmiany uprawnień plików i folderów. Liczba je określająca jest trzycyfrowa oznaczająca kolejno uprawnienia dla właściciela, grupy i innych użytkowników i każda z nich składa się z trzech uprawnień do r(4) - odczytu, w(2) - modyfikacji i x(1) - wykonywania danego pliku. Każda z liczb określającej uprawnienia może przyjmować maksymalną wartość 7 a minimalną 0, która to jest sumą poszczególnych uprawnień.
chmod 750 gitRepo -R
- Zmienia uprawnienia folderu 'gitRepo' i wszystkich plików w nim(opcja -R) dla właściciela do odczytu, modyfikacji i wykonywania pliku(7=4+2+1), dla grupy tylko do odczytu i wykownywania(5=4+1) a wszyscy inni nie mogą z niego korzystać
chown
- Polecenie do zmiany właściciela pliku lub folderu
chown rafal zdjecia -R
- Zmienia właściciela folderu 'zdjęcia' i wszystkich plików oraz katalogów w nim zawartych(parametr -R) na 'rafal'
chgrp
- Polecenie do zmiany grupy pliku i folderu
chgrp root plik.txt
- Zmienia grupę pliku 'plik.txt' na 'root'
top
- Polecenie wyświetla aktualne zużycie procesora CPU, RAM oraz inne informacje o aktualnie uruchomionych procesach
top -d 1
- Zmniejsza czas aktualizacji wykresów do 1 sekundy(parametr -d)
kill
- Polecenie umożliwiające wysłanie sygnału do procesu o danym id, które można sprawdzić poleceniem 'top'
kill -9 2424
- Powoduje zakończenie pracy(parametr -9) procesu o PID '2424'
killall
- Polecenie umożliwiające wysłanie sygnału do procesu o podanej nazwie
killall godot
- Powoduje zakończenie pracy(domyślny tryb) wszystkich procesów o nazwie 'godot'
apt
- Polecenie do zarządzania pakietami w systemach pochodzących od Debiana takich jak Ubuntu, Linux Mint czy Zorin OS
apt update
- Aktualizuje listę wersji pakietów i ich zależności oraz podaje ilość pakietów możliwych do aktualizacji
apt upgrade -y
- Aktualizuje wszystkie pakiety. Parametr -y skutkuje automatycznym rozpoczęciem pobrania i instalacji aktualizacji po wyświetleniu listy programów posiadających nowsze wersje
apt list
- Wyświetla listę wszystkich dostępnych pakietówapt list --installed
- Wyświetla tylko zainstalowane pakiety
apt list | grep blender
- Wyświetla wszystkie dostępne pakiety mające w nazwie 'blender'
apt list --upgradable
- Pokazuje listę wszystkich pakietów, których nowsza wersja jest dostępna w repozytorium
apt install
- Służy do instalacji oprogramowaniaapt install blender
- Instaluje pakiet 'blender' wraz z zależnościami z repozytorium
apt purge blender
- Usuwa pakiet 'blender' wraz z zależnościami, jeśli nie są używane przez inne programy
apt show
- Wyświetla informacje o podanym pakiecieapt show krita
- Pokazuje informacje o pakiecie 'krita'
add-apt-repository
- Polecenie służące do dodania PPA, umożliwiającego pobranie z niego konkretnych programów. Ich listę można znaleźć na stronie https://launchpad.net/. Należy po tym poleceniu wykonać apt update
aby zaktualizować listę dostępnego oprogramowania
add-apt-repository ppa:christian-boxdoerfer/fsearch-daily
- Dodaje informacje do systemu o PPA zawierającym program 'fsearch', który można później zainstalować poleceniemapt install fsearch-trunk
dpkg
- Polecenie służące do zarządzania plikami .deb
dpkg -i plik.deb
- Instaluje w systemie paczkę 'plik.deb'
&
- Odpina program od okna konsoli, dzięki czemu można ją wyłączyć bez konieczności wyłączenia również programu
firefox &
- Otwiera program 'firefox' i odpina go od konsoli, którą można w każdym momencie wyłączyć
>>
- Przekierowuje i dopisuje zawartość standardowego strumienia do podanego pliku
ls >> /home/rafal/listaPlikow.txt
- Dopisuje do pliku '/home/rafal/listaPlikow.txt' wynik polecenia 'ls'
>
- Przekierowuje zawartość standardowego strumienia do podanego pliku, którego zawartość najpierw kasuje
ls > /home/ubu/plik.txt
- Usuwa zawartość pliku '/home/ubu/plik.txt' i wpisuje do niego wynik polecenia 'ls'
|
- Służy do przekazania danych do podprogramu, który będzie na nich operował
ls | grep i
- Lista programów zebrana poprzez polecenie 'ls', jest filtrowana przez 'grep' i pokazywane są jedynie foldery zawierające w nazwie 'i'
;
- Średnik oddziela niezależne od siebie zadania, dzięki czemu można zapisać ich kilka w linii
cd ..;ls
- Przechodzi katalog wyżej, bez względu czy udało się czy nie, wypisuje listę plików i folderów
&&
- Służy do łączenia komend. Jeśli znajdująca się po lewej stronie znaku &&
instrukcja nie zostanie poprawnie wykonana, to ta po prawej stronie znaku nie wywoła się
sudo apt update && sudo apt upgrade -y
- Aktualizujemy listy pakietów a jeśli się to uda to aktualizujemy system
~
- Tylda oznacza folder domowy użytkownika
cd ~/Pulpit
- Przechodzi do Pulpitu domyślnego użytkownika,~
jest skrótem lokalizacji '/home/nazwaUzytkownika' zatem aktualnym folderem będzie np. '/home/alfred/Pulpit'
""
- W cudzysłowach można zawrzeć nazwę, która np. zawiera spację i jej użycie zostałoby błędnie odczytane jako 2 lub więcej argumentówcd "zdjecia 2018"
- Przechodzi do folderu 'zdjecia 2018', użycie poleceniacd zdjecia 2018
wypisałoby błąd o zbyt dużej ilości argumentów
tar
- Polecenie służące do archiwizacji plików i folderów
tar -czvf archiwum.tar.gz /home/lilia/zdjecia.jpg /mnt/pliki
- Pakuje plik '/home/lilia/zdjecia.jpg' oraz katalog '/mnt/pliki' wraz z zawartością do pliku 'archiwum.tar.gz'tar -czvf szczoteczka.tar.gz /home/ubuntu --exclude=/home/ubuntu/Pobrane
- Pakuje katalog '/home/ubuntu' wraz z zawartością do pliku 'szczoteczka.tar.gz', lecz pomija katalog '/home/ubuntu/Pobrane'(parametr --exclude)
tar -xzvf zdjecia.tar.gz -C /home/roman/arch
- Wypakowuje zawartość pliku 'zdjecia.tar.gz' do katalogu '/home/roman/arch'(folder musi istnieć)
zip
- Polecenie do archiwizacji plików w formacie ZIP
zip -r archiwum.zip folder hasla.txt
- Tworzy 'archiwum.zip' w formacie ZIP i wrzuca do środka katalog 'folder' oraz plik 'hasla.txt'
unzip
- Polecenie do wypakowania spakowanego pliku ZIP
unzip archiwum.zip -d /home/rafal/Pulpit
- Wypakowuje plik 'archiwum.zip' do folderu '/home/rafal/Pulpit'
lsblk
- Polecenie do wyświetlenia listę dysków, partycji oraz zamontowanych woluminów
lsblk -e7
- Wyświetla tylko listę dysków i partycji bez paczek SNAP
uname
- Polecenie które wyświetla podstawowe informacje o systemie
uname -a
- Wypisuje kernel, jego wersję, system, czas instalacji oraz zestaw instrukcji procesora
ifconfig
- Polecenie używane do wypisywania informacji o sieci tj. adres IP, maska sieciowa czy adres MAC
glxinfo
- Polecenie do wyświetlenia szeregu informacji o karcie graficznej i jej sterownikach
glxinfo | grep OpenGL
- Wyświetla podstawowe informacje o karcie graficznej
lspci
- Polecenie do wyświetlania podstawowych informacji o komponentach komputera
clear
- Polecenie do czyszczenia konsoli
history
- Polecenie wyświetlające listę ostatnich komend wpisanych do konsoli. W prosty sposób można wyszukiwać ostatnie polecenia za pomocą skrótu klawiszowego CTRL + R
shutdown
- Polecenie używane do wyłączenia systemu
shutdown now
- Natychmiastowo wyłącza systemshutdown 8:00
- Wyłącza system o godzinie 8:00shutdown +15 "Wyłączanie komputera"
- System wyłączy się za '15' minut i wyświetli wiadomość 'Wyłączania komputera'
reboot
- Polecenie do restartowania systemu
uptime
- Polecenie do wyświetlania czasu od ostatniego włączenia systemu oraz liczbę zalogowanych użytkowników do systemu
alias
- Polecenia do tworzenia aliasów(przezwisk) dla danego polecenia/zbioru poleceń
alias infoGPU='glxinfo | grep OpenGL'
- Tworzy alias o nazwie 'infoGPU' mający za zadanie wypisać podstawowe informacje o GPU, który można odtąd używać zamiast polecenia 'glxinfo | grep OpenGL'
unalias
- Polecenie do usuwania stworzonego wcześniej aliasu
unalias infoGPU
- Usuwa alias o nazwie 'infoGPU'
man
- Polecenie pokazujące instrukcję dla danego polecenia
man apt
- Wyświetla instrukcję polecenia 'apt'
exit
- Polecenie które zamyka kartę, terminal lub wylogowuje aktualnie zalogowanego użytkownika
- Kompilacja - Proces zamiany kodu źródłowego stworzonego w dowolnym języku programowania na język maszynowy.
- Pakiet - To skompilowany i skompresowany kod źródłowy(najczęściej programów lub bibliotek), używany przez różne dystrybucje w formie plików DEB, RPM.
- Repozytorium - Miejsce, gdzie znajdują się różne programy.
- Wyrażenie regularne - Wzorzec, dla którego program dopasowuje tekst, np. dla wyrażenia 'człowiek[i]{0,1}' można przyporządkować teksty takie jak 'człowiek' czy 'człowieki'.