Bagaimana cara mendapatkan nama pengguna aktif melalui baris perintah di OS X?
macos
command-line
Lawrence Johnston
sumber
sumber
whoami
di Leopard mengonfirmasi bahwa itu telah diganti olehid
.Jika Anda ingin menampilkan nama lengkap (bukan nama pengguna), tambahkan
-F
bendera:sumber
siapa saya
EDIT
Utilitas whoami telah ditinggalkan oleh utilitas id (1), dan setara dengan
id -un
. Perintahid -p
ini disarankan untuk penggunaan interaktif normal.sumber
Saya cukup yakin terminal di OS X sama seperti unix, jadi perintahnya adalah:
Saya tidak memiliki masalah pada saya saat ini jadi seseorang mengoreksi saya jika saya salah.
CATATAN -
whoami
Utilitas telah usang, dan setara denganid -un
. Ini akan memberi Anda pengguna saat inisumber
Lewat sini
Memeriksa pemilik / dev / console tampaknya berfungsi dengan baik.
stat -f "%Su" /dev/console
sumber
Jika Anda ingin mengetahui siapa yang saat ini masuk ke sistem:
(Ini dari sistem Linux; pemformatan pada OS X mungkin sedikit berbeda, tetapi informasinya harus hampir sama.)
Mungkin ada beberapa sesi login; UNIX dirancang untuk menjadi sistem multi-pengguna.
sumber
Anda juga dapat menggunakan
logname
perintah dari BSD General Commands Manual di Linux atau MacOS untuk melihat nama pengguna pengguna yang saat ini masuk, bahkan jika pengguna sedang melakukansudo
operasi. Ini berguna, misalnya, saat memodifikasi crontab pengguna saat menginstal paket seluruh sistem dengan sudo:crontab -u $(logname)
Per
man logname
:sumber
Pertanyaannya belum sepenuhnya terjawab, IMHO. Saya akan mencoba menjelaskan: Saya memiliki entri crontab yang menjadwalkan prosedur perintah bash shell, yang pada gilirannya melakukan beberapa pembersihan file saya; dan, setelah selesai, mengirimkan notifikasi kepada saya menggunakan pusat notifikasi OS X (dengan perintah
osascript -e 'display notification ...
). Jika seseorang (misalnya istri atau anak perempuan saya) mengalihkan pengguna komputer saat ini ke dia, membiarkan saya di latar belakang, skrip cron gagal saat mengirim pemberitahuan.Jadi, Siapa pengguna saat ini artinya Apakah beberapa orang lain menjadi pengguna yang efektif meninggalkan saya di latar belakang ? Apakah
stat -f "%Su" /dev/console
mengembalikan nama pengguna aktif saat ini ?Jawabannya iya; Jadi, sekarang skrip crontab shell saya telah dimodifikasi dengan cara berikut:
sumber
mendapatkan nama pengguna di terminal MAC itu mudah ...
Saya biasanya menggunakan
whoami
di terminal ...Misalnya, dalam kasus ini, saya memerlukannya untuk menginstal Server Tomcat ...
sumber
Ada dua cara-
atau
sumber
Anda juga dapat mengambilnya dari variabel lingkungan, tetapi itu mungkin tidak aman, jadi saya akan menggunakan jawaban Andrew.
printenv USER
Jika Anda perlu mengambilnya dari aplikasi, seperti Node, lebih mudah mendapatkannya dari variabel lingkungan, seperti
process.env.USER
.sumber
Tentukan 'pengguna aktif'.
Jika pertanyaannya adalah 'siapa pengguna yang login', maka 'siapa saya' atau 'whoami' tidak masalah (meskipun jawaban mereka berbeda - 'whoami' hanya melaporkan nama pengguna; 'siapa saya' melaporkan di terminal dan waktu login juga).
Jika pertanyaannya adalah 'ID pengguna mana yang merupakan ID efektif untuk shell', maka lebih baik menggunakan 'id'. Ini melaporkan ID pengguna dan ID grup yang nyata dan efektif, dan ID grup tambahan juga. Ini mungkin masalah jika shell menjalankan SUID atau SGID.
sumber