Como obtenho o nome do usuário ativo por meio da linha de comando no OS X?
macos
command-line
Lawrence Johnston
fonte
fonte
whoami
do Leopard confirma que foi substituído porid
.Se desejar exibir o nome completo (em vez do nome de usuário), adicione o
-F
sinalizador:fonte
Quem sou eu
EDITAR
O utilitário whoami se tornou obsoleto pelo utilitário id (1) e é equivalente a
id -un
. O comandoid -p
é sugerido para uso interativo normal.fonte
Por aqui
Verificar o proprietário de / dev / console parece funcionar bem.
stat -f "%Su" /dev/console
fonte
Tenho certeza que o terminal no OS X é igual ao Unix, então o comando seria:
Não tenho um mac no momento, então alguém me corrija se eu estiver errado.
NOTA - O
whoami
utilitário tornou-se obsoleto e é equivalente aid -un
. Ele lhe dará o usuário atualfonte
Se você quiser saber quem está atualmente conectado ao sistema:
(Isso é de um sistema Linux; a formatação no OS X pode ser um pouco diferente, mas as informações devem ser as mesmas.)
Pode haver várias sessões de login; Afinal, o UNIX foi projetado para ser um sistema multiusuário.
fonte
Você também pode usar o
logname
comando do Manual de Comandos Gerais do BSD no Linux ou MacOS para ver o nome de usuário do usuário atualmente conectado, mesmo se o usuário estiver executando umasudo
operação. Isso é útil, por exemplo, ao modificar o crontab de um usuário ao instalar um pacote de todo o sistema com sudo:crontab -u $(logname)
Por
man logname
:fonte
A pergunta não foi completamente respondida, IMHO. Vou tentar explicar: tenho uma entrada crontab que agenda um procedimento de comando bash shell, que por sua vez faz alguma limpeza de meus arquivos; e, quando terminar, envia uma notificação para mim usando o centro de notificações do OS X (com o comando
osascript -e 'display notification ...
). Se alguém (por exemplo, minha esposa ou minha filha) mudar o usuário atual do computador para ela, deixando-me em segundo plano, o script cron falha ao enviar a notificação.Então, quem é o usuário atual significa: alguma outra pessoa se tornou o usuário efetivo, deixando-me em segundo plano ? Fazer
stat -f "%Su" /dev/console
retornos do atual usuário ativo nome?A resposta é sim; então, agora meu script de shell crontab foi modificado da seguinte maneira:
fonte
obter nome de usuário no terminal MAC é fácil ...
Eu geralmente uso
whoami
no terminal ...Por exemplo, neste caso, eu precisava disso para instalar o servidor Tomcat ...
fonte
Existem duas maneiras-
ou
fonte
Você também pode recuperá-lo das variáveis de ambiente, mas isso provavelmente não é seguro, então eu iria com a resposta de Andrew.
printenv USER
Se você precisar recuperá-lo de um aplicativo, como o Node, é mais fácil obtê-lo das variáveis de ambiente, como
process.env.USER
.fonte
Defina 'usuário ativo'.
Se a pergunta for 'quem é o usuário conectado', então 'quem sou eu' ou 'whoami' está bem (embora eles dêem respostas diferentes - 'whoami' informa apenas um nome de usuário; 'quem sou eu' informa no terminal e tempo de login também).
Se a pergunta for 'qual ID de usuário é o ID efetivo para o shell', geralmente é melhor usar 'id'. Isso informa sobre o ID de usuário e ID de grupo reais e efetivos, e também sobre os IDs de grupo suplementares. Isso pode ser importante se o shell estiver executando SUID ou SGID.
fonte