ধরা যাক, আমি একটি টার্মিনাল খুলে কিছু শেল কমান্ড প্রবেশ / সম্পাদন করেছি।
তবে আমি স্পষ্টভাবে বাশ বা অন্য কোনও শেল ডাকে নি।
ডিফল্টরূপে কোন শেল ব্যবহৃত হত?
ধরা যাক, আমি একটি টার্মিনাল খুলে কিছু শেল কমান্ড প্রবেশ / সম্পাদন করেছি।
তবে আমি স্পষ্টভাবে বাশ বা অন্য কোনও শেল ডাকে নি।
ডিফল্টরূপে কোন শেল ব্যবহৃত হত?
উত্তর:
আপনার লাইনে একটি নির্দিষ্ট করা /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