Zadanie 4: Praca z powłoką Bourne shell


Minimalne wymagania do zaliczenia ćwiczenia, jak również forma sprawozdania będą określone przez prowadzących zajęcia laboratoryjne.

Wymagania wstępne

Przypomnieć sobie i przećwiczyć użycie poniższych poleceń:

Zadania do wykonania

  1. Przećwiczyć użycie znaków uogólniających np. z poleceniem ls lub cp
    .
    - katalog bieżący

    ..
    - katalog wyższego poziomu

    *
    - dowolny ciąg znaków (w tym ciąg pusty)

    ?
    - dowolny znak

    [adg]
    - litera a, d lub g

    [d-m]
    - dowolna litera od d do m

    [3-8]
    - dowolna cyfra od 3 do 8

    [!2]
    - dowolny znak różny od 2

  2. Przećwiczyć przekierowania i potoki:

    cat plik1 > plik2

    cat plik1 >> plik2

    cat plik1 plik2 > plik3

    cat plik1 plik2 >> plik3

    ls -l > plik

    ls -l istniejący_plik nieistniejący_plik

    ls -l istniejący_plik nieistniejący_plik > out_ist

    ls -l istniejący_plik nieistniejący_plik > out_ist 2>out.nieist

    ls -l istniejący_plik nieistniejący_plik > out_plik 2>&1

    ls -l istniejący_plik nieistniejący_plik > out_ist 2>/dev/null

    ls -al > plik; cut -c 15-25 plik

    ls -al | cut -c -15

    ls -l /usr/bin | cut -c 45- | less

    ps -e > psout; sort +3 psout > pssort; less psout; less pssort

    ps -e | sort +3 | less

    ps -e | wc; ps -e | wc -l;

    ps -e > psout; wc -l < psout

    ps -e > psout; wc -l < psout

    ps -e > psout; wc -l < psout > il_lin

  3. Napisz ciąg komend, ktore spowodują:

    Zapisz te komendy w pliku tekstowym skrypt1, a następnie wykonaj napisany skrypt poprzez wywołanie
    sh skrypt1
    i
    sh < skrypt1.

    Wykorzystaj możliwość tworzenia skryptów do realizacji następnych zadań

  4. Przećwicz realizację następujących instrukcji warunkowych:

  5. Zdefiniuj zmienne arg1 i arg2, wykorzystaj instrukcję warunkową if do sprawdzenia czy zachodzą poniższe warunki.

    `expr $arg1 + 2` -eq $arg2 -- prawdziwe jeśli arg1+2=arg2

    `expr $arg1 + 2` -ne $arg2 -- prawdziwe jeśli arg1+2<>arg2

    `expr $arg1 + $arg2` -gt 5 -- prawdziwe jeśli arg1+arg2>5

    `expr $arg1 + $arg2 + 2` -ge $arg2 -- prawdziwe jeśli arg1+arg2+2>=arg2

    `expr $arg1 + 1` -lt `expr $arg2 + 2` -- prawdziwe jeśli arg1+1<arg2+2

    `expr $arg1 + 1` -le `expr $arg2 + 2` -- prawdziwe jeśli arg1+1<=arg2+2

  6. Przećwicz działanie następujących pętli:

  7. Wykorzystaj instrukcje who, sort i uniq do sprawdzenia ilu użytkowników jest zalogowanych w systemie.