Potoki, strumienie i przekierowania (ii)

Przekierowanie strumieni

KOMENDA i >& j

Przekierowanie strumienia i do strumienia j. i i j mogą być dowolnymi strumieniami 1, 2, 3, ... lub pustym strumieniem -.

Przykłady:

  • ./noisegen.sh 2>&1 | less – dodaje stderr do strumienia stdout (żeby uwzględnić przy korzystaniu z less)
  • echo "BŁĄD!!!!1" 1>&2 – dodaje stdout do strumienia stderr (żeby wyświetlić informacje o błędzie za pomocą strumienia błędów)
  • ./noisegen.sh 2>&1 1>&2wbrew pozorom, dodaje tylko stderr do stdout
  • ./noisegen.sh 3>&1 1>&2 2>&3 – zamiana stdout z stderr
  • ./noisegen.sh 3>&1 1>&2 2>&3 3>&- – zamykamy strumień 3 na wszelki wypadek

Skrypt noisegen.sh do sciągnięcia tutaj. Najlepiej działa w połączeniu z fortune.

Ankieta SOP

Ankieta RSOCR

Zadania

  1. Otwórz w przeglądarce adresy podane w (jakimś) pliku [xargs]
  2. Wyświetl częstotliwości taktowania wszystkich procesorów (w jednej linii) [/proc/cpuinfo xargs]
  3. Wygeneruj listę wszystkich słów które mają 8 liter, z których 3-cia to litera a, a ostatnią to literą jest y (do krzyżówki?). Wyświetl wyniki wielkimi literami. Zastosuj paginację lub przesuwanie wyników. [/usr/share/dict/words grep]
  4. Wyświetl 20 losowych cyfr [/dev/urandom]
  5. Wygeneruj 6 losowych 8-o znakowych haseł [fold]
  6. Podaj nazwę użytkownika który jest zalogowany najdłużej/najkrócej [sort who]
  7. Wypisz adres fizyczny (MAC) karty sieciowej komputera [ifconfig grep]
  8. Wypisz wszyskie adresy IP komputera [ifconfig grep]
  9. Wypisz 5 najpopularniejszych komend z historii [.bash_history sort uniq]
  10. Wypisz nazwy wszystkich zwykłych plików i linków w katalogu bieżącym [ls]
  11. Sprawdź który z użytkowników otworzył najwięcej plików (i ile to ich jest) [lsof sort uniq]
  12. Wypisz 5 najpopularniejszych rozszerzeń plików (bez katalogów) w swoim katalogu domowym [ls sort uniq]
  13. Jak wyżej, tylko typy plików (mimetype) zamiast rozszerzeń [sort uniq file]
  14. Policz linie kodu we wszytskich plikach katalogu z projektem (znaki \n) [find wc xargs]
  15. Jak wyżej, tylko policz średniki zamiast znaków nowej linii. [find tr xargs]
  16. Jak wyżej, tylko wypisz wiadomość na końcu z liczbą średników (np. “Semicolons: 644”) [echo wc xargs]
  17. Wypisz informacje o copyright ze wszystkich plików z kodem w katalogu (po rozszerzeniu) [find cat xargs]
  18. Policz wszystkie pliki ukryte w swoim katalogu domowym [grep ls wc]
  19. Wypisz wartość 2^n dla n=1..100 [bc echo xargs]
  20. Wylicz średnią ocen dla każdego ze studentów w pliku przyklad.csv [xargs echo bc]
  21. Wypisz wszystkie pliki i katalogi z katalogu /proc do pliku tymczasowego (np. /tmp/proc.log) i na ekran, ale nie pokazuj błędów. Włącz paginację albo przemieszczanie się po wynikach. [find tee /dev/null]