Table of Contents
- Wprowadzenie
- Standardowe strumienie wejścia/wyjście
- Zadania do wykonania na zajęciach
- Zadania domowe
Wprowadzenie
Bash to interaktywny interpreter za pośrednictwem którego możemy zlecać systemowi operacyjnemu wykonywanie poleceń. Przykład:
$ echo Hello World
Hello World
Opis działania danego polecenia mozna uzyskac korzystajac z polecenia man
.
$ man echo
Standardowe strumienie wejścia/wyjście
-
Standardowy strumień wejścia (standardowe wejście,
stdin
,0
) składa się z danych przekazywanych do programu. -
Standardowy strumień wyjścia (standardowe wyjście,
stdout
,1
) składa się z danych przekazywanych przez program. -
Standardowy strumień wyjścia błędów (standardowe wyjście błędu,
stderr
,2
) jest wykorzystywany do przekazywania komunikatów o błędach.
$ cat
Hello World # Wprowadzić z klawiatury "Hello World<ENTER>"
# (tj. przekazać z powłoki na standardowe wejście polecenia cat)
Hello World # Polecenie cat wyświetla przekazany łańcuch znaków
# (tj. przekazuje na standardowe wyjście)
# nacisnąć Ctrl+D
Standardowe wyjście można przekazać do pliku korzystając z operatora >
.
$ echo Hello World > hello.txt
Dane można również dopisać do istniejącego pliku korzystając z operatora >>
.
$ echo Foobar >> hello.txt
Dane można przekazać z pliku na standardowe wejście korzystając z operatora <
.
$ cat < hello.txt
Żeby przekierować standardowe wyjście błędu do pliku musimy poprzedzić operator >
odpowiednim numerem strumienia (czyli 2
). Proszę porównać:
$ rm plik_ktory_nie_istnieje > err.txt
rm: cannot remove 'plik_ktory_nie_istnieje': No such file or directory
$ cat err.txt
oraz
$ rm plik_ktory_nie_istnieje 2> err.txt
cat err.txt
Zadania do wykonania na zajęciach
Zadanie 1
Uruchom terminal.
Zadanie 2
Wyświetl nazwy plików i katalogów znajdujących się w katalogu domowym korzystając z polecenia ls
.
Zadanie 3
Zapoznaj się z opisem polecenia ls
, korzystając z pomocy systemowej.
Zadanie 4
Wyświetl zawartość bieżącego katalogu z uwzględnieniem:
- plików ukrytych,
- atrybutów i dat modyfikacji plików (bez plików ukrytych),
- atrybutów i dat modyfikacji plików (razem z plikami ukrytymi).
Zadanie 5
Przejdź do katalogu głównego, wyświetl jego zawartość, przejdź ponownie do katalogu domowego.
Zadanie 6
Utwórz w katalogu domowym podkatalog o nazwie zajecia2
.
Zadanie 7
Utwórz w katalogu zajecia2
pusty plik o nazwie empty.txt.
Zadanie 8
Utwórz w katalogu zajecia2
plik f1.txt
zawierający liczby:
324
17
13
123
88
693
13
Zadanie 9
Posortuj w porządku leksykograficznym zawartość pliku f1.txt
i zapisz wynik w pliku f1.txt.sorted
.
Zadanie 10
Posortuj w porządku naturalnym zawartość pliku f1.txt
i zapisz wynik w pliku f1.txt.nums
.
Zadanie 11
Utwórz w katalogu zajecia2
podkatalog archiwum
a w nim podkatalogi pierwsze arch
oraz drugie arch
.
Zadanie 12
Skopiuj plik f1.txt
do katalogu archiwum
.
Zadanie 13
Skopiuj plik f1.txt
do katalogu pierwsze arch
tworząc plik f2.txt
.
Zadanie 14
Zmień nazwę pliku f1.txt.nums
na f1.nums
.
Zadanie 15
Przenieś plik f1.txt.sorted
do katalogu pierwsze arch
i zmień jego nazwę na f1.sorted
.
Zadanie 16
Skopiuj katalog pierwsze arch
tworząc katalog arch3
.
Zadanie 17
Usuń katalog drugie arch
.
Zadanie 18
Usuń katalog pierwsze arch
razem z zawartością.
Zadanie 19
Utwórz w katalogu archiwum
puste pliki o nazwach a.txt
, b.txt
, c.md
oraz d.md
.
Zadanie 20
Skopiuj z katalogu archiwum
do katalogu arch3
wszystkie pliki, których nazwy kończą się łańcuchem znaków .txt
.
Zadanie 21
Zapisz swoje imię i nazwisko w zmiennych środowiskowych odpowiednio IMIE
i NAZWISKO
.
Zadanie 22
Utwórz katalog o nazwie student-imię-nazwisko
, odczytując odpowiednie dane ze zmiennych IMIE
i NAZWISKO
.
Zadania domowe
Zanim przystąpią Państwo do wykonania zadań proszę wywołać w powłoce polecenie:
script zajecia2.txt
Powyższe polecenie spowoduje, że wszystkie wywołane przez Państwa polecenia zostaną zapisane w pliku zajecia2.txt
. Aby zakończyć zapisywanie komend, wciśnij Ctrl+D
.
Zadanie domowe 1
Utworzyć następującą strukturę katalogową:
numer_indeksu/
|-- cw2
| |-- kata
| | |-- a.txt # plik zawierający w kolejnych wierszach litery imienia
| | |-- b.txt # plik zawierający w kolejnych wierszach litery nazwiska
| | `-- c.txt # plik zawierający w kolejnych wierszach cyfry z numeru indeksu
| |-- katb
| | |-- kate
| | | |-- aaa.txt # plik złożony z trzykrotnie powtórzonej zawartości pliku a.txt
| | | `-- aa.txt # plik złożony z dwukrotnie powtórzonej zawartości pliku a.txt
| | `-- katf
| | |-- 100.txt # plik zawierający w kolejnych wierszach liczby od 1 do 100
| | `-- hello.txt # plik zawierający napis "Hello World"
| `-- katc
| `-- bcaa.txt # plik złożony z zawartości plików b.txt, c.txt oraz aa.txt
|-- imię nazwisko # katalog o nazwie złożonej z imienia i nazwiska oddzielonych spacją
| `-- sorted.txt # plik składający sie z zawartości wszystkich powyższych plików,
| # którego wiersze są posortowane w kolejności leksykograficznej
`-- zajecia2.txt # kopia pliku, w którym zapisały się wykonane komendy (dodaj go na samym końcu!)
Zadanie domowe 2
Takie samo jak Zadanie domowe 1, ale z wykorzystaniem jak najmniejszej liczby poleceń.