Neden ihtiyacın var mı/. (çizgi, nokta) adı bash betiği çalıştırmak için önce?
Bash komut dosyaları çalıştırırken, başlangıçta ./
yazmam gerekiyor:
$ ./manage.py syncdb
Eğer ben istemezsem eğer doğru değilse, bir hata mesajı alıyorum:
$ manage.py syncdb
-bash: manage.py: command not found
Bunun nedeni nedir? .
geçerli klasör için bir ad olduğunu düşündüm, ve bu nedenle bu iki telefon birbirine paralel olmalı.
Ben de uygulamaları çalıştırırken ./
ihtiyacım yok neden anlamak gibi değil:
user:/home/user$ cd /usr/bin
user:/usr/bin$ git
./
olmadan çalışır)
CEVAP
Unıx çünkü, genellikle, geçerli dizin $PATH
değildir.
Bir komut yazdığınızda kabuğu PATH
değişken tarafından belirtilen dizinlerin listesini arar. Geçerli dizin listesi değil.
Bu listede, geçerli dizini olmaması nedeni güvenlik.
Hadi kök ve başka bir kullanıcının dizine git ve sl
ls
yerine yazın. Geçerli dizin PATH
, yoksa kabuk dizin sl
Diğer program yok) sl
programı çalıştırmak için çalışacağız. sl
Bu program zararlı olabilir.
EDİT
sl
bu kısmı sadece bir örnekti. PATH
dizinleri sırayla aranır ve bir eşleşme yapıldığında o program yürütülür. Yani PATH
nasıl göründüğüne bağlı olarak, normal bir komut yazarak ya da mevcut dizindeki programı çalıştırmak için yeterli olmayabilir.
Neden bitişik in Java daha hızlı geçiş...
Kendisi tam yolunu almak için bir bash...
Nasıl Python betiği tek başına HERHANG...
Nasıl eğer o ölürse bir yeniden başlat...
Nasıl başlangıçta bir kabuk betiği çal...