Artur Pyszczuk's blog...

"Vi był najlepszym edytorem tekstu do czasu kiedy napisano takie, w których wystarczy wpisać tekst, aby pojawił się na ekranie."
roflcopter.pl
/home/linux/commands/who/

who - Wyświetlanie informacji o zalogowanych użytkownikach

Za pomocą polecenia who możemy wyświetlić informacje o tym, kto jest zalogowany (podobnie jak w przypadku polecenia w) oraz dodatkowo kilka innych przydatnych informacji. Poniżej zostaną one pokazane.

Użycie polecenia who sprowadza się do wykonania polecenia z odpowiednim argumentem, lub bez.

$ who [OPCJE] [PLIK | ARG1 ARG2]

Podstawowe użycie tego polecenia to wykonanie go bez dodatkowych argumentów, dzięki czemu otrzymamy następujący wynik.

Polecenie who
Rys. 1. Polecenie who


W pierwszej kolumnie wypisane są nazwy użytkowników zalogowanych do systemu. W drugiej kolumnie nazwa urządzenia TTY (ang. Teletypewriter, które oznacza plik powiązany ze standardowym wejściem - Terminal). Trzecia kolumna odpowiada za godzinę, w której dany użytkownik się zalogował. Ostatnia kolumna to informacja o połączeniu do systemu (zdalnie, czy lokalnie).

Za pomocą jednej opcji możemy wydrukować wszystkie informacje, jakie dostarczają nam pojedyncze (pozostałe) opcje. Aby tego dokonać wpisz polecenie jak na rysunku 2.

Polecenie who
Rys. 2. Polecenie who -a


Ponieważ na kolejnych rysunkach pokazane i opisane zostaną poszczególne opcje, tutaj opis całości se darujemy.

Możemy sprawdzić o której godzinie zalogowaliśmy się do systemu, w przeciwieństwie do polecenia uptime, w którym sprawdzaliśmy jak długo system jest włączony.

Polecenie who
Rys. 3. Polecenie who - czas zalogowania


Jeśli chcemy dowiedzieć się jakie ostatnio procesy zostały zamknięte możemy to zrobić używając jednej z opcji, a mianowicie -d. Na rys. 4 widzimy, że zamknięte procesy to pts/5, oraz pts/7, które odpowiadają za okienka terminala (poprostu je zamknięto).

Polecenie who
Rys. 4. Polecenie who - Dead processes


Na rys. 1 pokazano podstawowe użycie polecenia who. Na niniejszym rysunku będzie właściwie to samo, z tą różnicą, że nazwy kolumn zostaną wydrukowane również.

Polecenie who
Rys. 5. Polecenie who - Nazwy kolumn


Pod rys. 1 opis mówił, że czwarta kolumna odpowiedzialna jest za wyświetlenie informacji o połączeniu. Możemy z użyciem opcji --ips wydrukować adres IP, połączonych użytkowników. Tutaj zalogowałem się właściwie ze swojego komputera tylko, że przez SSH, dlatego też adres mojego komputera w wewnętrznej sieci został wyświetlony. Gdybym robił to z poza sieci domowej, adres zewnętrzny zostałby wyświetlony.

Polecenie who
Rys. 6. Polecenie who - Adresy IP


Podobnie jak w przypadku poprzednim tak i w tym drukujemy właściwie to samo z tą różnicą, że zamiast adresu IP mamy informację o nazwie hosta za pośrednictwem DNS.

Polecenie who
Rys. 7. Polecenie who - Nazwa hosta via DNS


Aby wyświetlić informację o zalogowanym użytkowniku, ale tylko tym, który jest związany ze standardowym wejściem musimy użyć opcji -m. O co tutaj chodzi? Po wpisaniu tego polecenia z tą opcją dostajemy wynik taki jak na rys. 8. Następnie włącz "nowy" terminal i wpisz to samo polecenie. Wynik będzie podobny do rys. 9. Chodzi o to, że informacje wyświetlane sa tylko o użytkowniku, który to polecenie wpisał w danym terminalu.

Polecenie who
Rys. 8. Polecenie who - Użytkownik związany ze standardowym wejściem, część 1


Polecenie who
Rys. 9. Polecenie who - Użytkownik związany ze standardowym wejściem, część 2


pts/1 oznacza, że jest to pseudo-terminal 1, czyli włączony jako drugi (pierwszy ma cyfrę 0). Analogicznie, cyfra 9 oznacza dziesiąty pseudo-terminal.

Aby wyświetlić wszystkich zalogowanych użytkowników, oraz podać ich ilość, możemy skorzystać z następującego sposobu.

Polecenie who
Rys. 10. Polecenie who - Ilość zalogowanych użytkowników


Do wyświetlenia runlevel'a, możemy użyć opcji -r.

Polecenie who
Rys. 11. Polecenie who - Runlevel


Kolejna opcja -u wyświetla znów podobne informacje, z dodatkowym czynnikiem. Dodatkowo dodano opcję -H, by wyświetlić nazwy kolumn.

Polecenie who
Rys. 12. Polecenie who - Opcja -u


Jeśli pliku nie sprecyzujemy, to domyślnie brany jest pod uwagę /var/run/utmp, czyli poniższe wywołanie jest analogiczne, jakbyśmy pliku nie wpisywali.

Polecenie who
Rys. 13. Polecenie who - Podany plik


Co oznaczają dodatkowe parametry? Możemy np wpisać tak jak na poniższym rysunku, lecz efekt da to zupełnie taki sam, jak opcja -m.

Polecenie who
Rys. 14. Polecenie who - Z dodatkowymi argumentami



Wiecej informacji na temat programu who znajdziesz w podreczniku systemowym man.
Wpisujac w konsoli man who

Wiecej informacji na temat programu who znajdziesz również w programie info.
Wpisujac w konsoli info coreutils 'who invocation'

Zobacz także:


Some rights reserved 2010 - 2015 Artur Pyszczuk

| Strona Główna | Kontakt |