7 narzędzi z Linuxa zwiększających produktywność programistyczną

Linux od lat pozostaje ulubionym systemem operacyjnym programistów, głównie ze względu na swoją elastyczność, otwartość oraz niezwykle potężne narzędzia terminalowe. Terminal Linuxa pozwala na szybkie wykonywanie operacji, skuteczne monitorowanie aplikacji, analizowanie metryk oraz sprawne przeglądanie logów. Dzięki niemu programista może błyskawicznie reagować na zmiany, testować kod na żywo oraz usprawniać procesy automatyzacji.

Narzędzia usprawniające produktywność programistów

W artykule przedstawiamy siedem narzędzi, które znacząco zwiększają produktywność w pracy programistycznej, niezależnie od technologii, w której się pracuje. Oto lista bardzo ciekawych narzędzi programistycznych, którym warto się przyjrzeć w swojej codziennej pracy.

1. entr (Event Notify Test Runner)

entr to lekkie narzędzie, które umożliwia automatyczne uruchamianie poleceń w terminalu po wykryciu zmian w plikach. Narzędzie entr jest niezwykle przydatne w procesie testowania i debugowania.

Główne cechy

  • Lekki, bez dodatkowych zależności.
  • Wysoce konfigurowalny
  • Idealny do użycia w połączeniu ze skryptami lub narzędziami do kompilacji.
  • Tylko Linux.

Instalacja

Wystarczy wpisać następujące polecenie w terminalu:

$ sudo apt install -y entr

Użycie

Narzędzia do automatycznego uruchamiania kompilacji: Użyj entr, aby automatycznie wykonywać polecenia kompilacji, takie jak make, webpack itp. Oto polecenie, którego używam do tego celu:

$ ls docker-compose.yml | entr -r docker build

W tym przypadku flaga -r ponownie ładuje proces potomny, którym jest polecenie run „docker build”.

Inny przykład użycia entr:

Dlaczego warto używać entr?

  • Automatyzacja testowania: Możesz skonfigurować entr, aby uruchamiał testy za każdym razem, gdy zmienisz kod.
  • Szybsza iteracja kodu: Nie trzeba ręcznie uruchamiać skryptów – zmiana kodu automatycznie wywołuje proces.
  • Wsparcie dla różnych języków: Można go używać zarówno w projektach Node.js, Python, jak i innych.

2. nodemon

nodemon jest narzędziem używanym głównie przez programistów Node.js. Jego głównym zadaniem jest monitorowanie plików w projekcie i automatyczne restartowanie aplikacji po wykryciu zmian.

Główne cechy

  • Monitoruj zmiany plików i automatycznie restartuj serwer Node.js.
  • Obsługuje projekty JavaScript i TypeScript
  • Dostosuj, które pliki i katalogi monitorować.
  • Obsługuje popularne frameworki internetowe, takie jak Express, Hapi.

Instalacja

Możesz wpisać jedno polecenie w terminalu, aby zainstalować narzędzie:

$ npm install -g nodemon

Jeśli instalujesz Node.js i npm po raz pierwszy w dystrybucjach opartych na Ubuntu. Możesz postępować zgodnie z naszym samouczkiem instalacji Node.js.

Użycie

Po wpisaniu następującego polecenia uruchamia się server.js i automatycznie restartuje serwer, jeśli plik ulegnie zmianie.

Zalety używania nodemon:

  • Automatyczne restartowanie serwera: Zmiana kodu skutkuje natychmiastowym restartem aplikacji.
  • Ułatwia debugowanie: Nie trzeba ręcznie zatrzymywać i ponownie uruchamiać serwera.
  • Zwiększa produktywność: Skraca czas potrzebny na iterację i testowanie aplikacji.

3. LiveReload.net

LiveReload.net to narzędzie popularne wśród programistów front-end. Automatycznie odświeża stronę w przeglądarce po każdej zmianie w kodzie, co jest niezwykle pomocne podczas stylowania i testowania interfejsu.

W przeciwieństwie do innych, jest to narzędzie oparte na sieci web, a aby zacząć, musisz przejść na jego oficjalną stronę internetową. Każdy plik pozostaje w Twojej sieci lokalnej. Żadne pliki nie są przesyłane na serwer zewnętrzny.

Główne cechy

  • Bezproblemowa integracja z edytorami
  • Obsługuje niestandardowe warunki wyzwalania w celu odświeżenia strony
  • Dobra zgodność z frameworkami front-end i statycznymi stronami internetowymi.

Użycie

To jest głupio proste. Wystarczy załadować stronę internetową i przeciągnąć i upuścić folder, aby rozpocząć wprowadzanie zmian na żywo.

Korzyści z używania LiveReload:

  • Natychmiastowe odświeżanie strony: Brak konieczności ręcznego przeładowania w przeglądarce.
  • Współpraca z wieloma frameworkami: Można używać z Vue.js, React, Angular i innymi.
  • Lepsza wydajność i oszczędność czasu: Testowanie front-endu staje się płynniejsze.

4. fswatch

fswatch to narzędzie monitorujące zmiany w plikach na różnych systemach operacyjnych, w tym Linux. Idealnie nadaje się do automatyzowania procesów na podstawie wykrytych zmian w katalogach i plikach.

fswatch implementuje kilka rodzajów monitorów:

  • Monitor oparty na interfejsie API zdarzeń systemu plików Apple OS X.
  • Monitor oparty na kqueue, interfejsie powiadomień o zdarzeniach wprowadzonym w FreeBSD 4.1 i obsługiwanym w większości systemów *BSD (w tym OS X).
  • Monitor oparty na inotify, podsystemie jądra Linux, który raportuje zmiany w systemie plików do aplikacji.
  • Monitor oparty na File Events Notification, interfejsie API jądra Solaris/Illumos, który raportuje zdarzenia dotyczące plików.
  • Monitor oparty na ReadDirectoryChangesW, interfejsie API systemu Microsoft Windows, który raportuje zmiany w katalogu.
  • Monitor, który okresowo wykonuje statystyki systemu plików, zapisuje czasy modyfikacji plików w pamięci i ręcznie oblicza zmiany w systemie plików, co może działać w dowolnym systemie operacyjnym, w którym można użyć funkcji stat (2).

Główne cechy

  • Obsługuje działanie międzyplatformowe i może być używany w systemach Linux i macOS.
  • Może być używany ze skryptami niestandardowymi w celu wyzwalania wielu operacji.
  • Elastyczne opcje konfiguracji w celu filtrowania określonych typów zmian plików.

Instalacja

Aby zainstalować go w dystrybucji Linuksa, wpisz w terminalu:

$ sudo apt install -y fswatch

Jeśli masz komputer z systemem macOS, możesz użyć polecenia:

$ brew install fswatch

Użycie

Możesz spróbować wpisać polecenie tutaj:

$ fswatch -o . | xargs -n1 -I{} make

Następnie możesz połączyć to polecenie z poleceniem entr – opisywanym wyżej w tym artykule – , aby uzyskać bogate interaktywne środowisko programistyczne.

$ ls hellomake | entr -r ./hellomake

Polecenie fswatch wywoła make w celu skompilowania aplikacji C, a następnie, jeśli nasz plik binarny „hellomake” zostanie zmodyfikowany, uruchomimy go ponownie. Czy to nie jest oszczędność czasu?!

Zastosowanie fswatch w programowaniu:

  • Automatyczna kompilacja: Można ustawić fswatch, aby po każdej zmianie kompilował kod.
  • Monitorowanie logów i konfiguracji: Świetne do obserwowania logów aplikacji w czasie rzeczywistym.
  • Integracja ze skryptami: Można uruchamiać dodatkowe polecenia na podstawie wykrytych zmian.

5. Watchexec

Watchexec to wieloplatformowe narzędzie CLI napisane w języku RUST, które automatyzuje wykonywanie poleceń w oparciu o zmiany w kodzie.

Główne cechy

  • Obsługa wielu platform (macOS, Linux, Windows).
  • Szybki, napisany w Rust.
  • Lekki, bez skomplikowanej konfiguracji.

Instalacja

W systemie Linux wystarczy wpisać:

$ sudo apt install watchexec

A jeśli chcesz wypróbować na macOS (za pośrednictwem homebrew):

$ brew install watchexec

Możesz również pobrać odpowiednie pliki binarne dla swojego systemu z sekcji Github releases projektu.

Użycie

Wystarczy uruchomić polecenie:

$ watchexec -e py "pytest"

Spowoduje to uruchomienie pytests za każdym razem, gdy plik Pythona w bieżącym katalogu zostanie zmodyfikowany.

Dlaczego warto używać Watchexec?

  • Uniwersalność: Można go używać z wieloma językami, np. Pythonem, C++, Go.
  • Integracja z systemem operacyjnym: Świetnie współpracuje z Linuxem i jego funkcjami automatyzacji.
  • Poprawa efektywności pracy: Skraca czas reakcji na zmiany w kodzie, dzięki czemu programista może się skupić na rozwoju aplikacji.

6. BrowserSync

BrowserSync to potężne narzędzie nie tylko do monitorowania zmian plików, ale także do synchronizacji przeglądarek na różnych urządzeniach.

Główne cechy

  • Synchronizacja między przeglądarkami.
  • Automatyczne odświeżanie wielu urządzeń i przeglądarek.
  • Wbudowany lokalny serwer programistyczny.

Instalacja

Biorąc pod uwagę, że najpierw zainstalowałeś Node.js, wpisz następujące polecenie:

$ npm i -g browser-sync

Możesz też użyć:

$ npx browser-sync

Użycie

Oto, jak wyglądałyby polecenia dla niego:

$ browser-sync start --server --files "/*.css, *.js, .html" npx browser-sync start --server --files "/.css, *.js, *.html"

Możesz użyć dowolnego z tych dwóch poleceń do swoich eksperymentów.

To polecenie uruchamia lokalny serwer i monitoruje pliki CSS, JS i HTML pod kątem zmian, a przeglądarka jest automatycznie odświeżana, gdy tylko nastąpi zmiana. Jeśli jesteś programistą i nie używasz żadnego nowoczesnego frameworka front-end, jest to przydatne.

Kluczowe funkcje BrowserSync:

  • Synchronizacja na wielu urządzeniach: Można testować aplikacje jednocześnie na komputerze, tablecie i smartfonie.
  • Obsługa dynamicznych aplikacji: Wspiera PHP, Node.js oraz statyczne strony.
  • Przyspiesza testowanie front-endu: Automatyczne odświeżanie oraz synchronizacja znacznie usprawnia pracę.

7. watchdog & watchmedo

Watchdog to biblioteka napisana w języku Python, która umożliwia monitorowanie zmian w systemie plików w czasie rzeczywistym.

Główne cechy

  • Obsługa wielu platform
  • Zapewnia pełną elastyczność dzięki opartemu na Pythonie API
  • Zawiera skrypt watchmedo, który umożliwia łatwe podłączanie dowolnej aplikacji CLI

Instalacja

Najpierw zainstaluj Pythona, a następnie zainstaluj za pomocą pip, używając poniższego polecenia:

$ pip install watchdog

Użycie

Wpisz poniższe polecenie i zobacz, jak działa:

$ watchmedo shell-command --patterns="*.py" --recursive --command="python factorial.py" .

To polecenie obserwuje katalog pod kątem zmian plików i wyświetla szczegóły zdarzeń za każdym razem, gdy plik jest modyfikowany, tworzony lub usuwany.

W poleceniu –patterns=”*.py” obserwuje pliki .py, –recursive obserwuje podkatalogi, a –command=”python factorial.py” uruchamia plik Python.

Zastosowanie Watchdog w programowaniu:

  • Automatyczne uruchamianie skryptów: Można zintegrować Watchdog z aplikacją do uruchamiania różnych procesów.
  • Monitorowanie katalogów: Przydatne w aplikacjach backendowych, które wymagają śledzenia plików.
  • Wsparcie dla różnych systemów: Można go używać zarówno na Linuxie, jak i Windowsie.

Podsumowanie

Narzędzia terminalowe w Linuxie to nieocenione wsparcie dla programistów. Automatyzacja, monitorowanie zmian oraz synchronizacja aplikacji przyspieszają pracę, pozwalając na efektywniejsze testowanie i rozwijanie kodu. Niezależnie od technologii, warto wprowadzić powyższe rozwiązania do swojej codziennej pracy.

TUX - maskotka systemu Linux

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.