Komut satırı kısayolu oluşturmak için ln -s nasıl kullanılır?


11

Terminalden istediğim zaman açabileceğim bir sh dosyası var. Terminale "stüdyo" yazmak ve android stüdyosunu açmak istiyorum

Bunu ln -syapmak için kullandığımı hatırlıyorum , ancak web'de arama yapmayı unuttum ve çok fazla zaman harcadım.

Ayrıca, oluşturulan sembolik bağlantı hangi dizinde tutulur?

İşte benim çaba sözdizimi, komut bulunamadı

ricardo@debian:~$ ln -s /opt/android-studio/bin/studio.sh studio
ricardo@debian:~$ studio
bash: studio: command not found

deneyin ./studio.
Sebastian

Ben sadece stüdyo veya muz yazarak her yerden açabileceğim ./studio için bir bağlantı yapmak istiyorum
rickyjoepr

Komut dosyasını studiotek başına kullanarak herhangi bir yerden yürütmek istiyorsanız , bağlantıyı kabuk tarafından aranan bir yere koymanız gerekir. Kabuk içindeki her şeyi arar echo $PATH. $PATHBağlantıyı dizinlerinden birine değiştirebilir veya koyabilirsiniz $PATH. Ne tercih edersin?
Sebastian

4
@Sebastian Lütfen soruları cevaplamak için değil, yorumları kullanın. Ve lütfen soruları cevaplandıktan sonra silmeyi önermeyin. Çevrede kalan ve gelecekteki ziyaretçiler için yararlı olan bir cevap deposu oluşturmak için buradayız.
Gilles 'SO- kötü olmayı bırak'

1
aliasKomut adlarını kısaltmak için sembolik bağlantılar oluşturmak yerine yaygın olarak kullanılan komutu beğenebilirsiniz .
Winny

Yanıtlar:


10

Çalıştırdığınız komut, geçerli dizinde sembolik bir bağlantı oluşturdu. Komut istemine göre, geçerli dizin ana dizininizdir. Ana dizininizdeki yürütülebilir programlara sembolik bağlantılar oluşturmak özellikle yararlı değildir.

Bir programın adını yazdığınızda, kabuk programı PATHortam değişkeninde listelenen dizinlerde arar . Bu değişkenin değerini görmek için çalıştırın echo $PATH. Dizinler iki nokta üst üste ( :) ile ayrılır . Tipik bir yol /home/ricardo/bin:/usr/local/bin:/usr/bin:/binama orada çok fazla varyasyon var.

Bu sembolik bağlantıyı, listelenen dizinlerden birinde oluşturmanız gerekir $PATH. Komutu tüm kullanıcılar için kullanılabilir hale getirmek istiyorsanız, bağlantıyı şurada oluşturun /usr/local/bin:

sudo ln -s /opt/android-studio/bin/studio.sh /usr/local/bin/studio

Komutu yalnızca sizin için kullanılabilir yapmak istiyorsanız (yönetici ayrıcalıklarınız yoksa tek olasılık budur), bağlantıyı ~/bin( binana dizininizin alt dizini) oluşturun.

ln -s /opt/android-studio/bin/studio.sh ~/bin/studio

Dağıtımınız ( ana dizininiz nerede) koymazsa /home/ricardo/bin, önce ile oluşturun ve şu satırı ekleyerek ekleyin (yoksa dosya oluşturun):PATH/home/ricardomkdir ~/binPATH~/.profile

PATH=~/bin:$PATH

.profileGiriş yaptığınızda dosya okunur. Sen çalıştırarak geçerli terminalde okuyabilirsiniz . ~/.profile(bu yalnızca o terminalden başlayan programlar için geçerlidir).


1
+1 ama Winny'nin yorumu olarak, bir takma adın ~/.bashrcdaha basit olacağını düşünüyorum .
Sparhawk

@Sparhawk Bir takma ad, programı bir komut dosyasından, masaüstü kısayolundan veya başka bir programdan değil, yalnızca etkileşimli bir kabuktan çağırmak için çalışır.
Gilles 'SO- kötü olmayı kes

1
Doğru, ama soru belirtiyor I would like to type "studio" into the terminalve bu başlıktan ve alıntılanan komutlardan ima ediliyor.
Sparhawk

1

İsteğinizi uygulamanın en sezgisel yolu bir takma ad kullanmaktır. Tür:

alias studio=/opt/android-studio/bin/studio.sh

veya .profile veya daha iyisine ilgili bir takma ad girin: kabuğunuzun $ ENV olarak kullandıkları.

Yine de eklemeniz gerekebileceğini unutmayın

/opt/android-studio/bin

yazılımı kullanabilmek için PATH'nize. En iyisi ilk önce genişletilmiş bir PATH olmadan çalışıp çalışmadığını denemektir.

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.