Niezależnie od tego czy zamierzasz pracować jako backend developer, tester ds. automatyzacji czy sekurak, kiedyś nadejdzie moment, w którym trzeba będzie poznać podstawowe polecenia uniksowe. W tym artykule przyjrzymy się absolutnym podstawom niezbędnym do korzystania z systemu Linux.
Operatory
Na początek trochę o operatorach. Są to specjalne znaki, które możemy stosować w wywoływaniu kolejnych poleceń.
- ; – oddzielna kolejne polecenia po sobie np.
cat file.txt; ls; cd myFolder
- & – uruchamia polecenia oddzielone znakiem & od razu, niezależnie od poprzedniego
- && – oznacza, że jeśli polecenie przed operatorem && zakończyło się sukcesem, to następuje uruchomienie kolejnego np.
tar -cf myArchive.tar.gz myFileToCompress01.jpg && cat file.txt
skutkuje utworzeniem archiwum myArchive.tar.gz, a w razie sukcesu zostanie wyświetlona zawartość pliku file.txt, - || – przeciwność powyższego operatora tj. w przypadku niepowodzenia poprzedniego polecenia, następna się wywoła,
- | – przekierowuje standardowe wyjście polecenia do standardowego wyjścia następnego polecenia,
- > – przekierowuje standardowe wyjście (czyli to, co zostanie wyświetlone w konsoli po uruchomieniu któregoś z poleceń) do wskazanego pliku,
- < – analogicznie do poprzedniego operatora, zamiast przekierować zawartość do pliku, przekierowuje jego zawartość do standardowego wyjścia,
- >| – jak w przypadku „>” przekierowuje standardowe wyjście do pliku, z tą różnicą, że jeśli on istnieje i shell został skonfigurowany aby nie nadpisywać plików, to zostanie to zignorowane
- >> – jak w przypadku „>” przekierowuje standardowe wyjście do pliku, z tą różnicą, że jeśli on istnieje, to doda do niego zawartość,
Działania na plikach i katalogach
Do podstawowych operacji, min.: jak poruszania się między folderami czy czytania zawartości plików, użyjemy poniższych poleceń.
- ls – sprawdzamy zawartość katalogu. Domyślnie, bez podania ścieżki do niego, pokaże nam zawartość obecnego miejsca w którym sie znajdujemy. Możemy zdefiniować maskę (np:
ls *.txt
) aby wyświetlić pliki o danym rozszerzeniu. Ponadto, aby wyświetlić pliki ukryte i te zaczynające się od kropki, dodamy do polecenia ls parametr „-a
„. - cat – polecenie, które można wykorzystać na kilka sposobów:
- do wyświetlenia zawartości pliku (
np
.cat myTextFile.txt)
, - do stworzenia pliku o danym rozszerzeniu (
cat > myFile.pdf
). „Dziubek” oznacza wpisanie do pliku myFile.pdf danej wartości. W powyższym przykładzie ona nie występuje, w związku z czym powstanie pusty plik, który będziemy mogli edytować od razu w konsoli, - do scalania pliku bądź kilka plików w nowy (
cat fileOne.txt fileTwo.txt > newFile.txt
).
- do wyświetlenia zawartości pliku (
- cd – polecenie służące do poruszania się miedzy katalogami. Do przejścia do folderu „myFolder2” użyjemy polecenia „
cd myFolder2
„. Aby przejść do poprzed iniego katalogu (rodzica), użyjemy komendy „cd ../
„. Z kolei do bezpośredniego przejścia do katalogu domowego, użyjemy polecenia „cd
” bez argumentów i parametrów. - file – wyświetla nam informacje o zawartości pliku. Przykładowo, sprawdzając plik pdf (
file myFile.pdf
) dostaniemy w konsoli wyświetlony komunikat o treści:myFile.pdf: PDF document, version 1.
4 - mkdir – tworzy katalog bądź ich zbiór, na przykład:
mkdir myFirstFolder mySecondFolder
. - rmdir – analogicznie do przykładu powyżej, usuwa katalog. Ważne jest, że nie usunie go, jeśli nie jest pusty. Jak więc go usunąć?
- rm – domyślnie służy do usuwania plików. Jeśli jednak zdecydujemy się na usunięcie folderu wraz z jego zawartością, dodamy parametr
-r
(oznaczający usuwanie w sposób rekursywny) oraz-f
(aby sforsować operację – nie zawsze jest to potrzebne, ale warto mieć to na uwadze). W ten sposób powstanie polecenierm -rf mFolder
. - cp – polecenie służące do kopiowania plików i katalogów. Analogicznie do polecenia powyżej, w przypadku kopiowania katalogu z jego zawartością, będziemy musieli dodać parametr „
-r
„. Przykładowe polecenie kopiujące folder MyFolder01 z jego zawartością jako MyFolder02 do miejsca, w którym obecnie się znajdujemy, wyglądałoby:cp MyFolder01 myFolder02 -r
, - pwd – wyświetla ścieżkę do katalogu, w którym się aktualnie znajdujemy.
- df – wyświetla systemy plików i wolne miejsce na nich. Aby były one czytelniejsze, należy dodać parametr „
-h
„. - du – wyświetla rozmiar pliku bądź plików w katalogu. W przypadku katalogów, jeśli nie chcemy mieć wypisanego rozmiaru każdego kolejnego pliku a ich sumę, należy dodać parametr „
-s
„. Domyślnie rozmiar podawany jest w kilobajtach. - touch – polecenie w teorii mające zmieniać datę ostatniego odczytu/zapisu pliku. W praktyce wykorzystywane jest do tworzenia pustych plików.
- tar – polecenie służące do wykonywania operacji na plikach tar.gz. Do stworzenia archiwum o nazwie myArchive.tar.gz będzie służyło polecenie
tar -cf myArchive.tar.gz myFileToCompress01.jpg myFileToCompress02.jpg
. Do rozpakowania tego archiwum będzie służyć komendatar -xf myArchive.tar.gz
. - gzip – analogicznie do powyższego polecenia z tą różnicą, że obsługuje rozszerzenie gzip. Aby zapakować katalog do archiwum myArchive, użyjemy polecenia:
gzip -r myFolder
. Z kolei aby go rozpakować:gzip -dr myArchive.zip
. - chmod – służy do nadawania uprawnień określonym użytkownikom do plików i katalogów. Istnieje możliwość nadawania uprawnień w sposób literowy i numeryczny.
- chown – zmiana właściciela pliku bądź katalogu.
- grep – służy do wyszukiwania podanego wyrażenia w plikach. Przykładowo, do wyszukiwania słowa „Test” w każdym pliku z katalogu „testFolder”, użyjemy polecenia:
grep -R "Test" testFolder/
.
Obsługiwanie i czytanie procesów
- top – jest czymś w rodzaju task managera, który wyświetla informacje o wykorzystaniu procesora i pamięci.
- ps – pokazuje aktywne procesy w systemie linux. W celu wyświetlenia informacji o wszystkich procesach, ich właścicielach oraz procesach niepołączonych z terminalem, wpiszemy:
ps aux
. - kill – polecenie służące do przesyłania sygnałów do wskazanych procesów. Przykładowy sygnał mógłby wyglądać w sposób następujący:
kill -9 32
, gdzie:9
oznacza numer sygnału (ich listę można sprawdzić poleceniemkill -l
). Jest to równoważne komendziekill -s SIGKILL 32
,32
jest numerem procesu, do którego przesyłamy sygnał
- watch – polecenie służące do wywoływania wskazanej komendy co daną ilość sekund. Domyślnie czas między kolejnymi poleceniami wynosi dwie sekundy. Przykładowo „
watch -d ls
” oznacza wyświetlanie plików i katalogów z obecnego folderu co dwie sekundy. Ponadto, dodanie parametru „-d
” sprawia, że w terminalu zostaną zaznaczone różnice w porównaniu do poprzedniego wywołania.
Różne
- who – wyświetla zalogowanych użytkowników,
- whoami – wyświetla nazwę obecnie zalogowanego użytkownika,
- clear – czyści terminal. Przydatne w momencie, kiedy zrobi się syf:)
- man – wyświetla podręcznik systemowy dotyczący podanego polecenia. Przykładowo: „
man ls
„.
Źródła
https://unix.stackexchange.com/questions/159513/what-are-the-shells-control-and-redirection-operators
https://linuxwiki.pl/wiki/