Potoki, strumienie i przekierowania (ii)¶
Przekierowanie strumieni¶
KOMENDA i >& j
Przekierowanie strumieniai
do strumieniaj
.i
ij
mogą być dowolnymi strumieniami1, 2, 3, ...
lub pustym strumieniem-
.
Przykłady:
./noisegen.sh 2>&1 | less
– dodaje stderr do strumienia stdout (żeby uwzględnić przy korzystaniu zless
)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>&2
– wbrew 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
.
Zadania¶
- Otwórz w przeglądarce adresy podane w (jakimś) pliku [xargs]
- Wyświetl częstotliwości taktowania wszystkich procesorów (w jednej linii) [/proc/cpuinfo xargs]
- 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]
- Wyświetl 20 losowych cyfr [/dev/urandom]
- Wygeneruj 6 losowych 8-o znakowych haseł [fold]
- Podaj nazwę użytkownika który jest zalogowany najdłużej/najkrócej [sort who]
- Wypisz adres fizyczny (MAC) karty sieciowej komputera [ifconfig grep]
- Wypisz wszyskie adresy IP komputera [ifconfig grep]
- Wypisz 5 najpopularniejszych komend z historii [.bash_history sort uniq]
- Wypisz nazwy wszystkich zwykłych plików i linków w katalogu bieżącym [ls]
- Sprawdź który z użytkowników otworzył najwięcej plików (i ile to ich jest) [lsof sort uniq]
- Wypisz 5 najpopularniejszych rozszerzeń plików (bez katalogów) w swoim katalogu domowym [ls sort uniq]
- Jak wyżej, tylko typy plików (mimetype) zamiast rozszerzeń [sort uniq file]
- Policz linie kodu we wszytskich plikach katalogu z projektem (znaki \n) [find wc xargs]
- Jak wyżej, tylko policz średniki zamiast znaków nowej linii. [find tr xargs]
- Jak wyżej, tylko wypisz wiadomość na końcu z liczbą średników (np. “Semicolons: 644”) [echo wc xargs]
- Wypisz informacje o copyright ze wszystkich plików z kodem w katalogu (po rozszerzeniu) [find cat xargs]
- Policz wszystkie pliki ukryte w swoim katalogu domowym [grep ls wc]
- Wypisz wartość 2^n dla n=1..100 [bc echo xargs]
- Wylicz średnią ocen dla każdego ze studentów w pliku
przyklad.csv
[xargs echo bc] - 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]