ওএস এক্স-এর কমান্ড লাইনের মাধ্যমে আমি কীভাবে সক্রিয় ব্যবহারকারীর নাম পেতে পারি?
ওএস এক্স-এর কমান্ড লাইনের মাধ্যমে আমি কীভাবে সক্রিয় ব্যবহারকারীর নাম পেতে পারি?
উত্তর:
যেমন 'হোয়ামি' অপ্রচলিত হয়েছে, সম্ভবত এটি ব্যবহারের জন্য আরও সামঞ্জস্যপূর্ণ:
id -un
whoami
লিওপার্ডের ম্যান পেজটি নিশ্চিত করেছে যে এটি প্রতিস্থাপন করেছে id
।
আপনি যদি পুরো নামটি প্রদর্শন করতে চান (ব্যবহারকারীর পরিবর্তে), -F
পতাকাটি যুক্ত করুন:
$ id -F
Andrew Havens
আমি নিশ্চিত যে ওএস এক্সের টার্মিনালটি ইউনিক্সের মতো, সুতরাং আদেশটিটি হবে:
whoami
আমার কাছে এই মুহুর্তে কোনও ম্যাক নেই তাই আমি ভুল হলে কেউ আমাকে সংশোধন করে।
দ্রষ্টব্য - whoami
ইউটিলিটিটি অপ্রচলিত হয়েছে, এবং এর সমতুল্য id -un
। এটি আপনাকে বর্তমান ব্যবহারকারীকে দেবে
আপনি যদি বর্তমানে সিস্টেমে লগ ইন করেছেন তা জানতে চাইলে:
$ ডাব্লু 15:56:14 আপ 5 দিন, 20:58, 6 জন ব্যবহারকারী, লোড গড়: 0.43, 0.53, 0.50 ব্যবহারকারী টিটিওয়াই লগিন @ আইডিএল জেসিপিইউ পিসিপিইউ কী me pts / 2 Fri19 1: 03m 0.98s 0.98s - / বিন / বাশ আমার পিটিএস / 3 09:55 6: 00 মি 0.43 এস 0.43 এস / বিন / বাশ me pts / 5 15:56 0.00s 0.23s 0.00sw
(এটি একটি লিনাক্স সিস্টেম থেকে; ওএস এক্সের ফর্ম্যাটটি কিছুটা আলাদা হতে পারে, তবে তথ্যটি একই রকম হওয়া উচিত))
একাধিক লগইন সেশন থাকতে পারে; ইউএনআইএক্স সর্বোপরি একটি বহু-ব্যবহারকারী সিস্টেম হিসাবে ডিজাইন করা হয়েছে।
আপনি logname
লিনাক্স বা ম্যাকওএস-এর অধীনে বিএসডি জেনারেল কমান্ড ম্যানুয়াল থেকে কমান্ডটি বর্তমানে লগ ইন করা ব্যবহারকারীর ব্যবহারকারীর নাম দেখতে ব্যবহার করতে পারেন, এমনকি ব্যবহারকারী কোনও sudo
অপারেশন চালিয়ে যাচ্ছেন কিনা । উদাহরণস্বরূপ, sudo সহ সিস্টেম-ওয়াইড প্যাকেজ ইনস্টল করার সময় কোনও ব্যবহারকারীর ক্রন্টবাকে সংশোধন করার সময় এটি দরকারী:crontab -u $(logname)
প্রতি man logname
:
LOGNAME(1)
NAME
logname -- display user's login name
প্রশ্নের পুরোপুরি উত্তর দেওয়া হয়নি, আইএমএইচও। আমি ব্যাখ্যা করার চেষ্টা করব: আমার একটি ক্রন্টব এন্ট্রি রয়েছে যা ব্যাশ শেল কমান্ড প্রক্রিয়াটির সময়সূচি দেয়, যার ফলে আমার ফাইলগুলি কিছুটা পরিষ্কার করা যায়; এবং হয়ে গেলে, ওএস এক্স বিজ্ঞপ্তি কেন্দ্রটি (কমান্ড সহ ) ব্যবহার করে আমার কাছে একটি বিজ্ঞপ্তি প্রেরণ করে osascript -e 'display notification ...
। যদি কেউ (যেমন আমার স্ত্রী বা আমার মেয়ে) কম্পিউটারের বর্তমান ব্যবহারকারীকে তার কাছে সরিয়ে দেয়, আমাকে ব্যাকগ্রাউন্ডে রেখে, বিজ্ঞপ্তি প্রেরণের সময় ক্রোন স্ক্রিপ্ট ব্যর্থ হয় ।
সুতরাং, বর্তমান ব্যবহারকারীর অর্থ কে কী অন্য কিছু লোক আমাকে কার্যকর ব্যাকগ্রাউন্ডে রেখে ব্যবহারকারী হয়ে উঠেছে ? কি stat -f "%Su" /dev/console
আয় বর্তমান সক্রিয় ব্যবহারকারী নাম?
উত্তরটি হল হ্যাঁ; সুতরাং, এখন আমার ক্রন্টব শেল স্ক্রিপ্টটি নিম্নলিখিত উপায়ে পরিবর্তন করা হয়েছে:
...
if [ "$(/usr/bin/stat -f ""%Su"" /dev/console)" = "loreti" ]
then /usr/bin/osascript -e \
'display notification "Cleanup done" sound name "sosumi" with title "myCleanup"'
fi
আপনি এটি পরিবেশের ভেরিয়েবল থেকেও পুনরুদ্ধার করতে পারেন, তবে এটি সম্ভবত নিরাপদ নয়, তাই আমি অ্যান্ড্রুয়ের উত্তর নিয়ে যাব।
printenv USER
আপনার যদি নোডের মতো কোনও অ্যাপ্লিকেশন থেকে এটি পুনরুদ্ধার করতে হয় তবে পরিবেশের ভেরিয়েবলগুলি থেকে এটি নেওয়া আরও সহজ, যেমন
process.env.USER
।
'সক্রিয় ব্যবহারকারী' সংজ্ঞা দিন।
যদি প্রশ্নটি হয় 'লগ-ইন ব্যবহারকারী' কে, তবে 'আমি কে' বা 'হোয়ামি' ঠিক আছে (যদিও তারা বিভিন্ন উত্তর দেয় - 'হোয়ামি' কেবল একটি ব্যবহারকারীর নাম রিপোর্ট করে; 'আমি কে' টার্মিনালে এবং লগইন সময়)।
যদি প্রশ্নটি হয় 'কোন ব্যবহারকারী আইডিটি শেলের কার্যকর আইডি' হয় তবে 'আইডি' ব্যবহার করা ভাল often এই বাস্তব এবং কার্যকর ব্যবহারকারী আইডি এবং গ্রুপ আইডি, এবং পরিপূরক গোষ্ঠী আইডিতেও প্রতিবেদন করে। শেলটি SID বা SGID চালাচ্ছে কিনা এটি বিবেচনা করতে পারে।