স্থায়ীভাবে লিনাক্সে কোনও পরিবর্তনশীল রফতানি করবেন কীভাবে?


154

আমি আরএইচইএল 6 চালাচ্ছি, এবং আমি এই জাতীয় পরিবেশ পরিবর্তনশীল রফতানি করেছি:

export DISPLAY=:0

টার্মিনালটি বন্ধ হয়ে গেলে সেই পরিবর্তনশীলটি হারিয়ে যায়। আমি কীভাবে স্থায়ীভাবে এটি যুক্ত করব যাতে এই পরিবর্তনশীল মানটি কোনও নির্দিষ্ট ব্যবহারকারীর সাথে সর্বদা বিদ্যমান থাকে?

উত্তর:


170

আপনি এটিকে আপনার শেল কনফিগারেশন ফাইলে যুক্ত করতে পারেন, যেমন $HOME/.bashrcবা বিশ্বব্যাপী আরও /etc/environment। এই রেখাগুলি যুক্ত করার পরে পরিবর্তনগুলি GUI ভিত্তিক সিস্টেমে তাত্ক্ষণিকভাবে প্রতিফলিত হবে না আপনাকে টার্মিনাল থেকে প্রস্থান করতে হবে বা একটি নতুন তৈরি করতে হবে এবং সার্ভারে সেশন লগআউট করতে হবে এবং এই পরিবর্তনগুলি প্রতিফলিত করতে লগইন করতে হবে।


3
ধন্যবাদ, এটি সহায়ক। পুনরায় আরম্ভ না করে আমি কীভাবে পরিবর্তনগুলি কার্যকর করতে পারি? (আমি লিনাক্স নবাগত)
বিটারব্লু

5
@ মিনি-মি - you / বাশার্ক প্রতিবার যখন আপনি শেল খুলবেন তখন টানা হবে। এটিকে স্পষ্টভাবে লোড করতে, sourceযেমন - ব্যবহার করুন > source ~/.bashrc
Kostja

@ কোস্টজা সব নতুন শেলের জন্য? আমি যদি enটি এনভির ভেরিয়েবলগুলি পরিবর্তন করার আগেই আমার যদি গ্রহগ্রহের চলমান থাকে এবং আমি চাই যে গ্রহপৃষ্ঠাটি পরিবর্তন হয়েছে তবে আমি কি পুনরুদ্ধার করতে হবে?
বিটারব্লু

1
@ মিনি-মি: প্রক্রিয়াটির পরিবেশ সাধারণত কলার দ্বারা সেট করা হয় এবং প্রক্রিয়াটির মধ্যে থেকে পরিবর্তিত হয়। একটি চলমান প্রক্রিয়া বাইরে থেকে env পরিবর্তন করা অস্বাভাবিক এবং এর সাথে করণীয় নয় export, তবে একটি ডিবাগার দিয়ে চেষ্টা করুন
এন্টোইন

1
@ মিঃ হাইড: এটি সাধারণত কিছু যায় আসে না। ফাইলগুলি উপর থেকে নীচে পার্স করা হয়, সুতরাং যদি কোনও ভার সংজ্ঞা অন্যের উপর নির্ভর করে তবে সেগুলি অনুযায়ী আদেশ করা উচিত। হ্যাঁ ফাইলের শেষে ঠিক আছে।
এন্টোইন

120

স্থায়ী পরিবেশের পরিবর্তনশীল হিসাবে নিম্নলিখিত হিসাবে সেট করতে আপনাকে তিনটি ফাইল সম্পাদনা করতে হবে:

  • ~ / .Bashrc

    আপনি যখন কোনও টার্মিনাল উইন্ডো খুলবেন তখন এই ফাইলটি চালানো হবে। সুতরাং, আপনি যদি আপনার সমস্ত টার্মিনাল উইন্ডোতে স্থায়ী পরিবেশের পরিবর্তনশীল থাকতে চান তবে এই ফাইলটির শেষে আপনাকে নীচের লাইনটি যুক্ত করতে হবে:
    DISPLAY = 0 রফতানি করুন

  • ~ / .Profile

  • বাশার্কের মতো আপনার ওএসের প্রতিটি লগইনে আপনার পরিবেশের পরিবর্তনশীল থাকতে আপনাকে এই ফাইলটির শেষে উল্লিখিত কমান্ড লাইনটি রাখতে হবে।

  • জন্য / etc / পরিবেশ

  • আপনি যদি প্রতিটি উইন্ডো বা অ্যাপ্লিকেশনগুলিতে আপনার পরিবেশ পরিবর্তনশীল চান (কেবলমাত্র টার্মিনাল উইন্ডো নয়) আপনাকে এই ফাইলটি সম্পাদনা করতে হবে। এই ফাইলটির শেষে নিম্নলিখিত কমান্ডটি যুক্ত করুন:
    DISPLAY = 0
    নোট করুন যে এই ফাইলে আপনাকে এক্সপোর্ট কমান্ড লিখতে হবে না

সাধারণত এই পরিবর্তনগুলি প্রয়োগ করতে আপনার কম্পিউটার পুনরায় চালু করতে হবে। তবে আপনি এই আদেশগুলি দ্বারা বাশার্ক এবং প্রোফাইলে পরিবর্তনগুলি প্রয়োগ করতে পারেন :

$ source ~/.bashrc
$ source ~/.profile

তবে / ইত্যাদি / পরিবেশের জন্য আপনার পুনরায় আরম্ভ করার বিকল্প নেই (যতদূর আমি জানি)

  • একটি সহজ সমাধান

  • এই সমস্ত কাজ করার জন্য আমি এই পদ্ধতিটির জন্য একটি সাধারণ স্ক্রিপ্ট লিখেছি। আপনাকে কেবল আপনার পরিবেশের পরিবর্তনশীলের নাম এবং মান নির্ধারণ করতে হবে।

    #!/bin/bash
    echo "Enter variable name: "
    read variable_name
    echo "Enter variable value: "
    read variable_value
    echo "adding " $variable_name " to environment variables: " $variable_value
    echo "export "$variable_name"="$variable_value>>~/.bashrc
    echo $variable_name"="$variable_value>>~/.profile
    echo $variable_name"="$variable_value>>/etc/environment
    source ~/.bashrc
    source ~/.profile
    echo "do you want to restart your computer to apply changes in /etc/environment file? yes(y)no(n)"
    read restart
    case $restart in
        y) sudo shutdown -r 0;;
        n) echo "don't forget to restart your computer manually";;
    esac
    exit
    

    এই লাইনগুলিকে একটি শফিলের মধ্যে সংরক্ষণ করুন তারপরে এটি কার্যকরকরণযোগ্য করে তুলুন এবং কেবল এটি চালান!


    1
    স্ক্রিপ্ট খুব ভাল কাজ করেছে। আমি উবুন্টু 14.04 ইনস্টল করেছি। আমি উপরের সামগ্রীটি কেবল একটি ফাঁকা ফাইলে পেস্ট করেছি , এরপরে তার নাম insert_var.sh রেখেছিchmod -x insert_var.sh , তারপরে bash insert_var.sh। ধন্যবাদ।
    ব্রুনো ভোডোলা মার্টিনস

    আমি উবুন্টুতে একটি টার্মিনাল উইন্ডো খুললাম এবং MY_VAR = 1 রফতানি প্রবেশ করলাম। এই পরিবর্তনশীল MY_VAR কোথায় সঞ্চয় করা হবে?
    vgokul129

    29

    আপনার .bashrcবা লাইন যুক্ত করুন .profile। সেট করা ভেরিয়েবলগুলি $HOME/.profileবর্তমান ব্যবহারকারীর জন্য সক্রিয় রয়েছে, এর মধ্যে /etc/profileরয়েছে বৈশ্বিক। .bashrcপ্রতিটি ব্যাশ অধিবেশন শুরু টানা হয়।


    27

    উবুন্টু সিস্টেমে, নিম্নলিখিত অবস্থানগুলি ব্যবহার করুন:

    1. JAVA_PATH=/usr/local/javaস্টোরের বিন্যাসে সিস্টেম-ব্যাপী স্থির পরিবর্তনশীল vari

      /etc/environment
      
    2. সিস্টেম-প্রশস্ত স্থায়ী পরিবর্তনশীল যা রেফারেন্স ভেরিয়েবল যেমন
      export PATH="$JAVA_PATH:$PATH"স্টোর ইন store

      /etc/.bashrc
      
    3. PATH DEFAULT=/usr/bin:usr/local/binস্টোর বিন্যাসে ব্যবহারকারী নির্দিষ্ট ধ্রুবক পরিবর্তনশীল

      ~/.pam_environment
      

    # 2 তে আরও তথ্যের জন্য, এই জিজ্ঞাসা করুন উবুন্টু উত্তরটি দেখুন । দ্রষ্টব্য: # 3 হ'ল উবুন্টু সুপারিশ কিন্তু বাস্তব বিশ্বে সুরক্ষা উদ্বেগ থাকতে পারে।


    2

    একটি বিশেষ উদাহরণ: আমার কাছে জাভা 7 এবং জাভা 6 ইনস্টল করা আছে, আমার 6 টি দিয়ে 6, অন্য 7 দিয়ে কিছু বিল্ড চালানো দরকার I সুতরাং আমাকে গতিশীলভাবে পরিবর্তন করতে হবে JAVA_HOMEযাতে মাভেন প্রতিটি বিল্ডের জন্য যা চান তা বাছাই করে। আমি নিম্নলিখিতগুলি করেছেন:

    • j6.shস্ক্রিপ্ট তৈরি করা হয়েছে যা সহজভাবে JAVA_HOME=...J6 ইনস্টল করার রফতানি পথ করে ...
    • তারপরে, উপরের মতামতগুলির মধ্যে একটি হিসাবে পরামর্শ দেওয়া হয়েছে, যখনই আমার কোনও বিল্ডের জন্য জে 6 প্রয়োজন হয়, আমি j6.shসংশ্লিষ্ট কমান্ড টার্মিনালে উত্স চালনা করি । ডিফল্টরূপে, আমার JAVA_HOMEJ7 তে সেট করা আছে।

    আশাকরি এটা সাহায্য করবে.


    0

    এটি যদি কারও উপযুক্ত হয় তবে স্থায়ীভাবে পরিবেশগত পরিবর্তনগুলি যুক্ত করার জন্য এখানে কয়েকটি সংক্ষিপ্ত গাইডলাইন রয়েছে।

    vi ~/.bash_profile
    

    ফাইলটিতে ভেরিয়েবল যুক্ত করুন:

    export DISPLAY=:0
    export JAVA_HOME=~/opt/openjdk11
    

    তাত্ক্ষণিকভাবে সমস্ত পরিবর্তন প্রয়োগ করুন:

    source ~/.bash_profile
    

    সূত্র: https://www.serverlab.ca/tutorials/linux/administration-linux/how-to-set-en पर्यावरण- variables- in- linux/

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