Wyjasnienie jest swietne, ale jesli mozna
to napisalbym jak jak ja to bym zrobil.
Zdanie w zadaniu trzeba troche rozbic bo jest troche zbyt skomplikowane.
Trzeba najpierw znalesc nazwe uzytkownia,
zeby znalesc do jakich grup on nalezy,
zeby potem wyswietlic nazwy uzytkownikow pierwszej znalezionej grupy.W wyszukiwarce szukam wpisujac
linux + szukana fraza / zdanie / klucz, np.
linux wyswietlanie zalogowanego uzytkownika
linux wyswietlanie grup
No to zaczynamy...
Szukamy
"znalesc nazwe uzytkownia,"Wpisujac w wyszukiwarke
" linux wyswietlanie zalogowanego uzytkownika "natrafiam na pierwszy wynik
https://www.arturpyszczuk.pl/commands-who.html$ who
xxx tty8 2019-10-28 12:12 (:0)
Gdzie "xxx" to moja nazwa uzytkownika.
Potem
"znalesc do jakich grup on nalezy,"po wpisaniu w wyszukiwarke
" linux wyswietlanie grup " i w pierwszym wyniku jest to ale nie wyjasnione
https://www.arturpyszczuk.pl/commands-groups.htmla w drugim
https://linuxiarze.pl/uzytkownik/3. Aby sprawdzić do jakich grup należysz :
$ groups xxx
xxx : xxx lp floppy cdrom cdwriter audio video dialout users polkituser
Pokazuje ze pierwsza moja grupa ma identyczna nazwe jak nazwa uzytkownika xxx
No to teraz
" wyswietlic nazwy uzytkownikow pierwszej znalezionej grupy "szukam
" linux wyswietlanie nazwy uzytkownikow i grup "i pierwszy wynik wyszukiwania
http://computersun.pl/linux/podstawy/uzytkownicy-grupy-w-linuksie-s_79.htmli jest tam wspomniane
W Linuksie istnieją trzy standardowe pliki odnoszące się kolejno do użytkowników, grup i haseł.
Pierwszy z nich to /etc/passwd. Kiedyś przechowywano w nim hasła (ang. password), teraz umieszcza się tam informacje m.in. o użytkownikach.
Nizej w przedstawionym formacie przeczytasz ze linia zawiera nazwe uzytkownika i grupe
No to szukamy wykorzystujac grep + nazwa grupy + nazwa pliku.
Jeszcze cos.
W zadaniu jest wspomniane
Jeśli uzytkownik należy do kilku grup
wybierz pierwszą z nich (cut).
Wiec zakladam ze nie mozemy podawac komend po kolei,
abo to dotyczy tylko przy zadaniu
" znalesc do jakich grup on nalezy "Albo jest to dodatkowe zadanie.
Z logiki nigdy nie bylem dobry, takze tu nie pomoge Aby komendy napisac razem mozna uzyc
- albo " | " (pipe)
- albo zapisac dane do pliku i zniego odczytywac
- albo zapisac dane do zmiennej i uzyc " ; " zeby napisac komendy w tej samej linii
aby operowac na danych / tekscie.
Taka praca nad tekstem roznie sie nazywa
" manipulacja tekstu "
https://linux.die.net/Linux-CLI/text-manipulation-tools.html" filtrowanie tekstu "
https://www.tecmint.com/linux-file-operations-commands/i jeszcze jedna nazwa chyba byla, ale nie pamiętam teraz.
Jak wpiszesz w wyszukiwarke " linux cut " to znajdziesz przyklady,
w jednym z nich
https://www.geeksforgeeks.org/cut-command-linux-examples/Masz taki przyklad
cut -d " " -f 1 state.txt
Andhra
Arunachal
Assam
Bihar
Chhattisgarh
Czyli ze ucielo wszystko oprocz pierwszego slowa kazdej linii.
Zmieniajac " (field number) " mozesz zmienic wyswietlane slowo,
np " jakies komendy | cut -d " " -f3 " wyswieli trzecie slowo kazdej linii.
Taki tylko przyklad budowania takiego " tasiemca ".
who
...
who | cut -d " " -f1
... ( wyswietla tylko nazwe uzytkownika z komendy who)
groups $(who | cut -d " " -f1)
... (wyswietla wszystkie grupy do jakich nalezy uzytkownik z wyniku wyzej)
groups $(who | cut -d " " -f1) | cut -d" " -f3
... ( wyswietla u mnie, pierwsza grupe z wyniku wyzej )
grep $(groups $(who | cut -d " " -f1) | cut -d" " -f3) /etc/passwd
... ( wyswietla wszystkie linie zawierajace nazwe grupy z wyniku wyzej )
Ktore jak widac jest zbiorem uzytych komend
Tekst troche poprawilem, bo sie sam pogubilem
Juz poprawiony