3 komendy, których używam najczęściej
GREP
Polecenie `grep`
jest narzędziem wykorzystywanym w systemach operacyjnych Linux/Unix, służącym do wyszukiwania wzorców tekstowych w plikach. Żeby zobrazować korzyści posłużę się banalnym przykładem, ale dobrze oddającym korzyści takiej komendy:
`php -i | grep -i "upload_max_filesize"`
Powyższa komenda zwróci wartość ustawienia `upload_max_filesize`
w konfiguracji PHP. Rozbijmy ją na części pierwsze.
`php -i`
wyświetla kompletne informacje dot. konfiguracji PHP w systemie operacyjnym.
`|`
– jest to operator `pipe`
, który przekierowuje wynik poprzedniego polecenia jako dane wejściowe dla kolejnego polecenia.
Ostatni człon polecenia przeszukuje linię zawierającą ciąg znaków `upload_max_filesize`
. Flaga `-i`
sprawia, że wyszukiwanie nie zwraca uwagi na wielkość liter.
Jedna komenda i otrzymujemy wszystkie potrzebne informacje. Bez potrzeby odpalania edytora tekstowego i ręcznego poszukiwania frazy, bez logowania się do panelu WP, by odczytać te dane. Polecenie to jest nieodzowne w przetwarzaniu plików tekstowych i logów systemowych, w których chcemy znaleźć konkretne informacje lub błędy.
`grep`
możemy wykorzystywać w skryptach, a nawet łączyć z innymi narzędziami, ale to już są zagadnienia dla bardziej zaawansowanych użytkowników.
RM oraz FIND
Zacznę od wyjaśnienia, czym jest usuwanie rekurencyjne. To proces, który usuwa nie tylko elementy wskazane bezpośrednio, ale także wszystkie ich zawartości (w przypadku katalogów), jeśli więc usuwasz katalog rekurencyjnie, wszystkie pliki i katalogi wewnątrz niego również zostaną usunięte. Opcja przydatna, gdy chcemy usunąć całkowicie określony katalog wraz z jego zawartością, bez konieczności usuwania plików i katalogów osobno.
Często korzystam z tej komendy, gdy chcę usunąć katalogi `node_modules`
z poszczególnych projektów (folderów) z użyciem jednej komendy i bez potrzeby „chodzenia” po drzewie katalogów w terminalu.
Należy jednak zachować szczególną ostrożność podczas korzystania z usuwania rekurencyjnego, ponieważ po takich operacjach nie można przywrócić usuniętych plików i katalogów. Przed wykonaniem tej komendy zawsze upewnij się, że celowo usuwasz konkretne elementy, ponieważ proces usuwania rekurencyjnego jest trwały i nieodwracalny.
Przykład połączenia RM oraz FIND, by usunąć katalogi o tej samej nazwie we wszystkich podkatalogach danego katalogu. Oto przykładowa komenda:
`find /www -type d -name "node_modules" -exec rm -r {} \;`
W powyższej komendzie:
`/www`
to ścieżka do katalogu, w którym chcemy usunąć katalogi o danej nazwie,
"node_modules"
to nazwa katalogu, który chcemy usunąć.
W tej komendzie:
`-type d`
oznacza, że szukamy tylko katalogów,
`-name "node_modules"`
wskazuje, że chcemy znaleźć katalogi o określonej nazwie,
`-exec rm -r {} \;`
wykonuje polecenie `rm -r`
na znalezionych katalogach, usuwając je razem z ich zawartością.
DU
Za akronimem DU kryje się „disk usage”. Często korzystam z tego polecenia na serwerze, by móc szybko zlokalizować pliki, które nienaturalnie się rozrosły (np. pliki tekstowe z logami, które przybrały gigabajtowe rozmiary). Jedna komenda i tyle zaoszczędzonego czasu. Poniżej prosta komenda, która wyświetli 20 największych plików i katalogów w bieżącym folderze:
`du -ah | sort -rh | head -n 20`
Wszystkie powyższe polecenia korzystają z kombinacji poleceń `du`, `sort` i `head`. Polecenie `du` oblicza rozmiar plików i katalogów, `sort` sortuje je w kolejności malejącej według rozmiaru, a `head` ogranicza wynik do określonej liczby linii (w naszym przypadku 20).
Podsumowanie
To tylko przykładowe komendy, które stanowią potwierdzenie praktycznej wartości wiersza poleceń. Po latach pracy jako programista nie wyobrażam sobie pomijanie tego wygodnego rozwiązania w moim warsztacie a zarazem wiem, że wielu specjalistów wciąż go nie odkryło.
Polecam zatem sprawdzić wskazane oraz inne komendy, aby oszczędzać czas. Daj znać, jeżeli znasz takie, które warto promować, może w kolejnym didaskaliowym wpisie? 😉 Zapraszam do dyskusji – znajdziesz mnie (i nas) np. na grupie facebookowej Wise Talks.