কীভাবে ব্যাশ করবেন (টার্মিনাল.এপ) আগের সেশনের ইতিহাস মনে রাখবেন?


11

কর্মক্ষেত্রে আমার কম্পিউটারে, আমার ব্যাশ শেলটি পূর্বের সেশনগুলির ইতিহাস মনে রাখে, এমনকি যদি আমি একটি নতুন টার্মিনাল খোলি।
বাড়িতে আমার কম্পিউটারে, এটি ঘটে না।
উভয় মেশিনে আমার একই ওএস 10.6.8 রয়েছে এবং আমার ইতিহাস সম্পর্কিত কোনও সেটিংস নেই .bash_profile
আমি কীভাবে এটি আমার হোম কম্পিউটারে সেট আপ করতে পারি যাতে এটি অধিবেশনগুলির ইতিহাস মনে রাখে?



উত্তর:


11

আপনার ইতিহাস ফাইলটি কোথায় রাখবেন এবং কয়টি লাইন রাখতে হবে তা আপনাকে বাশকে বলতে হবে:

# Set the location of your HISTFILE
echo "export HISTFILE=/Users/<USERNAME>/.bash_history" >> ~/.bash_profile

# Number of lines to keep (1000 in this example)
echo "export HISTFILESIZE=1000" >> ~/.bash_profile

# Set how many commands to keep in the current session history list
echo "export HISTSIZE=80" >> ~/.bash_profile

# Ignore commands that start with a space
echo "export HISTIGNORE=\"&:[ ]*:exit\"" >> ~/.bash_profile

3
এটি সমস্তই ডিফল্টরূপে অপ্রয়োজনীয় হওয়া উচিত। ডিফল্ট বাশ কনফিগারেশন (কমপক্ষে ম্যাক ওএস এক্সে) কমান্ড ইতিহাস সক্ষম করে।
ক্রিস পেজ

মূল শব্দ, / উচিত /। যদি তার ইতিহাস রেকর্ডিং করা না থাকে তবে এটি ব্যাশটিকে ইতিহাসে চালিয়ে যেতে বাধ্য করবে।
অ্যারন লেক

2
নিছক হওয়া উচিত নয় , তবে পূর্বনির্ধারিত ইতিহাস আচরণ দমন করার জন্য কিছু করা না হলে এমনটি হবে, সেক্ষেত্রে কেবলমাত্র এই ভেরিয়েবলগুলিতে কিছু মান স্ল্যামিং করা প্রকৃত সমস্যাটির জন্য কেবল বিরক্তিকর। যদি এই উত্তরটি সমস্যার সমাধান করে, তবে অন্য কিছু সত্যিই গন্ডগোল হয়ে গেছে এবং অন্যান্য সমস্যাগুলি এড়াতে ঠিক করা উচিত।
ক্রিস পৃষ্ঠা

আপনি এই সেটিংস সেট আপ করতে পারেন, তবে আপনি যদি টার্মিনালের ইতিহাসকে কেবল "সক্ষম" করতে চান তবে আমি একটি সহজ সমাধান / উত্তর পেয়েছি। এটি আমার জন্য কেবলমাত্র কাজ করেছে আপেল.স্ট্যাকেক্সেঞ্জাংটা / a / 220667 / 243988 (আমি ম্যাকস হাই সিয়েরা ব্যবহার করছি)
jpruizs

4

আমি সবেমাত্র আমার একইরকম সমস্যাটি আবিষ্কার করেছি, যদিও আমার নিয়োগকর্তার কাছে কেবল দুটি ম্যাক রয়েছে এবং আমার ডেস্কেও বসে নেই । অগ্রহণযোগ্য, তবে অন্য সময়ের জন্য যুদ্ধ।

যাইহোক, বাড়িতে, ম্যাক মিনি (ম্যাকবুক প্রো থেকে স্থানান্তরিত) সেট .bashrcএবং / অথবা করার পরেও সহযোগিতা করেনি .profile। তারপরে আমি আবিষ্কার করেছি যে আমার ~/.bash_historyফাইলটি রহস্যজনকভাবে মূলের মালিকানাধীন। এটি করতে হয়েছিল:

sudo -iu root
cd ~(myusername)
chown (myusername) .bash_history

(হ্যাঁ, আমি জানি এটি কম আদেশে করা যায়। অভ্যাস।)

তারপরে আমি টার্মিনাল থেকে বের হয়েছি এবং একটি নতুন শুরু করেছি। Woot! পূর্বে হারিয়ে যাওয়া সমস্ত ধরণের ইতিহাস ছুটে এসে ফিরে আসে। কত সুন্দর।

সম্ভবত এটি পড়ার যে কেউ ঘটনাক্রমে তাদের এই দুর্দশার মধ্যে ফেলেছে: 0.2%। আমি নিশ্চিত যে অতিরিক্ত উত্সাহের সাথে অন্য কিছু "ফিক্সিং" করার সময় আমি এটিকে উপভোগ করেছি।


4

আমার এই সমস্যাটি ছিল .bash_sessions_disableএবং আমার ব্যবহারকারীর ফোল্ডারে ( ~/) নামে একটি ফাইল তৈরি করা আমার পক্ষে কাজ করেছিল ।

মূলত ওএস এক্স .bash_sessionsপ্রতিটি সেশনের ফোল্ডারে ইতিহাস ফাইল তৈরি করে (আমার ক্ষেত্রে, প্রতিটি ট্যাবের জন্য একটি)। এমনকি সঠিকভাবে এই সেশনগুলি বন্ধ করে দিলে, ওএস এক্স historicalতিহাসিকটিকে পুনরায় খেলবে না .bash_history

আপনি তৈরি করে .bash_sessions_disableএই আচরণটি অক্ষম করুন।

touch ~/.bash_sessions_disable

প্রতি সেশনের কমান্ড ইতিহাস অক্ষম করা - ডিফল্ট আচরণ asked যা বলা হচ্ছে তার বিপরীত।
ক্রিস পেজ

@ ক্রিসপেজ এটি ঠিক তখনই যদি প্রশ্নকর্তা প্রতি সেশনের ইতিহাস সম্পর্কে জিজ্ঞাসা করছেন, যা এটি মনে হয় না ("সেশনগুলির ইতিহাস মনে রাখবেন")। বাশ সেশনের আচরণ অক্ষম করা .bash_historyইতিহাসটিকে .bash_sessions/ফোল্ডারের নীচে রাখার পরিবর্তে একক ইতিহাস পুনরায় খেলতে সক্ষম করে । এই সঠিক উত্তর imho।
ম্যাট এইচ

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

আমি প্রথমে মন্তব্য করার সময় আমারও এই কথাটি উল্লেখ করা উচিত ছিল: পুরো ব্যাশ সেভ / পুনরুদ্ধার প্রক্রিয়াটি অক্ষম করা বোঝানো একটি শেষ উপায় হিসাবে বোঝা যায় এবং সম্ভব হলে এড়ানো উচিত। আপনি SHELL_SESSION_HISTORYনথিবদ্ধ হিসাবে কেবল 0 তে সেট করে প্রতি সেশনের কমান্ড ইতিহাসের আচরণটি বন্ধ করতে পারেন /etc/bashrc_Apple_Terminal
ক্রিস পেজ

1

এই রেডডিট থ্রেডের এই উত্তরটি আমাকে বাঁচিয়েছে:

এটি সম্ভবত আরভিএম ব্যাশ_অ্যাসেশনগুলি চালানোর জন্য প্রস্থান "হুক" রোধ করছে। আপনি যদি আপনার .বাশ_ প্রোফাইলে নিম্নলিখিত লাইনটি মন্তব্য করেন তবে এটি কার্যকর হবে।

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

0

আমারও একই সমস্যা ছিল, ইতিহাস রেকর্ড করা হয়নি। প্রদত্ত সমাধানগুলি কাজ করে নি, তবে শেষ পর্যন্ত আমি জানতে পেরেছিলাম যে সমস্যাটি একটি নিখোঁজ।

সমাধানটি হ'ল /home/[username]/কোনও ফাইল যুক্ত করতে হবে .bash_history, তাই

nano .bash_history

এবং তারপরে ফাইলটিতে যে কোনও কিছু টাইপ করুন (অন্যথায় এটি তৈরি হবে না), প্রস্থান করুন এবং সংরক্ষণ করুন। এর পরে ইতিহাসটি স্বাভাবিকভাবে কাজ শুরু করে।


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