আপনি যখন একটি লিনাক্স শেল লগ ইন করেন, আপনি একটি নির্দিষ্ট কাজের পরিবেশের উত্তরাধিকারী হন। একটি পরিবেশ , একটি শেলের প্রেক্ষাপটে, এর অর্থ হল আপনার জন্য ইতিমধ্যেই নির্দিষ্ট কিছু ভেরিয়েবল সেট করা আছে, যা নিশ্চিত করে যে আপনার কমান্ডগুলি উদ্দেশ্য অনুযায়ী কাজ করে। উদাহরণস্বরূপ, PATH এনভায়রনমেন্ট ভেরিয়েবল সংজ্ঞায়িত করে যে আপনার শেল কমান্ডের জন্য কোথায় দেখায়। এটি ছাড়া, আপনি বাশে যা করার চেষ্টা করছেন তা একটি কমান্ড পাওয়া যায়নি দিয়ে ব্যর্থ হবে ত্রুটি. আপনার দৈনন্দিন কাজগুলি করার সময় আপনার পরিবেশ, যদিও বেশিরভাগই আপনার কাছে অদৃশ্য থাকে, এটি অত্যন্ত গুরুত্বপূর্ণ।
আপনার শেল পরিবেশ প্রভাবিত করার অনেক উপায় আছে। আপনি কনফিগারেশন ফাইলে পরিবর্তন করতে পারেন, যেমন ~/.bashrc
এবং ~/.profile
, আপনি স্টার্টআপে পরিষেবাগুলি চালাতে পারেন, এবং আপনি আপনার নিজস্ব কাস্টম কমান্ড তৈরি করতে পারেন বা আপনার নিজস্ব ব্যাশ ফাংশন স্ক্রিপ্ট করতে পারেন৷
উৎস সহ আপনার পরিবেশে যোগ করুন
ব্যাশ (অন্যান্য কিছু শেলের সাথে) একটি বিল্ট-ইন কমান্ড আছে যাকে বলা হয় source
. এবং এখানে এটি বিভ্রান্তিকর হতে পারে:source
.
কমান্ডের মতো একই ফাংশন সম্পাদন করে (হ্যাঁ, এটি শুধুমাত্র একটি একক বিন্দু), এবং এটি না৷ একই source
Tcl
হিসাবে কমান্ড (আপনি man source
টাইপ করলে যা আপনার স্ক্রিনে আসতে পারে ) অন্তর্নির্মিত source
কমান্ড আপনার PATH
এ নেই সব, আসলে. এটি একটি কমান্ড যা ব্যাশের একটি অংশ হিসাবে অন্তর্ভুক্ত করা হয়েছে এবং এটি সম্পর্কে আরও তথ্য পেতে, আপনি help source
টাইপ করতে পারেন .
.
কমান্ড POSIX-সঙ্গতিপূর্ণ। source
কমান্ড POSIX দ্বারা সংজ্ঞায়িত নয় কিন্তু .
এর সাথে বিনিময়যোগ্য আদেশ৷
Bash help
অনুযায়ী , source
কমান্ড আপনার বর্তমান শেলের মধ্যে একটি ফাইল চালায়। "আপনার বর্তমান শেলের মধ্যে" ধারাটি তাৎপর্যপূর্ণ, কারণ এর অর্থ এটি একটি সাব-শেল চালু করে না; অতএব, আপনি source
দিয়ে যা কিছু চালান এর মধ্যে ঘটে এবং আপনার বর্তমানকে প্রভাবিত করে পরিবেশ।
কিভাবে source
অন্বেষণ করার আগে আপনার পরিবেশকে প্রভাবিত করতে পারে, source
চেষ্টা করুন এটি প্রত্যাশিত হিসাবে কোড কার্যকর করে তা নিশ্চিত করার জন্য একটি পরীক্ষা ফাইলে। প্রথমে, একটি সাধারণ ব্যাশ স্ক্রিপ্ট তৈরি করুন এবং এটিকে hello.sh
নামে একটি ফাইল হিসাবে সংরক্ষণ করুন :
#!/usr/bin/env bash
ইকো "হ্যালো ওয়ার্ল্ড"
source
ব্যবহার করে , আপনি এক্সিকিউটেবল বিট সেট না করেও এই স্ক্রিপ্ট চালাতে পারেন:
$ source hello.sh
হ্যালো ওয়ার্ল্ড
এছাড়াও আপনি বিল্ট-ইন .
ব্যবহার করতে পারেন একই ফলাফলের জন্য কমান্ড:
হ্যালো ওয়ার্ল্ড
source
এবং .
কমান্ড সফলভাবে পরীক্ষা ফাইলের বিষয়বস্তু সম্পাদন করে।
ভেরিয়েবল সেট করুন এবং ফাংশন আমদানি করুন
আপনি source
ব্যবহার করতে পারেন আপনার শেল পরিবেশে একটি ফাইল "আমদানি" করতে, ঠিক যেমন আপনি include
ব্যবহার করতে পারেন একটি লাইব্রেরি বা import
রেফারেন্স করতে C বা C++ এ কীওয়ার্ড একটি মডিউল আনতে পাইথনে কীওয়ার্ড। এটি source
-এর সবচেয়ে সাধারণ ব্যবহারগুলির মধ্যে একটি , এবং এটি .bashrc
-এ একটি সাধারণ ডিফল্ট অন্তর্ভুক্তি source
-এ ফাইল .bash_aliases
নামে একটি ফাইল যাতে আপনি লগ ইন করার সময় আপনার সংজ্ঞায়িত যেকোনো কাস্টম উপনাম আপনার পরিবেশে আমদানি করা হয়।
এখানে একটি ব্যাশ ফাংশন আমদানির একটি উদাহরণ। প্রথমে myfunctions
নামে একটি ফাইলে একটি ফাংশন তৈরি করুন . এটি আপনার সর্বজনীন IP ঠিকানা এবং আপনার স্থানীয় IP ঠিকানা প্রিন্ট করে:
ফাংশন myip() {
curl https://icanhazip.com
ip addr | grep inet$IP | \
cut -d"/" -f 1 | \
grep -v 127\.0 | \
grep -v \:\:1 | \
awk '{$1=$1};1'
}
আপনার শেলের মধ্যে ফাংশনটি আমদানি করুন:
$ source myfunctions
আপনার নতুন ফাংশন পরীক্ষা করুন:
$ myip
93.184.216.34
inet 192.168.0.23
inet6 fbd4:e85f:49c:2121:ce12:ef79:0e77:59d1
inet 10.38 প্রাক>উৎস অনুসন্ধান করুন
আপনি যখন
source
ব্যবহার করেন ব্যাশে, এটি আপনার উল্লেখ করা ফাইলের জন্য আপনার বর্তমান ডিরেক্টরি অনুসন্ধান করে। এটি সমস্ত শেলগুলিতে ঘটে না, তাই আপনি যদি ব্যাশ ব্যবহার না করেন তবে আপনার ডকুমেন্টেশন পরীক্ষা করুন৷ব্যাশ যদি এক্সিকিউট করার জন্য ফাইল খুঁজে না পায়, তাহলে এটি আপনার
PATH
সার্চ করে পরিবর্তে. আবার, এটি সমস্ত শেলগুলির জন্য ডিফল্ট নয়, তাই আপনি যদি ব্যাশ ব্যবহার না করেন তবে আপনার ডকুমেন্টেশন পরীক্ষা করুন৷এই দুটিই ব্যাশে চমৎকার সুবিধার বৈশিষ্ট্য। এই আচরণটি আশ্চর্যজনকভাবে শক্তিশালী কারণ এটি আপনাকে আপনার ড্রাইভে একটি কেন্দ্রীভূত অবস্থানে সাধারণ ফাংশনগুলি সঞ্চয় করতে দেয় এবং তারপরে আপনার পরিবেশকে একটি সমন্বিত উন্নয়ন পরিবেশের (IDE) মতো আচরণ করতে দেয়। আপনার ফাংশনগুলি কোথায় সংরক্ষণ করা হবে তা নিয়ে আপনাকে চিন্তা করতে হবে না, কারণ আপনি জানেন যে সেগুলি আপনার স্থানীয় সমতুল্য
/usr/include
, তাই আপনি যেখানেই থাকুন না কেন আপনি যখন তাদের উৎস করেন, ব্যাশ তাদের খুঁজে পায়।উদাহরণস্বরূপ, আপনি
~/.local/include
নামে একটি ডিরেক্টরি তৈরি করতে পারেন সাধারণ ফাংশনগুলির জন্য একটি স্টোরেজ এলাকা হিসাবে এবং তারপর কোডের এই ব্লকটি আপনার.bashrc
এ রাখুন ফাইল:আমি $HOME/.local/include/*;
সোর্স $i
সম্পন্নএটি
~/.local/include
-এ কাস্টম ফাংশন ধারণকারী যেকোনো ফাইল "আমদানি করে" আপনার শেল পরিবেশে।Bash হল একমাত্র শেল যা বর্তমান ডিরেক্টরি এবং আপনার
৷PATH
উভয়ই অনুসন্ধান করে যখন আপনিsource
ব্যবহার করেন অথবা.
আদেশ৷ওপেন সোর্সের জন্য সোর্স ব্যবহার করা
source
ব্যবহার করে অথবা.
আপনার পরিবর্তনগুলি মডুলার রাখার সময় আপনার পরিবেশকে প্রভাবিত করার জন্য ফাইলগুলি চালানো একটি সুবিধাজনক উপায় হতে পারে। পরের বার আপনি আপনার.bashrc
এ কোডের বড় ব্লক কপি এবং পেস্ট করার কথা ভাবছেন ফাইল, ডেডিকেটেড ফাইলগুলিতে সম্পর্কিত ফাংশন বা উপনামের গোষ্ঠী রাখার কথা বিবেচনা করুন এবং তারপরsource
ব্যবহার করুন সেগুলি খাওয়ার জন্য৷