বর্তমান অধিবেশন জন্য বাশ ইতিহাস


15

হতে পারে আমি কিছু উপেক্ষা করছি কিন্তু আপনি যে বর্তমান সেশনের মতো ব্যবহার করছেন তার বর্তমান বাশ ইতিহাস পাওয়ার কোনও উপায় আছে?

যদি আমি দৌড়ে

ssh host
$ pwd
$ ls
$ cd /tmp

আমি কেবল এই 3 টি কমান্ড দেখতে চাই এবং অন্য কিছুই নয়


আপনি কি historyকমান্ড পরীক্ষা করেছেন ??
হ্যাকাহলিক

হ্যাঁ আমি জানি historyতবে এটি আমার সেশনটি দেয় না
মাইকে

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

@ এমডিপিসি, আপনি কোন ডক্স পড়ছেন? বাশ ম্যান পৃষ্ঠায় আমি সংরক্ষণের কোনও রেফারেন্স পাই না তবে কেবল HISTSIZEএবং কেবল HISTFILESIZE
ওয়াইল্ডকার্ড

উত্তর:


15

একটি সামান্য চতুর্দিকে পথ:

history -a ~/current_history

এটি বর্তমান সেশনের সংরক্ষণ না করা বাশ ইতিহাসকে সংরক্ষণ করবে ~/current_history, যা আপনি এরপরে দেখতে পারবেন।


এটি কাজ করতে পারে তবে একাধিক অধিবেশন পরিচালনা করতে পারে না .. আমার ধারণা আমি এটি সঞ্চয় করার জন্য একটি এলোমেলো টেম্প ফাইল তৈরি করতে পারি
মাইক

1
@ মাইক শেল পিআইডি যুক্ত একটি নাম সম্ভবত ব্যবহার করুন ~/$$_history
মারু

4
এটি লক্ষণীয় যে এটি ইতিহাসটি সাফ করবে না বা কোনওভাবেই ইতিহাসের সাধারণ সংরক্ষণকে প্রভাবিত করবে না! আমি এটি পরীক্ষা না করা পর্যন্ত নিশ্চিত ছিলাম না। :)
এনএইচডালি

আমি history -aআগের ইতিহাসের পাশাপাশি এটি ~ / .Bash_history এ ছুঁড়ে ফেলা আরও সুবিধাজনক বলে মনে করি ... যা যদি আপনার ইতিহাস কাটোফের চেয়ে দীর্ঘ হয় তবে এটি আমার সেন্টোস 7 এবং ফেডোরা 24 সিস্টেমে 1000 হ'ল সমস্যা হতে পারে।
রায় ফস

0

আমার একটি সমস্যা ছিল যে আমি historyএকটি ফাইলটিতে বর্তমান লিখতে চেয়েছিলাম কিন্তু এখনও চাইছি এন্ট্রিগুলি মূল ব্যাশে রেকর্ড করা হোকhistory

আমি কেবল এর সাথে ফাইল সংযুক্ত করে এটি সমাধান করেছি cat:

history -a current-history
cat current-history >> .bash_history

-1

compইতিমধ্যে বিদ্যমান ইতিহাসের সাথে পুরো ইতিহাস (বর্তমান বশ অধিবেশন সহ) সম্পূর্ণ তুলনা করার জন্য ব্যবহার করুন .bash_historyএবং কেবলমাত্র বর্তমান লাইনের সারণীর সাথে অনন্য সেই লাইনগুলি মুদ্রণ করুন - যা কেবল বাশ শেল শুরু করার পরে কার্যকর হওয়া কেবলমাত্র কমান্ডই প্রদর্শন করবে

comm -23 <( history | cut -c 8- ) ~/.bash_history

সম্পাদনা করুন: যেমন উইল্ডকার্ড নির্দেশ করেছেন এই আদেশটি সমস্ত বিতরণের জন্য কাজ করে না comm। আমি ম্যাক ওএসে এটি পরীক্ষা করেছি।

একই ধারণা ব্যবহার করে একটি ভিন্নতা diff:

diff <( history | cut -c 8- ) ~/.bash_history | sed -n 's/^< //pg'

একটি ভাল চিন্তা, কিন্তু আমার পরীক্ষায় খুব বিশ্বাসযোগ্য নয় un commসাজানো ইনপুট ধরে। তবে, স্ট্যাক এক্সচেঞ্জে আপনাকে স্বাগতম! :)
ওয়াইল্ডকার্ড

@ উইল্ডকার্ড, ইনপুটটির উভয় দিকই commআমার উপরের উদাহরণে সহজাতভাবে বাছাই করা হয়েছে। তুমি কি এটা চালিয়েছ? এবং এটি আপনার বর্তমান বাশ সেশন ইতিহাস তৈরি করে না?
ক্রিশ্চিয়ান কাদেরার

হ্যাঁ, আমি করেছি, এবং না, তা হয়নি। এবং না, সামগ্রীগুলি বাছাই করা ~/.bash_historyহয় না ; এবং না historyএকবারে শীর্ষস্থানীয় লাইন নম্বরগুলি সর্ট করা হয়। ( commএগুলি ছাড়া, ডিক্সোগ্রাফিকভাবে বাছাই করা ইনপুট আশা করে, সংখ্যা অনুসারে বাছাই করা ইনপুট নয় not)
ওয়াইল্ডকার্ড

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

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