আমি কীভাবে টার্মিনালটি ট্যাব / উইন্ডোতে আলাদা ইতিহাস রাখতে পারি?


13

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

আমি ধরেই নিচ্ছি কারণ বাশ ~/.bash_historyসব টার্মিনালের জন্য একই ব্যবহার করে তবে এর উন্নতি এড়াতে কি কোনও উপায় আছে ? বাশ তৈরি করতে, বা টার্মিনাল করতে, এগুলি আলাদা করে সঞ্চয় করবেন?


দয়া করে এই পোস্টটি দেখুন @ সার্ভার ফল্ট, এটি কীভাবে এটি করবেন তা ব্যাখ্যা করে।
মিউট্যান্ট

উত্তর:


7

আপনি এখানে এরকম কিছু করতে পারেন .bashrc:

MYTTY=`tty`
HISTFILE=$HOME/.bash_history_`basename $MYTTY`

এটি আপনার হোম ডিরেক্টরিতে পৃথক ইতিহাস ফাইল তৈরি করবে .bash_history_ttys002। আপনি যখন একটি নতুন টার্মিনাল উইন্ডোটি তৈরি করবেন, এটি tty নামের সাথে সম্পর্কিত হিস্ট্রি ফাইলটি ব্যবহার করবে, যা সাধারণত আপনি টার্মিনাল উইন্ডোগুলি তৈরি করার ক্রম দ্বারা নির্ধারিত হবে।


দুর্দান্ত, ধন্যবাদ! এটিকে সমাধান হিসাবে চিহ্নিত করা হচ্ছে। যদিও এটি ধরণের উপর নির্ভর করে যে ওএসএক্স কীভাবে টার্মিনালগুলি বোঝায় আমার একটি অনুভূতি রয়েছে এটি আমরা পেতে পারি এটিই সবচেয়ে কাছের।
রবার্ট Sköld

এটি কি প্রতি ট্যাবে সম্ভব?
জোশুয়া মুহিম

প্রতিটি ট্যাব পৃথক tty লগইন হয়, তাই এটি কাজ করা উচিত।
শেঠ নোবেল

এই ধরণের আচরণের জন্য টার্মিনালের স্পষ্ট সমর্থন রয়েছে: যখন এটি একটি নতুন টার্মিনাল তৈরি করে তখন এটি টার্মিনালটিকে একটি স্বতন্ত্র আইডি নির্ধারণ করে এবং এটি TERM_SESSION_ID পরিবেশে পরিবর্তনশীল মাধ্যমে টার্মিনাল সেশনে যোগাযোগ করে। যখন এটি পুনরায় চালু করার জন্য একটি টার্মিনাল পুনরুদ্ধার করে এটি একই সেশনের আইডি পুনরুদ্ধার করে যাতে প্রোগ্রামগুলি পুনরুদ্ধারকৃত টার্মিনালের সাথে স্বেচ্ছাসেবী অবস্থার সাথে এটি যুক্ত করতে পারে। এটি টিটিটির পরিবর্তে ফাইলের নামের অংশ হিসাবে ব্যবহার করুন।
ক্রিস পৃষ্ঠা 21 ই

@ ক্রিসপেজ এটির সাথে সমস্যাটি হ'ল প্রতিবার আপনি উইন্ডো / ট্যাব চালু করার সময় সেশনটি আলাদা হয়। সুতরাং এটি পৃথক ইতিহাস তৈরি করবে এবং তাদের অধিবেশনগুলিতে লিঙ্ক দেবে না।
রিনি উলার

5

আমি যোগ করে এটি বাস্তবায়ন

export HISTFILE="$HOME/.bash_history_$TERM_SESSION_ID"
if [ ! -e $HISTFILE ]; then cp "$HOME/.bash_history" "$HISTFILE"; fi

আমার ~/.bash_profileফাইলে এখন যখন আমি টার্মিনালটি বন্ধ করে আবার খুলি, প্রতিটি ট্যাবে পৃথক কমান্ডের ইতিহাস পুনরুদ্ধার করা হয়। এছাড়াও যখন আমি নতুন ট্যাব তৈরি করি, তখন থেকে ডিফল্ট ইতিহাস শুরু হয়.bash_history

Terminalপ্রস্থান এবং পুনরায় চালু করার মধ্যে খোলা ট্যাব সংরক্ষণের জন্য অ্যাপ তৈরি করতে আপনাকে অবশ্যই সেই বিকল্পটি "close windows when quitting app" (on Yosemite)অক্ষম রয়েছে তা নিশ্চিত করতে হবে System Preferences -> General


0

আপনি প্রতিটি টার্মিনাল দৃষ্টান্তের জন্য একটি কাস্টম $ HISTFILE সেট করতে পারেন।


প্রতিটি টার্মিনাল ট্যাব / উইন্ডোর জন্য স্বয়ংক্রিয়ভাবে এটি করার কোনও উপায় আছে? এবং $HISTFILEকম্পিউটারটি ব্যাকআপ শুরু করার সময় এটি একই ব্যবহার করছে কিনা তা নিশ্চিত হন?
রবার্ট Sköld

1
হ্যাঁ, এটি করা সম্ভব, তবে কীভাবে আপনি আবার অ্যাক্সেস করবেন? পূর্ববর্তী ইতিহাসের ফাইলগুলি পেতে আপনাকে ম্যানুয়ালি ফাইলগুলি জগল করতে হবে।
এমএমএফ

@ এমএমএফ টার্মিনালের এই ধরণের আচরণের জন্য স্পষ্ট সমর্থন রয়েছে: যখন এটি একটি নতুন টার্মিনাল তৈরি করে তখন এটি টার্মিনালটিকে একটি অনন্য আইডি নির্ধারণ করে এবং এটি TERM_SESSION_ID পরিবেশে পরিবর্তনশীল মাধ্যমে টার্মিনাল সেশনে যোগাযোগ করে। যখন এটি পুনরায় চালু করার জন্য একটি টার্মিনাল পুনরুদ্ধার করে এটি একই সেশনের আইডি পুনরুদ্ধার করে যাতে প্রোগ্রামগুলি পুনরুদ্ধারকৃত টার্মিনালের সাথে স্বেচ্ছাসেবী অবস্থার সাথে এটি যুক্ত করতে পারে।
ক্রিস পেজ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.