Polecenia systemu Linux dla początkujących: Podstawowy przewodnik po terminalu z przykładami
Terminal wygląda onieśmielająco, dopóki nie poznasz kilkudziesięciu poleceń. Poznaj te, które mają znaczenie, pogrupowane według tego, co próbujesz zrobić, a następnie połącz je, aby odpowiedzieć na prawdziwe pytanie dotyczące pliku dziennika.
- Mały zestaw poleceń systemu Linux obejmuje większość codziennych prac:
ls,cd,cp,mv,rm,catigrep. - Rury (
|) łączą proste narzędzia, aby odpowiedzieć na trudniejsze pytania. rmnie ma kosza, więc sprawdź dwukrotnie, zanim naciśniesz Enter.- Użyj
manlub--help, gdy zapomnisz opcji.
Większość serwerów, kontenerów i maszyn w chmurze działa pod kontrolą systemu Linux i zazwyczaj nie mają one pulpitu graficznego. Dlatego nauka poleceń Linuksa jest tak przydatną umiejętnością zarówno dla programistów, jak i testerów. Nie musisz zapamiętywać setek. Kilka tuzinów poprowadzi Cię długą drogę.
Przetestowaliśmy przykłady plików, wyszukiwania i potoków w Git Bash w systemie Windows, który udostępnia te same podstawowe narzędzia, a dane wyjściowe pochodzą z tego uruchomienia. Nie uruchamialiśmy poleceń dotyczących uprawnień, usług, pakietów i dostępu zdalnego, ponieważ zależą one od prawdziwego systemu Linux. Szczegóły mogą się różnić w zależności od dystrybucji, dlatego sprawdź dokumentację swojego systemu.
Bezpieczne rozpoczęcie pracy
Aby ćwiczyć, nie musisz instalować Linuksa. Dobre opcje obejmują:
- Windows: Podsystem Windows dla systemu Linux (WSL) lub Git Bash dla podstaw.
- macOS: wbudowany terminal, którego polecenia są bardzo podobne, chociaż niektóre opcje się różnią.
- Dowolny system: kontener. Nasz samouczek Dockera dla początkujących pokazuje, jak go uruchomić.
Poćwicz w folderze jednorazowego użytku i pamiętaj, że we wszystkim w Linuksie rozróżniana jest wielkość liter: Notes.txt i notes.txt to różne pliki.
Anatomia polecenia
ls -l /var/log
^ ^ ^
| | argument: what to act on
| option: how to behave
command: what to run
Krótkie opcje można zwykle łączyć, więc ls -l -a i ls -la są takie same. W przypadku długich opcji używane są dwa myślniki, jak w --help. Aby uzyskać pomoc, uruchom man ls, aby uzyskać pełną instrukcję lub ls --help, aby uzyskać podsumowanie. Naciśnij q, aby opuścić stronę podręcznika.
Poruszaj się po systemie plików
| Polecenie | Co to robi |
|---|---|
pw |
Drukuje bieżący folder |
ls |
Wyświetla listę plików |
ls-la |
Wyświetla listę wszystkich plików, w tym ukrytych, ze szczegółami |
folderu płyty |
Przechodzi do folderu |
płyta .. |
Przechodzi o jeden poziom wyżej |
płyta ~ |
Przechodzi do folderu domowego |
płyta - |
Powrót do poprzedniego folderu |
Naciśnij Tab, aby automatycznie uzupełnić nazwy plików, lub strzałkę w górę, aby przywrócić wcześniejsze polecenia. Te dwa nawyki oszczędzają więcej czasu niż jakakolwiek inna wskazówka. Nazwa pliku rozpoczynająca się od kropki, na przykład .env, jest ukryta, a ls wyświetla ją tylko z -a.
Zarządzaj plikami i folderami
| Polecenie | Co to robi |
|---|---|
mkdir -p projekt/dzienniki |
Tworzy foldery, w tym rodziców |
dotknij notatki.txt |
Tworzy pusty plik |
cp a.txt b.txt |
Kopiuje plik |
cp -r src/ kopia zapasowa/ |
Kopiuje folder |
mv a.txt b.txt |
Zmienia nazwę lub przenosi plik |
rm a.txt |
Usuwa plik |
rm -r folder/ |
Usuwa folder i wszystko, co się w nim znajduje |
Oto krótka sesja z naszego biegu:
$ mkdir -p project/logs
$ cd project
$ touch notes.txt
$ ls
logs notes.txt
$ cp notes.txt backup.txt
$ mv backup.txt old.txt
$ ls
logs notes.txt old.txt
$ rm old.txt
$ ls
logs notes.txt
Wskazówka: rm nie korzysta z kosza i usunięte pliki zazwyczaj znikają. Zachowaj szczególną ostrożność w przypadku rm -r i symboli wieloznacznych. Najpierw uruchom ls z tym samym wzorcem, aby zobaczyć dokładnie, co będzie pasować, i użyj rm -i, jeśli chcesz wyświetlić monit dla każdego pliku.
Wyświetl zawartość pliku
| Polecenie | Co to robi |
|---|---|
plik kota |
Drukuje cały plik |
mniej pliku |
Przewija długi plik (q, aby wyjść) |
głowa -n 5 plik |
Pokazuje pierwsze pięć linii |
ogon -n 5 plik |
Pokazuje pięć ostatnich linii |
ogon -f plik |
Podąża za nowymi wierszami w trakcie ich zapisywania |
wc -l plik |
Liczy linie |
Na potrzeby kilku następnych przykładów utworzyliśmy mały plik dziennika:
$ cat logs/app.log
ERROR db down
INFO started
ERROR disk full
INFO stopped
$ head -n 1 logs/app.log
ERROR db down
$ tail -n 1 logs/app.log
INFO stopped
$ wc -l logs/app.log
4 logs/app.log
tail -f to codzienne narzędzie do oglądania dziennika aplikacji na żywo podczas odtwarzania błędu. Naciśnij Ctrl+C, aby to zatrzymać.
Wyszukaj za pomocą grep i znajdź
grep przeszukuje pliki wewnątrz i find wyszukuje same pliki:
$ grep ERROR logs/app.log
ERROR db down
ERROR disk full
$ grep -c ERROR logs/app.log
2
$ find . -name "*.log"
./logs/app.log
| Opcja | Znaczenie |
|---|---|
grep -tj |
Ignoruje wielkość liter |
grep -r |
Przeszukuje folder rekurencyjnie |
grep -rzecz |
Pokazuje numery linii |
grep -v |
Pokazuje linie, które nie pasują |
grep -c |
Liczy pasujące linie |
Potoki i przekierowania
To jest pomysł, który sprawia, że linia poleceń jest tak potężna. Każde narzędzie wykonuje jedną małą pracę, a Ty je łączysz:
| Symbol | Co to robi |
|---|---|
| |
Wysyła dane wyjściowe jednego polecenia do następnego |
> |
Zapisuje dane wyjściowe do pliku, zastępując jego zawartość |
>> |
Dołącza dane wyjściowe do pliku |
2> |
Zapisuje komunikaty o błędach do pliku |
$ echo "hello" > greeting.txt
$ echo "world" >> greeting.txt
$ cat greeting.txt
hello
world
Bądź ostrożny z pojedynczym >, ponieważ po cichu nadpisuje to, co było już w pliku.
Prawdziwy przykład: podsumowanie dziennika
Ile wierszy każdego typu znajduje się w naszym logu? Połączenie czterech prostych poleceń daje odpowiedź:
$ cut -d' ' -f1 logs/app.log | sort | uniq -c
2 ERROR
2 INFO
Czytanie od lewej do prawej: cut bierze pierwsze oddzielone spacjami słowo w każdym wierszu, sort grupuje identyczne słowa razem, a uniq -c liczy każdą grupę. Krok sortowania ma znaczenie, ponieważ uniq zwija tylko sąsiadujące duplikaty. Dodaj | sort -nr na końcu, aby najpierw wyświetlić listę najczęściej spotykanych.
Tego rodzaju jednowierszowe podejście jest bardzo pomocne podczas badania awarii. Może szybko stwierdzić, czy błąd wystąpił dwa razy, czy dwa tysiące razy, co jest przydatnym szczegółem, który można umieścić w raporcie o błędzie.
Uprawnienia do plików
Uruchom ls -l, a zobaczysz coś takiego:
-rwxr-xr-- 1 asha devs 512 Nov 1 10:00 deploy.sh
Po pierwszym znaku, który wskazuje typ pliku, znajdują się trzy grupy po trzy znaki: właściciel, grupa i wszyscy inni. Każdy może mieć r (odczyt), w (zapis) i x (wykonanie).
| Polecenie | Co to robi |
|---|---|
chmod +x wdrażanie.sh |
Sprawia, że skrypt jest wykonywalny |
plik chmod 644 |
Właściciel potrafi czytać i pisać, inni mogą czytać |
chmod 755 skrypt.sh |
Właściciel ma pełny dostęp, inni mogą czytać i uruchamiać |
chown plik Asha |
Zmienia właściciela |
polecenie sudo |
Uruchamia polecenie jako administrator |
Liczby sumują się: odczyt wynosi 4, zapis wynosi 2, a wykonanie wynosi 1. Zatem 7 oznacza wszystkie trzy, a 5 oznacza odczyt i wykonanie. Unikaj chmod 777, który zapewnia każdemu pełny dostęp, jako szybką naprawę błędów uprawnień. Zamiast tego znajdź prawdziwą przyczynę. I używaj sudo ostrożnie, ponieważ usuwa to kontrole bezpieczeństwa, które normalnie chronią system.
Informacje o procesach i systemie
| Polecenie | Co to robi |
|---|---|
ps dod |
Wyświetla listę uruchomionych procesów |
top lub htop |
Pokazuje podgląd na żywo procesora i pamięci |
zabij 1234 |
Prosi proces 1234 o zatrzymanie |
df -h |
Pokazuje wolne miejsce na dysku |
du -sh folder |
Pokazuje rozmiar folderu |
wolne - godz |
Pokazuje użycie pamięci |
status systemctl nginx |
Pokazuje stan usługi |
dziennikctl -u nginx |
Pokazuje logi usługi |
Aby zainstalować oprogramowanie, użyj menedżera pakietów swojej dystrybucji, na przykład sudo apt install curl w Debianie i Ubuntu lub sudo dnf install curl w Fedorze i RHEL.
Archiwa i praca zdalna
$ tar -czf logs.tar.gz logs
$ tar -tzf logs.tar.gz
logs/
logs/app.log
W tar, c oznacza utworzenie, z oznacza gzip, f nazywa plik, a t wyświetla zawartość. Aby wyodrębnić archiwum, użyj tar -xzf logs.tar.gz. Do pracy z innymi maszynami potrzebne są te trzy:
| Polecenie | Co to robi |
|---|---|
ssh użytkownik@serwer |
Otwiera zdalny terminal |
plik scp użytkownik@serwer:/ścieżka/ |
Kopiuje plik przez SSH |
curl -I https://example.com |
Pokazuje nagłówki odpowiedzi adresu URL |
Te same polecenia są używane w Dockerfiles i potokach CI/CD, więc ta wiedza procentuje w pracy DevOps.
Typowe błędy
- Używanie
rm -rfbez patrzenia. Najpierw sprawdź swój folder za pomocąpwdi uważaj na spacje w ścieżkach. - Zastępowanie za pomocą
>. Użyj>>, jeśli chcesz dodać. - Uruchamianie wszystkiego za pomocą
sudo. Używaj go tylko wtedy, gdy jest to wymagane. - Wklejanie poleceń, których nie rozumiesz. Przeczytaj je najpierw, zwłaszcza te, które przesyłają pobieranie do powłoki.
- Zapominanie o cudzysłowach. Nazwa pliku zawierająca spacje, np.
"my file.txt", ich potrzebuje.
Podsumowanie
Nie nauczysz się terminala, czytając o nim. Otwórz powłokę, utwórz folder ćwiczeń i uruchom polecenia każdej sekcji. Następnie spróbuj odpowiedzieć na prawdziwe pytanie za pomocą potoku, na przykład, który błąd pojawia się najczęściej w dzienniku. Zacznij od nawigacji i plików w tym tygodniu, dodaj grep i potoki w następnym, a reszta nastąpi w miarę potrzeb.
Najczęstsze pytania
Jakie są najbardziej podstawowe polecenia systemu Linux?
Zacznij od pwd, ls, cd, mkdir, cp, mv, rm, cat i grep. Obejmują one przemieszczanie się, zarządzanie plikami i wyszukiwanie, co stanowi większość codziennej pracy terminala.
Jak mogę ćwiczyć polecenia systemu Linux w systemie Windows?
Użyj podsystemu Windows dla systemu Linux, aby uzyskać pełne środowisko, lub Git Bash, aby uzyskać podstawy. Uruchamianie kontenera Linuksa za pomocą Dockera również działa dobrze.
Jaka jest różnica między > i >> w systemie Linux?
Pojedynczy > zastępuje zawartość pliku danymi wyjściowymi. Podwójne >> dodaje dane wyjściowe na koniec pliku i zachowuje to, co już tam jest.
Czy mogę cofnąć polecenie rm?
Generalnie nie, ponieważ rm nie korzysta z kosza. Narzędzia do odzyskiwania czasami pomagają, ale nie są niezawodne, dlatego należy zachować kopie zapasowe i najpierw dokładnie je sprawdzić.
Co znaczy sudo?
sudo uruchamia jedno polecenie z uprawnieniami administratora. Jest potrzebny do zadań takich jak instalowanie oprogramowania i należy go używać ostrożnie.
Ucz się dalej
Potrzebujesz pomocy przy testowaniu, WordPressie lub SEO?
Pomagamy zespołom dostarczać lepsze oprogramowanie i rozwijać ich witryny. Powiedz nam, nad czym pracujesz, a my zaproponujemy jasny następny krok.
Więcej poradników na testowanie, sztuczna inteligencja i nowoczesny rozwój
Podobał Ci się ten artykuł? Wybierz temat i przejdź bezpośrednio do naszych najnowszych tutoriali.
Wyjaśnienie halucynacji AI: dlaczego modele językowe tworzą rzeczy i jak je zmniejszyć
Wyjaśniono halucynacje AI: czym są, dlaczego powstają w modelach językowych, typowe typy, jak je zredukować za pomocą uziemień i podpowiedzi oraz pr…
Przeczytaj artykuł →DevOpsWyjaśnienie zmiennych środowiskowych: pliki .env, sekrety i konfiguracja wykonana prawidłowo
Zmienne środowiskowe wyjaśnione na przykładach Pythona, które przeprowadziliśmy: ich odczytywanie i ustawianie, dlaczego każda wartość jest ciągiem …
Przeczytaj artykuł →Tworzenie oprogramowaniaWyjaśnienie ograniczenia szybkości interfejsu API: algorytmy, nagłówki i obsługa błędów 429
Ograniczanie szybkości API wyjaśnione za pomocą przeprowadzonej przez nas symulacji: zasobnik tokenów, stałe okno, przesuwane okno, 429 odpowiedzi, …
Przeczytaj artykuł →Automatyzacja testówWyśmiewanie w Pythonie: unittest.mock, patch i błędy, które sprawiają, że testy kłamią
Wyśmiewanie w Pythonie za pomocą unittest.mock, przetestowane: Mock i zwracana wartość, efekt uboczny, łatanie tam, gdzie używana jest nazwa, specyf…
Przeczytaj artykuł →Testowanie oprogramowaniaWyjaśnienie zasięgu kodu: pokrycie linii i oddziału oraz co naprawdę oznacza 100%
Wyjaśnienie pokrycia kodu za pomocą prawdziwego pliku cover.py: pokrycie linii, gałęzi i warunków, przeczytanie raportu, dlaczego 100% pokrycia może…
Przeczytaj artykuł →Bazy danych i SQLDELETE vs TRUNCATE vs DROP w SQL: różnice, wycofywanie i kiedy używać każdego z nich
DELETE vs TRUNCATE vs DROP wyjaśnione za pomocą przetestowanego SQL: co każdy usuwa, wycofywanie, wyzwalacze, resetowanie tożsamości, prędkość i czy…
Przeczytaj artykuł →Bazy danych i SQLWyjaśnienie widoków SQL: tworzenie, używanie i unikanie pułapek wraz z przykładami
Widoki SQL wyjaśnione za pomocą zapytań, które uruchomiliśmy: tworzenie widoku, wyniki na żywo, ukrywanie kolumn, wydajność, widoki z możliwością ak…
Przeczytaj artykuł →Tworzenie oprogramowaniaInterfejs TypeScript a typ: rzeczywiste różnice, testowane za pomocą kompilatora
Interfejs TypeScript a typ, sprawdzony z prawdziwym kompilatorem: co oba mogą zrobić, co tylko jeden, łączenie deklaracji, rozszerzenia a przecięcia…
Przeczytaj artykuł →Tworzenie oprogramowaniaPython *args i **kwargs wyjaśnione: elastyczne funkcje z przejrzystymi przykładami
Python *args i **kwargs wyjaśnione za pomocą uruchomionego przez nas kodu: pakowanie i rozpakowywanie, kolejność parametrów, argumenty zawierające t…
Przeczytaj artykuł →Tworzenie oprogramowaniaFunkcje Lambda w Pythonie: składnia, rzeczywiste zastosowania i kiedy ich nie używać
Funkcje lambda w Pythonie wyjaśnione za pomocą uruchomionego przez nas kodu: składnia, sortowanie za pomocą klucza, mapa i filtr, domknięcia, pułapk…
Przeczytaj artykuł →Sztuczna inteligencjaKim są agenci AI? Jak one działają, dzięki prostej pętli agenta, którą możesz uruchomić
Kim są agenci AI? Prosty przewodnik po pętli agenta, narzędziach, pamięci i poręczach, z małą pętlą w Pythonie, którą uruchomiliśmy, prawdziwymi zag…
Przeczytaj artykuł →DevOpsMonitorowanie a obserwowalność: prawdziwa różnica z logami, wskaźnikami i śladami
Wyjaśnienie monitorowania a obserwowalności: znane i nieznane awarie, dzienniki, metryki i ślady, opis incydentu przy kasie, złote sygnały, OpenTele…
Przeczytaj artykuł →DevOpsWoluminy platformy Docker a mocowania powiązań: utrwalanie danych kontenera we właściwy sposób
Wyjaśniono woluminy Dockera a montowanie powiązań: dlaczego dane kontenera znikają, nazwane woluminy, montowanie powiązań, tmpfs, przykłady tworzeni…
Przeczytaj artykuł →Automatyzacja testówTDD vs BDD: kluczowe różnice, jedna funkcja zbudowana w obie strony i kiedy używać każdej z nich
TDD vs BDD wyjaśnione za pomocą jednej funkcji rabatowej zbudowanej w obie strony: refaktoryzacja czerwono-zielona z uruchomionym przez nas kodem, s…
Przeczytaj artykuł →Testowanie oprogramowaniaTestowanie akceptacyjne użytkownika (UAT): proces, lista kontrolna i rzeczywiste przykłady
Wyjaśniono testy akceptacyjne użytkownika: kto je przeprowadza, czym różni się od kontroli jakości, siedmioetapowy proces, szablon przypadku testowe…
Przeczytaj artykuł →Bazy danych i SQLWyjaśnienie wartości SQL NULL: IS NULL, COALESCE, NULLIF i pułapki, których należy unikać
Wartości SQL NULL wyjaśnione za pomocą zapytań, które wykonaliśmy: logika trójwartościowa, IS NULL, COALESCE, NULLIF, w jaki sposób agregacje, łącze…
Przeczytaj artykuł →Bazy danych i SQLInstrukcja SQL CASE WHEN: składnia, rzeczywiste przykłady i typowe błędy
SQL CASE WHEN wyjaśnione za pomocą zapytań, które uruchomiliśmy: proste i przeszukiwane formularze, kolejność warunków, elementy przestawne z SUM, s…
Przeczytaj artykuł →Tworzenie oprogramowaniaCo to jest JWT? Tokeny internetowe JSON wyjaśnione na przykładzie działania
Co to jest JWT? Wyjaśniono tokeny sieciowe JSON: trzy części, token zbudowany i zmodyfikowany w uruchomionym przez nas kodzie, JWT a sesje, pamięć m…
Przeczytaj artykuł →Tworzenie oprogramowaniaWyjaśnienie pętli zdarzeń JavaScript: stos wywołań, mikrozadania i liczniki czasu z przykładami
Pętla zdarzeń JavaScript wyjaśniona za pomocą uruchomionego przez nas kodu: stos wywołań, kolejki zadań i mikrozadań, dlaczego setTimeout 0 nie jest…
Przeczytaj artykuł →Tworzenie oprogramowaniaWyjaśnienie generatorów Pythona i wydajności: oszczędzaj pamięć dzięki prawdziwym przykładom
Generatory Pythona i wydajność wyjaśnione za pomocą uruchomionego przez nas kodu: sposób wstrzymywania i wznawiania, mierzone oszczędności pamięci, …
Przeczytaj artykuł →Sztuczna inteligencjaCzym są osady? Wyjaśnienie wektorów i podobieństwa cosinusa
Czym są osadzania? Prosty przewodnik po wektorach, podobieństwie cosinusów i wyszukiwaniu semantycznym, z małym przykładem, który przeprowadziliśmy,…
Przeczytaj artykuł →DevOpsWdrożenie niebiesko-zielone a kanaryjskie: różnice, kompromisy i sposób wyboru
Wyjaśniono wdrożenie Blue-Green vs Canary: sposób działania każdego z nich, koszty, ryzyko i wycofywanie zmian, przetestowane przez nas stabilne łąc…
Przeczytaj artykuł →Automatyzacja testówNiestabilne testy: co je powoduje i jak je naprawić na dobre
Niestabilne testy wyjaśnione w przeprowadzonych przez nas demonstracjach: główne przyczyny, sposób potwierdzenia i zdiagnozowania jednej z nich, odp…
Przeczytaj artykuł →Testowanie oprogramowaniaLoad Testing vs Stress Testing: Differences, Metrics and k6 Examples
Wyjaśniono testy obciążenia i testy warunków skrajnych: co dowodzi każdy z nich, testy szczytowe i nasiąkania, istotne metryki, dlaczego średnie wpr…
Przeczytaj artykuł →Testowanie oprogramowaniaPrzypadek testowy a scenariusz testowy: kluczowe różnice, przykłady i kiedy stosować każdy z nich
Wyjaśnienie przypadków testowych i scenariuszy testowych: jasne definicje, tabela obok siebie, jedna funkcja resetowania hasła zaczerpnięta ze scena…
Przeczytaj artykuł →Bazy danych i SQLOptymalizacja zapytań SQL: czytaj plany wykonania i napraw powolne zapytania z synchronizacją
Optymalizacja zapytań SQL przetestowana na milionie wierszy: przeczytaj plany wykonania, dodaj odpowiednie indeksy, napraw filtry niesargowalne, uży…
Przeczytaj artykuł →Bazy danych i SQLSQL UNION vs UNION ALL: różnice, przykłady i testowana wydajność
SQL UNION vs UNION ALL wyjaśnione na podstawie zapytań, które uruchomiliśmy: duplikaty, obie reguły są zgodne, prawdziwy błąd danych, zmierzona wyda…
Przeczytaj artykuł →Tworzenie oprogramowaniaSamouczek API pobierania JavaScript: GET, POST, obsługa błędów i limity czasu
Samouczek JavaScript Fetch API testowany na serwerze lokalnym: GET i POST, dlaczego 404 nie rzuca, pomocnik wielokrotnego użytku, ciągi zapytań, prz…
Przeczytaj artykuł →Tworzenie oprogramowaniaObsługa plików w Pythonie: odczyt, zapis, CSV, JSON i pathlib z przykładami
Obsługa plików w Pythonie wyjaśniona za pomocą uruchomionego przez nas kodu: tryby otwarte, czytanie dużych plików, CSV, JSON, pathlib, pliki binarn…
Przeczytaj artykuł →Tworzenie oprogramowaniaKlasy i obiekty Pythona: samouczek OOP z prawdziwymi przykładami
Klasy i obiekty Pythona objaśnione za pomocą uruchomionego przez nas kodu: __init__, metody, atrybuty klas i instancji, dziedziczenie, właściwości, …
Przeczytaj artykuł →Sztuczna inteligencjaCo to jest model dużego języka? Jak działają LLM, wyjaśnione bez szumu
Co to jest model dużego języka? LLM wyjaśnione prostym językiem: tokeny, osadzanie, uwaga, szkolenie, temperatura i okna kontekstowe, mała demonstra…
Przeczytaj artykuł →DevOpsPolecenia systemu Linux dla początkujących: niezbędny przewodnik po terminalu z przykładami
Polecenia systemu Linux dla początkujących, pogrupowane według zadań: nawigacja, pliki, przeglądanie logów, grep, potoki, uprawnienia, procesy i arc…
Przeczytaj artykuł →Automatyzacja testówSelenium kontra dramaturg: kluczowe różnice, porównanie kodu i wybór
Porównanie Selenium i Playwright: architektura, oczekiwanie, obsługa przeglądarki i języka, debugowanie, ten sam test w obu narzędziach, porady doty…
Przeczytaj artykuł →Testowanie oprogramowaniaPartycjonowanie równoważne: technika projektowania testów wyjaśniona na praktycznych przykładach
Wyjaśniono podział równoważny: jak znaleźć prawidłowe i nieprawidłowe partycje, sprawdzone przykłady dla grup wiekowych, hasła i kupony, przeprowadz…
Przeczytaj artykuł →Testowanie oprogramowaniaWażność a priorytet w testowaniu oprogramowania: różnice, macierz i rzeczywiste przykłady
Wyjaśniono ważność a priorytet w testowaniu oprogramowania: jasne definicje, czterokierunkowa macierz z przykładami, skale poziomów, kto ustawia każ…
Przeczytaj artykuł →Bazy danych i SQLSamouczek dotyczący podzapytań SQL: typy, skorelowane podzapytania i ISTNIEJĄ z przykładami
Samouczek dotyczący podzapytań SQL z zapytaniami, które wykonaliśmy: podzapytania skalarne, IN, FROM i SELECT, podzapytania skorelowane, EXISTS, puł…
Przeczytaj artykuł →Bazy danych i SQLWyjaśnienie transakcji SQL i ACID: COMMIT, ROLLBACK i poziomy izolacji
Transakcje SQL i ACID wyjaśnione za pomocą wykonanego przez nas przelewu bankowego: COMMIT, ROLLBACK, punkty zapisu, blokady, poziomy izolacji, brud…
Przeczytaj artykuł →Tworzenie oprogramowaniaGit merge vs rebase: różnice, przykłady i kiedy czego używać
Git merge vs rebase wyjaśnione na prawdziwym wyniku logu, z tabelą porównawczą, złotą zasadą rebase i bezpiecznym procesem pracy zespołu.
Przeczytaj artykuł →Tworzenie oprogramowaniaPython list comprehension: składnia, przykłady i kiedy jej unikać
Python list comprehension wyjaśnione: składnia, filtrowanie, if-else, zagnieżdżone pętle, zmierzone czasy i sytuacje, w których zwykła pętla for jes…
Przeczytaj artykuł →Bazy danych i SQLSQL JOIN – wyjaśnienie z przykładami (Inner, Left, Right, Full)
Zrozum złączenia SQL krok po kroku na przykładowych tabelach i zapytaniach: INNER, LEFT, RIGHT, FULL, CROSS i SELF, plus typowe błędy i wskazówki wy…
Przeczytaj artykuł →