środa, 30 stycznia 2013

Podstawy BASH cz.1

Nie jestem wybitnym fachowcem od Bash'a, jednak coś tam potrafię napisać, szczególnie w sytuacjach bardzo awaryjnych:). Chciałbym rozpocząć cykl artykułów dotyczących Bash'a oraz Python'a. Chciałbym pokazać główne cechy oraz czasami przydatne sztuczki o których często mało kto wie.


Bash generalnie pozwala napisać większość potrzebnych narzędzi do codziennej pracy. Dzięki wrzuceniu do niego dodatkowo poleceń, które często są używane osobno, np. w czy who możemy stworzyć dobre skrypty, które często zaoszczędzają nam ilości uderzeń w klawiaturę.

Na początek może sprawdźmy jakie mam dostępne powłoki przy pomocy cat /etc/shells:


/bin/csh/bin/sh/usr/bin/es/usr/bin/ksh/bin/ksh/usr/bin/rc/usr/bin/tcsh/bin/tcsh/usr/bin/esh/bin/dash/bin/bash/bin/rbash

Jest to oczywiście moja lista, u Ciebie może być mniej pozycji.

Domyślną powłokę dla konkretnego użytkownika systemu możemy sprawdzić w pliku /etc/passwd , gdzie znajdziemy również hash hasła oraz katalog domowy, możemy użyć w tym celu polecenie grep login /etc/passwd, po chwili zobaczymy dane naszego użytkownika (oczywiście zamiast login wpisujemy np. root).

Aby zmienić naszego shella na inną wersję, wpisujemy jej nazwę w konsoli.

Jeżeli chcemy utworzyć nowy plik w którym będziemy tworzyć skrypty czy też przechowywać notatki możemy użyć polecenia touch nazwa_pliku.

System daje nam pewien zestaw zmiennych systemowych jak i innych poleceń (włączanych przez cytowanie), przy pomocy których możemy, np. napisać prosta wizytówkę, która pokaże nam min. godzinę, listę zalogowanych użytkowników, nazwę hosta itd..

Na początku tworzymy plik, który będzie naszym skryptem. Ja używam edytora nano.

nano wizytowka.sh
na początku dodajemy:
#!/bin/bash #Sciezka do powloki bash, znak '#' odpowiada za komentarz
# Przywitanie zalogowanego uzytkownika
echo "Czesc" $USER 
# Nazwa katalogu domowego
echo "Twoje pliki znajduja sie w:" $HOME
#Pokazanie obecnej daty, godziny, w odroznieniu do $USER, #pokazanie daty oraz godziny odbywa się przy pomocy `` umożliwia #to cytowanie pewnych polecen
echo "Obecnie jest" `date` 
# W systemie zalogowani sa
echo "Zalogowani" `whoami`
# Nazwa naszego hosta
echo "Zalogowany jestes na: " $HOSTNAME
# Mozemy rowniez sprawdzic jak dlugo dziala nasz system
echo "Maszyna ta dziala:" `uptime`

Zapisujemy go, w nano poprzez Ctrl+O. Musimy jeszcze nadać prawa dla naszego skrypt, aby można było go wykonać.

chmod 700 wizytowka.sh

następnie uruchamiamy go

./wizytowka

Powinniśmy zobaczyć te informacje, które zapisywaliśmy w skrypcie:
- nasz login
- katalog domowy
- datę oraz godzinę
- zalogowanych użytkowników
- nazwę hosta
- czas działania

Dodatkowo możemy użyć prostego debugowania kodu. Ustawiamy znacznik set -x oraz set +x, obejmując w ten sposób jakiś wiersz / kilka wierszy. Skrypt uruchamiamy normalnie ./wizytowka.sh. Poprzez polecenie: bash -x wizytowka.sh robimy debugowanie całego kodu.




Brak komentarzy:

Prześlij komentarz