SORU
13 HAZİRAN 2011, PAZARTESİ


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
13 HAZİRAN 2011, PAZARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • FUzzyBUnnyBOoties

    FUzzyBUnnyBO

    3 EKİM 2007
  • Matt Harding

    Matt Harding

    23 Mayıs 2006