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

  • andyabc45

    andyabc45

    1 Mayıs 2011
  • Dion Coulls

    Dion Coulls

    16 AĞUSTOS 2006
  • iZAPPA

    iZAPPA

    16 Temmuz 2010