0 Obsługa systemu LINUX (cz. 2)
Tomasz Zaworski edited this page 2020-11-15 02:28:24 +01:00
  1. Wprowadzenie
  2. Standardowe strumienie wejścia/wyjście
  3. Zadania do wykonania na zajęciach
  4. 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ń.