আমি যে কোনও জায়গা থেকে যে কোনও প্রোগ্রাম কার্যকর করতে পারি


75

আমার বর্তমান ডিরেক্টরিটি নির্বিশেষে যদি কোনও প্রদত্ত প্রোগ্রাম চালাতে সক্ষম হতে চাই তবে আমার কী করা উচিত? আমি /binকি ফোল্ডারে প্রোগ্রামটির প্রতীকী লিঙ্ক তৈরি করব ?


5
না, আপনার শেলের PATH ভেরিয়েবল ব্যবহার করা উচিত।
এমএসডব্লিউ

7
আমি মনে করি একটি ব্যক্তিগত ~/bin/ফোল্ডার তৈরি করা, আপনার পথে এটি যুক্ত করা এবং যে কোনও জায়গা থেকে আপনি কার্যকর হতে চান এমন কোনও কিছুতে সেই ফোল্ডারে সিমলিংক তৈরি করা ভাল।
উদ্ভট

1
আপনি যে বাইনারিটি সম্পাদন করতে চান তার পুরো পথ সহ আপনি একটি নামও সেট করতে পারেন।
ডাটাসমুরফ

উত্তর:


53

আপনি যদি কেবল export PATH=$PATH:</path/to/file>কমান্ড লাইনে টাইপ করেন তবে এটি সেশনের দৈর্ঘ্যের জন্যই স্থায়ী হবে।

আপনি যদি এটি পরিবর্তন করতে চান তবে স্থায়ীভাবে export PATH=$PATH:</path/to/file>আপনার ~ / .bashrc ফাইলে যুক্ত করুন (ঠিক শেষে ঠিক আছে)।


11
ধন্যবাদ এটি কাজ করে। আমার মতো নবাবিদের জন্য, কোণ বন্ধনী <> বাদ দিতে ভুলবেন না। ভালো লেগেছে:
AT পাঠ

4
এছাড়াও প্রোগ্রামের ফাইলের নামটি নিজেই অন্তর্ভুক্ত করবেন না।
অলি নিমিত্তালো

23

সংক্ষিপ্ত উত্তরটি হ'ল প্রোগ্রামটি চালানোর জন্য, আপনার ডিরেক্টরি যাই হোক না কেন, আপনার অনুসন্ধানের পথে আপনার প্রোগ্রামটির ডিরেক্টরি থাকা দরকার। প্রোগ্রামটি ইতিমধ্যে সেই ফোল্ডারে থাকা কোনও ফোল্ডারে প্রোগ্রাম রেখে বা পথটিতে একটি নতুন ফোল্ডার যুক্ত করে - সমস্যাটি সমাধান করা যেতে পারে either হয় কাজ করবে। সর্বোত্তম উত্তর নির্ভর করে:

এই প্রোগ্রামটি কোনও ডাউনলোড করা প্রোগ্রাম যা আপনি উত্স থেকে নিজেকে সংকলন করেছেন?

এর সম্ভবত সম্ভবত একটি ইনস্টল প্রক্রিয়া থাকবে। আপনি প্রোগ্রামটি যে ফোল্ডারে প্রোগ্রামটি সংকলন করেছেন সেটিতে রুট হিসাবে 'মেক ইনস্টল' চালান

এই প্রোগ্রামটি এমন একটি ডাউনলোড করা প্রোগ্রাম যা আপনি কম্পিউটারে স্ট্যান্ডার্ড প্রোগ্রামগুলির অংশ হিসাবে উপলব্ধ করতে চান?

এই ধরণের অ্যাপ্লিকেশনটিকে একটি স্ট্যান্ডার্ড ফোল্ডারে রাখার অর্থ দেয়। এই জাতীয় প্রোগ্রাম যেমন / usr / স্থানীয় / বিন হিসাবে ডিরেক্টরি ব্যবহার করা বেশ সাধারণ। এটি করার জন্য আপনার রুট অ্যাক্সেসের প্রয়োজন হবে।

এটি এমন একটি প্রোগ্রাম যা আপনি নিজের জন্য লিখেছেন এবং / অথবা কম্পিউটারে আপনার কোনও বিশেষ ব্যক্তিগতকরণ নেই।

'বিন' নামে আপনার হোম ডিরেক্টরিতে একটি ফোল্ডার তৈরি করা এবং প্রোগ্রামটি সেখানে রাখা। এই ফোল্ডারে পুরো পাথ যোগ করতে আপনাকে আপনার লগইন স্ক্রিপ্টটি সম্পাদনা করতে হবে (যেমন / usr / home / jeremy / bin)

আপনি সন্ধানের পথে এটির বর্তমান ডিরেক্টরিটি যুক্ত করতে পারলে আপনাকে প্রতিটি নতুন প্রোগ্রামের সাথে এটি চালিয়ে যেতে হবে - এবং দীর্ঘমেয়াদে আরও কাজ করা হবে।


15

/binডিরেক্টরিতে ফাইলটিতে একটি লিঙ্ক স্থাপন করা একাধিক কারণে করণীয় সেরা জিনিস নয়।

  • প্রকৃত এক্সিকিউটেবল ফাইল যদি এমন কোনও স্থানে থাকে যা কিছু ব্যবহারকারী দেখতে বা চালাতে না পারে তবে তারা এটিকে একটি খারাপ লিঙ্ক বা অকার্যকর প্রোগ্রাম হিসাবে দেখেন।
  • /binডিরেক্টরি যা সিস্টেমের চলমান জন্য প্রয়োজন হয় প্রোগ্রাম (ভালো জিনিস জন্য সংরক্ষিত করা অনুমিত হয় chmod, mkdirইত্যাদি)।

আপনি প্রকৃতপক্ষে কার্যকর করতে সক্ষম ফাইলটি (ইনস্টল) রাখতে পারেন /usr/bin/বা এমনকি করতে পারেন /usr/local/bin/। অবশ্যই, আপনি সেই সময়ে ম্যানুয়ালি প্রোগ্রামটি ইনস্টল করেছেন; আপনার ডিস্ট্রিবিউশন এটি আপনার অন্যান্য প্রোগ্রামগুলির মতো এটির উপর নজর রাখে না - আপনাকে যখন প্রয়োজন হয় তখন ম্যানুয়ালি এটি আপগ্রেড করতে হবে এবং যদি আপনি এটি চান যেতে চান তবে ম্যানুয়ালি সরিয়ে ফেলতে হবে। এছাড়াও, এটি আপনাকে কী প্যাকেজগুলির উপর নির্ভর করে তা জানতে হবে (মনে হচ্ছে আপনি ইতিমধ্যে প্রোগ্রামটি ব্যবহার করেছেন, তাই এটি যত্ন নেওয়া হয়েছে, তবে সাধারণভাবে ...)।

আমি যদি এমন একটি প্রোগ্রাম সেটআপ না করি যা আমি অন্যান্য ব্যবহারকারীদের ব্যবহার করার প্রত্যাশা করি, যা আমি সাধারণত করি না: আমি কেবলমাত্র আমার বাড়ির ডিরেক্টরিতে আমার জন্য একটি বাইন ডিরেক্টরি তৈরি করি এবং আমার শেল প্রোফাইলটি ~/bin/আমার PATHপরিবেশের পরিবর্তনশীলতে যুক্ত করার জন্য সম্পাদনা করি । আমি সেভাবে ইনস্টল করা প্রোগ্রামগুলিতে নজর রাখা সহজ মনে করি কারণ এটি অন্যান্য সিস্টেম থেকে পৃথক।


6

fooআপনার শেলটি বর্তমানে যে ডিরেক্টরিতে রয়েছে সেটিতে আপনি যদি একটি কমান্ড চালাতে চান তবে আপনার কাছে মূলত দুটি বিকল্প রয়েছে:

  1. ./fooশেল প্রম্পটে টাইপ করুন ।

  2. যোগ .ডিরেক্টরি ( .থেকে "বর্তমান ডিরেক্টরী" জন্য একটি নাম) PATHএনভায়রনমেন্ট ভেরিয়েবল; আপনি কীভাবে এটি করছেন তা আপনি যে শেলটি ব্যবহার করছেন তার উপর নির্ভর করে:

    • বোর্ন-টাইপ শেল (বাশ, জেডএস, কেএসএফ, ইত্যাদি) এর জন্য আপনি লিখুন ( আরও তথ্যের জন্য এই পৃষ্ঠাটি দেখুন):

      export PATH=$PATH:.
      
    • csh- টাইপ শেল (tcsh, csh) জন্য আপনি লিখুন ( আরও তথ্যের জন্য এই পৃষ্ঠাটি দেখুন):

      set path = ( $path .)
      

নোট করুন যে ২. বহু-ব্যবহারকারী সিস্টেমে একটি সুরক্ষা ঝুঁকি: আপনাকে cdডিরেক্টরিতে কল্পনা করুন /tmpএবং কোনও ক্ষতিকারক ব্যবহারকারী lsসেখানে নামক একটি ম্যালওয়্যার বাইনারি তৈরি করেছেন ..


2
হ্যাঁ, আমি মনে করি বিকল্পগুলি আপনাকে দেখায় যে ইউনিক্স আপনাকে এমন কিছু করতে দেয় যা খারাপ অভ্যাস হিসাবে বিবেচিত হয়। যুক্ত হচ্ছে। আপনার পথে অন্য খারাপ পার্শ্ব প্রতিক্রিয়াও তৈরি করতে পারে যা সাধারণত খারাপ।
ইউনিক্স জানিটর

1

ভুল করে ম্যাসেজ PATHকরা আপনাকে দূষিত প্রোগ্রামগুলি চালনার জন্য উন্মুক্ত করে। স্ট্যান্ডার্ড ইনস্টল করার অধীনে "স্থানীয়" উপাদান /usr/local(দেখুন FHS ।, যা ইউনিক্স ব্যবহার codifies: একটু তারিখের কিন্তু এটা যুক্তিপূর্ণ দেয়), /usr/local/binসাধারণত হয় PATHসকল ব্যবহারকারীর জন্য।

আমার "স্থানীয়ভাবে ইনস্টল করা" প্রোগ্রামগুলি $HOME/binস্ট্যান্ডার্ড নৃত্যে সেট করা আছে ./configure --prefix=$HOME ..., কয়েকটি (বাশ) এলিয়াসের সাথে মিলিয়ে উদাহরণস্বরূপ সিস্টেমের ওপরে নির্মিত স্বনির্মিত গিটটি ( PATHএকেবারে শেষ না হওয়া অবস্থায় পাওয়া যায়) ।

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