Przekierowania (3)

wc -l shell.c > out
wc -l < shell.c
wc -l < shell.c > out

Potoki (5)

Tylko jeden potok (1)

grep jobs command.c | wc -l

Wiele potoków (1)

cat command.c | cat | grep jobs | cat | wc -l

Czy przekierowania nadal dobrze działają? (1)

cat < command.c | grep jobs | wc -l > out

Test na wycieki deskryptorów plików (2)

W podprocesie ls muszą być tylko 4 otwarte deskryptory plików. W zależności od polecenia będzie widać [pipe] podpięte pod określony deskryptor.

ls -l /proc/self/fd
ls -l /proc/self/fd | cat
echo test | ls -l /proc/self/fd
echo test | ls -l /proc/self/fd | cat

Po przeprowadzeniu testu należy jeszcze sprawdzić deskryptory plików używane przez powłokę: ls -l /proc/$pid/fd.

Job control (8)

Zadania wykonywane w tle (5)

Proces bez wejścia-wyjścia (1)

sleep 5 &
jobs
[5 sekund]
jobs

Raportowanie kodu wyjścia (1)

false &
true &

Wysyłanie sygnału SIGINT (1)

Powinno wypisać numeru sygnału który ubił cat.

cat &
pkill -9 cat
jobs

Proces uśpiony przy pomocy SIGTTIN (1)

cat &
jobs
fg
[CTRL+C]
jobs

Zabijanie procesów przy kończeniu powłoki (1)

cat | grep foo &
sleep 1000 &
sleep 2000 &
jobs
kill %2
jobs
[CTRL+D]

Wysyłanie sygnału SIGTSTP (3)

Zatrzymywanie i wznawianie procesu pierwszoplanowego (1)

cat
[CTRL+Z]
jobs
fg 1

I jeszcze trzeba sprawdzić prawidłowe przywracanie atrybutów terminala:

vi shell.c
[CTRL+Z]
jobs
fg 1

Zatrzymywanie i wznawianie procesu drugoplanowego (1)

cat
[CTRL+Z]
jobs
bg 1
jobs

Zatrzymywanie i zabijanie procesu (1)

cat
[CTRL+Z]
jobs
kill %1
jobs

I jeszcze trzeba sprawdzić prawidłowe przywracanie atrybutów terminala:

less shell.c
[CTRL+Z]
jobs
kill %1
jobs