সম্পাদনার পরে আমার `.zshrc` ফাইলটিতে পরিবর্তনগুলি কীভাবে প্রয়োগ করবেন?


5

আমি ফ্রিবিএসডি-তে .zshrcআমার কনফিগার করার জন্য ফাইলটি সম্পাদনা করেছি zsh

উদাহরণস্বরূপ, PATHসিস্টেম ভেরিয়েবল আপডেট করা :

path+=/usr/local/openjdk12/bin

আমি কীভাবে পরিবর্তনগুলি কার্যকর করতে পারি?

আমি কি লগআউট করে আবার লগইন করব? তত্ক্ষণাত্ ফাইলটি চালানোর কোনও উপায় আছে?


@ স্পারহাক যদি লগইন করা এবং আউট হওয়া সাধারণ পন্থা হয় তবে উত্তর হিসাবে পোস্ট করুন এবং আমি এটি গ্রহণ করব।
তুলসী বাউরক

ঠিক আছে. আমি কিছু মিস করছি কিনা তা নিশ্চিত ছিলাম না। আমি এটিকে কিছুটা ফেলে রেখে উত্তর পোস্ট করেছি।
স্পারহক

exec zshএক উপায়।
স্টাফেন চেজেলাস

উত্তর:


6

Zsh পড়া .zshrcশুরু হয়। আপনাকে লগ আউট এবং পুনরায় লগ ইন করার দরকার নেই Just টার্মিনালটি বন্ধ করে একটি নতুন খোলার মাধ্যমে আপনাকে .zshrcএই নতুন টার্মিনালে নতুন দেওয়া হবে। তবে আপনি এটি আরও সরাসরি করতে পারেন। কেবল পুনরায় চালু করতে zsh কে বলুন:

exec zsh

আপনি যদি এটি zsh প্রম্পটে চালান, এটি একই টার্মিনালে চলমান zsh এর বর্তমান উদাহরণটিকে নতুন দ্বারা প্রতিস্থাপন করবে। নতুন উদাহরণটিতে পূর্বের মতো একই পরিবেশের ভেরিয়েবল রয়েছে তবে তাজা শেল (অ-এক্সপোর্ট করা) ভেরিয়েবল রয়েছে এবং এটি একটি নতুন ইতিহাস শুরু করে (তাই এটি সাধারণ কনফিগারেশনে অন্যান্য টার্মিনালের কমান্ডগুলিতে মিশ্রিত হবে)। কোনও পটভূমি কাজ অস্বীকার করা হয়।

আপনি zsh কে আবার পড়তে বলতে পারেন .zshrc। এতে শেল ইতিহাস, শেল ভেরিয়েবল এবং পটভূমির কাজের জ্ঞান সংরক্ষণের সুবিধা রয়েছে। তবে আপনি যা রেখেছেন তার উপর নির্ভর করে এটি .zshrcকাজ করতে পারে বা নাও পারে। পুনরায় পঠন .zshrcকমান্ডগুলি চালায় যা হয়ত কাজ করে না, বা ভালভাবে কাজ করে না, যদি আপনি সেগুলি দুবার চালান।

. ~/.zshrc

ঠিক আছে এমন সমস্ত কিছু গণনা করতে আপনি করতে পারেন এমন অনেকগুলি জিনিস রয়েছে এবং আপনি .zshrcযদি এটি দুটিবার চালাতে সক্ষম হতে চান তবে ঠিক রাখতে পারেন না । এখানে কিছু সাধারণ সমস্যা রয়েছে:

  • আপনি যদি কোনও ভেরিয়েবলের (যেমন fpath+=(~/.config/zsh)বা chpwd_functions+=(my_chpwd)) সংযোজন করেন তবে এটি আবার একই উপাদানগুলিকে যুক্ত করে, যা সমস্যা বা নাও হতে পারে।
  • আপনি যদি এলিয়াসগুলি সংজ্ঞায়িত করেন এবং কমান্ড হিসাবে একই নামটি ব্যবহার করেন, কমান্ডটি এখন ওরফে চালাবে। উদাহরণস্বরূপ, এটি কাজ করে:
    function foo {  }
    alias foo='foo --common-option'
    তবে এটি হ'ল না, কারণ দ্বিতীয়বার ফাইলটি উত্সাহিত হয়ে, নামটি foo ()প্রসারিত করবে:
    foo () {  }
    alias foo='foo --common-option'
  • আপনি যদি কোনও বিদ্যমান zsh ফাংশনটি প্যাচ করেন তবে আপনি এখন আপনার নিজের সংস্করণটি প্যাচ করছেন যা সম্ভবত কোনও গোলমাল করবে।
  • আপনি যদি "দুটি কী'র বাইন্ডিংগুলি পরিবর্তন করার মতো কিছু করেন তবে দ্বিতীয় বার আপনি যা চান তা তা করবে না।

4

শেল ইনিশিয়ালাইজেশন ফাইলগুলির পরিবর্তনগুলি আপনার শুরু হওয়া পরবর্তী শেলটিতে সক্রিয় থাকবে , উদাহরণস্বরূপ যদি আপনি একটি নতুন গ্রাফিকাল টার্মিনাল নিয়ে আসে বা লগ আউট করে আবার প্রবেশ করে। যদি আপনি এমন কোনও পরিবর্তন করে থাকেন যা কোনওভাবে আপনার ডেস্কটপ পরিবেশকে প্রভাবিত করে (এটি কী ধরণের পরিবর্তন হতে পারে তা আমি জানি না), তবে লগ আউট করে আবার প্রবেশ করা প্রয়োজন।

আপনি ফাইলটি ( আপনার ক্ষেত্রে) দিয়ে উত্সটি দিতে পারেন বা কমান্ড লাইন থেকে একটি নতুন শেল সেশনটি দিয়ে শুরু করতে পারেন , তবে এটি প্রায়শই ভাল ধারণা নয় কারণ এর অযাচিত পরিণতি যেমন ভেরিয়েবেলে সদৃশ পথ যুক্ত করা বা অতিরিক্ত প্রক্রিয়াগুলি শুরু করা বা হতে পারে এটি যাই হোক না কেন আপনি সেই ফাইলে করছেন। পরিবর্তনগুলি দৃশ্যমান প্রোগ্রামে দৃশ্যমান হবে না যা ইতিমধ্যে শুরু হয়েছে।. /path/to/filename. ~/.zshrczsh$PATHssh-agent

পরিবর্তনের জন্য যেমন $PATHনিঃশর্তে কেবল যুক্ত করা , আপনি সম্ভবত বর্তমান শেলটিতে যুক্ত কমান্ডটি চালাতে পারেন:

$ path+=/usr/local/openjdk12/bin

এটি (ইন zsh) বর্তমান শেল সেশনে (এবং অ্যারের শেষে ) /usr/local/openjdk12/binডিরেক্টরি যুক্ত করবে । আবার, এই পরিবর্তনটি ইতিমধ্যে চলমান প্রক্রিয়াগুলিকে প্রভাবিত করবে না।$PATH$pathzsh$PATH


1
সেই অবাঞ্ছিত পরিণতি যদি ওপি একটি নতুন শুরু করে তখন এ আলোড়ন সৃষ্টি করা হবে zshশেল। এটা করতে গতানুগতিক এর typeset -U pathমধ্যে zshতাই $PATHএন্ট্রি সবসময় থাকা অনন্য। যদিও $PATHভাল সেট করা হয় ~/.zprofile
স্টাফেন চেজেলাস

3

আপনি নতুন ফাইলটি উত্স করতে পারেন, যা কিছু পরিবর্তনের জন্য কাজ করবে, সম্ভবত PATH ভেরিয়েবল আপডেট করা (অন্যান্য লাইনের উপর নির্ভর করে)। তবে, এটি সোর্সিং করা কেবল .zshrcআবার চলবে এবং আপনি অপ্রত্যাশিত সদৃশ আদেশগুলি কার্যকর করতে পারেন। তদতিরিক্ত, যদি পুরানো থেকে মুছে ফেলা লাইনগুলি থাকে .zshrc, তবে সেগুলি সেশন থেকে "মুছে ফেলা" হবে না।

সবচেয়ে সহজ উপায় হ'ল কেবল লগ আউট এবং আবার প্রবেশ করা। আপনাকে কেবল টার্মিনাল সেশনের জন্য এটি করতে হবে, পুরো ডেস্কটপ পরিবেশ নয়।

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