Skrypt w bashu dla początkujących

0

Witam, mam do napisania skrypty na podstawie poniższych poleceń:

Dla PID podanego jako argument podaj listę procesów dla których jest on przodkiem.

Wiem, że PID można uzyskać poleceniem ps aux, potem cutem wyciąć odpowiednią linijkę i dzięki temu mieć zestaw linijek z PIDami. Jednak nie mam pojęcia jak:

wykonać listę procesów dla których podany w argumencie PID jest przodkiem ( czyli ich PPIDem).

Drugie polecenia polega na wypisaniu imion i nazwisk użytkowników będących w tej samej grupie co ja i wyświetlenie liczby użytkowników (niekoniecznie zalogowanych) o tym samym imieniu.

Wiem, że imiona i nazwiska można wziąć z /etc/passwd , nie wiem natomiast jak wypisać tylko tych w mojej grupie.

Zastanawiam się też nad tym, jak wyświetlić liczbę użytkowników o tym samym imieniu (chyba trzeba przeszukać folder ze wszystkimi użytkownikami i grepem znaleźć pasujące imiona ((tylko jak w grepa wsadzić imiona wszystkich w grupie naraz?)). Bardzo proszę o pomoc i porady.

0
Missya122 napisał(a):

Wiem, że PID można uzyskać poleceniem ps aux, potem cutem wyciąć odpowiednią linijkę i dzięki temu mieć zestaw linijek z PIDami. Jednak nie mam pojęcia jak:

wykonać listę procesów dla których podany w argumencie PID jest przodkiem ( czyli ich PPIDem).

Można bezpośrednio uzyskać PID rodzica dla procesu:

ps -o ppid <pid> 

i iść w górę drzewka procesów, tj. dla uzyskanego PPIDa wywołać jeszcze raz funkcjonalność i otrzymać PID rodzica rodzica, itd., aż do uzyskania PPID=0.

Można wyświetlić pary PID i PPID:
ps -o pid,ppid -e
wrzucić to do tablicy asocjacyjnej w awku i sobie po tym przejść...

Drugie polecenia polega na wypisaniu imion i nazwisk użytkowników będących w tej samej grupie co ja i wyświetlenie liczby użytkowników (niekoniecznie zalogowanych) o tym samym imieniu.

Wiem, że imiona i nazwiska można wziąć z /etc/passwd , nie wiem natomiast jak wypisać tylko tych w mojej grupie.

np.
getent group grupa - zwróci Ci informacje o określonej grupie
cat /etc/group | grep ^mogajgrupa: - alternatywnie

Do obróbki linii tekstu - cut, tr, awk, ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1