Yaygın komut dosyaları için / usr / local / bin'e sudo olmayan bir alternatif


16

/usr/local/binTerminal ile herhangi bir yerden bunları yürütebilmem için yaygın komut dosyaları koymaya alışkınım .

Örneğin, adında bir kabuk komut dosyası oluşturuyorum 1, çalıştırılabilir hale chmod +x 1getirip koyuyorum ve ilk satırda /usr/local/binyazdığım komut dosyasının içine #!/bin/shve sonra komutlarım. Oradan, yazarak çalıştırması çok kolay ve hızlı

1Enter

herhangi bir klasörün içinden.

Benim sorunum şu anda yapamayacağım bir bilgisayarda çalışıyorum sudove ben de almak için sabırsızlanıyorum, bu yüzden benim komut dosyası yerleştiremezsiniz /usr/local/bin.

Seçeneklerim neler? Aynı "her yerden koş" yeteneğine sahip, olmadan erişebileceğim sudoveya eşdeğer bir şey elde etmenin başka bir yolu var mı?

İçin kabul edilen cevabı bu yazı diyor

Kullanıcı kapsamındaki komut dosyaları için ana dizininizde bin / kullanın.

Hangi denedim, ama yok bin benim ev dizininde klasör ve bir oluşturduğunda, ben hala başka bir yerden komut dosyasını çalıştıramadı.

Ubuntu 12.04 LTS üzerinde çalışıyorum.


2
1 veya benzeri bir şeyi komut dosyası adı olarak kullanmayın. Kabuğunuzda bir şey hesaplamaya çalışın: örneğin ifade 1 + 1 (ve eğer yapmıyorsanız, bazı komut dosyaları bunu bir noktada kesin olarak yapar)
frlan

1
@frlan: expr 1 + 1adlı bir komut dosyasının varlığından nasıl etkilenir 1?
psmears

Doğru ... etkilemez expr, ne de bash aritmetiği $(( 1 + 1 )).
Campa

Yanıtlar:


19

Seçeneklerim neler? Sudo olmadan erişebildiğim aynı "her yerden koş" yeteneğine sahip başka bir yol var mı veya eşdeğer bir şey elde etmek için başka bir yol var mı?

Nasıl yapılır?

Normalde binkural olarak adlandırılan komut dosyalarınızı tutmak için evinizde bir miktar dizin oluşturun .

mkdir ~/bin

Şimdi komut dosyalarınızı bölmeye taşıyın

mv somescript ~/bin

Şimdi onu her yerden nasıl ayarlayabilirim ?!

binPATH eklemeniz gerekiyor

.bashrc

gedit .bashrc

ve şu satırı ekleyin:

export PATH=$PATH:/home/username/bin

usernameKullanıcı Adınızla değiştirmeyi unutmayın

Kaydet ve çık, sonra bashrc'yi kaynakla

source .bashrc

ve şimdi iyisiniz, betiğinizi eskisi gibi çalıştırabilirsiniz! ancak bunun yalnızca kullanıcınızla ilgili olduğunu fark etmelisiniz.

Not: 1, 2 dışındaki komut dosyalarınızı yeniden adlandırmak daha iyidir, çünkü bu adlarla ilgili bazı sorunlarla karşılaşabilirsiniz


GÜNCELLEME:

Aynı şeyi source ~/.profileyerine bin dizinini de kendi evinizde oluşturabilirsiniz ~/.bashrc. PATH'nize ~ / bin eklemek zaten içinde bulunduğundan.profile

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Kullandığım export PATH=$PATH:$HOME/binfarklı kullanıcı adları ile diğer hesaplar için aynı bashrc kullanabilirsiniz böylece.
Anthony G - Monica için adalet

1
Sadece söz etmek ~/bin olduğunu $PATHUbuntu üzerinde varsayılan olarak. source ~/.profileDizini oluşturduktan sonra çalıştırın / oturumu kapatın.
Jacob Vlijm

@JacobVlijm Hangi sürümde? !!! 12.04, 14.04, 15.04 kullanıyorum ve bunların hiçbiri PATH
Maythux'da

Gelen tüm bunların, ben hep çalıştırdıktan sonra, dediğim gibi, benim (kabul) cevapları çoğunda, kullanmak, hem de bu konuda herhangi bir açıklama, yanı beş sistemlerde onu evde çalışır asla ama source ~/.profile. Buraya bakınız (örneğin): askubuntu.com/a/247422/72216
Jacob Vlijm

1
Kaynak~/.profile~/.bashrc dedi , asla kaynak demedi . :) Ayrıca, genel bir kural olarak, çevresel değişkenler gitmeli içinde .profiledeğil .bashrconlar sadece bir kez kurmak gerekir çünkü. (bunların hiçbiri cevabınızın iyi olmadığını söylemek, seni
düşünmek

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.