zshBirkaç kabukları biri (diğerleri ediliyor tcsh( whicha olarak ortaya cshiçin komutcshbir kabuk kabuğu olduğu için mantıklı bir şey kullanıcılar , bu da sınırlaması vardır, tcshbunu bir iyileştirme olarak yerleşik hale getirmiştir)) which, ancak bir şekilde siz veya işletim sisteminiz (bazı rcdosyalarla) whichkabuğun stajyerlerine erişimi olmadığı için sistem komutuna bir çağrı güvenilir bir şekilde yapamayan bir çağrı ile değiştirerek bozdu, bu yüzden kabuğun bir komut adını nasıl yorumladığını bilemez .
Zsh'de, hepsi which,type , whenceve wheretüm komutları ne hakkında bilgi edinmek için kullanılır komutları, yerleşik ancak farklı çıkışları ile vardır. Hepsi tarihsel bir nedenden dolayı oradalar, tüm davranışlarını whencekomuta farklı bayraklarla alabilirsiniz .
Her birinin çalışarak ne yaptığını öğrenebilirsiniz:
info -f zsh --index-search=which
Veya yazın info zsh , ardından dizini ile getirin ive yerleşik adını girin (tamamlama kullanılabilir).
Ve kullanmaktan kaçının /usr/bin/which. Bugünlerde bunun which gerekli olduğu bir kabuk yok . Timothy'in dediği gibi, kabuğunuzun sağladığı yerleşimi kullanın. Çoğu POSIX mermisi şu typekomuta sahip olacaktır ve şunları kullanabilirsiniz:command -v sadece (her ikisi olsa komutun yolunu almak typeve command -vhepsi değilse bile çoğu mevcuttur) LSB değil artık POSIX'deki (ancak Unix isteğe bağlıdır ve Hiç karşılaşmadığınız Bourne benzeri mermiler).
(Btw, bu gibi görünüyor /usr/binGözlerinde farklı iki kez göründüğünü $PATH, bir ekleyebilir typeset -U pathadresinden Müşteri ~/.zshrc)