How do I get the name of the active user via the command line in OS X?

前端 未结 12 1542
耶瑟儿~
耶瑟儿~ 2020-12-13 05:27

How do I get the name of the active user via the command line in OS X?

相关标签:
12条回答
  • 2020-12-13 05:51

    Define 'active user'.

    If the question is 'who is the logged in user', then 'who am i' or 'whoami' is fine (though they give different answers - 'whoami' reports just a user name; 'who am i' reports on terminal and login time too).

    If the question is 'which user ID is the effective ID for the shell', then it is often better to use 'id'. This reports on the real and effective user ID and group ID, and on the supplementary group IDs too. This might matter if the shell is running SUID or SGID.

    0 讨论(0)
  • 2020-12-13 05:54

    If you'd like to display the full name (instead of the username), add the -F flag:

    $ id -F
    Andrew Havens
    
    0 讨论(0)
  • 2020-12-13 05:56

    Via here

    Checking the owner of /dev/console seems to work well.

    stat -f "%Su" /dev/console

    0 讨论(0)
  • 2020-12-13 05:57

    You can also use the logname command from the BSD General Commands Manual under Linux or MacOS to see the username of the user currently logged in, even if the user is performing a sudo operation. This is useful, for instance, when modifying a user's crontab while installing a system-wide package with sudo: crontab -u $(logname)

    Per man logname:

    LOGNAME(1)
    
    NAME
        logname -- display user's login name
    
    0 讨论(0)
  • 2020-12-13 05:59

    If you want to know who's currently logged in to the system:

    $ w
     15:56:14 up 5 days, 20:58,  6 users,  load average: 0.43, 0.53, 0.50
    USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
    me       pts/2     Fri19    1:03m  0.98s  0.98s -/bin/bash
    me       pts/3     09:55    6:00m  0.43s  0.43s /bin/bash
    me       pts/5     15:56    0.00s  0.23s  0.00s w
    

    (This is from a Linux system; the formatting on OS X may be slightly different, but the information should be about the same.)

    There may be multiple login sessions; UNIX is designed to be a multi-user system, after all.

    0 讨论(0)
  • 2020-12-13 06:03

    I'm pretty sure the terminal in OS X is just like unix, so the command would be:

    whoami
    

    I don't have a mac on me at the moment so someone correct me if I'm wrong.

    NOTE - The whoami utility has been obsoleted, and is equivalent to id -un. It will give you the current user

    0 讨论(0)
提交回复
热议问题