دستور 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 را نیز بررسی کنید.