دستور who در لینوکس

در این مقاله قصد بررسی دستور who را داریم که در پکیج GNU coreutil وجود دارد. who دستوری سودمند است که لیست کاربران لاگین شده را به شما نمایش می دهد. همچنین می تواند run level جاری، زمان آخرین ریبوت سیستم و بسیاری موارد دیگر را به شما نشان دهد.

 


چگونه از دستور who استفاده کنیم Syntax اولیه برای استفاده از who به صورت زیر است:

 
    who [OPTION]... [ FILE | ARG1 ARG2 ]

وقتی بدون هیچ آپشن یا آرگومانی از آن استفاده شود خروجی چیزی شبیه به زیر خواهد بود. دستور:

 
who

خروجی:

 
    root     pts/0        2020-11-17 20:10 (10.10.0.2)

    linuxize    pts/1        2020-11-17 20:11 (10.10.0.8)

who لیستی فرمت بندی شده از کاربران در حال حاضر لاگین شده را به شما نشان می دهد. هر خط شامل ۴ فیلد جداگانه است که با فاصله از هم جدا شده اند: نام کاربر لاگین شده ترمینال یوزر زمان لاگین کاربر Hostname یا آدرس IP محلی که کاربر لاگین کرده است. برای نمایش IPها از آپشن –ips استفاده کنید. برای نمایش سر ستونها از آپشن –H (--heading) استفاده کنید. مانند:

 
who -h

خروجی:

 
NAME      LINE         TIME             COMMENT

root      pts/0        2020-11-17 20:10 (10.10.0.2)

linuxize  pts/1        2020-11-17 20:11 (10.10.0.8)

این دستور اطلاعات سیستم و اینکه چه کاربرانی لاگین شده اند را از آدرس /var/run/utmp دریافت می کند. اگر قصد دارید از فایل دیگری استفاده کنید می توانید آدرس را به دستور بدهید. who تا ۲ non-option آرگومان را قبول می کند. وقتی با ۲ آرگومان استفاده می شود فقط اطلاعاتی درباره ترمینال مربوط به یوزر فعلی را نمایش می دهد. خروجی یکسانی در صورت استفاده از آپشن –m نمایش داده می شود. میتوانید از هر دو آرگومان استفاده کنید:

 
who am i

who mom love

who foo bar

who –m

هر دستور بالا خروجی یکسانی دارد که در زیر آمده:

 
linuxize  pts/1        2020-11-17 20:11 (10.10.0.8)

آپشنهای دستور who who آپشن های متفاوتی را قبول می کند که معمولا به ندرت از آنها استفاده می شود. -b،--boot آپشنی است که به who می گوید تا زمان آخرین ریبوت را اعلام کند: دستور:

 
who -b

خروجی:

 
         system boot  2020-07-20 19:02

برای گرفتن لیست پردازش های مرده یا dead processها از –d، آپشن –dead استفاده می کنیم: دستور:

 
who -d

-r، آپشن –runlevel به who میگوید که runlevel حال حاضر را اعلام کند: دستور:

 
who -r

خروجی:

 
         run-level 5  2020-07-20 19:02

برای دیدن تنها نام های کاربری و تعداد کاربران لاگین شده در حال حاضر از –q، آپشن –count استفاده می کنیم: دستور:

 
who -q

خروجی: root linuxize

 
# users=2

-a، آپشن –all به who دستور می دهد تا تمامی اطلاعات را نمایش دهد: دستور:

 
who -a

خروجی:

 
           system boot  2020-07-20 19:02

LOGIN      tty1         2020-07-20 19:02               673 id=tty1

           run-level 5  2020-07-20 19:02

root       - pts/0      2020-11-17 20:10   .       2212314 (89.205.101.54)

           pts/2        2020-10-10 10:19           1363538 id=ts/2  term=0 exit=0

linuxize   + pts/1      2020-11-17 20:11 01:46     2212387 (89.205.101.54)

 

نتیجه گیری:

برای دیدن اطلاعات بیشتری درباره کاربرانی که در حال حاضر لاگین شده اند، دستور w را نیز بررسی کنید.