Przydatne polecenia Unix
Razem z najważniejszymi opcjami, w kolejności z grubsza od najważniejszych.
Tekst
echo
– wypisywanie linii (napis ze specjalnymi znakami można dostać tak:echo $'a\tb\nc'
).cat
– konkatenacja, wypisywanie wejścia na wyjście bez zmian.head
– wypisanie pierwszych 10 linii (-n 42
liczba linii,-n -2
wypisze aż do przedostatniej,-c 42
liczba bajtów).tail
– wypisanie ostatnich 10 linii (jak wyżej,-n +2
wypisze zaczynając od drugiej linii).less
– pokazanie dłuższego tekstu w przewijalny sposób (woła goman
); wychodzi się klawiszemq
, szuka klawiszem/
.
cut
– wypisanie wybranych fragmentów linii (-f2
: drugi fragment,-d' '
: między spacjami jako delimiter).sort
– sortowanie ,-n
numerycznie,-h
dla rozmiarów plików z jednostkami (takich jak wypisuje np.du -h
),-k2
sortowanie po drugiej kolumnie.uniq
– deduplikacja ciągów identycznych linii (zazwyczaj trzeba najpierw posortować),-c
zlicza.diff
– sprawdzanie różnic.tr
– (od translate) zamiana znaków na inne, np.tr '\n' ' '
zmieni końce linii na spacje.wc
– (od word count) liczenie linii, słów, znaków.seq
– wypisywanie ciągów liczb.
Wyszukiwanie:
grep
– wyszukiwanie w plikach (regexami)-i
: ignore case (wielkość liter)-r
: rekurencyjnie wchodzi we wskazane ścieżki-v
: wypisz odwrotnie, czyli nie-matchujące linie-l
: wypisz tylko nazwy matchujących plików-o
: wypisz tylko matchującą część-A
,-B
,-C
: wypisz match razem ze wskazaną liczbą linii After (po) / Before (przed) / Context (przed i po).
rg
– nowocześniejszy, szybki rekurencyjny grep.find
– znajdowanie plików;- bez opcji wypisuje rekurencyjnie wszystkie pliki we wskazanych ścieżkach;
-exec
: wykonuje wskazane polecenie dla każdego matchu, np.find -exec head -n 1 {} \;
wypisze pierwsze linie (pod{}
będzie podstawiona ścieżka, a polecenie trzeba zakończyć znakiem średnika);- bardzo dużo innych opcji, patrz przykłady na wiki.
locate
– szybkie wyszukiwanie pliku po nazwie (z indeksu aktualizowaniego poleceniemupdatedb
).sed s/foo/bar/g
– search&replace w pliku (patrz wiki);- przykład z regexem i użyciem grupy (nr 1) w nawiasach:
sed 's/foo\(.*\)bar/\1\1/g'
zamienifooxyzbar
naxyzxyz
.
- przykład z regexem i użyciem grupy (nr 1) w nawiasach:
awk
– potężniejsze narzędzie do przetwarzania tekstu; mniej ważne, ale często przydaje się jedna prosta rzecz: wypisanie fragmentu oddzielonego ciągem spacji nieokreślonej długości (czegocut
nie potrafi) – np.awk '{ print $2 }'
wypisze drugą kolumnę tabelki wyrównanej spacjami (wypróbuj na wyjściups
).
System plików
cd
ls
-l
-h
(human-readable rozmiary plików);tree
cp
-r
(rekurencyjnie)-a
(z zachowaniem czasów i uprawnień) ,mv
,rm
,mkdir
,rmdir
.touch
– zmienia czas modyfikacji (metadaną pliku), tworzy pusty plik jeśli go nie ma.ln -s
– tworzenie linków symbolicznych (skrótów).
tar
– tworzenie archiwów (zbiorów katalogów i plików, razem z ich metadanymi). Odnośnie opcji patrz xkcd.- tworzenie:
tar -czf foo.tar.gz foo/
(create) - rozpakownie:
tar -xzf foo.tar.gz
(extract) - tar domyślnie nie kompresuje (podejście one tool one job), stąd opcja
-z
(wołagzip
) i roszerzenie.tar.gz
. - archiwum o nazwie
foo.tar.gz
powinno zawierać jeden katalogfoo
i wszystko w nim; inaczej rozpakowanie robi bałagan, tzw. tarbomb. - Moodle (jak załączacie rozwiązania różnych zadań) czasem nie przyjmuje plików
.tar.gz
, tylko.tgz
.
- tworzenie:
df -h
– wolne miejsca na dyskach (pydf
– nowocześniejsza wersja).du -h --max-depth=1
– ile w sumie zajmują katalogi (dust
– nowocześniejsza wersja;filelight
– GUI).
Inne
ps
,pstree
,top
(htop
),kill
,pgrep
,pkill
– informacje o działających procesach i ich ubijanie.time
– mierzy czas wykonania innego polecenia.watch
– uruchamia co 2s wskazane polecenie i pokazuje aktualny wynik.bc -l
– prosty kalkulator.curl
– pobieranie plików/robienie zapytań HTTP.file
– mówi jakiego typu jest wskazany plik (np. plik zip któremu ktoś błędnie nadał nazwęfoo.rar
).enconv
– encoding conversion,-g
(guess) wypisuje tylko zgadnięte kodowanie (np. UTF-8);dos2unix
zamienia końce linii.hexdump
– pokazywanie plików binarnych;strings
– heurystyczne znajdowanie napisów w pliku binarnym.chmod
,chown
,chgrp
– zmiania uprawnień, właściciela, grupy (patrz wiki).