Kategoria: Powłoka Bash

  • (BH) Grep*

    (BH) Grep*

    Przykładowe wykorzystanie

    Network

    linux$ grep -E -o “([0-9]{1,3}[.]){3}[0-9]{1,3}” nazwa-pliku

    Wyświetla wszystkie adresy IP zapisane w określonym przez komendę pliku.
  • (Bh) Zmienne powłoki BASH*

    (Bh) Zmienne powłoki BASH*

    Podstawy dotyczące zmiennych powłoki BASH

    Znaki specjalne

    • $ – Wskazuje nazwę zmiennej, umożliwiając podstawienie jej wartości.
    • \ – Znak maskujący (Wyłącza interpretację poleceń do niego przylegających).
    • ` ` – Umożliwia cytowanie poleceń zawartych pomiędzy odwróconymi apostrofami. Dzięki czemu mogą być one przechowywane pod postacią zmiennej, np. [x=`ls -la $PWD`].
    • ‘ ‘ – Wyłącza interpretację poleceń znajdujących się pomiędzy odwróconymi apostrofami.
    • ” “ – Przetrzymuje tekst czy wartości zmiennych zawierających spację.

    Manipulowanie wartością zmiennej

    Zmiana wielkości znaków

    • ${zmienna,} – Zmienia pierwszą literę danej zmiennej na małą.
    • ${zmienna,,} – Zmienia wszystkie litery danej zmiennej na małe.
    • ${zmienna^} – Zmienia pierwszą literę danej zmiennej na dużą.
    • ${zmienna^^} – Zmienia wszystkie litery danej zmiennej na duże.
    • ${zmienna~} – Odwraca wielkość pierwszej litery podanej zmiennej.
    • ${zmienna~~} – Odwraca wielkość wszystkich liter podanej zmiennej.
    • ${!wartość*} – Odnosi się do zmiennych które zaczynają się od podanej wartości.
    • ${!wartość@} – Odnosi się do zmiennych które zaczynają się od podanej wartości.

    Usuwanie ciągów znaków

    • ${zmienna#wzorzec} – Usuwa wartość zmiennej do pierwszego momentu wysępienia określonego w komendzie wzorca. Przykładowa komenda [${zmienna#*.}] użyta na zmiennej o wartości (/home/johny/example.txt.gz) da wynik (txt.gz).
    • ${zmienna##wzorzec} – Usuwa wartość zmiennej do ostatniego momentu wysępienia określonego w komendzie wzorca. Przykładowa komenda [${zmienna##*.}] użyta na zmiennej o wartości (/home/johny/example.txt.gz) da wynik (gz).
    • ${zmienna%wzorzec} – Xxx. Przykładowa komenda [${zmienna%/*}] użyta na zmiennej o wartości (/home/johny/example.txt.gz) da wynik (/home/johny).
    • ${zmienna%%wzorzec} – Xxx. Przykładowa komenda [${zmienna%%/*}] użyta na zmiennej o wartości (/home/johny/example.txt.gz) da wynik (/home/johny/example).

    Zamiana ciągów znaków

    • ${zmienna/wzorzec/ciąg znaków} – Zastępuje pierwszy ciąg znaków występujący w danej zmiennej, na inną wskazaną w komendzie wartość. Przykładowa komenda [${zmienna/example/rkkr}] użyta na zmiennej o wartości (/home/johny/examples/example.txt.gz) da wynik (/home/johny/rkkrs/example.txt.gz). Podanie pustej wartości zamiast ciągu znaków usunie dany ciąg znaków.
    • ${zmienna//wzorzec/ciąg znaków} – Zastępuje wszystkie ciągi znaków występujące w danej zmiennej, na inną wskazaną w komendzie wartość. Przykładowa komenda [${zmienna//example/rkkr}] użyta na zmiennej o wartości (/home/johny/examples/example.txt.gz) da wynik (/home/johny/rkkrs/rkkr.txt.gz). Podanie pustej wartości zamiast ciągu znaków usunie dany ciąg znaków.

    Usuwanie znaków

    • ${zmienna:do} – Usuwa wartość zmiennej do wskazanego znaku. Przykładowa komenda [${zmienna:4}] użyta na zmiennej o wartości (ala_ma_kota) da wynik (ma_kota).
    • ${zmienna:od:do} – Usuwa wartość zmiennej poza wskazanym zakresem znaków. Przykładowa komenda [${zmienna:0:3}] użyta na zmiennej o wartości (ala_ma_kota) da wynik (ala).

    Ilość znaków

    • ${#zmienna} – Wyświetla ilość znaków z jakie składa się dana zmienna. Przykładowa komenda [${#zmienna}] użyta na zmiennej o wartości (czajnik) da wynik (7).

    Zmienne programowe

    • zmienna=”wartość zmiennej” – Prosta deklaracja zmiennej.

    linux$ zmienna =”Wartość zmiennej”

    linux$ echo ${zmienna}

    linux$ echo $zmienna

    Wyświetla wartość stworzonej zmiennej.

    Zmienne systemowe

    • $HOME – Ścieżka do katalogu domowego.
    • $USER – Login użytkownika.
    • $HOSTNAME – Nazwa hosta.
    • $OSTYPE – Rodzaj systemu operacyjnego.
    • $UID (Unique User ID) – Unikalny numer użytkownika.
    • $TERM – Rodzaj wykorzystywanego terminala.

    linux$ printenv | less

    Wyświetla wszystkie dostępne zmienne środowiskowe.
  • (Bh) Wstęp do powłoki*

    (Bh) Wstęp do powłoki*

    !/bin/bash
    #
    # Hello world example
    #
    echo “Hello world”

    linux$ # chmod 711 nazwa-skryptu.sh

    Zmienia poziom uprawnień skryptu powłoki BASH.

    linux$ ./nazwa-skryptu.sh

    Wykonuje skrytp powłoki BASH.

    linux$