আমি সহজেই অনেকগুলি স্ক্রিন উইন্ডো জুড়ে আমার ইতিহাস অনুসন্ধান করতে পারি?


11

আমার বর্তমান screenঅধিবেশনটিতে 12 টি খোলা উইন্ডো রয়েছে। এটি কয়েক সপ্তাহ ধরে চলছে ... আমি জানি যে আমি গত 12 সপ্তাহের মধ্যে এই 12 টি স্ক্রিন উইন্ডোর convertমধ্যে একটিতে একটি ইমেজম্যাগিক কমান্ড কার্যকর করেছি ... সেগুলি বন্ধ না করে বা চালনা না করেই কোনও 12 উপায় রয়েছে যা আমি খুব সহজেই সমস্ত 12 টি দৃষ্টান্তের ইতিহাস অনুসন্ধান করতে পারি is history | grep convertসব 12 পর্দায়?


1
আমি Zsh ব্যবহার এবং আমি setopt share_history/etc/zsh/zshrcপি: এই সমস্যা তাই আমাকে কখনো ঘটা উচিত
phunehehe

উত্তর:


18

history -a; history -cইতিহাস সংরক্ষণ করতে আপনি সমস্ত উইন্ডোতে চলতে পারেন । এবং তারপরে history -rএটি রিফ্রেশ করুন।

এটি আরও স্থায়ীভাবে সমাধানের জন্য এটিতে আপনার যুক্ত করুন .bashrc:

export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

2
এটি দুর্দান্ত, ধন্যবাদ! একমাত্র সমস্যাটি হ'ল আপনি যদি একটি শেলের মধ্যে কিছু টাইপ করেন এবং অন্যটিতে যান এবং তাত্ক্ষণিকভাবে ইতিহাস টাইপ করেন তবে এটি ইতিহাসে প্রদর্শিত হবে না। এটি কারণ PROMPT_COMMAND এখনও কার্যকর করা হয়নি, তাই রিফ্রেশটি ঘটেনি। আপনাকে প্রথমে দ্বিতীয় উইন্ডোতে ফিরে আসতে হবে (বা অন্য কোনও কমান্ড চালানো হবে), তারপরে ইতিহাস টাইপ করুন।
জাভিদ জামায়ে

1

কঠিন শব্দ. এখানে কয়েকটি পদ্ধতি রয়েছে যা আপনার পক্ষে কাজ করতে পারে।

আপনার যদি অ্যাকাউন্টিং সরঞ্জামগুলি ইনস্টল থাকে (লিনাক্সে, কল হওয়া কোনও প্যাকেজ সন্ধান করুন acct) এবং সেগুলি ব্যবহারের অনুমতি পান তবে আপনি কখন এবং সম্ভবত কোন টার্মিনালটিতে ছুটেছিলেন তা জানতে পারবেন convert:

lastcomm convert

যদি এটি অনুপলব্ধ বা আপোষহীন হয় তবে আপনি historyকমান্ড সন্ধানের জন্য বাশের প্রতিটি ক্ষেত্রে একটি কমান্ড কার্যকর করতে পারেন convert। এটি বাশ শুরু হওয়ার সাথে সাথে ইতিহাসের ফাইলে থাকা কমান্ডগুলি সন্ধান করবে।

: >/tmp/convert.history
for w in $(seq 0 11); do
  screen -p $w -X stuff \
    'history | sed 's/^.*convert/'$w'&/" >>/tmp/convert.history
'; done
  • $(seq 0 11)আপনার স্ক্রিন উইন্ডোর সংখ্যা পুনরাবৃত্তি। উইন্ডোজগুলি এড়িয়ে যাওয়া নিশ্চিত করুন যা বর্তমানে বাশ চলছে না এমন কিছু অন্যান্য প্রক্রিয়া যা ইনপুটটিকে আলাদাভাবে ব্যাখ্যা করবে।
  • screen -p $w stuff …নিম্নলিখিত উইন্ডোতে ইনপুট হিসাবে নিম্নলিখিত স্ট্রিং প্রেরণ করে। স্ট্রিংয়ের শেষে আপনার নতুন লাইনের দরকার।
  • ফাইলটিতে /tmp/convert.historyলাইনের একটি তালিকা থাকবে 3 convert foo.jpg, যদি আপনি convert foo.jpgউইন্ডো 3 তে দৌড়েন ।

1
দুর্ভাগ্যক্রমে এগুলি কার্যকর হয়নি। :-( আমি সবেমাত্র history | grep convertসমস্ত উইন্ডোতে দৌড়ে এসেছি I আমি হতাশ, আমি গিলসের আরও একটি দুর্দান্ত উত্তর গ্রহণ করতে চেয়েছিলাম!
জোশ

1

tcsh আপনাকে পর্যায়ক্রমিক ওরফে ব্যবহারের মাধ্যমে সেশনগুলির মধ্যে ইতিহাস ভাগ করার অনুমতি দেয়।

আপনার .cshrc (বা .tcshrc) ফাইলে:

set tperiod = 60 #(or any other number.  Time in minutes between refreshing)
alias periodic 'history -S; echo "Syncing history"'

এটি প্রতি 60 মিনিটে স্বয়ংক্রিয়ভাবে ইতিহাস কমান্ডটি কার্যকর করবে। এটি আপনার হোম ডিরেক্টরিতে একটি সাধারণ ইতিহাস ফাইলে ইতিহাস সংরক্ষণ করবে। ইতিহাসটি প্রায়শই আপডেট করার জন্য, হয় টায়ারপিড সংখ্যাটি কম করুন, বা ম্যানুয়ালি রিফ্রেশ করার জন্য "সাময়িকী" কমান্ডটি কার্যকর করুন


0

বাশ কেবল যখন ইতিহাসটি প্রস্থান করে তখনই এটি লেখেন যা এটিকে সর্বোত্তমভাবে সমস্যাযুক্ত করে তোলে। আমি শুনেছি zsh সক্রিয় সেশনের মধ্যে ইতিহাস ভাগ করতে পারে।

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