উবুন্টুতে আমি একাধিক টার্মিনাল অধিবেশন থেকে বাশ ইতিহাসকে কীভাবে দেখতে পারি? [প্রতিলিপি]


11

সম্ভাব্য সদৃশ:
ইতিহাসের ফাইলগুলি কি ব্যাশে একীভূত করা যেতে পারে?

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

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

আমার কাছে কোন ~/.bash_historyফাইল নেই। কিন্তু আমি একটি আছে ~/.bashrcসঙ্গে HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredupsএবংHISTCONTROL=ignoreboth

echo $HISTFILE
/home/sanoj/.bash_history
echo $HISTSIZE
500
echo $HISTFILESIZE
500
echo $HISTCONTROL
ignoreboth

আপডেট: আমি এখন ভার্চুয়ালবক্সে উবুন্টু সার্ভার ১০.১০ চেষ্টা করছি। যদি আমি কেবল শাটডাউন কমান্ড ব্যতীত ভার্চুয়ালবক্সটি বন্ধ করে রাখি, তারপরে যখন আমি বুট করব তখন শেষ সেশনের কমান্ডগুলি ইতিহাসের ফাইলে সংরক্ষণ করা হবে না।

কমান্ডগুলি কেবল তখনই সংরক্ষণ করা হয় যদি আমি শাটডাউন কমান্ড দিয়ে মেশিনটি শাটডাউন করি। যেমন শাটডাউন -পি 0।

এটি অবশ্যই আমার সমস্যার কারণ হতে পারে। সুতরাং আমি কীভাবে কমান্ড-ইতিহাসকে প্রায়শই সংরক্ষণ করব তা নির্ধারণ করতে হবে। যেমন প্রতিটি আদেশের পরে।


আপনি echo $HISTSIZEএবং আপনি কি পেতে হবে echo $HISTFILESIZE? আমার (উবুন্টু) তেমন ~/.bashrcএকই HISTCONTROLরেখাগুলি রয়েছে যা আপনার মস্তিষ্কে মৃত, যেহেতু দ্বিতীয়টি প্রথমটিকে ওভাররাইড করে এবং মানগুলি কোলোন দ্বারা পৃথক করা হয়, কমা-বিচ্ছিন্ন নয়। আপনি যদি এটি set -oকরেন তবে এটি এমন একটি লাইন দেখায় যা "হিস্ট্রি অন" বলে?
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

আমি পেতে 500সঙ্গে echoউভয় ভেরিয়েবল এবংhistory on
জোনাস

দ্বিতীয় HISTCONTROL বিবৃতিটি আপনি পেয়ে যাচ্ছেন, এটি প্রথম নয়। যদিও উপেক্ষিতপথ উপেক্ষা করা + উপেক্ষা করার জন্য বাশ শর্টহ্যান্ড যাতে সম্ভবত সমস্যা নয়।
কোয়াকোট কোয়েসোট

1
এটি একটি সদৃশ: superuser.com/questions/37576/…
ওয়ারেন

1
@ ওওয়ারেন: চমৎকার সন্ধান। আমি সম্মতি জানাই, সানোজ ঠিক যা চেয়েছে তা দেখে মনে হচ্ছে।
কোয়াকোট কোয়েসোট

উত্তর:


6

তুমি ব্যবহার করতে পার

history -a

তাত্ক্ষণিকভাবে ইতিহাসের ফাইলটিতে মেমরির ইতিহাস যুক্ত করতে। এটি সম্পন্ন না করা বা অন্যটি প্রস্থান না করা হলে একটি টার্মিনাল সেশন অন্যটির দেখতে পাবে না।

তুমি ব্যবহার করতে পার

history 200 | less

এন্ট্রি সংখ্যা দেখতে।

সম্পর্কিত HISTSIZEবাশ ম্যান পৃষ্ঠাতে এন্ট্রি দেখুন HISTFILESIZE


history -a´ doesn't do anything for me, and not ইতিহাস 200 | কম- হয়, তবে আমি আমার প্রশ্নটি আরও তথ্যের সাথে আপডেট করেছি। যাই হোক ধন্যবাদ.
জোনাস

আমি মনে করি যে আমি এখন একটি কারণ খুঁজে পেয়েছি। আমি ক্লিন শাটডাউন না করে ইতিহাস সংরক্ষণ করা হয় না। আমার নতুন প্রশ্নটি দেখুন: unix.stackexchange.com/questions/3330/…
জোনাস

6

আপনি লগ আউট হয়ে গেলে ইতিহাসটি ফাইলটিতে যুক্ত হয় ~/.bash_history। সেখানে একবার দেখুন।

ডিফল্টরূপে এটি আপনার শেষ 500 টি কমান্ড মনে রাখবে। আপনি সংরক্ষণ করতে চান আরো পরিবর্তনশীল সেট HISTSIZEমধ্যে ~/.bashrc

আমিও যুক্ত করব ignoredupsকরার HISTCONTROL(সঙ্গে HISTCONTROL=$HISTCONTROL:ignoredup)। এটি কেবল একবারে সংরক্ষণ করার জন্য ডুপ্লিকেট টানা কমান্ডগুলিকে তৈরি করে।

আপনি man 1 bashইতিহাস সম্পর্কে আর কি টিউন করতে পারেন তা একবার দেখুন ।


আপনার উত্তর দেওয়ার জন্য ধন্যবাদ. কিন্তু আমি একটি না থাকে ~/bash_historyফাইল, এবং কোন HISTSIZEমধ্যে ~/.bashrcকিন্তু আমার আছে HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredupsএবং HISTCONTROL=ignorebothএবং এটি উবুন্টু সার্ভার হলে যে বিষয়টি।
জোনাস

1
@Snoj নোটিশ .মধ্যে ~/.bash_history। এবং HISTSIZEএটির জন্য কেবল 500 এন্ট্রিগুলির ডিফল্ট মান ব্যবহার করা হবে।
বেনজমিন ব্যানিয়ের

হ্যাঁ, তবে ~/.bash_historyআমার সিস্টেমে আমার কোনও ফাইল নেই । আমি ls -aচেক করতাম ।
জোনাস

@ সানোজ তাই সম্ভবত এটি ডিফল্ট নয়। ফাইলের নামটি $HISTFILEভেরিয়েবলে সংরক্ষিত রয়েছে , তাই echo $HISTFILEকোথায় আপনাকে দেখতে হবে তা বলবে।
বেনজামিন ব্যানিয়ার

echo $HISTFILEআমাকে দেয় /home/sanoj/.bash_history- অদ্ভুত। সুরক্ষার কারণে এটি সক্রিয় নয়?
জোনাস

1

শেল চলতে শুরু করলে বাশ ইতিহাস সাধারণত লোড হয় এবং যখন এটি স্বাভাবিকভাবে বের হয় তখন সংরক্ষণ করা হয়। আপনি এটি ব্যবহার করতে history -aএবং history -nওভাররাইড করতে পারেন , তবে আপনি অপব্যবহার $PROMPT_COMMANDবা অনুরূপ কিছু না করলে স্বয়ংক্রিয়ভাবে না not


0

সানোজ, এটি "সত্যই কাজ" করা উচিত; এটি সক্ষম করতে আপনার বিশেষ কিছু করার দরকার বলে মনে করি না। দেখে মনে হচ্ছে যে কোনও কিছু ইভেন্টের স্বাভাবিক গতিতে হস্তক্ষেপ করছে।

আমি / ইত্যাদি / প্রোফাইল, / ইত্যাদি / বাশার্ক (অথবা কিছু উত্স অনুসারে সম্ভবত /etc/bash.bashrc), ~ / .bash_profile, ~ / .bashrc, ~ / .bash_login, ~ / .bash_logout এ দেখতে চাইছি যদি ইতিহাসকে প্রভাবিত করে এমন কিছু থাকে (সম্ভবত grep -i histউপরের প্রতিটি ফাইলের ক্ষেত্রে)।

... বিশেষত আমি আশ্চর্য হই যে আপনার কাছে remove / .bash_logout এ এমন কিছু আছে যা ফাইলটি সরিয়ে দেয়।

বিকল্পভাবে, এটি কি সম্ভব যে কোনও কিছু $HOMEপরিবর্তনশীলকে ওভাররাইড করে চলেছে ?

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