Przegląd i Konfiguracje narzędzi
3 godz. 49 min · JavaScript · Full-stack i Programowanie
Adam GospodarczykAktualnie trudno wyobrazić sobie pracę w ekosystemie JavaScriptu bez terminala. W pierwszym rozdziale kursu nie tylko dowiesz się o dostępnych na rynku narzędziach oraz rozszerzeniach ale także o sposobach ich konfiguracji, uwzględniających przykłady z codziennej pracy, w tym wykorzystanie GPT-3 do łatwiejszej obsługi terminala.
Dla osób, które programują, IDE (Integrated Development Environment) niemal zawsze stanowi najważniejsze narzędzie pracy. Pomimo tego, że na rynku dostępny jest bardzo dobry Visual Studio Code, w tym kursie poznasz bliżej płatne narzędzia firmy JetBrains, które w wielu przypadkach sprawdzą się nieporównywalnie lepiej. Dobrze skonfigurowane IDE potrafi "zrozumieć" Twój kod na tyle, aby skutecznie Ci pomagać w pisaniu kodu, pracy zespołowej czy debugowaniu aplikacji.
Poza narzędziami bezpośrednio związanymi z programowaniem, istnieje szereg aplikacji które pomagają w codziennej pracy. Mowa o pracy koncepcyjnej, sandboxach, organizacji wiedzy, zadań, kalendarza, poczty czy nawet sięganie po narzędzia no-code / low-code. W tym kursie znajdziesz przegląd tych, które mają duży sens z punktu widzenia full-stack'a, aczkolwiek pamiętaj że każde z nich posiada też różne alternatywy, które mogą bardziej przypaść Ci do gustu.
Kolejnym niezbędnym elementem w programowaniu, są różnego rodzaju zależności projektu oraz narzędzia instalowane na komputerze czy serwerach, w celu ułatwienia pracy lub wręcz jej umożliwienia. Poza tym poruszymy też temat własnych skryptów a nawet tworzenia CLI w Node.js na własne potrzeby.
Tworzenie aplikacji w JS charakteryzuje konieczność wykorzystywania różnego rodzaju narzędzi, umożliwiających m.in. transpilowanie oraz optymalizację kodu. Obecnie jednym z najlepszych wyborów jest Vite i to na nim skupimy się najbardziej, łącząc go nie tylko z samym JavaScriptem ale także frameworkami CSS (konkretnie Tailwind CSS).
Ten kurs powstał z myślą o osobach pracujących w ekosystemie JavaScriptu. Jest to szybkie przegląd dostępnych na rynku narzędzi oraz przykładów ich praktycznego wykorzystania w codziennej pracy. Jeżeli szukasz inspiracji, nowych narzędzi lub sposobów usprawnienia codziennych zadań — w tym kursie je znajdziesz.
W tej lekcji pokażę Ci najważniejsze polecenia, które musisz po prostu znać
niezależnie od tego, czy będziesz pracować
na froncie, czy faktycznie będziesz rozwijać się w kierunku full stacka.
Jeżeli na tym etapie uważasz, że terminal
nie kryje przed Tobą jakichś większych tajemnic lub też wykorzystujesz go w
stopniu umożliwiającym Ci codzienną pracę, oczywiście możesz pominąć ten film, ale
jeżeli terminy takie jak Pipe lub Grep stanowią dla Ciebie jeszcze jakieś
wyzwanie, to polecam zostać za mną jeszcze kilka minut.
Zwykle, gdy będziesz uruchamiać terminal
będzie znajdować się w katalogu domowym, co też symbolizowane jest ikonką tyldy.
Jeżeli teraz uruchomimy polecenie pwd, to faktycznie mamy tutaj pełną ścieżkę, w
której aktualnie się znajdujemy i rzeczywiście jest tu potwierdzenie, że
jest to katalog domowy mojego aktualnego użytkownika.
Jeżeli teraz będziemy chcieli przejść do innego katalogu, wystarczy, że wpiszemy
polecenie cd, czyli Content Directory, a następnie
jak widać mam tutaj od razu podpowiedź katalogów, które mogę tutaj wpisać.
I akurat ta opcja, która właśnie się
wyświetla nie jest dostępna normalnie w terminalu, tylko jest powiązana z
dodatkowym rozszerzeniem czy też zewnętrzną aplikacją o nazwie Fig.
Jeżeli chodzi o nią to z jednej strony bywa użyteczna, a czasem dość irytująca,
więc nie jestem pewien czy jestem w stanie Ci ją polecić.
W każdym razie do nawigowania po plikach oraz katalogach sprawdza się całkiem dobrze.
Teraz mógłbym napisać albo pełną nazwę
pliku, albo po prostu wcisnąć tabulator, a następnie Enter lub też
kontynuować moją podróż do kolejnych katalogów tego folderu.
W tym jednak przypadku wciskamy Enter i
natychmiast zostajemy przeniesieni do tego katalogu.
W tym momencie to co jeszcze zrobię to uruchomię sobie tutaj Finder,
ze względu na to, że chciałbym aby było
doskonale widoczne to co się dzieje w danej chwili w tym katalogu.
Wewnątrz niego przede wszystkim utworzymy
sobie nowy katalog o nazwie, niech będzie files.
Po wykonaniu tego polecenia natychmiast
został utworzony tutaj nowy katalog, a my poza tym, że widzimy go w tym miejscu,
jesteśmy w stanie też wykonać polecenie ls, który odpowiada za wyświetlenie
zawartości folderu, w którym aktualnie się znajdujemy.
Co więcej, niemal w przypadku każdego polecenia możemy przekazywać różnego
rodzaju parametry i opcje do tego, aby modyfikować ich zachowanie.
Akurat w przypadku polecenia ls możemy
tutaj przekazać ścieżkę do katalogu, którego zawartość chcemy wyświetlić.
Przykładowo, jeżeli teraz spróbujemy
wyświetlić zawartość folderu files, no to otrzymamy pusty rezultat i jest to zgodne
z prawdą, ponieważ wewnątrz tego katalogu nie ma żadnych plików.
No to teraz moglibyśmy albo przejść do tego katalogu lub też wykorzystywać fakt
możliwości przekazywania różnych danych do poleceń
możemy skorzystać z polecenia touch
do tego, aby utworzyć nowy plik, a następnie przekazać do niego pełną ścieżkę
do katalogu files, a następnie ukośnik oraz nazwę pliku, który chcemy utworzyć.
I tutaj ponownie natychmiast
jeżeli zajrzymy sobie do zawartości tego folderu, to zobaczymy, że pojawił się
tutaj ten plik, którego zawartość jest pusta.
Wszystko się tutaj zgadza, więc proponuję, abyśmy na ten moment zapisali tutaj
jakąkolwiek zawartość do tego pliku, a następnie zapisali zmiany.
Od tej chwili, jeżeli chcielibyśmy
wyświetlić zawartość tego pliku, z jednej strony moglibyśmy wykorzystać polecenie
cat, a następnie wskazać ścieżkę do pliku, który chcemy wyświetlić.
W tym przypadku faktycznie wszystko
jest tutaj widoczne, ale już w momencie, gdy w tym pliku umieścimy nieco więcej
zawartości, to nagle okaże się, że polecenie cat nie do końca może nam się
sprawdzić, ponieważ nawigowanie po takim pliku jest po prostu bardzo niewygodne.
Aby robić to nieco bardziej efektywnie,
możemy wykorzystać polecenie less, które analogicznie jak poprzednie przyjmuje
ścieżkę do pliku, którego zawartość chcemy wyświetlić.
Różnica jest jednak taka, że zamiast wyświetlać całą zawartość pliku, jesteśmy
w stanie nawigować tutaj strzałkami i przeglądać swobodnie jego zawartość.
I teraz, aby wyjść z tego trybu, wystarczy
wcisnąć literę Q i natychmiast wracamy do poprzedniego stanu.
No to teraz możemy iść dalej, więc przejdziemy sobie do katalogu files, a następnie
chciałbym skopiować plik file i w ten sposób utworzyć plik hello.txt.
W tym celu wykorzystam polecenie cp, a
następnie przekażę nazwę pliku, który chcę utworzyć, a następnie przekażę ścieżkę do
pliku, który chcę skopiować oraz nazwę nowego pliku.
W tym przypadku będzie to hello.txt.
No i ponownie natychmiast mamy tutaj rezultat
i w dodatku zawartość obu tych plików jest dokładnie taka sama.
Wszystko poszło w porządku, ale chciałbym zamienić nazwę pliku hello na bye.txt.
W tym celu musimy wykorzystać polecenie,
które tak naprawdę służy do przenoszenia plików.
I tak naprawdę jeżeli nawet przez chwilę
się nad tym zastanowisz, to ma to dużo sensu w przypadku zmiany nazwy plików,
ponieważ tak naprawdę w momencie zmiany nazwy modyfikujemy jego ścieżkę.
Zatem w naszym przypadku chcemy zmienić hello.txt na bye.txt
Ponownie zmiany zostały tutaj zastosowane,
natomiast mnie interesowałoby jeszcze przeniesienie plików file.txt do katalogu wyżej.
W tym celu ponownie wykorzystuję polecenie
mv, z tą różnicą, że najpierw podaję ścieżkę do pliku, który chcę przenieść
a następnie podaję jego nową ścieżkę.
W tym przypadku fig nieco mi podpowiada ze względu na to, że pokazuje mi tutaj jasno,
że mogę wybrać katalog nadrzędny poprzez dwie kropki oraz ukośnik.
Oznacza to dokładnie to samo, jakbyśmy po prostu przeszli katalog wyżej.
I w tym momencie wystarczy, że podamy tutaj jeszcze nazwę pliku i ona może być
taka sama ze względu na to, że zmieniamy ścieżkę
ale oczywiście jeżeli tylko byśmy tego
chcieli, moglibyśmy ją na tym etapie zmienić.
Raz jeszcze nasz plik został przeniesiony
i rzeczywiście nie ma go wewnątrz katalogu
files natomiast znajduje się w katalogu Terminal.
Jeżeli zastanawiasz się, dlaczego w ogóle uczymy się tych wszystkich poleceń, skoro
jesteśmy w stanie przenosić po prostu łatwo pliki w terminalu lub też
wykorzystywać Alfreda do tego, aby robić to jeszcze szybciej, to tak naprawdę
chodzi o to, że po prostu w momencie, gdy podłączysz się do zdalnego serwera, nie
będziesz miał graficznego interfejsu, na którym będziesz w stanie pracować, tylko w
zamian będzie potrzeba, aby robić to właśnie z poziomu linii poleceń.
Oczywiście możesz powiedzieć, że w wielu
przypadkach wystarczy wykorzystanie klienta takiego jak FileZilla czy innego
programu umożliwiającego nawiązanie połączenia ssh oraz nawigowanie po plikach.
Oczywiście masz tutaj rację
natomiast jednocześnie mogą zdarzyć się sytuacje, w których nie będzie to możliwe
lub w danej sytuacji nie do końca Ci się sprawdzi
ze względu na to, że wykorzystując takie
polecenia jesteś w stanie stosować różnego rodzaju bardziej zaawansowane reguły,
które są w stanie modyfikować wiele plików jednocześnie.
Analogicznie też możesz wykorzystać
wspominany w poprzednich lekcjach zx do tego, aby za pomocą JavaScriptu wykonywać
polecenia oraz skrypty bash do tego, aby jeszcze bardziej usprawnić cały proces
manipulowania plikami czy wykonywania różnego rodzaju poleceń.
No to teraz kolejnym krokiem, który z
pewnością będziesz wykonywać jest kasowanie plików.
W moim przypadku będę chciał cofnąć się do
katalogu wyżej, a następnie podać ścieżkę do pliku file txt.
Jeżeli teraz wykonał bym to polecenie to naturalnie ten plik tutaj zniknie.
Tak dokładnie się stało, ale jest tutaj pewna mała gwiazdka.
Mianowicie jeżeli cofniemy się do katalogu
wyżej, a następnie spróbujemy to samo polecenie wykonać na katalogu files, to
okaże się, że otrzymamy błąd informujący nas o tym, że próbujemy usunąć tutaj
katalog i w tym przypadku nie jest to możliwe.
Aby jednak możliwe się stało, możemy tutaj dodać flagi RF do tego, aby oznaczyć, że
chcemy usuwać pliki oraz katalogi rekursywnie, a następnie też dodajemy flagę force do tego,
aby potwierdzić, że rzeczywiście chcemy to zrobić.
Nie muszę już chyba podkreślać, jak
istotne jest to, aby wykonywać takie polecenia z wielką uwagą
ze względu na to, że tutaj zwykła literówka może doprowadzić do tragedii.
Na tym etapie widzimy już, że w naszym
terminalu mamy tutaj pełną historię wykonywanych poleceń, ale jednocześnie
wielokrotnie będzie potrzeba, aby wyczyścić sobie okno terminala.
Możesz to zrobić albo poleceniem clear, albo skrótem klawiszowym Ctrl L.
W jednym i w drugim przypadku nasze
okienko jest teraz puste, ale oczywiście możemy tutaj wykorzystać scrolla do tego,
aby podejrzeć sobie jeszcze wcześniejsze polecenia i ich rezultaty.
No i teraz szczerze mówiąc, doszliśmy do
punktu, w którym wszystkie dotychczas omówione polecenia są tak naprawdę
wystarczające do tego, aby posługiwać się terminalem.
Jedyne co musisz jeszcze tutaj zapamiętać,
to po prostu nawigowanie po konkretnych poziomach katalogów oraz uwzględnianie
tych całych ścieżek w momencie wykonywania poleceń.
Zwracaj tutaj szczególną uwagę właśnie na ścieżki oraz polecenia jakie wykonujesz
ze względu na to, że niejednokrotnie może być po prostu trudno odwrócić te zmiany.
Jednocześnie też, poza poleceniami, które sobie do tej pory omówiliśmy, warto
poświęcić jeszcze uwagę poleceniu find, które służy jak sama nazwa wskazuje
wyszukiwaniu plików i katalogów w ramach naszego systemu
oraz polecenie grep, które służy do przeszukiwania zawartości plików.
I ostatnim poleceniem, które szczególnie często będziesz używać jest polecenie
chmod, które modyfikuje uprawnienia dostępu do plików i katalogów.
Jednocześnie, pomimo tego, że wszystkie trzy powyższe polecenia będziesz
wykorzystywać dość regularnie, raczej nie będziemy się teraz na nich skupiać ze
względu na to, że zachęcam Cię do tego, aby skorzystać w tym celu z Warpa.
Po prostu wykorzystaj skróty klawiszowy
Command Tylda do tego, aby uruchomić opcję A.I.Command Search,
w przypadku której nawet w języku polskim możesz opisywać polecenia, które chcesz
wykonać, a sztuczna inteligencja wygeneruje je dla Ciebie.
Przykładowo przejdźmy sobie teraz do katalogu terminal, a następnie katalogu files.
Teraz wykorzystamy AI do tego, aby wyświetlić zawartość pliku bye.txt.
Po chwili mamy tutaj naszą odpowiedź.
Oczywiście polecenie cat jest nam już tutaj znane, więc zapytamy AI
o policzenie liczby linii znajdującej się wewnątrz pliku bye.
Okazuje się, że ponownie mamy tutaj odpowiedź, którą możemy natychmiast wkleić
do naszego terminala i w tym przypadku będzie to wykorzystanie polecenia WC,
czyli word count, które zwraca wartość 250, czyli dokładnie liczbę linii.
Spróbujmy więc zrobić to samo, uwzględniając znaki.
Okazuje się, że ponownie AI
nas tutaj nie zawodzi.
Oczywiście trzeba tutaj podkreślić, że za każdym razem, gdy generujesz szczególnie
bardziej zaawansowane polecenia, to naprawdę warto samodzielnie zweryfikować,
czy rzeczywiście to polecenie jest poprawne.
Możesz to zrobić po prostu poprzez
zajrzenie do dokumentacji bądź po prostu wyszukiwarki Google, a następnie
posprawdzać sobie, co robi dane polecenie oraz co robią poszczególne flagi.
Jednocześnie też, jeżeli w poleceniu
pojawi się znak pipe, to oznacza to, że w przypadku np.
polecenia WC jego zawartość zostanie przekazana do kolejnego skryptu.
Analogicznie też mamy jeszcze możliwość
przekazania jakiejś zawartości i bardzo często sięgamy po nie w przypadku
polecenia wyświetlającego jakiś tekst, który możemy zapisać do pliku np.
bye.txt.
Oczywiście wykonamy to polecenie w tym
miejscu i nagle okaże się, że jeżeli otworzymy sobie zawartość pliku bye,
to fragment test został zapisany dokładnie na jego końcu.
Jeżeli jednak wykorzystali byśmy pojedynczy ostry nawias, to zawartość pliku
zostałaby zastąpiona przekazaną tutaj frazą.
Zrozumienie tych koncepcji oraz poleceń, o których teraz wspomniałem, w połączeniu z
możliwościam AI, które stoją obecnie naprawdę na wysokim poziomie, daje Ci w
zasadzie bardzo duże możliwości, które dodatkowo będą zwiększać się z czasem.
Oznacza to, że jeżeli nawet teraz
wygenerowane polecenia nie do końca będą dla Ciebie jasne, to jeżeli przyłożysz
odrobinę uwagi do tego, aby rzeczywiście doczytać sobie o ich zachowaniu oraz o
dostępnych flagach, to nagle okaże się, że po upływie odpowiedniej ilości czasu
będziesz w stanie większość z nich pisać samodzielnie.
Dodatkowo zachęcam też do tego, aby
zapisywać sobie różnego rodzaju bardziej złożone polecenia, co do których masz
podejrzenie, że będziesz po nie sięgać dość regularnie.
Po prostu tracenie czasu na ich
każdorazowe napisanie od podstaw mija się z celem.
Jednocześnie też dodanie ich nawet do text expandera zajmie Ci dosłownie kilka chwil,
a jednocześnie będzie zwracać się w przyszłości wielokrotnie.
Jeżeli chodzi o wykorzystanie terminala to by było na tyle
i na koniec dodam tylko, że szczerze mówiąc gdyby nie sztuczna inteligencja, ta
lekcja trwałaby nieporównywalnie dłużej lub też
musielibyśmy spotkać się w kolejnej.
Ale tak naprawdę po części to nie zmienia faktu, bo i tak zapraszam Cię do kolejnej.
Do usłyszenia za chwilę. Cześć!