পুনঃসূচনা করার সময় ম্যাক টার্মিনাল পুনরায় কাজ করার ডিরেক্টরিগুলি কীভাবে তৈরি করবেন


16

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

আমি কি ভুল করছি? এটি কি কিছু সেটিংসের কারণে ঘটতে পারে ~/.bash_profile?


আমি মনে করি আপনি এই থ্রেডে যা সন্ধান করছেন তা পেতে পারেন। আপেল.স্ট্যাকেক্সচেঞ্জ
প্রশ্নগুলি /

1
তাহলে কি এই ধারণাটি ভুল করে আমি বাক্সের বাইরেই সমর্থন করা উচিত?
অলিভার ড্রটবহম

উত্তর:


15

(রেফারেন্সের জন্য, আমরা ম্যাক ওএস এক্স লায়ন ১০.7 এবং তার পরের বৈশিষ্ট্যটির কথা বলছি))

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

আপনার যদি কাস্টম থাকে ~/.bash_profileবা ~/.bashrcআপনার এটির প্রয়োজন হতে পারে যে আপনি /etc/bashrcনিজের পছন্দসই সংশোধন করে ডিফল্ট আচরণটি পূর্বাবস্থায় নিচ্ছেন না । বিশেষত, PROMPT_COMMANDপ্রতিটি প্রম্পটে এস্কেপ সিকোয়েন্স প্রেরণের জন্য এটি পরিবেশের পরিবর্তনশীল সেট করে । আপনি যদি এই পরিবর্তনশীলটি কাস্টমাইজ করেন তবে আপনার নিজের কোডটিকে বর্তমান মানতে উপসর্গ বা সংযুক্ত করতে হবে, যেমন:

PROMPT_COMMAND="<your code here>;$PROMPT_COMMAND"

এছাড়াও, সাধারণত, ~/.bash_profileকার্যকর করা উচিত ~/.bashrc:

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

1
উত্তরের জন্য ধন্যবাদ তবে আমি কাজটি করতে সক্ষম হতে পারছি বলে মনে হয় না। আমি আমার অপসারণ করেছি .bashrc(যদিও আমি কোনও প্রম্পট কমান্ড কাস্টমাইজেশন সনাক্ত করতে পারি না Now এখন আমি নিম্নলিখিতটি করি: ১) একটি নতুন টার্মিনাল উইন্ডো খুলুন (আমার ব্যবহারকারীর হোম ডিরেক্টরিতে খোলে) ২. সিডি নথিসমূহ ৩. টার্মিনালটি প্রস্থান করুন ৪. টার্মিনাল খুলুন । উইন্ডো ডিরেক্টরি পরিবর্তন আউটপুট প্রদর্শন করার খুলবে কিন্তু এখনও ব্যবহারকারীর হোম ডিরেক্টরির মধ্যে অবস্থিত।
অলিভার Drotbohm

@OliverGierke টার্মিনাল তেমনি জন্য চেক লগইন শাঁস সৃষ্টি, ~/.bash_profile, ~/.bash_login, এবং ~/.profile
ক্রিস পৃষ্ঠা

আমার উত্তরোত্তর দুটি নেই, প্রাক্তন এখন ~/.bashrcআপনার উত্তর অনুসারে আপনার পরামর্শ অনুসারে কার্যকর করে।
অলিভার ড্রটবহম

2
আমি বুঝতে পেরেছি ক্রিস। আমার /etc/bashrcমনে হয় কোনও ইনস্টল স্ক্রিপ্ট বা যা-ই হোক না কেন টুইট করা হয়েছে। এখানে একটি /etc/bashrc.origঅতিরিক্ত কনফিগার রয়েছে (যা আমি আসল সেটআপ হিসাবে ধরে নিই) gist.github.com/3273170 । যে পুনরায় যোগ /etc/bashrcতৈরী জিনিস হিসাবে আবার প্রত্যাশিত কাজ। সাহায্য এবং ধৈর্য জন্য অনেক ধন্যবাদ!
অলিভার ড্রটবহম

আমি আমার .bashrc এ $ PROMPT_COMMAND পরিবর্তন করি না এবং আমার কাছে কেবল সিস্টেম ডিফল্ট / etc / bashrc আছে। আরও কোন পরামর্শ?
রিচার্ড

3

আপনি যদি ব্যাশ-এটি ব্যবহার $PROMPT_COMMANDকরে থাকেন তবে এটির দ্বারা ওভাররাইট হওয়া সমস্যাটি হতে পারে।

উল্লিখিত হিসাবে এটি নতুন ট্যাবগুলিতে সিডব্লিউডি পুনরুদ্ধার করতে ওএস এক্স দ্বারা ব্যবহৃত হয়। বাশ করুন এটি মানগুলি সংযোজন করা উচিত, এগুলি ওভাররাইড করে না।

তবে আপাতত একটি কার্যপ্রণালী হ'ল আপনার নীচের লাইনটি যুক্ত করা ~/.bash_profile

source $BASH_IT/bash_it.sh
export PROMPT_COMMAND="$PROMPT_COMMAND;update_terminal_cwd;"

আরও তথ্যের জন্য আপডেটগুলির জন্য ইস্যু ট্র্যাকার চেকআউট করুন: https://github.com/revans/bash-it/issues/240

এবং এর জন্য অ্যাপল রেফারেন্স https://developer.apple.com/library/mac/docamentation/darwin/references/manpages/man1/sh.1.html


1

আমি এই উত্তরটি আবিষ্কার করার আগে csh / tcsh এর জন্য কীভাবে এটি করব সে সম্পর্কে একটি ব্লগ পোস্ট লিখেছিলাম ; যদি অন্য কেউ যদি এই শেলগুলির সমাধানের জন্য এখানে আসে তবে এটি এখানে:

if ("$?TERM_PROGRAM") then
  if ("$TERM_PROGRAM" == "Apple_Terminal") then
    alias precmd 'printf "\033]7;%s\a" "file://$host$cwd:ags/ /%20/"'
  endif
endif

এটি আপনার .cshrcবা .tcshrcযথাযথ হিসাবে যুক্ত করুন। (এসএসএস-এর মতো দূরবর্তী অবস্থান থেকে লগ ইন করার সময় কোনও ত্রুটি এড়াতে বাহ্যিক যদি বিবৃতিটি প্রয়োজনীয় হয় তবে টিসিএসটিতে পরিবর্তনশীল প্রসারণের নিয়মের কারণে এটি একটি পৃথক বিবৃতি হতে হবে be)

অ্যাপলের বিল্টিন বাশ সহায়তার মতো, এই সমাধানটি printfকেবলমাত্র ফাঁকা স্থান ব্যয় করে ব্যতীত কোনও বাহ্যিক প্রোগ্রাম ব্যবহার করে না । আপনার যদি অন্য বিশেষ চরিত্রগুলি থেকে বাঁচার দরকার হয় তবে আরও বিস্তৃত সমাধান খুঁজে পেতে আপনাকে আরও কঠোর পরিশ্রম করতে হবে।

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