কী $PATH
?
আমার কাছে কেবলমাত্র উপলব্ধ কমান্ড / প্রোগ্রামগুলি কীভাবে থাকতে পারে?
আমি ~/bin
আগে উল্লিখিত এই পথটি দেখেছি , তবে এটি কীসের জন্য ব্যবহৃত হয় এবং আমি কীভাবে এটি ব্যবহার করব?
কী $PATH
?
আমার কাছে কেবলমাত্র উপলব্ধ কমান্ড / প্রোগ্রামগুলি কীভাবে থাকতে পারে?
আমি ~/bin
আগে উল্লিখিত এই পথটি দেখেছি , তবে এটি কীসের জন্য ব্যবহৃত হয় এবং আমি কীভাবে এটি ব্যবহার করব?
উত্তর:
AT PATH হ'ল পরিবেশগত পরিবর্তনশীল যা কমান্ড দেখার জন্য ব্যবহৃত হয়। ~ হ'ল আপনার হোম ডিরেক্টরি, সুতরাং bin / বিন / হোম / ব্যবহারকারী / বিন হবে; এটি একটি সাধারণ ডিরেক্টরি।
উদাহরণস্বরূপ, আপনি যখন কোনও শেলের মধ্যে "ls" চালান, আপনি আসলে / বিন / এলএস প্রোগ্রামটি চালান; আপনার সিস্টেম কনফিগারেশনের উপর নির্ভর করে সঠিক অবস্থানটি পৃথক হতে পারে। এটি ঘটে কারণ / বিন আপনার $ PATH এ রয়েছে।
পাথটি দেখতে এবং নির্দিষ্ট কোনও আদেশ কোথায় রয়েছে তা সন্ধান করতে:
$ echo $PATH
/home/user/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:...
$ which ls # searches $PATH for an executable named "ls"
/bin/ls
$ ls # runs /bin/ls
bin desktop documents downloads examples.desktop music pictures ...
$ /bin/ls # can also run directly
bin desktop documents downloads examples.desktop music pictures ...
আপনার নিজস্ব প্রাইভেট বিন ডিরেক্টরি থাকতে আপনার এটিকে কেবল পথে যুক্ত করতে হবে। নীচের লাইনগুলিকে অন্তর্ভুক্ত করতে ~ / .profile (একটি লুকানো ফাইল) সম্পাদনা করে এটি করুন। যদি লাইনগুলি মন্তব্য করা হয়, তবে আপনাকে কেবল এগুলি অসুবিধা করতে হবে; যদি তারা ইতিমধ্যে সেখানে থাকে, আপনি প্রস্তুত!
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ]; then
PATH="$HOME/bin:$PATH"
fi
এখন আপনাকে আপনার ~ / bin ডিরেক্টরি তৈরি করতে হবে এবং, কারণ প্রোফাইলটি লগইন চলাকালীন এবং only / বিনটি যুক্ত করে যদি সেই সময়ে উপস্থিত থাকে, আপনাকে আপডেট করা PATH দেখতে আপনাকে আবার লগইন করতে হবে।
আসুন এটি পরীক্ষা করে দেখুন:
$ ln -s $(which ls) ~/bin/my-ls # symlink
$ which my-ls
/home/user/bin/my-ls
$ my-ls -l ~/bin/my-ls
lrwxrwxrwx 1 user user 7 2010-10-27 18:56 my-ls -> /bin/ls
$ my-ls # lookup through $PATH
bin desktop documents downloads examples.desktop music pictures ...
$ ~/bin/my-ls # doesn't use $PATH to lookup
bin desktop documents downloads examples.desktop music pictures ...
type
প্রকৃত কমান্ড কীভাবে শেল দ্বারা সমাধান করা হবে তা দেখতে প্রায়শই এটি ব্যবহার করা আরও কার্যকর হয় ; উদাহরণস্বরূপ: which echo
এবং type echo
বিভিন্ন জিনিস প্রতিবেদন করবে, which
'/ বিন / প্রতিধ্বনি' দেয় তবে 'টাইপ' রিটার্ন দেয় যে এটি শেল বিল্টিন, যা শেলটি '/' বিনাতে ফাইলের চেয়ে বেশি পছন্দ করবে।
which
দ্বারা type
বা আরও ভাল প্রতিস্থাপন করা হয় command
, এবং এটি স্ক্রিপ্টগুলিতে সম্পূর্ণ অকেজো।
$HOME
চলক $PATH
কাজ করে না, অর্থাৎ ~
পরিবর্তে সাইন ব্যবহার করতে হবে।
সংক্রান্ত ~/bin
এবং শুধুমাত্র আপনার ব্যবহারকারী উপলব্ধ কমান্ড / প্রোগ্রাম
সাম্প্রতিক উবুন্টু সংস্করণগুলিতে ~/bin
ডিরেক্টরিটি আপনার অন্তর্ভুক্ত করে $PATH
তবে কেবল ~/bin
ডিরেক্টরি উপস্থিত থাকলেই ।
এটি উপস্থিত না থাকলে:
নিশ্চিত হয়ে নিন যে আপনার ~/.profile
নিম্নোক্ত স্তবক রয়েছে (ডিফল্ট ~/.profile
ইতিমধ্যে তা করে):
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
~/bin
ডিরেক্টরি তৈরি করুন :
mkdir -p ~/bin
হয় আপনার কম্পিউটারটি পুনরায় বুট করুন, বা বাশকে পুনরায় পড়তে বাধ্য করুন ~/.profile
:
exec -l bash
exec -l bash
" টিপসের জন্য ধন্যবাদ । কী -l
পতাকা না? আমি কোন ব্যাখ্যা খুঁজে পাচ্ছি না man exec
।
exec -l
লগইন শেল হিসাবে বাশ কার্যকর করবে [ wiki.bash-hackers.org/commands/builtin/exec] । সংক্ষেপে, এটি বাশকে পুনরায় পড়তে বাধ্য করে /etc/profile
এবং ~/.profile
। শুধু চলমান exec bash
শুধুমাত্র পুনরায় পড়তে হবে ~/.bashrc
।