SZUKAMY β-testerów Ścieżki Kariery Programisty AI! Zapisz się TU.

Ścieżka Kariery Computer Vision – BLOG – Miesiąc 1. – Podstawy Basha
Podstaw ciąg dalszy. Mam już trochę tego dość i chciałabym chociaż zahaczyć o coś, co ma związek z uczeniem maszynowym, ale staram się być cierpliwa. Bez odpowiednich podstaw szybko utknęłabym, pisząc prawdziwy kawałek kodu. Dlatego zaciskam zęby i idę ćwiczyć Podstawy Basha.
Podstawy Basha – plan pracy
- Czytamy (wertujemy?) podręcznik, dostępny za darmo na stronie autora:
- Robimy notatki (drukujemy cheat sheet z tutoriala o podstawach Basha)
- Próbujemy napisać polecenie do wyszukiwania słowa “numpy” (duże i małe litery) we wszystkich plikach z rozszerzeniem .py w naszym repo.
Ad. 1 – podręcznika The Linux Command Line
Przyznam bez bicia, że nie przeczytałam całości… Przewertowałam tylko podręcznik (szukałam głównie komend i omijałam opisy). Poprosiłam też chataGPT o streszczenie i oto, do czego doszliśmy wspólnymi siłami (pominęłam te komendy, które nie działały na moim macu oraz te, które moim zdaniem są zupełnie nieprzydatne):
Co warto wiedzieć o Bashu:
- Powłoka (np. bash) to interpreter poleceń.
- System plików Linuksa jest drzewiasty, z korzeniem /.
- Rozróżniamy ścieżki bezwzględne (/etc) i względne (docs/).
- ~ oznacza katalog domowy.
Skróty klawiaturowe w Bashu:
- Ctrl+D – zakończenie sesji
- strzałki góra/dół – historia poleceń
- strzałki lewo/prawo – poruszanie kursorem
- Tab – uzupełnianie nazw plików
- Uwaga na pliki z spacje w nazwach (trzeba dodać znak ucieczki \.
- Polecenia mają składnię: nazwa [opcje] [argumenty]
- Dostępna pomoc (man, –help), aliasowanie, zmienne środowiskowe.
Przegląd najważniejszych poleceń:
| Komenda | Funkcja | Przykłady |
| alias | definiowanie skrótu do polecenia | alias ll=”ls -l” #dodaje alias ll #używa alias unalias ll #kasuje alias |
| cd | zmiana katalogu | cd /etc # przejdź do katalogu /etc cd ~ # do katalogu domowego cd # do katalogu domowego cd .. # jeden poziom wyżej |
| cp | kopiowanie pliku lub katalogu | cp plik1 plik2 # kopiowanie pliku cp -r kat1 kat2 # rekurencyjnie |
| date | pokazuje datę | |
| echo | wypisuje tekst lub zmienną | echo $HOME # HOME i PATH to zmienne środowiskowe echo $PATH |
| exit | zakończenie sesji | |
| file | określenie typu pliku | file /bin/ls # typ pliku |
| less | przeglądaj plik strona po stronie | less /etc/passwd # przeglądanie pliku q # wyjście z less |
| ls | lista zawartości katalogu | ls # lista plików ls -l # format długil s -a # pokaż ukryte ls -la # l + a |
| man | dokumentacja polecenia | man ls # dokumentacja |
| mkdir | tworzy katalog | mkdir nowy_kat mkdir -p a/b/c # struktura zagnieżdżona |
| mv | przenosi lub zmienia nazwę | mv stara nowa # zmiana nazwy / przeniesienie mv „plik z nazwą.txt” nowy.txtmv plik\ z\ nazwą.txt nowy.txt |
| pwd | pokazuje bieżący katalog | |
| rm | usuwa plik lub katalog | rm plik # usuń plik rm -r katalog rm -rf katalog # wymuszenie usunięcia rm -i plik # z potwierdzeniem |
| type | pokazuje typ polecenia | type ls # czy wbudowane? type cd type echo |
| unalias | usuwa alias | |
| uptime | czas działania systemu | |
| which | lokalizacja programu | which cp # ścieżka do programu which git |
Ad. 2 – notatki i ściągi
Przeczytałam artykuł Bash od zera na porozmawiAImy.pl i wydrukowałam sobie ściągawkę. Chociaż jest bardzo podstawowa (przydałaby się część druga z bardziej ambitnymi komendami), na początek wystarczy.
Ad. 3 – zadanie
Czas na zadanie. Mamy napisać komendę wyszukującą słowo “numpy” bez względu na wielkość liter we wszystkich plikach z rozszerzeniem .py (czyli wyszukiwanie po typie i potem wyszukanie find, a może grep po wynikach?).
- wyszukać wszystkie pliki .py w repo
- wyszukać słowo kluczowe w wynikach
Zacznę od napisania polecenia do wyszukiwania słowa “numpy” (duże i małe litery) we wszystkich plikach z rozszerzeniem .py w naszym repo.
SPOILER! Kliknij, żeby zobaczyć rozwiązanie:
find ./Developer/sciezka-kariery-computer-vision -type f -name "*.py"
Dlaczego tak?
find wyszukuje wszystkie pliki lub katalogi. Dodałam –type f czyli file oraz -name „*.py”, żeby zawrzeć tylko pliki .py.
Czas na drugą część zadania — znalezienie wszystkich słów „numpy” wewnątrz tych plików. Trochę bez sensu drukować samo słowo — wydrukowałabym tylko na ekranie kilka razy słowy „numpy”. Dlatego wydrukuję całą linijkę, w której występuje słowo „numpy”.
SPOILER! Kliknij, żeby zobaczyć rozwiązanie:
find ./Developer/sciezka-kariery-computer-vision -type f -name "*.py" | xargs grep -i -h "numpy"
Dlaczego tak?
xargs pobiera dane będące wynikiem poprzedniej części pipeline’a, a grep wyszukuje linijki ze słowem „numpy”. Parametr -i oznacza ignorowanie wielkości liter.
Podsumowanie
To zadanie było trudniejsze niż przypuszczałam. Grep i xargs to wg mnie bardziej zaawansowane komendy, chociaż w przypadku pracy w Bashu z pewnością się przydają. Najważniejsze, że teraz widząc takie komendy w sieci (np. w instrukcjach instalacji itp.), będę wiedziała, o co w nich chodzi i nie dam się wpuścić w maliny.
Co dalej?
→ Zapisz się do naszego newslettera, żeby nigdy nie przegapić żadnego wartościowego artykułu.
→ Zajrzyj do sekcji Kariera w AI, gdzie znajdziesz konkretne materiały o zmianach na rynku pracy – w Polsce i na świecie – oraz ścieżkach kariery związanych ze sztuczną inteligencją (nie tylko jako programista!).
→ A jeśli chcesz pisać modele i pracować jako Architekt AI, ale nie wiesz, od czego zacząć (lub utknąłeś gdzieś na ścieżce), odwiedź dział Nauka AI – czeka tam wiedza, ciekawostki i realne wsparcie.
! Uwaga
Niniejszy ebook ma charakter informacyjny i edukacyjny. Nie stanowi porady prawnej ani oferty pracy w rozumieniu przepisów krajowych lub unijnych.
Przy tworzeniu niniejszego artykułu korzystano ze wsparcia narzędzi opartych na sztucznej inteligencji – m.in. w zakresie porządkowania treści, analizy źródeł, przyspieszenia redakcji i wyszukiwania źródeł Jednak wszelkie decyzje dotycząca treści, interpretacji i ostatecznej formy zostały podjęte przez człowieka.



