Ćwiczenia: Strumienie i Potoki w Linuxie

Praktyczne ćwiczenia związane z operacjami na strumieniach i potokach w systemie Linux.

1. Przekierowanie standardowego wyjścia (stdout)

Cel: Zrozumienie, jak przekierować dane wyjściowe do pliku.

Wykonaj poniższą komendę w terminalu:

echo "Witaj w Linux!" > tekst.txt

Sprawdź zawartość pliku:

cat tekst.txt

Omówienie: Komenda `echo` wypisuje tekst, a znak `>` przekierowuje wynik do pliku.

2. Przełączanie standardowego wejścia (stdin)

Cel: Nauka przełączania wejścia strumienia z pliku do komendy.

Wykonaj poniższą komendę w terminalu:

cat < tekst.txt

Omówienie: Znak `<` przełącza strumień wejściowy na zawartość pliku.

3. Przełączanie standardowego wyjścia błędów (stderr)

Cel: Nauka przełączania wyjścia błędów.

Wykonaj poniższą komendę w terminalu:

ls nieistniejący_katalog 2> błędy.txt

Sprawdź zawartość pliku błędów:

cat błędy.txt

Omówienie: Znak `2>` przekierowuje strumień błędów do pliku.

4. Potokowanie strumieni danych (pipes)

Cel: Zrozumienie, jak łączyć różne komendy w celu przetwarzania danych.

Wykonaj poniższą komendę w terminalu:

ps aux | grep firefox

Omówienie: Znak `|` pozwala na przekazywanie wyjścia jednej komendy jako wejście do innej komendy.

5. Łączenie strumieni (stdout i stderr)

Cel: Nauka łączenia wyjścia standardowego i błędów w jednym pliku.

Wykonaj poniższą komendę w terminalu:

ls 2>&1 > wszystkie_wyniki.txt

Sprawdź zawartość pliku wynikowego:

cat wszystkie_wyniki.txt

Omówienie: Komenda `2>&1` łączy standardowe wyjście z błędami, a `>` zapisuje je do pliku.

6. Użycie potoku z sortowaniem wyników

Cel: Przekazywanie wyników jednej komendy do innej i sortowanie ich.

Wykonaj poniższą komendę:

ls -l | sort -k 9

Omówienie: `sort` umożliwia sortowanie wyników. Opcja `-k 9` oznacza sortowanie po 9. kolumnie.

7. Przekierowanie wyjścia błędów i standardowego wyjścia do różnych plików

Cel: Nauka przekierowywania standardowego wyjścia i błędów do różnych plików.

Wykonaj poniższą komendę:

ls 1> wynik.txt 2> bledy.txt

Omówienie: `1>` przekierowuje standardowe wyjście, a `2>` wyjście błędów do różnych plików.

8. Sprawdzenie liczby procesów w systemie

Cel: Wykorzystanie potoków do liczenia liczby procesów działających w systemie.

Wykonaj poniższą komendę:

ps aux | wc -l

Omówienie: `wc -l` liczy liczbę linii, które odpowiadają liczbie procesów.

9. Wyszukiwanie plików z określoną nazwą

Cel: Użycie potoku do wyszukiwania plików o określonej nazwie.

Wykonaj poniższą komendę:

find /home -name "*.txt" | sort

Omówienie: `find` wyszukuje pliki w katalogu, a `sort` sortuje wyniki.

10. Przekierowanie wyjścia do pliku i na ekran jednocześnie

Cel: Nauka przekierowywania wyjścia do pliku i na ekran jednocześnie.

Wykonaj poniższą komendę:

echo "Witaj w Linux!" | tee wynik.txt

Omówienie: Komenda `tee` przekierowuje wyjście do pliku i jednocześnie na ekran.

11. Przekierowanie standardowego wejścia z pliku

Cel: Zrozumienie, jak używać plików do przekierowywania standardowego wejścia.

Wykonaj poniższą komendę:

sort < tekst.txt

Omówienie: Znak `<` przekierowuje zawartość pliku do komendy `sort`.

12. Łączenie wielu komend za pomocą potoków

Cel: Łączenie wielu komend w potokach.

Wykonaj poniższą komendę:

cat tekst.txt | grep "Linux" | wc -l

Omówienie: Komenda `cat` wyświetla zawartość pliku, `grep` filtruje wyniki, a `wc -l` liczy linie.

13. Usuwanie pliku i zapisanie błędu do pliku

Cel: Przekierowanie błędów operacji na plik do innego pliku.

Wykonaj poniższą komendę:

rm nieistniejący_plik 2> blad.txt

Omówienie: Komenda `rm` próbuje usunąć plik, a błąd przekierowywany jest do pliku `blad.txt`.

14. Zliczanie słów w pliku

Cel: Zliczanie słów w pliku przy użyciu potoku.

Wykonaj poniższą komendę:

cat tekst.txt | wc -w

Omówienie: Komenda `wc -w` zlicza słowa w pliku.

15. Sprawdzanie użycia dysku

Cel: Wyszukiwanie użycia dysku z dodatkowym filtrowaniem.

Wykonaj poniższą komendę:

df -h | grep "/dev"

Omówienie: Komenda `df -h` wyświetla informacje o przestrzeni dyskowej, a `grep` filtruje wyniki dla `/dev`.

16. Wyświetlanie informacji o procesach

Cel: Wyświetlanie procesów systemowych i filtrowanie wyników.

Wykonaj poniższą komendę:

ps aux | grep root

Omówienie: Komenda `ps aux` wyświetla informacje o wszystkich procesach, a `grep` filtruje wyniki dla użytkownika root.

17. Wykonywanie komendy w tle

Cel: Uruchamianie procesów w tle.

Wykonaj poniższą komendę:

sleep 60 &

Omówienie: Znak `&` uruchamia proces w tle, co pozwala na dalsze korzystanie z terminala.

18. Znajdowanie dużych plików

Cel: Użycie polecenia `find` do wyszukiwania dużych plików.

Wykonaj poniższą komendę:

find / -size +100M

Omówienie: Komenda `find` pozwala na wyszukiwanie plików większych niż 100MB.

19. Wyświetlanie szczegółowych informacji o pliku

Cel: Wyświetlanie szczegółowych informacji o pliku z użyciem potoku.

Wykonaj poniższą komendę:

ls -l | less

Omówienie: Komenda `ls -l` wyświetla szczegółowe informacje o plikach, a `less` pozwala na ich przeglądanie w trybie stronicowania.

20. Wykonanie operacji na plikach z użyciem potoków

Cel: Łączenie kilku komend operujących na plikach.

Wykonaj poniższą komendę:

cat tekst.txt | grep "Linux" | sort | uniq

Omówienie: Komenda `uniq` usuwa duplikaty z wyników po ich posortowaniu.