কীভাবে জেডশেলের কোনও কমান্ডকে ইতিহাসে সংরক্ষণ করা যায়?


26

বাশে আমি জানি যে কোনও কমান্ড ইতিহাসে রাখা থেকে বাধা দেওয়ার আগে একটি স্পেস স্থাপন করা জেডশেলের সমতুল্য কী?


ক্রস লিঙ্কিং (আরও কিছুটা জড়িত) বাশ উত্তরের: unix.stackexchange.com/questions/6094/…
মাইকেল শিগোরিন

উত্তর:


37

HIST_IGNORE_SPACE বিকল্পটি ব্যবহার করুন।

setopt HIST_IGNORE_SPACE

মানুষ zshoptions

HIST_IGNORE_SPACE

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


আমি আশা করি ওএসএক্স-এ-খোলার পর থেকে-সমস্ত-কমান্ড-টাইম-ইন-টু-টার্মিনাল-উইন্ডো-এর জন্য আমি এটি করতে পারতাম। আপনি যখন বুঝতে পারবেন যে আপনি ভুল গাছটি ছাঁটাই করছেন।
ড্যান রোজনস্টার্ক

2
এবং তারপরে, আমি যে কমান্ডগুলিকে আটকাতে চেয়েছিলাম তার জন্য, আমি এলিয়াস ব্যবহার করেছি এবং একটি স্থানের পূর্বনির্ধারিত করেছি: ওরফে jrnl = "jrnl"
সাগর

2
@ ইয়ার কিল -9 সেই শেলটি (যদি এটি লাইন-প্রতি-লাইনের ইতিহাসের ফাইলটি না করে)
মাইকেল শিগোরিন

1
@ মিশেলশিগোরিন ধন্যবাদ! kill -9 $$ইতিহাসে সংরক্ষণের জন্য বর্তমান টার্মিনাল সেশনে জারি করা সমস্ত কমান্ড এড়াতে সত্যিই দুর্দান্ত।
জেফরি লেবোস্কি

2
@CMCDragonkai- এর unset HISTFILEআগে আপনি কমান্ডগুলি ব্লক করতে পারেন। আপনি চান HISTFILEআপনার ইতিহাসে আদেশগুলি রাখতে আপনার পরে পুনরায় সেট করতে হবে বা একটি নতুন শেল খুলতে হবে।
চ্যানসি গ্যারেট

2

জেডএসএইচ ইতিহাসে কী যুক্ত হয়েছে তার উপরে যদি আপনি আরও দানাদার নিয়ন্ত্রণ চান তবে আপনি zshaddhistoryফাংশনটি সংজ্ঞায়িত করতে পারেন .zshrc। নিম্নলিখিত সংজ্ঞাটি উপেক্ষা করার জন্য কোনও প্যাটার্ন সংজ্ঞায়িত করতে একটি রেজেক্স ব্যবহার করে:

function zshaddhistory() {
  emulate -L zsh
  if ! [[ "$1" =~ "(^ |^ykchalresp|--password)" ]] ; then
      print -sr -- "${1%%$'\n'}"
      fc -p
  else
      return 1
  fi
}

মনে রাখবেন যে, থেকে আচরণ man zshoptsঅধীনে HIST_IGNORE_SPACEএখনও বর্তমান হল:

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

সুতরাং এটি পরীক্ষা করতে, আপনাকে একটি অতিরিক্ত আঘাত করতে হবে [Enter]। এটি কমান্ডটি আউটপুট থেকে historyএবং ↑ তীর ইতিহাস উভয়ই সরিয়ে দেয় ।

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