#bash01 – Podstawowe komendy basha, porównie gitbasha z terminalem Linuxa

Reading Time: 10 minutes

Cześć, w kolejnym wpisie.
Na początku mały ogólny wstęp – #ZOSTAŃWDOMU.
Zrzutka na maski ochronne z drukarki 3D kosz jednej 3 złote – > https://zrzutka.pl/cba7u5
Epidemia koronowirusa powoli normuje się w Chinach zaś w Europie, to raczej jej epicentrum.
W obliczu tego co dzieje się na całym świecie … w Europie, a szczególnie w naszym kraju, musicie być odpowiedzialni. Wychodźcie tylko po zakupy, kuriera do paczkomatu, apteki, gdy nie musicie, nie odwiedzajcie innych miejsc.
W zakładce 'koronowirus' postarałem się, zamieścić informacje w miarę rzetelne i podstawowe informacje, które będę weryfikował i modyfikował.
Zdaję sobie sprawę, że informacje tam zawarte są trochę chaotycznie uporządkowane i napisane. Lecz uznałem, że jako strona 'z jakimiś' zasięgami, mam obowiązek zamieścić informacje o zagrożeniu ! 🙂
https://gregkaqa.pl/index.php/koronawirus/
Strona nie prze-indeksowała mi jeszcze adresu i wbijajcie tutaj lub

Sekcja muzyczna musi być ! 😀

Wstęp – trochę teorii

Dobra po tym wstępie zaczynamy od krótkiej teorii.
Bash czy w ogóle jest ?
Bash to powłoka systemowa dla systemów UNIX.
Dlaczego akurat o niej ? Na rynku pracy jak i w codziennym użytkowaniu jest po prostu najpopularniejsza.
W wielkim skrócie jest to rozszerzenie powłoki sh, czyli pierwowzoru basha. Bash jest kompatybilny z sh w 100%.
Ciekawostką jest fakt iż do niedawna Bash był też główną powłoką w systemie nagryzionego jabłka czyli OSX wcześniej MacOS.
I tutaj dostajecie od razu nowość kolejnym rozszerzeniem / modyfikacją basha jest ZSH. Zsh mam zainstalowane na Linuxie, z którego korzystam jako drugi system, to będziecie mogli zobaczyć screeny z tejże powłoki.
Dobra jakie są jeszcze inne znane powłoki ? Powłoki, które warto znać ?
Archaiczny język DOS niejako był to system operacyjny a później po prostu konsolowa część znanego wszystkim bardzo dobrze systemu Windows.
Do współczesnych zastosowań prosty przykład czyli np. stworzenie folderu z kropką w nazwie.

Nie będę podawał dat, bo to mało istotne, Microsoft w jakimś momencie stwierdził, że musi zrobić coś na wzór Basha czyli Powershell.
Perełka, która oferuje naprawdę dużo.
To niejako też powłoka, bowiem musimy mieć pakiet powershella aby korzystać z dobrodziejstw tego, co dał nam Microsoft.

Czas na obrazki

Tak wygląda powershell w Windows 10.
Ktoś kto mniej więcej kojarzy cmd oraz basha widzi, że powershell obsługuje polecenia z linuxa i windowsa.

Tutaj widzicie wpisałem na końcu pwd, powershell zinterpretował to poprawnie zaś cmd nie wie co się dzieje.
Istna magia a wszystko robię na Windows 10.

A tak wygląda podsumowanie tego samego polecania w Win10 w od lewej Powershell, w środku Git Bash z prawej CMD.

Zarówno w bashu jak i powershell, nie uświadczymy wszystkich komend linuxa, które wymagają 'posiadania' fizycznie zainstalowanego pakietu / programu np. top.
Ale już np. tylko w gitbash znajdziemy edytor plików o nazwie nano.
Ten kto siedzi na linuxie wie o co chodzi.

Tak to wygląda. Ale zbaczamy trochę z drogi.
Dlatego przechodzimy do sekcji podstawowe polecenia Bash.
Nie martwicie się o CMD i powershell też będzie wpis.

Podstawowe komendy bash, które trzeba znać.

https://gitforwindows.org/

Większość z was powinna mieć zainstalowanego gita na swoim Windowsie.
A więc, wedle uznania wybieracie GitForWindows lub szukacie samej powłoki co za bardzo nie ma sensu, bo GitBash jest wystarczający.
Jeśli zaś korzystacie z Linuxa i np. chcecie się czegoś dowiedzieć, bowiem aktualnie Linuxa można zainstalować graficznie i używać bez terminala.
To zerknijcie później na sekcję, w której pokazuję parę komend na Linuxie.

Wracamy do GitBasha.

Na zielono pokazuje nam użytkownika plus nazwa komputera, w linuxie będzie tak samo a po małpie będzie nazwa hosta lub ip maszyny.
Tylda oznacza katalog domowy użytkownika w windowsie jest to :
C/users/nazwauzytkownika
Ważne info tabem możecie dopełniać nazwy lub uzyskiwać podpowiedzi.

Komendy do katalogów :
pwd – wypisuje gdzie jesteśmy, bardzo przydatne
cd – zmiana aktualnego katalogu na inny
aa samo cd wpisane w jakimkolwiek katalogu wraca nam do domowego katalogu użytkownika bardzo przydatne
Pokaże wam kombinacje na screenach resztę sobie doczytacie 😀

https://www.astrouw.edu.pl/~jskowron/pracownia/komendy/

Kolejne polecania podstawowe.
ls – listuje katalog czyli pokazuje jego zawartość plikową i folderową

Ważne info teraz to polecania w linuxie często posiadają porametry, jeśli np. nie macie dostępu do internetu to robicie pomoc 🙂

Wpisujecie polecenie ls –help i macie dosłownie każdy szczegół jak używać parametrów.

To samo z poleceniem cd, wpisujemy cd –help i mamy wszystko 🙂

Operacje na plikach tekstowych

No to może często przydaje się obsługa plików tekstowych.
Polecanie do plików :
cat – wypisuje zawartość pliku / plików na ekran
tac – to samo tylko od ostatniej do pierwszej linii

Przygotowałem w Nano taki tekst, równie dobrze możecie to zrobić w notatniku normalnie w Windowsie i przejść do katalogu z plikiem.

Tak działa cat i tac, w najprostszym przykładzie.

Może nie, tekstowe ale polecenie do wypisania na ekranie tekstu ręcznie wpisanego z klawiatury.

Możemy też tekst przypisać do zmiennej i dopiero ją wyświetlić.
Jest to bardziej już polecenie do tworzenia skryptów, o których będzie w następnym wpisie.

Tutaj prosty przykład, że możemy robić nawet zmienne do wykorzystywania np. w celu szybszego poruszania się po Bashu, to już tylko wyobraźnia i sposób wykonania nas ogranicza.

Wracamy do tekstowych poleceń :
less wygodnie wyświetla pliki tekstowe.

less nazwa pliku wychodzimy przyciskiem Q.

Kolejne przydatne polecenie wc

liczy znaki w plikach

echo „text” zmienna lub coś innego > strumień – > wyjście np. plik tekstowy
> nadpisywanie wszystkiego
>> – dopisywanie na końcu

Okej skończymy Windowsowy bash na plikach i katalogach.
I to podstawowych
touch tworzenie nowego pliku lub zmiana czasu modyfikacji pliku
np. stworzenie pustego pliku, można pisać rozszerzenie lub nie.

Cp – kopiuje plik/pliki lub zawartość całego folderu

Mv – takie same możliwości tylko że przenoszenie plików

Rm – usuwanie plików

Tworzenie i usuwanie katalogów mkdir i rmdir

Chcemy usunąć folder i wszystko w środku ?

Tutaj zaś opóźnienie folderu.
Generalnie, nie ma co czytać, aby to zrozumieć, trzeba po prostu siąść i testować komendy. Czytać –helpa lub zainstalować Linuxa i działać samemu. Ja aby dostosować sobie odpowiednio Linuxa, trochę czasu z konsolą spędziłem i nadal czuje, że mam minimalne podstawy, a nie zaawansowanie w tym temacie 😀

Przerwa 😀

Trochę humoru się przyda, w tym trudnym czasie 😀

Czas na pokaz w Linuxie 🙂

Tak wygląda u mnie terminal w Fedorze 31 z nakładką na basha wspomnianą na początku czyli Zsh.
Jest to zsh z oh-my-zsh z powerlevel9k czyli skórką.
https://youtu.be/wM1uNqj71Ko

Kto będzie chciał może sobie popatrzeć na to cudo w terminalu 🙂

Skoro mamy Linuxa fizycznego bądź też zdalnego (ssh), mamy doczyniania z pełnoprawnym Bashem, bo nie oszukujemy się jak Bash to najlepszy na Linuxie. Zatem komendy do zalogowania się.
Jeśli mamy swojego użytkownika i po prostu otwieramy terminal, wyskoczy nam okno od razu bez potrzeby wpisywania hasła, no chyba, że system jest skonfigurowany jakoś inaczej.

W ssh raczej zapyta was o hasło.
Co to ssh możecie wpisać sobie w google.
Ssh to w skrócie taki pulpit zdalny tylko dla konsoli linuxa, polecania przekazujemy zdalnie.
Dwa polecania su – przełączanie się na innego użytkownika (root domyślnie). Musimy wpisać hasło roota.
Zaś sudo to wykonanie danego polecania bądź poleceń jako administrator (domyślnie) lub inny użytkownik.
Po zrobieniu owego polecania, znów mamy normalny wiersz jako nasz użytkownik.
Za każdą zmianą czegoś w systemie przez terminal musimy podać hasło administratora.
Zaś użytkownik z nieograniczonym dostępem i logowanie się na niego są najczęściej w systemach domyślnie nie ustawione.
Korzystanie z konta root jest wygodne ale i niebezpieczne.
No chyba że to lokalny linux tylko dla Ciebie.

Różne wcześniej omawiane przykłady.
Dobra żeby było coś innego niż na Bashu z Windowsa.

W Bashu na Windowsa nie było obsługi man czyli takiego lepszego i ładniejszego –helpa.

Wyczytacie wszystko, macie dostępne przykłady nie potrzebujecie internetu by zgłębić się w dane polecenie.
Wychodzicie z mana Q, aby proces potem nie wisiał.

Aby dobrze poznać Linucha najlepiej jest go zainstalować obok Windowsa i używać u mnie na potrzeby tego bloga jak i pracy.
No i oczywiście gier 😀 potrzebuje mieć obok Windowsa, ale niektórym spokojnie wystarczyłby sam Linux.
Praca zdalna vpn i pulpit zdalny ? Linux ma wbudowaną obsługę OpenVPN a dobrym programem do RDP okazał się program o nazwie : Remmina.
Więc zdalnie na Linuxie ? Można tak samo jak na Windowsie.

Ok damy fedorę, zróby rozwiązanie problemu krok po kroku chcemy program Audacity.

https://snapcraft.io/install/audacity/fedora

To pierwszy wynik wyszukiwania audacity fedora.
Potrzebujemy pakietu snap.

sudo dnf install snapd
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install audacity

Pyk program zainstalowany, są też pliki pakietów np. .deb oraz .rpm taki odpowiednik .exe z Windowsa. Są też archiwa tar ale to może innym razem.

W Fedorze program Odkrywca sam ogarnia takie pakiety rpm.

Trochę zboczyłem z toru Basha, ale pokazałem wam, że nie wszystko musicie klepać terminalem, aby nie zrazić się Linuxem, dla takich początkujących osób.

Co na koniec ? Wstęp do skryptów w bashu.
Napiszemy jakiś prosty skrypt. A już o samych skryptach następny post.
Na pewno też pokażę jak zrobić te wszystkich rzeczy jakie pokazywałem na Windowsa np. docker node.js itp. na Linuchu : )

Prosty skrypt w bashu

Aby stworzyć skrypt w bashu potrzebujemy terminala i nadaniu mu uprawień do wykonania. Przechodzimy za pomocą cd do interesującego nas katalogu w którym to trzymamy nasz skrypt i wpisujemy coś takiego :

touch prostyskrypt.sh
chmod -v +x prostyskrypt.sh

Następnie dostępnym edytorem np. nano otwieramy skrypt.
W nano jako, że jest to program poza powłoką tak jakby to aby wyjśc trzeba użyć kombinacji ctrl + x i inne opcje też stosujemy łącząc ctrl z odpowiednią literą klawiatury. Zapis odbywa się ctrl + o.

 !/bin/sh
 echo skrypt testowy 
 max=10
 for i in seq 1 $max
 do
     echo "$i"
 done
 echo wpisz numerek od 1 do 12 i otrzymaj informacje o miesiacu
 read d
 case "$d" in
   "1") echo 'Styczeń, zimno … jak w kieleckim' ;;
   "2") echo 'Luty, goraca herbatka i seriale i biesczady najlepiej!' ;;
   "3") echo 'Marzec, juz niedlugo wiosna …' ;;
   "4") echo 'Kwiecień, kwiatuszki przyroda zycie …' ;;
   "5") echo 'Maj, "W maju baki lataja i zapylaja …" ' ;;
   "6") echo 'Czerwiec, chyba juz mozna w krotkich lazic' ;;
   "7") echo 'Lipiec, najlepszy miesiac na urlop ?' ;;
   "8") echo 'Sierpień, gorycz tropikow' ;;
   "9") echo 'Wrzesień, tansze wycieczki lub np. malo ludzi na szlakach :D' ;;
   "10") echo 'Październik, roznorakie kolorki przyrody…' ;;
   " 11") echo 'Listopad, jesienna deprecha ? e tam lepiej niz zima :D' ;;
   "12") echo 'Grudzień, koniec roku mozna sie nazrec' ;;
   *) echo "Czego nic nie wybrales czleku ?"
 esac

Wklejacie owy skrypt wklejacie do nano ctrl shift v i ctrl o zapisujecie.
Wychodzicie ctrl + q i odpalacie skrypt.

I tyle, wpis jest i tak długi zatem bez wgłębiania się w to co tam napisałem, odsyłam was do sprawdzenia samemu.
W następnym wpisie zajmiemy się już jakimiś bardziej rozbudowanymi przykładami skryptów w Bashu. Tym czasem dzięki za przeczytanie, polecenie, zalajkowanie. Bardzo mnie cieszy, jeśli moje wpisy wam się podobają 🙂
Zatem pożegnania nadszedł czas, dobrej niedzieli i optymistycznego nowego tygodnia ! 🙂

p.s. Jak siedzicie w domu (a powinniście) to macie coś do oglądania cofnięcie się kilka lat, do popularnej serii Piątek the series, zachęcam do oglądania.

Albo zacznijcie od pierwszego odcinka 😀

2 thoughts on “#bash01 – Podstawowe komendy basha, porównie gitbasha z terminalem Linuxa

Napisz komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.