নতুন ইনস্টল হওয়া সিস্টেমে গণনা অনুসারে বেশিরভাগ লগইন শেলগুলি অ-ইন্টারেক্টিভ হয়, প্রকৃতপক্ষে:
$ awk -F: '{print $7}' < /etc/passwd | sort | uniq -c
5 /bin/bash
23 /bin/false
1 /bin/sh
1 /bin/sync
17 /usr/sbin/nologin
স্পষ্টত /bin/bashএবং /bin/shtraditionalতিহ্যবাহী শাঁস এবং সেগুলি ইন্টারেক্টিভ। তবে সেই তালিকার অন্যান্য সমস্ত আইটেম অ-ইন্টারেক্টিভ। আপনি যদি তালিকাটি পড়ছেন এবং তাদের মধ্যে একটি কী জানেন না তবে আপনি কেবল তার ম্যানুয়াল পৃষ্ঠাটি সন্ধান করতে পারেন (উদাহরণস্বরূপ man nologinবা সহ man sync)।
কমান্ডটি আসলে কী করে
ক্যাপ্টেন ম্যানের পোস্টিং ইতিহাসের দিকে তাকিয়ে আমি দেখতে পাচ্ছি যে তারা ইউনিক্সের সাথে বেশ অনভিজ্ঞ। সুতরাং হয়ত মন্তব্যে প্রশ্নটি উত্তরটির শীর্ষে কমান্ড লাইনের সাথে সম্পর্কিত নয়, কেবল আউটপুট নয়। সুতরাং আমি কমান্ড-লাইনটিও ব্যাখ্যা করব, যদিও এটি এই প্রশ্নের সত্যই অফ-বিষয়।
কমান্ডটি ইউনিক্স পাইপলাইন । একটি পাইপলাইন হ'ল কমান্ডগুলির একটি শৃঙ্খল - আপনি এটি বাম থেকে ডানে পড়েন - যেখানে প্রথম কমান্ডের আউটপুট দ্বিতীয়টির ইনপুট হয়ে যায়, দ্বিতীয়টির আউটপুট তৃতীয়টির ইনপুট হয়ে যায় এবং ততক্ষণ পাইপলাইন শেষ। শেষ প্রক্রিয়াটির আউটপুট টার্মিনালে প্রদর্শিত হবে (যদি না এটি পুনঃনির্দেশিত হয়)। শেল পাইপলাইনে উইকিপিডিয়া এন্ট্রি দেখুন আরও তথ্যের জন্য।
পাইপলাইন কী করছে তা যদি আপনি বুঝতে না পারেন তবে কী হচ্ছে তা দেখতে আপনি খালি খণ্ডগুলিতে এটি চালাতে পারেন। আপনি যে কমান্ড ব্যবহার করা হচ্ছে তার জন্য ম্যানুয়াল পৃষ্ঠাটি পড়তে পারেন (এখানে awk, sortএবং uniq)। আসলে, আপনার এখন এটি করা উচিত। আমি অপেক্ষা করব.
আসুন পাইপলাইনটির পর্যায়গুলি ক্রমবর্ধমানভাবে চালানো যাক (আপনি নিজের ইউনিক্স সিস্টেমে নিরাপদে এটি করতে পারেন):
~$ awk -F: '{print $7}' < /etc/passwd | sed -e 's/^/ /'
/bin/bash
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/bin/sync
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/usr/sbin/nologin
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
/usr/sbin/nologin
[ ... and so on, I've left the rest out ... ]
উপরের আউটপুটটি কেবল /etc/passwdফাইলটি থেকে সপ্তম ক্ষেত্রের বিষয়বস্তু । এটি (ফ্ল্যাট-টেক্সট-ফাইল) ডাটাবেস যা প্রত্যেকের লগইন শেলটি সিস্টেমকে বলে tells আপনি যদি এটি সম্পর্কে আরও সন্ধান করতে চান তবে এটি /etc/passwdপড়ুন (এটি বিশ্ব-পঠনযোগ্য) এবং এর জন্য ম্যানুয়াল পৃষ্ঠাটি দেখুন (man 5 passwd)।
সুতরাং সেখানে পুরো তালিকাটি পড়ে আপনি জনপ্রিয় আইটেমগুলি কী তা ধারণা পেতে পারেন তবে এই প্রশ্নের উত্তরের জন্য এটি একটি ভাল ফর্ম্যাট নয় কারণ প্রশ্নটি সাধারণভাবে অ-ইন্টারেক্টিভ শেলগুলি কীভাবে তা সম্পর্কে ছিল। আসুন তাদের গণনা করা যাক। এটি করার সহজ উপায় হ'ল প্রথমে আইটেমগুলি বাছাই করা:
~$ awk -F: '{print $7}' < /etc/passwd | sort
/bin/bash
/bin/bash
/bin/bash
/bin/bash
/bin/bash
/bin/false
/bin/false
/bin/false
/bin/false
/bin/false
[ ... and so on, I've left the rest out ... ]
আমরা uniqআমাদের কেবল অনন্য আইটেমগুলি দেখানোর জন্য প্রোগ্রামটি ব্যবহার করতে পারি :
। k awk -F: '{মুদ্রণ {7}' </ ইত্যাদি / পাসডাব্লুড | সাজানো | uniq | সেড-ই 'এস / ^ / /' / বিন / বাশ / বিন / মিথ্যা / বিন / শ / বিন / সিঙ্ক / ইউএসআর / এসবিন / নোলোগিন
তবে অপেক্ষা করুন, এটির কোনও ব্যবহার নেই, সেখানে প্রত্যেকে কতজন ছিলেন? আসুন জিজ্ঞাসা করি uniq(ম্যান পেজটি পড়ুন!):
~$ awk -F: '{print $7}' < /etc/passwd | sort | uniq -c
5 /bin/bash
23 /bin/false
1 /bin/sh
1 /bin/sync
17 /usr/sbin/nologin
অবশ্যই আউটপুটটি আমরা উত্তরের উপরে দেখেছি অবশ্যই। ক্রমগুলি এন্ট্রিগুলি দেখতে এটি আবার বাছাই করুন:
~$ awk -F: '{print $7}' < /etc/passwd | sort | uniq -c | sort
17 /usr/sbin/nologin
1 /bin/sh
1 /bin/sync
23 /bin/false
5 /bin/bash
অপেক্ষা করুন, যে হতে পারে না ঠিক আছে, 17 আসে সামনে 1 এবং 5 23 পরে সমস্যা হল আইটেম সাজানো হচ্ছে lexicographically । আসুন sortতাদের সংখ্যাসূচকভাবে এবং বিপরীত ক্রমে সাজানোর জন্য জিজ্ঞাসা করুন:
~$ awk -F: '{print $7}' < /etc/passwd | sort | uniq -c | sort -n -r
23 /bin/false
17 /usr/sbin/nologin
5 /bin/bash
1 /bin/sync
1 /bin/sh
আমি মনে করি যে এটি মূল উত্তরের সবকিছু ব্যাখ্যা করে। এই আদেশগুলি কী করে তার বিশদটি সম্পর্কে আপনি যদি এখনও অস্পষ্ট হন তবে আপনি ম্যানুয়াল পৃষ্ঠাগুলি পড়তে পারেন। কী চলছে তার নীতিগুলি সম্পর্কে আপনি যদি এখনও অস্পষ্ট হন তবে ইউনিক্স এবং লিনাক্স ব্যাখ্যা করে কোনও বই (অনলাইনে বা কাগজে) পড়ে শুরু করা ভাল better
telnet towel.blinkenlights.nlলগইন শেলের জন্য যা অ-ইন্টারেক্টিভ ;-)