เอาท์พุทที่แตกต่างกันสำหรับ 'w`,' who ',' whoami 'และ `id'


9

ในแพลตฟอร์มบรรทัดคำสั่งออนไลน์เช่นอินสแตนซ์บน Codecademy เมื่อฉันรัน

for cmd in w who whoami id
do
    echo $cmd
    $cmd
    echo =========================
    echo "             "
done

ฉันเข้าใจ

w                              
00:52:54 up 8 days, 14:10,  0 users,  load average: 3.78, 2.98, 2.69      
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT       
=========================                            

who
=========================                                                 

whoami                          
ccuser                          
=========================                              
  
id
uid=1000(ccuser) gid=1000(ccuser) groups=1000(ccuser)     
=========================                   

ทราบว่าเท่านั้นwhoamiและidส่งออกบางสิ่งบางอย่าง เมื่อฉันเรียกใช้สิ่งเดียวกันบนคอมพิวเตอร์ของฉันฉันเห็นผลลัพธ์ที่คล้ายกันสำหรับคำสั่งทั้งหมด

ทำไมไม่ Codecademy แสดงให้ผู้ใช้wและwho? คำสั่งเหล่านี้ต่างกันอย่างไร

คำตอบ:


13
  • id รายงาน
    • หนังสือรับรองปัจจุบันของกระบวนการของตัวเอง หรือ
    • ข้อมูลประจำตัวของผู้ใช้ชื่อในขณะที่อ่านออกมาจากฐานข้อมูลระบบบัญชี
  • whoami รายงานข้อมูลรับรองปัจจุบันของกระบวนการของตัวเอง
  • whoและwรายงานการใช้งานตารางการประชุมเข้าสู่ระบบจากฐานข้อมูลการเข้าสู่ระบบ

BSD doco ตั้งข้อสังเกตว่าwhoamiทำหน้าที่ย่อยของงานidและidทำให้มันล้าสมัย

ระบบไม่จำเป็นต้องมีตารางการเข้าสู่ระบบที่ใช้งานอยู่ บนระบบปฏิบัติการ Linux และ BSDs หากตารางไม่ได้ถูกสร้างขึ้นที่ bootstrap หรือถูกลบไปตั้งแต่นั้นระบบจะทำงานโดยไม่มี การเข้าและออกไม่ได้สร้างโดยปริยายบนระบบปฏิบัติการ Linux ยิ่งไปกว่านั้น

นอกจากนี้ตารางไม่จำเป็นต้องอ่านได้โดยผู้ใช้ที่ไม่มีสิทธิพิเศษwhoและทั้งwคำสั่งและคำสั่งจะไม่รายงานข้อผิดพลาดนี้

อ่านเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.