Bir bash komut isteminde geçersiz bir komut girdiğinizde mesajı alırsınız
-bash: {command}: command not found
En -başında ne anlama geliyor ?
ssh computernameÇoğaltmak için sayma komutunuzu deneyin .
Bir bash komut isteminde geçersiz bir komut girdiğinizde mesajı alırsınız
-bash: {command}: command not found
En -başında ne anlama geliyor ?
ssh computernameÇoğaltmak için sayma komutunuzu deneyin .
Yanıtlar:
Bu bir giriş kabuğu olduğu anlamına gelir.
Kimden man bash:
Bir oturum açma kabuğu, ilk argüman sıfırı bir - olan veya bir --login seçeneğiyle başlayan bir kabuktur.
( bashTerminolojide "sıfırıncı" argümanı, sizin durumunuzda olan komut adıdır bash.) bashBunu yürütme .bash_profilevb. Gibi oturum açma etkinliklerini yapmak için bir sinyal olarak kullanır .
Çizginin otomatik olarak eklenebilmesinin bir yolu, kabuğun başlatılmasıdır exec. Gönderen Bash kılavuzda :
exec [-cl] [-a name] [command [arguments]][...]
-lSeçenek verilirse, kabuk komuta iletilen sıfır argümanının başına bir çizgi koyar .
Komutu çalıştırmak için bu iki girişimi karşılaştırın nonexistent. İlk olmadan -l:
$ exec bash
$ nonexistent
bash: nonexistent: command not found
Ve ikinci olarak:
$ exec -l bash
$ nonexistent
-bash: nonexistent: command not found
exec -lBir çizgi hazırlayan gerçeği, bash'ın çalışmasına neden olabilecek olası bir yoldur -bash, ancak kendi başına bunun bir giriş kabuğu olduğunu söylemez ve OP'nin hiç kullanmadığı exec -liçin çok iyi bir şans vardır. . Belgelerin -bashbir giriş kabuğu yaptığını söyleyen kısım "INVOCATION Bir giriş kabuğu, ilk argüman sıfırı sıfır olan bir karakterdir, ya da bir tanesi --login seçeneğiyle başlar."
bashterminoloji değil , Unix kurallar + C indeksleme: Her program ilk girişi program adı olan bir parametre listesi ve ardından argümanlar tarafından iletilir. C dizileri sıfırdan başlayarak dizine alındığından, sıfır argümanı (yani, sıfır argümanı) program adıdır ve asıl argümanlar dizin 1 ile başlar.
Diğer cevap, mümkün olduğu kadar iyidir, ancak özelliğin bashtan daha genel olduğunu söylemeye değer.
Eski zamanlardan beri, loginprogram argv[0]kullanıcının kabuğunu çalıştırdığında bir gösterge hazırlamış ve kabuk bunu "giriş kabuğu" olarak davranması gerektiğinin bir işareti olarak kabul etmiştir. Buradaki V7 kılavuz sayfalarında belgelenmiştir: giriş (1) , sh (1) .
Oturum açma benzeri bir hizmet sağlayan tüm programlar (bir kullanıcının kimliğini doğrula ve bir kabuk çalıştır) "hazırlama satırı" kuralına uymalıdır. Örneğin, sshd, bu yorum altında ssh / session.c dosyasında gördüğünüzü yapar :
/*
* If we have no command, execute the shell. In this case, the shell
* name to be passed in argv[0] is preceded by '-' to indicate that
* this is a login shell.
*/
Tüm mermiler öndeki çizgiyi tanır. Eşdeğer -lseçenek klasik Bourne kabuğunda veya orijinal csh'de mevcut değil, ancak daha yeni mermilerde (bash, dash, ksh, yash, tcsh, zsh, rc, es, balık ve csh'nin herhangi bir yarı-sürümü) var.
-lseçeneği olsa da , loginhala kullanmıyor. Tüm mermilerin ön eki argv[0]"resmi" bir mekanizma olarak kabul etmesi bekleniyor .
jhgjbjbkjln: command not found- hayır-bash:orada. KullandığınızbashUnix, Linux, OSX içinde ...? Soruyorum çünkü belki de bu, varsayılan olarak hata mesajından önce belirli bir uygulama koymaktır ve bir anlamı yoktur ... belki.