ধরা যাক, আমি একটি টার্মিনাল খুলে কিছু শেল কমান্ড প্রবেশ / সম্পাদন করেছি।
তবে আমি স্পষ্টভাবে বাশ বা অন্য কোনও শেল ডাকে নি।
ডিফল্টরূপে কোন শেল ব্যবহৃত হত?
ধরা যাক, আমি একটি টার্মিনাল খুলে কিছু শেল কমান্ড প্রবেশ / সম্পাদন করেছি।
তবে আমি স্পষ্টভাবে বাশ বা অন্য কোনও শেল ডাকে নি।
ডিফল্টরূপে কোন শেল ব্যবহৃত হত?
উত্তর:
আপনার লাইনে একটি নির্দিষ্ট করা /etc/passwd
(এটি একটি :
পৃথক রেখা এবং শেলটি চূড়ান্ত।
উদাহরণস্বরূপ আমার:
chris:x:1000:1000:Chris,,,:/home/chris:/bin/bash
এটি এখানে /bin/bash
(উবুন্টু ডিফল্ট)
আপনি এটি ব্যবহার করতে পারেন chsh
:
$ chsh
Password:
Changing the login shell for chris
Enter the new value, or press ENTER for the default
Login Shell [/bin/bash]:
এটি আমার শেলটি আমাকে বলছে /bin/bash
এবং আমাকে এটি পরিবর্তন করতে দিচ্ছে।
অবশেষে, echo $SHELL
একই কাজ করবে:
$ echo $SHELL
/bin/bash
sudo netstat -an | grep LISTEN | grep -v ^unix
। আমি এটিকে বন্ধ করার জন্য কোনও কারণ দেখি না subs
sudo bash -c "..."
নিশ্চিত করতে হবে যে পুরো পাইপটি রুট দ্বারা কার্যকর করা হয়েছে।
commandA | sudo commandB | commandC
, আপনি একটি কাজ করতে পারে sudo id
প্রথম (রান id
কমান্ড root
, কিন্তু একটি "acquires পাসওয়ার্ড বিজ্ঞপ্তি ছাড়াই ব্যবহার উবুন্টু যে (ডিফল্ট) 15 মিনিট স্থায়ী হয় টোকেন"।
chsh
তবে এই পরিবর্তনটি দেখতে আপনাকে অবশ্যই লগ আউট এবং লগ ইন করতে হবে ।
নিম্নলিখিত টাইপ করলে টার্মিনালটি কী শেল দিয়ে খোলা হবে তা প্রদর্শিত হবে:
echo $SHELL
তবে আপনি বর্তমানে কোন শেলটিতে রয়েছেন তা জানতে (আপনি এটি পরিবর্তন করে থাকতে পারেন) টাইপ করুন
ps -p $$
উদাহরণস্বরূপ আপনি দেখতে পাবেন যে শেলটি উদাহরণ আউটপুটে বাশ
PID TTY TIME CMD
3500 pts/0 00:00:01 bash
আর একটি পদ্ধতি ব্যবহার করা হয়
echo $0
এটি কেবলমাত্র বর্তমান শেলের নামটি ফিরিয়ে দেবে।
echo $0
ডিফল্টরূপে এটি বাশ:
env | grep ^SHELL=
বেশিরভাগ ক্ষেত্রে উত্পাদন হবে
SHELL=/bin/bash
useradd
এটি ডিফল্ট হয় sh
। $ useradd -D|grep SHELL
SHELL=/bin/sh
।
বর্তমান শেলের এক্সিকিউটেবল ফাইলের পাথ ব্যবহার করতে পারেন
readlink -f /proc/$$/exe
কিছু সম্ভাব্য ফলাফল:
/bin/bash
/usr/bin/bash
/usr/bin/zsh
/home/stan/.linuxbrew/Cellar/zsh/5.2/bin/zsh