সীমাহীন বাশের ইতিহাস [বন্ধ]


350

আমি চাই আমার .bash_historyফাইলটি সীমাহীন হোক। যেমন আমি সর্বদা ফিরে গিয়ে দেখতে পারি যে আমি কীভাবে কোনও কিছু তৈরি / কনফিগার করেছি, বা সেই নিফ্টির আদেশটি কী ছিল, বা কীভাবে কোনও আদেশ কমান্ডটি কিছু সপ্তাহ আগে ভেঙেছে। আমি কীভাবে এই সেটিংটি পরিবর্তন করব?



1
বাশ একটি প্রোগ্রামিং ভাষা এবং এটি প্রোগ্রামিং সম্পর্কে নয়?
নীলজি

উত্তর:


307

একটি খালি স্ট্রিংয়ে .bashrc সেট HISTSIZEএবং HISTFILESIZEইন করুন :

HISTSIZE= 
HISTFILESIZE=

ইন ব্যাশ 4.3 এবং পরে আপনার কাছে ব্যবহার করতে পারেন HISTSIZE=-1 HISTFILESIZE=-1:

n.  Setting HISTSIZE to a value less than zero causes the history list to be
    unlimited (setting it 0 zero disables the history list).

o.  Setting HISTFILESIZE to a value less than zero causes the history file size
    to be unlimited (setting it to 0 causes the history file to be truncated
    to zero size).

12
(PROMPT_COMMAND = 'ইতিহাস -a' রফতানি করুন) ইতিহাস তাত্ক্ষণিকভাবে কমান্ড ফ্ল্যাশ করতে পারে।
নিষ্ঠুরতা

3
HISTSIZE= HISTFILESIZE=কমপক্ষে আমার জন্য ব্যাশ ইতিহাস সম্পূর্ণরূপে অক্ষম করার ফলাফল নির্ধারণ করা ।
ফিলিপ লুডভিগ

5
কৌতুকটি করার HISTSIZE=-1 HISTFILESIZE=-1সময় @ ফিলিপলডউইগ সেটিং আমার ইতিহাসকে অক্ষম HISTSIZE= HISTFILESIZE=করেছে। CentOS 7 এখানে।
সিথার

1
HISTSIZE= HISTFILESIZE=export HISTSIZE= export HISTFILESIZE=
@ ফিলিপল্ডউইগ

3
@ সিথার উত্তরটি পরিষ্কারভাবে "৪.৩ বাশ এবং তারপরে ..." লিখেছিল states CentOS 7 এর 4.4.x বাশ রয়েছে।
ভিলাপেক্স

426

বছরের পর বছর ধরে অনেকগুলি বড়, কুরুচিপূর্ণ পুনরাবৃত্তি এবং অদ্ভুত প্রান্তের কেসগুলির পরে, আমি এখন আমার .Bashrc এর একটি সংক্ষিপ্ত বিভাগ পেয়েছি to

প্রথমত, আপনাকে অবশ্যই আপনার .bashrc (উবুন্টুর জন্য ডিফল্ট) এর এই বিভাগটি মন্তব্য করতে হবে বা সরিয়ে ফেলতে হবে । যদি আপনি এটি না করেন, তবে নির্দিষ্ট পরিবেশ (যেমন চলমান screenসেশনগুলি) এখনও আপনার ইতিহাস কেটে দেবে:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000

দ্বিতীয়ত, এই অ্যাড আপনার .bashrc নীচে:

# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"

দ্রষ্টব্য: প্রতিটি কমান্ড চালানোর সাথে সাথেই লিখিত হয়, সুতরাং যদি আপনি দুর্ঘটনাক্রমে কোনও পাসওয়ার্ড আটকে দেন তবে ইতিহাস রচনাটি এড়ানোর জন্য আপনি কেবল "কিল -9%%" করতে পারবেন না, আপনাকে এটি ম্যানুয়ালি অপসারণ করতে হবে।

এছাড়াও নোট করুন যে প্রতিটি বাশ সেশন পুরো ইতিহাস ফাইলটিকে মেমরিতে লোড করবে, তবে আপনার ইতিহাস ফাইলটি 10 ​​এমবিতে বাড়তে থাকলেও (এটি দীর্ঘ, দীর্ঘ সময় নিতে পারে ) আপনি আপনার ব্যাশ শুরু হওয়ার সময় খুব বেশি প্রভাব ফেলবেন না।


1
@ অ্যাকোরিয়াস পাওয়ার - ঠিক উপরে যা আছে তা চেষ্টা করে দেখুন -1 এর পরিবর্তে ফাঁকা করুন HISTFILESIZE=এবং HISTSIZE=নিশ্চিত করুন যে আপনার কাছে কোনও .bashrc বা .Bash_profile বা। প্রোফাইলে এই প্যারামগুলির আর কোনও ঘোষণা নেই।
fotinakis

2
অপরাধী .bashrc, আমি .bashrc দ্বারা লোড করা অন্য একটি ফাইল পরে সেটআপ ছিল ..., এখন কাজ! ধন্যবাদ!
কুম্ভ শক্তি

10
এটি আমার স্ট্যান্ডার্ড বাশ সিস্টেমে যুক্ত করুন, এবং বর্তমান ইতিহাস যুক্ত করাও দুর্দান্ত, সুতরাং কনফিগারেশনের পরে চালানcat ~/.bash_history >>~/.bash_eternal_history
জিন-ক্রিস্টোফ মেলাইড

2
ইতিহাসের ইতিহাস ধরে রাখতে, আপনার বর্তমান ইতিহাসের সাথে ইতিহাস ফাইলটি আরম্ভ করুন।
আর্থার

3
অনেক ধন্যবাদ - সত্য যে সেটিংটি HISTFILESIZE(এবং সম্ভবত HISTSIZE) তাত্ক্ষণিকভাবে কার্যকর হবে তা অতিরিক্ত বিবেচনা করা যায় না
Attié

37

যেমন জার্গ বেয়ার উপরে উল্লিখিত, HISTSIZEএবং HISTFILESIZEকী।

তদতিরিক্ত, আপনার অবশ্যই পরিবেশগত পরিবর্তনশীল পরীক্ষা করা উচিত HISTCONTROL, যা আপনাকে শীতল জিনিসগুলি যেমন সদৃশ ইতিহাস আদেশগুলি সংরক্ষণ না করে ( HISTCONTROL=erasedups) করতে দেয়। আপনার যদি কয়েকশ লাইনের cd ..অনুরূপ বা অনুরূপ ব্রাউজ করতে হয় তবে সীমাহীন ইতিহাস থাকার কোনও অর্থ নেই ।

লিঙ্কগুলি: এখানে এবং বাশ ইতিহাসের সাথে কাজ করা । ব্যাশ ভেরিয়েবল এফএকিউ ব্রাউজ করার উপযুক্ত


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

@ সিমন্ট আমি এইচআইএসটিসিআরএআরওএল এর সাথে উপেক্ষা করার বিকল্পটিও ব্যবহার করি তারপরে এটি ইতিহাসের কাছে যেমন লিখতে চাই না তার জন্য পাসওয়ার্ড হিসাবে ব্যবহার করি।
বিগুনটাকান

6
আপনি যদি আদেশের ক্রমগুলি পুনরায় ব্যবহার করেন তবে লাইনগুলি যথাযথভাবে রাখা খুব কার্যকর। যেমন কিছু Ctrl-rকিছু Ctrl-o Ctrl-o Ctrl-o Ctrl-o। এজন্য আমি ইতিহাসে নকল রাখি।
স্টাফেন গৌরিচন

1
@ স্টাফেনগৌরিচোন কিসের Ctrl-oজন্য?
সিপরিয়ান টমোইগ্যাগ

4
@ সিপ্রিয়ানটোমিয়াগă Ctrl-oপ্রম্পটে কমান্ডটি পরিচালনা করে এবং ইতিহাসের পূর্ববর্তীটির ঠিক পরে কমান্ডটি প্রদর্শন করে। একটি সুবিধা হ'ল Ctrl-rপুরানো কমান্ডটি সন্ধান করার পরে (সম্ভবত ইতিহাসে প্রতিবেশী কমান্ডগুলিতে সরে যাওয়ার জন্য উপরে এবং নীচে তীর ব্যবহার করা), পূর্বের সিরিজের কমান্ডগুলি আবার চালানোর জন্য একাধিকবার Ctrlচেপে রাখা যথেষ্ট এবং oএমনকি অসীম লুপেও তুমি যদি চাও. আরও দেখুন উইকিপিডিয়া - গনুহ Readline
Stéphane Gourichon

22

এখানে (কমপক্ষে) দুটি প্রাসঙ্গিক এনভ ভার্স রয়েছে:

  • হিস্টিজ: ইতিহাসের ফাইলে প্রবেশের সংখ্যা
  • HISTFILESIZE: ইতিহাসের ফাইলে লাইনের সংখ্যা

আমি মনে করি যে আমরা একমত হতে পারি যে সীমাহীন শব্দটি প্রায়শই খুব বড় হিসাবে একই থাকে (বা আপনার কাছে কি সীমাহীন ফাইল স্টোরেজ রয়েছে?) সুতরাং মান খুব বড় সেট করুন।


23
"এটি লক্ষ করা উচিত যে 1000000000 অনন্তের খুব ছোট মানগুলির জন্য কেবল অনন্তের সমান - sepp2k" লোল। হ্যাঁ, আমি অনন্তের ছোট মানগুলিতে সন্তুষ্ট (বলুন, ঘন ঘন টার্মিনাল ব্যবহারের এক মাস)।
ফ্রান্সিস হার্ট

6
ঘন ঘন টার্মিনাল ব্যবহারের এক মাস হ'ল অসীমের এক অনন্য বৈশিষ্ট্য। আমি বলব যে সারাজীবন ঘন ঘন টার্মিনাল ব্যবহার অনন্তের খুব খুব সামান্য মানের সাথে সমান হয় । তবে ঘন ঘন টার্মিনাল ব্যবহারের আজীবন আমার শেলের ইতিহাসের পক্ষে যথেষ্ট ভাল। ;)
আইকনোক্লাস্ট

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