Yalnızca konsolda adını yazarak belirli bir programı çalıştırabilmek için bunu nasıl yapabilirim?


17

Kısa bir süre önce Git tablosundan indirerek Light Table'ı yükledim ve bir masaüstü başlatıcısı oluşturmak için bu web sitesindeki talimatları takip ettim .

Şimdi programı doğrudan terminale yazarak çalıştırmak istiyorum

LightTable

ve yok

./opt/LightTable/deploy/LightTable

6
@ user68186 İçeren dizini PATHortam değişkenine eklemek genellikle bunu başarmanın en iyi yolu değildir ve hatta bazen sistemi bozabilir veya güvenlik açıkları oluşturabilir. (Bir bundan komutları dönüştü edilecektir başka yürütülebilir dikkate yanı sıra gerekir nereye içinde PATHo eklenir.) Bir kabuk takma adı eklenmesi, burada cevapları kapsadığı gibi, bu tür karmaşık dikkate almak istemeyen herkes için daha iyidir; ayrıca söz konusu uygulamaya daha dar bir şekilde uyarlanmıştır. Bu yüzden, bu sorunun bir kopyası değil , biraz örtüşüyorlar.
Eliah Kagan

İlgili (ancak mutlaka bir yinelenen değil): Yoluma nasıl bir dizin ekleyebilirim?
Seth

Yanıtlar:


20

Bu kabaca bir takma adla gerçekleştirilebilir. .bashrcDosyanıza tek bir satır ekleyerek kalıcı bir bash diğer adı oluşturabilirsiniz .

Terminal çalışmasında nano ~/.bashrc

Aşağıdaki satırı en altına ekleyin:

alias LightTable='/full/path/opt/LightTable/deploy/LightTable'

.Bu herhangi bir çalışma dizininde çalışacak şekilde tam yol yerine sana tam yol ekledim dikkat edin . Terminali kapatıp yeniden açın veya source ~/.bashrcbashrc dosyasını yeniden yüklemek için çalıştırın .


7

Bu temel bir soru değil, bunu yapmanın en iyi yolu bir takma ad yapmaktır, örnek olarak netbeans kullanacağım

Terminali Aç Ctrl+Alt+T

nano ~/.bashrc

bunu dosyanın altına yazın:

alias netbeans='/home/john/netbeans-7.0.1/bin/netbeans'

Ctrl + x

Y

Enter

Netbeans sözcüğü, programı başlatmak için kullanacağınız komuttur, ihtiyacınız olana değiştirebilirsiniz. Tırnak içinde netbeans takma adı çağrıldığında çalıştırmak istediğiniz komut vardır.

Bu komutun etkin olması için Terminal'i tekrar açmanız gerekir



5

Yürütülebilir dosyayı /usr/binbasit bir yürütülebilir programsa ve başka bir dosyaya bağlı değilse kopyalamayı deneyebilirsiniz . diğer dosyalara bağlıysa, yapılacak en iyi şey programa bir kısayol komutu oluşturmaktır.

Diğer adı oluşturduğunuz yer kendinizdir (.bashrc, .profile, vb.). Ben şahsen tüm izin Ancak çevre değişkenleri benim de .bash_aliasesdosyaya (önce duruşuna bakmak oluşturmanız gerekir).

HOME klasörünüzde .bash_aliases dosyasını oluşturun ve istediğiniz gibi düzenleyin. Ardından kısayolu oluşturmak için şunları yapabilirsiniz:

alias LightTable='path_to_opt/LightTable/deploy/LightTable'

Dosyayı kaydedin ve hepsi bu.

ps: L'yi büyük harfle yazmayı veya kapak kilidinin yanlışlıkla etkin olması durumunda takma adı lighttable ve LIGHTTABLE olarak da koyabilirsiniz, böylece komutu tekrar yazmanız gerekmez.



Bunun /usr/local/binyerine Apt aracılığıyla yüklenmeyen şeyleri yerleştirmeniz önerilir . İçindeki şeyler /usr/binsilinebilir veya Apt paketleri ile değiştirilebilir, ancak içindeki şeyler /usr/local/binyalnız bırakılır.
Chai T. Rex

3

Diğer cevaplayıcıların bunu neden önermediğinden emin değilim, ancak OP'nin belirttiği gibi, $PATH değişkene bunu :

echo 'PATH=/opt/LightTable/deploy:$PATH' >> ~/.bash_profile
source ~/.bash_profile

Sonra ile çalıştırın:

LightTable

Not: I would sonra takma LightTableiçin lighttablekullanım kolaylığı için: echo 'alias LightTable=lighttable' >> ~/.bash_alias && source ~/.bash_alias.
JoeNyland

2

Sembolik bir bağlantı oluşturmak bence bir takma addan daha iyidir. Bir takma ad olabilir istemediğinizde komut satırınızda değişiklik yapabilir; bir symlink oluşturmak programı istediğiniz gibi çalıştırmanıza izin verir:

sudo ln -s full_path_to_opt/LightTable/deploy/LightTable  /usr/local/bin

Bu, / usr / local / bin'de (zaten PATH'nizde olmalı!) LightTable'ın gerçekte olduğu bir kısayol oluşturacaktır. Ayrıca, "LightTable" daki büyük harfleri beğenmiyorsanız sembolik bağlantıyı da yeniden adlandırabileceğinizi unutmayın:

sudo ln -s full_path_to_opt/LightTable/deploy/LightTable  /usr/local/bin/lighttable

Sadece referans olarak, program garip bir şekilde tasarlanmışsa, yani yapılandırma dosyalarını veya kitaplıkları veya herhangi bir şeyi bulamadığınızdan şikayet ederse, daha kullanışlı olabilecek başka bir çözüm bir sarıcı komut dosyası oluşturmaktır. Bunu yapmak için sadece "LightTable" (veya istediğiniz herhangi bir şey) adlı bir dosya oluşturun (şu an için istediğiniz yerde):

#!/bin/sh
# Simple script to run LightTable
if ! cd full_path_to_opt/LightTable/deploy/LightTable ; then
    echo "$0: error: LightTable directory not found." >&2
    exit 1
fi
exec ./LightTable

Bu dosyanın izinlerini değiştirin:

chmod 755 <wrapper_script>

ve çalışıp çalışmadığını görmek için uygulamayı deneyin ve eğer öyleyse / usr / local / bin dizinine taşıyın:

sudo mv -i <wrapper_script> /usr/local/bin

Söylediklerin doğru, ama ne istediğini cevaplamadı. Dosyanın adını / takma adını kullanarak yürütmek istedi
Johnn

1
@Johnn: Üzgünüm, farkın ne olduğunu anlamıyorum. Programı, yolunu belirtmek zorunda kalmadan yürütmenin bir yolunu soran soruyu anlıyorum. Kabuğun bir takma ad kullanıp kullanmadığı ya da PATH mekanizması, yalnızca programı yürütmek istiyorsanız fark etmez. Dosyayla başka bir şey yapmak istiyorsanız, dosyanın tam yolunu sağlamak için bir takma ad kullanmak gerçekten en iyi yoldur, ancak yalnızca dosyayı çalıştırmak istiyor. Yanlış mıyım?
Zorawar

Hayır, bu benim hatamdı, doğru.
Johnn

1
@Johnn: Ah, zaten eleştirel göz için teşekkürler!
Zorawar

0

Ubuntu'da başladığımda bunu yapmaya çalıştım. LightTable'ı terminale koyduğunuzda Dizinlerde LightTable adlı bir dosya arar $PATH. echo $PATHdizinleri almak için koyabilirsiniz .

LightTable programınızı yürütmek istiyorsanız ./opt/LightTable/deploy/LightTable, yapmanız gereken Işık Tablosu dosyanızı /usr/games or /usr/bin.ancak Süper Kullanıcı İzinleri gerektirir

terminali Ctrl + Alt + T ile açın

sonra koy

LightTable'ı kullanarak bir kısayol oluşturmayı tercih ediyorum

sudo ln -s path/to/LightTable  /usr/games/LightTable

Sonra SU şifresini girin. Ardından, LightTableterminalde kullanarak programınıza erişebilirsiniz.

Bir dizin olan herhangi bir şeyi koyabilir /usr/binveya /usr/local/binonun yerine koyabilirsiniz /usr/games, böyle olması $PATHgerekmez, ancak yerleştirmenizi öneririm/usr/local/bin

Çıktı dosyasını lightpathyerineLightPath

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.