সমস্ত উন্মুক্ত টার্মিনালে নতুন .bashrc উত্স


6

আমি নিজেকে সবসময় একবারেই টার্মিনাল খোলা অবস্থায় দেখতে পাই। আমি যখন আমার .bashrc আপডেট করি তখন আমাকে প্রতিটি টার্মিনালে গিয়ে এক্সিকিউট করতে হয়

. .bashrc

নতুন .brcrc দিয়ে টার্মিনাল উত্স করতে ।

এটি এক ধরনের ব্যথা এবং সময় সাপেক্ষ। আমি ভাবছিলাম যে নতুন .bashrc ফাইলের সাথে সমস্ত ওপেন টার্মিনালগুলিকে সস করার কোনও উপায় রয়েছে যার মধ্যে একটিও না গিয়ে বা লগ আউট না করে শুরু?

উত্তর:


6

terdon এর পদক্ষেপ ভাল অধিকার পরিস্থিতির অধীন কাজ করে, কিন্তু যদি, যেমন, .bashrc করার appends পাথ পরিবর্তনশীল, এটা হবে ত্রুটি বরং দ্রুত হতে পারে।

কেবল ফাইলটিকে পুনরায় উত্সাহিত করার পরিবর্তে, আপনি প্রথমে এর পরিবর্তনের সময়টি পরীক্ষা করতে পারেন এবং এটি সর্বশেষ উত্সাহিত সংস্করণের এমটাইমের সাথে তুলনা করতে পারেন।

এটি করতে, এটি ~ / .bashrc এ যুক্ত করুন :

  • লিনাক্স

    bashrc_sourced=$(stat -c %Y ~/.bashrc)
    
    PROMPT_COMMAND='
        test $(stat -c %Y ~/.bashrc) -ne $bashrc_sourced && source ~/.bashrc
    '
  • ওএস এক্স এবং বিএসডি

    bashrc_sourced=$(stat -f %m ~/.bashrc)
    
    PROMPT_COMMAND='
        test $(stat -f %m ~/.bashrc) -ne $bashrc_sourced && source ~/.bashrc
    '

তারপরে, এটিকে ম্যানুয়ালি এক চূড়ান্ত সময় রিসোর্স করুন।


নিতান্তই ভালো! +1 টি।
টেরডন

অনেক ধন্যবাদ! আপনার যা দরকার তা কি $HOME/.bashrcশুধু insted .bashrc? আমি ছাড়া অনুমান করতে পারি $HOME, টার্মিনাল এটি সন্ধান করতে সক্ষম হবে না।
জেফ

উত্সের যুক্তিগুলি ফাইলের নাম। আপনি যদি বর্তমানে আপনার বাড়ির ফোল্ডারের ভিতরে থাকেন . .bashrcতবে কাজ করবে; অন্যথায়, এটি না। আপনাকে নির্দিষ্ট করতে হবে $HOME/.bashrc~/.bashrcবা সম্পূর্ণ পথ (যেমন, /home/jeff/.bashrc)।
ডেনিস

প্রতিটি আদেশে একটি ফাইল পড়ুন? সাধরণ।
Ярослав Рахматуллин

1
@ Ярослав Рахматуллин: ফাইলটি ক্যাশে করা হবে, সুতরাং এটি কোনও বড় সমস্যা নয়। টার্মিনাল মাল্টিপ্লেক্সার ব্যবহারের সংক্ষিপ্ততা, আমি প্রতিটি টার্মিনালে না যাওয়ার ওপির প্রয়োজনীয়তা পূরণের আরও ভাল উপায়ের কথা ভাবতে পারি না।
ডেনিস

2

সাধারণভাবে, দয়া করে আপনার অপারেটিং সিস্টেম অন্তর্ভুক্ত করতে ভুলবেন না, সঠিক উত্তরটি প্রায়শই সিস্টেম নির্ভর। মনে রাখবেন যে ব্যাশ বেশিরভাগ লিনাক্স, ওএস এক্স এবং অনেকগুলি ইউনিক্সে ডিফল্টরূপে ব্যবহৃত হয়।

যাইহোক, আপনার ক্ষেত্রে ওএস অপ্রাসঙ্গিক হওয়া উচিত, সুতরাং আপনাকে যা করতে হবে তা হল PROMPT_COMMAND ভেরিয়েবল সেট করুন :

বাশ একটি পরিবেশ পরিবর্তনশীল সরবরাহ করে যার নাম PROMPT_COMMAND। এই ভেরিয়েবলের বিষয়বস্তুগুলি বাশ প্রম্পট প্রদর্শনের ঠিক আগে নিয়মিত বাশ কমান্ড হিসাবে কার্যকর করা হয়।

সুতরাং যেহেতু আপনি যে কমান্ডটি চালাতে চান তা সোর্সিং হওয়ায় ~/.bashrcআপনার এই লাইনটি যুক্ত করুন ~/.bashrc(এতে .কেবলমাত্র একটি উপাধি রয়েছে source):

PROMPT_COMMAND='source ~/.bashrc'

এখন প্রতিবার বাশ কোনও প্রম্পট প্রদর্শন করলে এটি প্রথমে পুনরায় পড়বে ~/.bashrc। আপনার খোলার টার্মিনালগুলি পেতে (যতক্ষণ না তারা সেট করার পরে সেগুলি খোলা থাকবে PROMPT_COMMAND) আপডেট করতে কেবল কোনও কমান্ড চালান বা কেবল হিট করুন Enter

সতর্কতা: আপনার জটিলতার উপর নির্ভর করে এটি ~/.bashrcএকটি লক্ষণীয় পিছনে যুক্ত করতে পারে যেহেতু ফাইলের কোনও কমান্ড বারবার কার্যকর করা হবে।


0

চুম্বন

এই দুটি বা উভয়ই / উভয় / etc / প্রোফাইল এবং ~ / .bashrc এ রাখুন

alias sProf='source /etc/profile'
alias sBrc='source ~/.bashrc'

অন্য পদ্ধতি:

কমান্ড এবং নতুন লাইনটি অন্তর্ভুক্ত করতে তীরের মধ্যে থাকা সমস্ত কিছু সহ একটি টার্মিনাল লাইন অনুলিপি করুন এবং প্রতিটি টার্মিনালে মধ্যম ক্লিক করুন।

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