Bilgisayarımda iki ayrı dosya var.
which execfile
/usr/local/bin/
/usr/bin/
bu yüzden iki farklı dizinde aynı isimde iki dosya var. Hangi komutu çalıştıracağımı tam olarak nasıl belirleyebilirim?
Teşekkürler.
Bilgisayarımda iki ayrı dosya var.
which execfile
/usr/local/bin/
/usr/bin/
bu yüzden iki farklı dizinde aynı isimde iki dosya var. Hangi komutu çalıştıracağımı tam olarak nasıl belirleyebilirim?
Teşekkürler.
Yanıtlar:
türünü çalıştırdığınızda komutun tam yolunu belirleyebilirsiniz:
/usr/bin/execfile
veya
/usr/local/bin/execfile
dosyayı tam olarak çalıştırmak için
PATH
kabuk ortamı değişkeni.
/usr/local/bin/execfile
veya
/usr/bin/execfile
Bir komutu çalıştırmaya çalışırken foo , foo PATH ortam değişkeni tarafından belirtilen dizinlerde, belirtilenlerle aynı sırada aranır. Bundan kaçınmak istiyorsanız, yürütülebilir dosyanın tam yolunu yazın.
Bunu bir terminale yazın:
echo $PATH
Gerçek PATH ortam değişkeni içeriğinizi görmek için.
Örneğin, her zaman / bin içinde ilk çalıştırılabilir dosyaları çalıştırmak istiyorsanız, / bin'in önce $ PATH içinde geldiğinden emin olun. PATH dosyasını, ana dizininizdeki .profile dosyasında belirleyebilirsiniz. Bu nedenle yukarıdaki örnekte, dosyayı düzenleyin ve bu satırı sonuna yerleştirin:
dışa aktarma PATH = / bin: $ PATH
Bu sadece kullanıcı için işe yarayacak. Eğer $ PATH sistem çapında bir şekilde belirtmek istiyorsanız (.profile içinde değiştirenler dışındaki tüm kullanıcılar için işe yarar), / etc / profile dosyasına yukarıdaki satırın aynısını ekleyin (root yetkilerine ihtiyacınız olacak .)
Ayrıca, profil dosyalarının yalnızca başlangıçta ayrıştırıldığını unutmayın. Bu, eğer kişisel .profile dosyanızı düzenlerseniz, kabuğunuzu yeniden ayrıştırmanız gerekecektir. Bunu çıkış yapıp tekrar giriş yapmayı ya da başka bir şekilde yazmayı yapabilirsiniz:
kaynak ~ / .profile
Sistem genelinde değişiklik için, yazın
kaynak / etc / profile
Bu, geçerli kabuk oturumunuzun profil dosyasını yeniden ayrıştırmasını sağlar. Tamamen önyükleme sisteminizin yeniden ayrıştırılmasını istiyorsanız, oturumunuzu yeniden başlatmanız gerektiğini düşünüyorum.
Ayrıca, bash dışında bir kabuk kullanırsanız bunun değişebileceğini unutmayın.
Bash man sayfasında bazı ilginç bilgiler bulabilirsiniz: http://linux.die.net/man/1/bash
"Komut Yürütme" bölümüne bakın.
Ayrıca her ikisinin de aynı dosyaya ait olup olmadığını kontrol edin - link olabilir gibi
ls -al /usr/bin
ls -al /usr/local/bin
ve birbirlerine bağlı olup olmadıklarını kontrol edin
eğer bağlanırlarsa, herhangi bir fark yaratamazsınız. aksi takdirde tam yolu belirtmeniz gerekir
ls -li /usr/bin/execfile /usr/local/bin/execfile
ve inode numaralarını karşılaştırın.
/usr/local/bin/execfile
/usr/bin/execfile