রিদওয়ান বিন শামীম
ইউনিক্সের একটি গুরুত্বপূর্ণ ধারণা হল এর এভায়রনমেন্ট , যা এভায়রনমেন্ট চলকের মাধ্যমে বিবৃত হয়। এদের কয়েকটি সিস্টেমের মাধ্যমে, কয়েকটি সেলের মাধ্যমে, কয়েকটি আমাদের অর্থাৎ ব্যবহারকারীদের মাধ্যমে আর কয়েকটি এমন প্রোগ্রামের মাধ্যমে যা কিনা অন্য প্রোগ্রাম সেট করে।
চলক হল ক্যারেক্টার স্ট্রিং যার উপর আমরা মান আরোপ করি, যা সংখ্যা হতে পারে, টেক্সট, ফাইলনেম, ডিভাইস অথবা অন্য কোনও রকমের ডাটাও হতে পারে।
যেমন, TEST নামের চলক সেট করে তাতে echo কম্যান্ড ব্যবহার করে মান আরোপ করতে,
$TEST="Unix Programming" $echo $TEST Unix Programming
সিস্টেমে লগইনের সময় এই সংশ্লিষ্ট দুটি প্রক্রিয়া হয়,
- /etc/profile
- profile
এই প্রক্রিয়া যে কর্মসূচি অনুসরণ করে তা হল,
- সেল চেক করে /etc/profile ফাইল কোথায় আছে
- এটিকে পাওয়া গেলে সেল এটিকে পড়ে। না পাওয়া গেলে স্কিপ করে যায়, কোনও এরর ম্যাসেজ দেখানো হয় না।
- সেল চেক করে হোম ডিরেক্টরির কোথায় .profile ফাইল আছে।
- এটিকে পাওয়া গেলে সেল এটিকেও পড়ে। না পাওয়া গেলে এটিও স্কিপ করে যায়, কোনও এরর ম্যাসেজ দেখানো হয় না।
যখন দুটি ফাইলই পড়া হয়ে যায় তখন সিস্টেম এই প্রম্পট দেখায়,
$
এটি সেই প্রম্পট যেটিতে কোনও কম্যান্ড প্রবেশ করিয়ে সম্পাদন করানো যায়।
.profile ফাইল
ইউনিক্স মেশিনের এডমিন /etc/profile ফাইলের দেখাশোনা করে, আর .profile ফাইল ব্যবহারকারীর দায়িত্বে থাকে, এই ফাইলে যত খুশি সেল কাস্টমাইজেশন তথ্য প্রবেশ করানো যায়, সর্বনিম্ন যে তথ্যগুলো কনফিগার করতেই হবে তা হল,
- যে টার্মিনাল ব্যবহার করছি তার টাইপ
- কম্যান্ডের জন্য ডিরেক্টরির লিস্ট
- টার্মিনালে প্রভাব বিস্তারকারী চলকের তালিকা
টার্মিনাল টাইপ ঠিক করা
বেশিরভাগ ইউজার টার্মিনালকে সবচেয়ে কম কমন ডিনমিনেটরে সেট করেন,
$TERM=vt100 $
পাথ ঠিক করা
পাথকে নিচের কমান্ডে সেট করতে হয়,
$PATH=/bin:/usr/bin $
সেলে আবেদনকৃত কোনও কম্যান্ড যদি পাথ চলক নির্দেশিত ডিরেক্টরিতে না পাওয়া যায় তাহলে নিচের মত করে ম্যাসেজ দেখাবে,
$hellohello:not found $
PS1 আর PS2 চলক
সেলের কম্যান্ড প্রম্পট PS1চলকে সংরক্ষিত থাকে,
$PS1='=>' => => =>
PS1 এর মান সেট করতে নিচের কম্যান্ড ব্যবহার করা যায়,
=>PS1="[\u@\h \w]\$" [root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$ [root@ip-72-167-112-17 /var/www/tutorialspoint/unix]$
PS1 এর ভ্যালু আর্গুমেন্ট হিসেবে ব্যবহার করা যায় এমন কিছু এস্কেপ সিকোয়েন্স নিচে তালিকাবদ্ধ করা হল।
এস্কেপ সিকোয়েন্স |
\t |
\d |
\n |
\s |
\W |
\w |
\u |
\h |
\# |
\$ |
অসমাপ্ত কম্যান্ডের জন্য সেকেন্ডারি প্রম্পট ব্যবহৃত হয়, এর ডিফল্ট সাইন > যা PS2 সেল চলকের পুনর্বিন্যাসের মাধ্যমে পরিবর্তিত হতে পারে,
$ echo "this is a > test" this is a test $
পরিবর্তিত প্রম্পটের দ্বারা PS2কে পুনঃবিবৃত করার উদাহরণ,
$ PS2="secondary prompt->" $ echo "this is a secondary prompt->test" this is a test $
পরিবেশ চলক
গুরুত্বপূর্ণ পরিবেশ চলকের কয়েকটির তালিকা এখানে দেয়া হল,
চলক |
DISPLAY |
HOME |
IFS |
LANG |
LD_LIBRARY_PATH |
PATH |
PWD |
RANDOM |
SHLVL |
TERM |
TZ |
UID |
কিছু পরিবেশ চলকের উদাহরণ,
$ echo $HOME /root ]$ echo $DISPLAY
$ echo $TERM xterm $ echo $PATH /usr/local/bin:/bin:/usr/bin:/home/amrood/bin:/usr/local/bin $