কমান্ড zsh এ পাওয়া যায় নি


138

আমি zshডিফল্ট ব্যাশের পরিবর্তে z শেল ( ) ব্যবহার করছি এবং কিছু ভুল হয়েছে যাতে কাজ করা সমস্ত কমান্ড আর স্বীকৃত হয় না:

ls
zsh: command not found: ls

open -e .zshrc
zsh: correct 'open' to '_open' [nyae]? 

আমি কীভাবে পুনরায় সেট করব zshবা কীভাবে এটি ঠিক করব জানি না । এখানে $PATHভেরিয়েবলের সামগ্রী রয়েছে :

echo $PATH
/Users/Malloc/bin/Sencha/Cmd/3.1.2.342:/usr/local/bin/mate

আমি .bash_profileফাইল বা .zshrcফাইল খুলতে পারি না , মনে হয় একমাত্র সমাধান হ'ল পুনরায় সেট করা zsh। কোন ধারনা?

সম্পাদনা করুন:

আমি এমনকি এই থ্রেডেzsh নির্দেশিত হিসাবে পুনরায় সেট করার চেষ্টা করেছি , কিন্তু সর্বদা ত্রুটি পেয়েছি :command not found

exec zsh
zsh: command not found: zsh

তো কেমন যাচ্ছে? কেন সব কমান্ড হারিয়ে গেছে?

উত্তর:


218

এটা স্পষ্ট যে আপনি নিজের PATHভেরিয়েবলকে বিশৃঙ্খলা করতে পেরেছেন । (আপনার বর্তমানটিতে PATHসাধারণ ইউটিলিটিগুলি অবস্থিত এমন কোনও অবস্থান নেই))

চেষ্টা করুন:

PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
export PATH

বিকল্পভাবে, "রিসেট" zsh এর জন্য, শেলের সম্পূর্ণ পথ নির্দিষ্ট করুন:

exec /bin/zsh

অথবা

exec /usr/bin/zsh

17
যখন আমি ক্যাটালিনায় আপগ্রেড করেছি তখন আমি zsh শেলটিতে স্যুইচ করেছিলাম এবং এটি আমার পথগুলিকে এমন জায়গায় ফেলেছিল যেখানে আমি ব্যবহার করা তৃতীয় পক্ষের অ্যাপ্লিকেশনগুলি কার্যকর করতে পারি না। আমাকে কেবল .zshrc ফাইলটি সংশোধন করে "এক্সপোর্ট PATH = << আমার টিনের অবস্থান >>" যোগ করতে হয়েছিল এবং এক্সিকিউট / বিন / জেডএস এবং সমস্ত কিছু ভাল ছিল।
রবার্ট ওয়াল্টার্স

18

আপনার ~ / .zsh কনফিগারেশন ফাইলটিতে আপনার বাশ পাথ ফাইলের পথ অন্তর্ভুক্ত রয়েছে যাতে আপনার এলিয়াস রয়েছে। আমার ক্ষেত্রে এটি source / .zsh এর ভিতরে "উত্স। / .Bash_profile" লাইনটি অন্তর্ভুক্ত ছিল।


1
অনেক অনেক ধন্যবাদ, এটি আমার জন্য এটি সমাধান করেছে। ক্যাটালিনায় আপগ্রেড করার পরে আমার সমস্যা হয়েছিল এবং আমি জেডএস শেলের দিকে চলে যাই।
neiya

1
আমার কাছে কোন ~/.zshফাইল নেই। পরিবর্তে আমাকে এটি রাখা ছিল /etc/zshrc
চেজ রবার্টস

14
  1. ভিএস কোডের মতো একটি ভাল পাঠ্য সম্পাদক ব্যবহার করুন এবং আপনার .zshrcফাইলটি খুলুন (আপনার হোম ডিরেক্টরিতে এটি হওয়া উচিত। ।

  2. এটি যেখানে বলা সন্ধান করুন: export PATH=a-bunch-of-paths-separated-by-colons:

  3. এটিকে শেষ-উদ্ধৃতির আগে লাইনের শেষে সন্নিবেশ করান: :$HOME/.local/bin

এবং এটি আপনার জন্য কাজ করা উচিত।

আপনি প্রথমে আপনার টার্মিনালে এটি টাইপ করে কাজ করতে পারেন কিনা তা পরীক্ষা করতে পারেন: export PATH=$HOME/.local/bin:$PATH

আপনি যদি টার্মিনালে এটি টাইপ করার পরে ত্রুটি অদৃশ্য হয়ে যায় এবং আপনার টার্মিনালটি স্বাভাবিকভাবে কাজ করে তবে উপরের সমাধানটি কাজ করবে। যদি এটি না হয় তবে আপনাকে সেই ফোল্ডারটি সন্ধান করতে হবে যেখানে আপনার রেফারেন্স ত্রুটি রয়েছে (জিনিসটি পাওয়া যায় নি) এবং উপরের প্যাথ-টু-প্যাট-টু-ফোল্ডারের সাথে প্রতিস্থাপন করতে হবে।


আহা, এর মধ্যে আমার ভুল রয়েছে যা জেডএসকে আমার PATHসেটিংটি দৃশ্যত "উপেক্ষা" করতে পরিচালিত করেছিল । বাশ থেকে, আমার বাড়ির ফোল্ডারের সাথে ডিরেক্টরিগুলি উপসর্গ করতে অভ্যস্ত ছিল ~। সুতরাং এটি zsh এর পরিবর্তে আমার পরিবর্তে $HOMEআপনার উদাহরণের মতো চলকটি ব্যবহার করা উচিত ।
lalilulelost

7

আপনি / usr / স্থানীয় / বিন / এ একটি সিমিলিংক তৈরি করতে পারেন

sudo ln -s $HOME/.composer/vendor/bin/homestead /usr/local/bin/homestead

অনেক ধন্যবাদ. আমার সমস্যা ছিল এবং এই উত্তরটি আমাকে বুঝতে পেরেছিল যে আমি $HOMEকোনও আপেক্ষিক পথ ব্যবহার করছি না এবং সরবরাহ করছি না । $HOMEআমার সমস্যার সমাধান সহ পুরো পথ ব্যবহার করা ।
তাসোমানিয়াক

অনেকগুলি সাধারণ ব্যবহারের ক্ষেত্রে +1: আপনি যদি একটি এক্সিকিউটেবল যুক্ত করতে চান তবে একটি সিমিলিংক যুক্ত করা যাওয়ার উপায়। আপনি যদি নতুন ফোল্ডারে একাধিক এক্সিকিউটেবলকে পরিচালনা করতে চান তবে $PATHসেই ক্ষেত্রে ব্যবহারের ক্ষেত্রে যোগ করা আরও ভাল।
ডেভিড বোডো


4

আমি টার্মিনাল পছন্দ সাধারণ ট্যাবটি খুলতে এবং কমান্ডটি (সম্পূর্ণ পাথ) /bin/bashডিফল্টে পরিবর্তন করে এবং পরে ~/.zshrcফাইলটি সম্পাদনা করে সমস্যার সমাধান করেছি ।

এখানে চিত্র বর্ণনা লিখুন

export PATH="all your path inside the quotes"

... এর মধ্যে কোনও সাদা জায়গা ছাড়াই PATH="এবং ফাইলটি সংরক্ষণ করুন।

এখানে চিত্র বর্ণনা লিখুন

ফাইলটি সংরক্ষণ করার পরে, /bin/zshআপনার কমান্ডে পরিবর্তন করুন বা ডিফল্ট নির্বাচন করুন এখানে চিত্র বর্ণনা লিখুন

... এবং টার্মিনাল পুনরায় আরম্ভ করুন এবং আপনার zsh শেলটি আবার কাজ করা উচিত!


4

আপনি যদি আমাকে পছন্দ করেন তবে আপনার দুটি টার্মিনাল অ্যাপ্লিকেশন থাকবে, একটি হ'ল ডিফল্ট শেল হিসাবে ব্যাশ সহ ডিফল্ট টার্মিনাল এবং তার শেল হিসাবে zsh সহ অন্য আইটির্ম 2। বাশ থেকে আইটির্ম 2 এ দুটি কমান্ড এবং zsh পেতে আপনার নিম্নলিখিতগুলি করতে হবে:

আইটার্ম 2-এ, পছন্দগুলি (বা কমান্ড,) এ যান। তারপরে প্রোফাইল ট্যাবে যান এবং কমান্ডে যান । আপনি নীচের ছবিতে দেখতে পাচ্ছেন, আপনার কমান্ড বিকল্পটি নির্বাচন করতে হবে এবং zsh শেলের পথটি পেস্ট করতে হবে (পথটি সন্ধান করতে, আপনি এটি করতে পারেন which zsh)।

এখানে চিত্র বর্ণনা লিখুন

এই মুহুর্তে আপনার কাছে কেবলমাত্র আইটিআরএম 2 এর জন্য আপনার ডিফল্ট শেল হিসাবে zsh থাকবে এবং আপনার ডিফল্ট ম্যাক টার্মিনাল অ্যাপ্লিকেশনে গ্লোবাল ডিফল্ট শেল হিসাবে ব্যাশ হবে। এরপরে, আমরা zsh এ বাশ থেকে কমান্ডগুলি অনুপস্থিত। সুতরাং এটি করার জন্য, আপনাকে আপনার ব্যাশে যেতে হবে (যেখানে আপনার আদেশগুলি কাজ করছে) এবং এনএভিভি থেকে PATH ভেরিয়েবল পেতে হবে (এটি করার জন্য এই আদেশটি ব্যবহার করুন:env | grep PATH :)।

একবার এটি হয়ে গেলে, আপনার আইটার্ম 2 এ যান এবং "পাঠাতে প্রারক পাঠান" বিকল্পে আপনার পথটি পেস্ট করুন।

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin && clear

শুধু আইটার্ম 2 আবার খুলুন এবং আমরা সম্পন্ন করেছি!


"প্রারম্ভের সময় পাঠ্য প্রেরণ করুন" এ আমরা রফতানি যুক্ত করার কারণটি হ'ল আমার কারও কারও জন্য, পথটি সর্বদা যা ছিল তা আগেই পুনরায় সেট করেছিলাম যখনই আমি আইটার্ম 2 পুনরায় খুলি So সুতরাং এটি ঠিক করার একটি দুর্দান্ত উপায়।
কামিল বি

3

আমার সমাধান:

এতে ফিরে যান bash:

source .bashrc

পরবর্তী:

echo $PATH

এই কপি:

/home/frank/.asdf/shims:/home/frank/....

ফিরে zsh:

source .zsh

খোলা .zshrc :

এবং পেস্ট করুন:

 export PATH=/home/frank/.asdf/shims:/home/frank/....

টার্মিনাল পুনরায় আরম্ভ করুন


1

আমার ক্ষেত্রে, এটি ভুলভাবে মন্তব্য কোডটি প্রথম লাইনেই সংক্ষিপ্ত ছিল।

# If you come from bash you might have to change your $PATH.

হ্যাশ সরানো হয়েছে। এটি যুক্ত করার পরে ফিরে ভাল কাজ।

আমি স্রেফ এটি এখানে পোস্ট করেছি যাতে কেউ এটি সহায়ক হতে পারে। কারণ এটি কেবলমাত্র লাইনের শুরু এবং আমার মতো করে ভুল করে মুছে ফেলা হবে। এবং বেশ কয়েকটি উপায়ে চেষ্টা করার পরেও কোনও সমাধান নেই বলে মনে হচ্ছে।


1

স্থায়ী পরিবর্তনের পথে আমার জন্য সেরা সমাধানের কাজ

ওপেন সন্ধানকারী-> ফোল্ডার / ব্যবহারকারী / / ইউএসআর / স্থানীয় / বিনে যান

টেক্সটএডিট দিয়ে .zshrc খুলুন

.zshrc ফাইল লুকানো আছে তাই এটি + shift + কমান্ডের মাধ্যমে লুকিয়ে রাখুন। প্রেস

ফাইল সামগ্রী এবং টাইপ মুছুন

PATH = ~ / usr / bin: / বিন: / usr / sbin: / sbin: AT पथ রফতানি করুন

এবং সংরক্ষণ করুন

এখন

zsh: কমান্ড পাওয়া যায় নি



0

অন্যরা যেমন বলেছে, কেবলমাত্র পরিবর্তনগুলি করার পরে টার্মিনালটি পুনরায় চালু করা পুনরায় সেট করা উচিত এবং আপনার ~ / .zshrc ফাইলটিতে পরিবর্তন করা উচিত। উদাহরণস্বরূপ ভিজ্যুয়াল স্টুডিও খুলতে ফাংশন যুক্ত করার পরে:

function code {  
    if [[ $# = 0 ]]
    then
        open -a "Visual Studio Code"
    else
        local argPath="$1"
        [[ $1 = /* ]] && argPath="$1" || argPath="$PWD/${1#./}"
        open -a "Visual Studio Code" "$argPath"
    fi
}

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


0

ম্যাকোসে আইটিার্ম 2 বা নেটিভ টার্মিনালের মাধ্যমে না করে .zshrc ফাইলটি সম্পাদনা করার একটি উপায় হ'ল অন্য অ্যাপ্লিকেশনটিতে টার্মিনাল ব্যবহার করা। উদাহরণস্বরূপ, আমি টার্মিনালটি ভিএসকোডের অংশ হিসাবে ব্যবহার করেছি এবং ফাইলটি সন্ধান এবং সম্পাদনা করতে সক্ষম হয়েছি।


-1

আনইনস্টল করুন এবং পুনরায় ইনস্টল করুন zsh আমার পক্ষে কাজ করেছে:

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