মনপথ বা ইনফোপথে আমি কীভাবে একটি ডিরেক্টরি যুক্ত করব?


19

আমি মনে করি যে আমি কীভাবে PATH তে কোনও ডিরেক্টরি যুক্ত করব তাতে প্রদত্ত নির্দেশাবলীটি বুঝতে পেরেছি ? ডিরেক্টরিগুলি $ PATH এ যুক্ত করার বিষয়ে। তবে আমি কীভাবে ডিরেক্টরিগুলি $ মনপথ বা F ইনফোপথের সাথে যুক্ত করব তা বুঝতে পারি না।

এছাড়াও - সাহায্যের জন্য চারপাশে গুগল করে আমি লক্ষ্য করেছি যে কখনও কখনও দিকনির্দেশগুলি বলে export PATH=/usr/share/lib/something:$PATHএবং কখনও কখনও তারা বলে export PATH=$PATH:/usr/share/lib/something। ইহা কোনটা?

উত্তর:


24
  1. এই 2 প্রায় একই:

    export PATH=/usr/share/lib/something:$PATH 
    export PATH=$PATH:/usr/share/lib/something
    

    পার্থক্যটি হ'ল প্রথমটি ডিরেক্টরিটিকে যুক্ত করার জন্য এবং দ্বিতীয়টি এটি বর্তমান ডিরেক্টরিগুলির পিছনে রাখে $PATH/usr/share/lib/somethingডিরেক্টরিগুলির মধ্যে যে কোনও একটির ভিতরে একই নাম রয়েছে এমন কমান্ড থাকলে তা কেবলমাত্র গুরুত্বপূর্ণ $PATH

  2. আপনি যে লিঙ্কটি পোস্ট করেছেন তাতে $MANPATHবা $INFOPATHপ্রয়োজন অনুসারে ডিরেক্টরি যুক্ত করতে আপনি লিঙ্কের ভিতরে কনফিগার ফাইলগুলি পরিবর্তন করে এটি করেন।

    এটি এর বৈশ্বিক সংস্করণটি খুলতে বলেছে bash.bashrc:

    sudo vi /etc/bash.bashrc
    

    এবং শেষে যুক্ত করতে:

    PATH=/usr/local/texlive/2010/bin/x86_64-linux:$PATH; export PATH
    MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH
    INFOPATH=/usr/local/texlive/2010/texmf/doc/info:$INFOPATH; export INFOPATH
    

    এই সেট $PATH, $MANPATHএবং $INFOPATH। এবং এটি আপনাকে এটি দিয়ে সম্পাদনা করতে বলে /etc/manpath.config:

    sudo vi /etc/manpath.config
    

    এবং যোগ করতে

    MANPATH_MAP /usr/local/texlive/2010/bin/x86_64-linux /usr/local/texlive/2010/texmf/doc/man
    

    নীচে # set up PATH to MANPATH mapping


আপনি যদি এই সম্পর্কে অনিশ্চিত থাকেন তবে এর সাথে একটি প্রথম ব্যাকআপ নিন (কখনই খারাপ জিনিস হবে না):

sudo cp /etc/bash.bashrc /etc/bash.backup_$(date +"%Y_%m_%d").bashrc
sudo cp /etc/manpath.config /etc/manpath.backup_$(date +"%Y_%m_%d").config

আজব স্ট্রিং বর্তমান তারিখে পরিবর্তিত হয়। আপনি যদি জগাখিচুড়ি করেন তবে ব্যাকআপটি মূল ফাইলটির পিছনে অনুলিপি করুন:

$ touch test1
$ cp test1 test1.$(date +"%Y_%m_%d")
$ ls
test1  test1.2014_11_14  

1
আমি উবুন্টু যথাযথ উপর টেক্সলাইভ 2012 ইনস্টল করেছি এবং আমার কাছে echo $MANPATHফিরে /usr/local/texlive/2012/texmf/doc/manএসেছি। আমি যখন কনফিগারেশনের ব্যাশ রিপোর্টগুলিতে পাথগুলি যুক্ত করি /usr/local/texlive/2012/texmf/doc/man:/usr/local/texlive/2012/texmf/doc/manএবং zsh এখনও প্রতিবেদন করে /usr/local/texlive/2012/texmf/doc/man। Zsh এর জন্য আমি পাথগুলি যুক্ত করব /etc/zsh/zshrc। আমি নিশ্চিত না এটি সঠিক কিনা। আমি এখানে সম্পাদনা /etc/environmentহিসাবে চেষ্টা করেছি , যদিও সাফল্য ছাড়াই।
জেজেডি


লেখার পরে আমি কোন আদেশ দেখতে পারি MANPATH=/usr/local/texlive/2010/texmf/doc/man:$MANPATH; export MANPATH? আমি চেষ্টা করেছিলাম man tlmgrএবং এটি বলে যে এটির অস্তিত্ব নেই।
আর্টুরো

2

যদি আপনার ম্যান পেজগুলি থাকে তবে /usr/local/myproject/manআপনাকে যা করতে হবে তা হ'ল এটি (এর শেষে) /etc/manpath.config:

MANDATORY_MANPATH        /usr/local/myproject/man

0

x:y:z:$PATHবা $PATH:x:y:z?

সবে ভিন্ন। ব্যাশ (শেল / টার্মিনাল) কোনও প্রোগ্রামের জন্য পরীক্ষা করা উচিত $PATHএমন :জায়গাগুলির একটি- বিভক্ত তালিকা রয়েছে ।

উদাহরণস্বরূপ, আপনি যদি catটার্মিনালটির বোঝার উপায়টি বোঝেন তবে এর প্রথম, দ্বিতীয়, তৃতীয় উপাদানগুলির অর্থ কী তা বোঝা যায় $PATH, তবে পরবর্তী অবস্থানের জন্য অনুরোধ করা প্রথম অবস্থানটি সংরক্ষণ করুন cat

আমার কাছে যদি দুটি প্রোগ্রামের দুটি ভিন্ন ভিন্ন সংস্করণ থাকে যার মধ্যে একটি পছন্দ করা হয় এবং $PATHশেলটিকে ভুল ক্রমে অনুসন্ধান করতে বলে, তবে সমস্যা আছে। না হলে সমস্যা নেই।


রপ্তানি

একটি টার্মিনাল খুলুন এবং টাইপ করুন

echo $a
a=5
echo a
echo $a

আপনি দেখতে পাবেন যে a=5পরিবর্তনশীল মান সেট করে এবং $aভেরিয়েবলের নাম উল্লেখ করে, মানটি নয় not

একটি দ্বিতীয় টার্মিনাল খুলুন এবং টাইপ করুন echo $a। এটি আবার ফাঁকা হওয়া উচিত।

exportএবং অ্যাসাইনমেন্ট ( =) এর মধ্যে পার্থক্যটি এখানে ব্যাখ্যা করা হয়েছে: /programming/1158091/defining-a-variable-with-or-without-export

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.