কমান্ডের অস্তিত্ব নেই কিনা তা সনাক্ত করতে কনফিগার করুন, ইনস্টলেশনটি প্রস্তাব করুন


22

পারি zshশেল দেখানোর জন্য কি কনফিগার করা bashশো কমান্ড, অস্তিত্ব নেই এই একইভাবে:

kahless:~$ sysv-rc-conf  
The program 'sysv-rc-conf' is currently not installed.  You can install it by typing:  
sudo apt-get install sysv-rc-conf

জেডএসএইচ প্রম্পটের চেয়ে:

[kahless /home/teward]% sysv-rc-conf  
zsh: command not found: sysv-rc-conf

দ্রষ্টব্য আমি প্রম্পটটি নিজেই পরিবর্তন করতে চাই না, তবে ফলাফলটি zsh: command not foundবাশ-এর ​​মতো আউটপুট The program 'progname' is currently not installed. You can install it by typing:বা অনুরূপ থেকে পরিবর্তন করতে চাই ।

জেডএসএইচ দিয়ে কি এটি সম্ভব?

উত্তর:


22

এই বৈশিষ্ট্যটি প্যাকেজটি সরবরাহ করে । উবুন্টু এটি ডিফল্টরূপে ইনস্টল করে এবং ডিফল্টরূপে এটিকে ব্যাশে সক্রিয় করে তবে zsh এ নয়। আপনার এইটিতে কেবল এই লাইনটি যুক্ত করুন :command-not-found ইনস্টল কমান্ড-পাওয়া যায় নি~/.zshrc

. /etc/zsh_command_not_found

এই সমাধান কাজ করে। আউটপুটে কোনও লাইন থেকে মুক্তি পাওয়ার কোনও উপায় আছে, তবে? (নোট করুন এটি আউটপুটে অন্তর্ভুক্ত ছিল, The program 'progname' is currently not installed. You can install it by typing:অংশ হিসাবে ) zsh: command not found: sysv-rc-conf
টমাস ওয়ার্ড

@ এভিলফোনিক্স: যে কোনও জায়গায় করা হবে (কোনও কার্যকারিতা বা স্পষ্টত কিছু বাদ দিয়ে)। আমি zsh: command not foundলাইন অপসারণ সম্পর্কে জানি না ।
গিলস 'এ-ও অশুভ হওয়া বন্ধ করুন'

ঠিক আছে, আমি সম্ভবত "কমান্ড না পাওয়া অংশ" উপেক্ষা করতে পারি। কারণ প্রস্তাবনা ইনস্টলেশন অংশটি দুর্দান্ত, এবং এটি নকশাকালীন যে এটি কমান্ডের অস্তিত্বের কারণেই এটির পক্ষে চমৎকার;)
টমাস ওয়ার্ড

পালা থেকে command not foundআপনি যে বার্তা যোগ করতে পারেন exitফাংশন শেষে command_not_found_handler/etc/zsh_command_not_found
jens_bo

4

নোট করুন যে আপনি যদি ফাইলটি নেই এমন বিতরণগুলিতে আপনার .zshrc ভাগ করে নিচ্ছেন তবে ফাইলটি উপস্থিত রয়েছে কিনা তা আপনি একটি চেক যোগ করতে চাইতে পারেন /etc/zsh_command_not_found:

[[ -a "/etc/zsh_command_not_found" ]] && . /etc/zsh_command_not_found

এছাড়াও, আপনি যদি ওহ-মাই-জেডএস ব্যবহার করছেন তবে ইতিমধ্যে একটি প্লাগইন রয়েছে command-not-found, যা আপনি আপনার pluginsচলকটিতে একই জিনিস যুক্ত করতে পারেন ।


1

আপনি যদি ওহ-মাই-জেডএস ব্যবহার করছেন তবে আপনি কেবল তার পরিবর্তে আপনার "প্লাগইন" সন্ধান করতে পারেন .zshrc

অটলোয়াদে প্লাগইনগুলির তালিকায় command-not-foundপ্লাগইনটি যুক্ত করুন (এই প্লাগইনটি ইতিমধ্যে ডিফল্টরূপে ইনস্টলড আছে)।

এটার মত:

# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git command-not-found)

0

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

এখানে আপনি কীভাবে শুরু করতে পারেন, আশা করি zsh অনুরূপ।

mpandit@mpandit-ubuntu:~$ command_not_found_handle() {echo 'Handler: Command not found!';}
mpandit@mpandit-ubuntu:~$ ddaadada
'Handler: Command not found!
mpandit@mpandit-ubuntu:~$

এটি ডেবিয়ান এবং উবুন্টুর বাশের মধ্যে কোনও পার্থক্য নয়। পার্থক্যটি হ'ল উবুন্টু command-not-foundডিফল্টরূপে ইনস্টল করে এবং ডেবিয়ান তা দেয় না। বৈশিষ্ট্যটি ইতিমধ্যে zsh এর জন্যও রয়েছে, এটি কেবলমাত্র ডিফল্টরূপে সক্রিয় হয় না।
গিলস 'খারাপ হয়ে যাওয়া বন্ধ করুন'

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

এটি command_not_found_handlerzsh বলা হয়। Zsh.sourceforge.net/Doc/ReLive/Command-Execution.html দেখুন ।
মাইকেল

0

এছাড়াও আপনি যদি zsh এর আচরণের 100% সময় না চান তবে আপনি নিজে নিজে কিছু করতে পারেন:

/usr/lib/command-not-found urxvt

বা আপনার AT PATH- তে পাওয়া না-পাওয়া আদেশ যুক্ত করুন


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