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

  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011
  • RD

    RD

    19 NİSAN 2006
  • TheTwistedFrequency

    TheTwistedFr

    26 NİSAN 2010