Yoluma bir ikili dosya ekle


15

Yürütülebilir bir dosyam var. Ben sadece diğer komutlar gibi adıyla terminal çalıştırılabilir yürütmek istiyorum.

Benim yürütülebilir in koyabilirsiniz /usr/local/binya da ben onun ekleyebilir PATHiçin ~/.bashrc. Her ikisi de işe yarayacak.

Ne daha iyi? Fark var mı?

Yanıtlar:


12

Diyelim ki bir çalıştırıcınız var myscript. Bir terminalden çalıştırmanız gerekir,

/path/to/myscript

Kullanıcı Seviyesi Değişikliği

Bu PATHyürütülebilir dosyayı eklerseniz, yürütülebilir ~/.bashrcdosyayı yalnızca herhangi bir yerden adıyla çalıştırabilirsiniz ( Avinash Raj zaten belirtilmiştir)

myscript

Ancak değişiklik kullanıcı düzeyinde etkilenecektir . Bu, başka kullanıcılarınız varsa yürütülebilir dosyaya yalnızca adla erişemedikleri anlamına gelir. Uygun izinleri varsa, yürütülebilir dosyayı şu şekilde çalıştırmaları gerekir:

/path/to/myscript

Ayrıca, komut dosyasını kökte olmadığı gibi sudo olarak PATHçalıştıramazsınız, Kullanmanız sudogerektiği gibi çalıştırmak için,

sudo /path/to/myscript

sistem seviyesi değişikliği

Eğer senaryonuzu koyarsanız /usr/local/binsisteme ve tüm kullanıcılar için erişilebilir. Bu durumda, herhangi bir kullanıcı yürütülebilir dosyanızı şu şekilde çalıştırabilir (uygun izinlere tabi olarak)

myscript

Bu durumda, yürütülebilir dosyayı şu şekilde sudode çalıştırabilirsiniz:

sudo myscript

Şimdi ihtiyacınıza göre bir yol seçin.


2

Dosyanızın konumunu dosyanızdaki $PATHdeğişkeninize eklemek ~/.bashrcyalnızca herhangi bir konumdan yürütmenize izin verirken, onu yerleştirmek /usr/bin/sisteminizdeki tüm kullanıcıların bu dosyayı herhangi bir konumdan yürütmesine izin verir.

Neden? Çünkü ~/.bashrcdosyanızı yalnızca kullanıcı olarak görebilirsiniz. Böylece yapılan tüm değişken değişiklikler sizin için sınırlıdır. İçin bu dosyayı ekleyerek Oysa /usr/bindosya tüm kullanıcılar için ve o zamandan beri orada kalmasını sağlayacak /usr/binmevcuttur $PATHo, tüm kullanıcılar herhangi bir yerden çalıştırabiliyor sağlayacak birisi uzaklaşmaların sürece değişken.


1

Yürütülebilir dosyayı /usr/binveya içine koyarsanız, /usr/local/binyalnızca adı ( your-programyerine /usr/local/bin/your-program) belirterek bu programı çalıştırabilirsiniz .

Bunun yerine, programı içeren dizini ~/.bashrcdosyaya eklerseniz, o dizinde bulunan PATHtüm yürütülebilir dosyalar yalnızca adını yazarak başlatılabilir.


1
Bu bilgi yanlıştır, "bu dizinde" olmasanız bile yürütülebilir dosyayı yürütebilirsiniz.
Lekensteyn

Bu nasıl yanlış ?, lütfen biraz daha açıklayın.
Avinash Raj

1
Tamam, cevabınızı okumakta zorlandım (ve böylece bir hata yaptım), bu yüzden karışıklığı gidermek için düzenledim ve aşağı oyu kaldırdım. Umarım yardımcı olur.
Lekensteyn

Yani soru şu: Daha iyi olan nedir? Fark var mı? Pratikte OP'den başka bir şey söylemedin.
Radu Rădeanu

İşletim sisteminin sorusunu yanıtladım ama kısa bir formatta değil.
Avinash Raj

0

@Souravc yanıtını tamamlayıcı olarak ...

"Kullanıcı Düzeyi Değişikliği" için ~/.bashrcdosyayı düzenlemek yerine dizini oluşturabilirsiniz.$HOME/bin/ ve komut dosyalarınızı buraya yerleştirebilirsiniz.

Dizin otomatik olarak PATH(en azından Ubuntu 12.04'ten bu yana) klasörüne eklenecektir.

myscript

Sadece 2 sentim. :)

Not: Bunu @souravc yanıtına bir yorum olarak göndermeye çalıştım, ancak yeterince itibarım yoktu. :-(

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.