আমার ম্যাকের বাশ ইতিহাস কেন সংরক্ষণ করবে না?


28

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

কীভাবে ভুল হচ্ছে তা আমি কীভাবে জানতে পারি? বা খালি থেকে সবকিছু পুনরায় সেট করুন।


আপনার প্রোফাইল বা আরসি ফাইল হতে পারে। তাদের মধ্যে কি আছে?
ব্যবহারকারী 14492

1
আপনার .bash_history এ অনুমতি এবং মালিক কী? খনি 600 এবং আমার মালিকানাধীন। এছাড়াও, $ HIST_FILE এ কী আছে?
blm

@blm অনুমতি ঠিক আছে; b HIST_FILE মুদ্রণ করে আমি .বাশ_সেশনগুলি সম্পর্কে খুঁজে পেয়েছি । দৃশ্যত সমস্যা আছে যখন কোনও সেশন শেষে ওএস the ফাইলগুলিকে ইতিহাসের ফাইলে সংরক্ষণ করে। আমি আর তদন্ত করতে চাই না তাই আমি এটি কেবল নিজের বাড়িতে রেখেছি .bash_sessions_disableএবং এটি ডিফল্ট আচরণে ফিরে আসতে জানি
abaini01

দয়া করে অ্যাপলের সাথে একটি বাগ রিপোর্ট ফাইল করার কথা বিবেচনা করুন: developer.apple.com/bug-reporting
ক্রিস পেজ

উত্তর:


31

আমি এটা করেছি:

.bash_profileফাইলের ক্ষেত্রে একটি ভেরিয়েবল যুক্ত করুন

SHELL_SESSION_HISTORY=0

টার্মিনালটি পুনরায় চালু করুন এবং তারপরে এটি আমার পছন্দ মতো কাজ করছে। (আমি টার্মিনালটি বন্ধ করার পরে এটি কমান্ডগুলি সংরক্ষণ করে)

PS আমি ব্যবহার HISTFILESIZEএবং HISTSIZEভেরিয়েবল

আপনার ব্যাশ সেশন চলাকালীন ইতিহাসের তালিকায় মেমরিতে সংরক্ষণ করা লাইন বা কমান্ডের সংখ্যা হিস্টিজ হয়।

HISTFILESIZE হ'ল লাইন বা কমান্ডের সংখ্যা যা (ক) একটি সেশন শুরুর সময় ইতিহাসের ফাইলে অনুমোদিত হয় এবং (খ) ভবিষ্যতের সেশনে ব্যবহারের জন্য আপনার বাশ সেশন শেষে ইতিহাসের ফাইলে সংরক্ষণ করা হয়।


3
এল ক্যাপিটেনে আমার জন্য একটি লাইন যুক্ত করা ভাল কাজ করে, ধন্যবাদ।
আইদান

2
ধন্যবাদ! আমি যদি কারও জানা হয়ে যায় তবে এটি কেন কাজ করে তা জানতে আগ্রহী। (ইতিহাস = ০ আমার অজ্ঞ মনকে বোঝায় যে সমস্ত ইতিহাস হারিয়ে যাবে, তবুও এর বিপরীত প্রভাব রয়েছে বলে মনে হয়))
মাইক উইলিয়ামসন

@ সাইক্কা "মাঝখানে" সমাধান আছে কি? যে বৈশিষ্ট্যটি "প্রতিটি পুনরুদ্ধার টার্মিনাল সেশনের জন্য स्वतंत्रভাবে ব্যাশ কমান্ডের ইতিহাস সংরক্ষণ করুন এবং পুনরুদ্ধার করুন" মনে হচ্ছে এমন কোনও দুর্দান্ত বৈশিষ্ট্য যা কোনও প্রোগ্রাম উপভোগ করতে পারে। পূর্ববর্তী কনফিগারেশন থেকে কোনও উপকার পাওয়ার পাশাপাশি কোনও ধরণের কনফিগারেশন সহ নতুন কী রয়েছে?
লোকো.লুপ

8

থেকে শুরু করে OS X এর 10.11 এল ক্যাপটেনের , সিস্টেম ইনস্টল করা স্ক্রিপ্ট /etc/bashrc_Apple_Terminalঅর্ডার সংরক্ষণ করার জন্য টার্মিনাল সঙ্গে স্থানাঙ্ক / প্রতিটি টার্মিনাল জন্য পুনঃস্থাপন জন্য পৃথক কমান্ড ইতিহাস পুনরুদ্ধার পুনঃসূচনা

/etc/bashrc_Apple_Terminalএটি প্রতি-টার্মিনাল কমান্ডের ইতিহাস কীভাবে পরিচালনা করে এবং কীভাবে এটি কাস্টমাইজ করা যায় তার ব্যাখ্যার জন্য মন্তব্যগুলি পড়ুন ।

আপনি যদি কাস্টমাইজ PROMPT_COMMANDকরেন তবে পূর্ববর্তী মানটির সাথে একমত হওয়া নিশ্চিত করুন যাতে আপনি সিস্টেম সরবরাহিত কমান্ডটি মুছবেন না:

PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND; }your_code_here"

যদি আপনি একটি EXITসিগন্যাল হ্যান্ডলার ইনস্টল করেন তবে trapঅনুরূপ কিছু করার বিষয়ে নিশ্চিত হন (বা আপনার হ্যান্ডলারের কাছ থেকে শেল_সেশন_আপডেট কল করুন যদি আপনি আগের মানটির সাথে কীভাবে মিলিত করতে পারেন তা নির্ধারণ করতে না পারছেন - এটি কিছুটা জড়িত)।

আপনি যখন শেলটি প্রস্থান করবেন, এই কোডটি টার্মিনালের ইতিহাসে নতুন কমান্ডগুলি সংরক্ষণ করবে ~/.bash_sessions। এটির কোনও সমস্যা হয় কিনা তা দেখার জন্য, টার্মিনালটি বন্ধ করার পরিবর্তে exit(বা কন্ট্রোল-ডি) সাহায্যে শেলটি ম্যানুয়ালি প্রস্থান করুন । এটি অগ্রগামী বার্তাগুলি লগ করে। যদি এটি সম্পূর্ণ না হয় বা কোনও ধরণের সতর্কতা বা ত্রুটি বার্তাগুলি প্রদর্শিত হয় তবে তা নোট করুন।

সাধারণভাবে, bashrc_Apple_Terminalপ্রতি সেশনের ইতিহাস সনাক্ত এবং অক্ষম করার চেষ্টা যদি দেখে মনে হয় যে ব্যবহারকারী কোনও কাস্টমাইজেশন যা এটির সাথে সামঞ্জস্যপূর্ণ নয় সম্পাদন করেছে। দেখে মনে হচ্ছে আপনি এটির সন্ধান করতে পারেন এমন কোনওটিকে পেয়েছেন। দয়া করে অ্যাপলের সাথে একটি বাগ রিপোর্ট ফাইল করার কথা বিবেচনা করুন: https://developer.apple.com/bug-reporting/


আমি কোনও বিশেষ কনফিগারেশন করিনি তাই আমার ধারণা এটি সমস্যা নয়। আপনি কী ব্যাখ্যা করতে পারেন যে PROMPT_COMMAND কী করে।
লোকো.লুপ

@ লোকো.লুপ আপনার অর্থ কি "বাশের PROMPT_COMMAND ভেরিয়েবলটি কী?" বা আপনার অর্থ " /etc/bashrc_Apple_TerminalPROMPT_COMMAND কী ব্যবহার করে ?"? যদি পরবর্তীটি হয়, আমি আপনাকে কোডটি উল্লেখ করব, যা বিস্তারিতভাবে নথিভুক্ত। অথবা, আপনার সে সম্পর্কে আরও একটি প্রশ্নোত্তর শুরু করা উচিত।
ক্রিস পৃষ্ঠা

আমার অর্থ হ'ল PROMPT_COMMAND এর জন্য ... @ ক্রিস্পেজ
লোকো.লুপ

@ লোকো.লুপ আমি আপনাকে বাশ ডকুমেন্টেশনের বিষয়ে উল্লেখ করি বা আপনাকে সে সম্পর্কে একটি প্রশ্নোত্তর শুরু করার পরামর্শ দিচ্ছি।
ক্রিস পৃষ্ঠা

6

যদি আপনি আপনার নিম্নলিখিত লাইন আছে কিনা চেক করুন: শুধু ক্ষেত্রে সেখানে আউট অন্যদের আছে RVM (রুবি সংস্করণ ম্যানেজার) ইনস্টল করা ~/.profile, ~/.bashrcবা ~/.bash_profileফাইল।

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

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

এটা আমার জন্য সমস্যা ছিল। এটি মন্তব্য করার চেষ্টা করুন।

সূত্র: রেডডিট


3

ম্যাক ওএস এক্সের একটি নতুন ইনস্টল (10.13.6 এ আপডেট হয়েছে), বাশ কমান্ডের ইতিহাস সংরক্ষণ করা হচ্ছে না। এছাড়াও .bashrc বা .bash_profile ফাইলগুলি ছিল না। এই ক্ষেত্রে, খালি .brcrc ফাইলটি এটি আমার জন্য স্থির করে।

touch .bashrc

এটি আপনার প্রয়োজন কেবল বলে মনে হচ্ছে ...


মোজাভে / 10.14-তেও এই সমস্যাটি ঠিক হয়ে গেছে বলে মনে হচ্ছে :-)
এসএসসি

3

সদ্য ইনস্টল করা ওএসএক্স মোজাভেতে আমার একই সমস্যা ছিল। আমি আমার ~/.bash_historyফাইল পরীক্ষা করে দেখেছি:

$ ls -l ~/.bash_history -rw------- 1 root staff 599 Jan 4 20:50 /Users/gilm/.bash_history

কেবল এটিকে জিলতে ফিরিয়ে দেওয়া সমস্যার সমাধান করে। আমি ব্যবহার করতাম:

sudo chown gilm /Users/gilm/.bash_history

এবং এটি আমার সমস্যার সমাধান করে।


2

আপনি .bash_logoutনিম্নলিখিতগুলি দিয়ে একটি ফাইল তৈরি করতে পারেন :

shell_session_update

গিটহাব মন্তব্য থেকে উত্সাহিত


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