コンソールに名前を入力するだけで、特定のプログラムを実行できるようにするにはどうすればよいですか?


17

最近、Light Tableをインストールしてgitリポジトリからダウンロードし、このWebサイトの指示に従ってデスクトップランチャーを作成しました。

ターミナルに直接入力してプログラムを実行したい

LightTable

ではなく

./opt/LightTable/deploy/LightTable

6
@ user68186 PATH環境変数に含まれるディレクトリを追加することは、これを達成するための最良の方法ではないことが多く、システムを破壊したり、セキュリティの脆弱性を作成したりすることさえあります。(これからコマンドに変換される他の実行可能ファイルと、それが追加される場所を考慮する必要がありますPATH。)シェルエイリアスの追加は、ここでの回答で説明しているように、そのような複雑さを考慮したくない人には適しています。また、問題の特定のアプリに合わせてさらに細かく調整されています。したがって、これはその質問の複製ではありませんが、少し重複しています。
エリアケイガン14

関連(ただし、必ずしも重複しているわけではありません):パスにディレクトリを追加するにはどうすればよいですか?
セス14

回答:


20

これは、エイリアスを使用して大まかに実行できます。.bashrcファイルに1行追加することで、永続的なbashエイリアスを作成できます。

ターミナルで実行 nano ~/.bashrc

下部に次の行を追加します。

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

代わりにフルパスを追加した.ので、これはどの作業ディレクトリでも機能します。ターミナルを閉じsource ~/.bashrcて再度開くか、実行してbashrcファイルをリロードします。


7

これは基本的な質問ではありません。これを行う最良の方法はエイリアスを作成することです。例としてnetbeansを使用します

ターミナルを開く Ctrl+Alt+T

nano ~/.bashrc

これをファイルの最後に書きます:

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

Ctrl + x

Y

Enter

netbeansワードは、プログラムの起動に使用するコマンドです。必要に応じて変更できます。引用符の中には、netbeansエイリアスが呼び出されたときに実行するコマンドがあります。

このコマンドをアクティブにするには、ターミナルを再度開く必要があります


私はそれが非常に有用であった、私のため、低評判に投票が、答えるために感謝することはできません
dapias

5

/usr/bin単純な実行可能プログラムで、他のファイルに依存しない場合は、実行可能ファイルをコピーしてみてください。他のファイルに依存する場合、最善の方法はプログラムへのショートカットコマンドを作成することです。

エイリアスを作成する場所は自分で(.bashrc、.profileなど)です。ただし、個人的にはすべての環境変数.bash_aliasesファイルに入れます(最初のスタンスで作成する必要があります)。

HOMEフォルダーに.bash_aliasesファイルを作成し、好きなように編集します。次に、ショートカットを作成するために、次のことができます。

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

ファイルを保存して、それだけです。

ps:Lを大文字にするのを忘れた場合や、誤ってcapslockがアクティブになった場合に、エイリアスをlighttableおよびLIGHTTABLEとして置くこともできます。そのため、コマンドを再度入力する必要はありません。


私はそれが非常に有用であった、私のため、低評判に投票が、答えるために感謝することはできません
dapias

/usr/local/bin代わりに、Aptを介してインストールされていないものを入れることをお勧めします。入っているものは/usr/bin消去したり、Aptパッケージに置き換えることができますが、入っているもの/usr/local/binはそのままにしておきます。
チャイT.レックス

3

他の回答者がこれを提案しなかった理由はわかりませんが、OPが実際に指摘したように、$PATH変数の先頭に追加することは私がこれを達成する方法だったでしょう:

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

次に、次を実行します。

LightTable

注:次に、使いやすくLightTableするlighttableためにエイリアスを作成しますecho 'alias LightTable=lighttable' >> ~/.bash_alias && source ~/.bash_alias
JoeNyland 14

2

エイリアスよりもシンボリックリンクを作成した方が良いと思います。エイリアス、不要な場合にコマンドラインで置換を行う場合があります。シンボリックリンクを作成すると、必要に応じてプログラムを実行できます。

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

これにより、LightTableが実際に存在する場所へのショートカットが/ usr / local / bin(PATHに既にあるはずです!)に作成されます。また、「LightTable」の大文字が気に入らない場合は、シンボリックリンクの名前も変更できることに注意してください。

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

参照用に、プログラムがぎこちないように設計されている場合、つまり、構成ファイルやライブラリなどが見つからないという不満がある場合は、ラッパースクリプトを作成する方が便利かもしれません。これを行うには、「LightTable」(または好きなもの)を含むファイルを作成します(とりあえず好きな場所)。

#!/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

このファイルの許可を変更します。

chmod 755 <wrapper_script>

そして、それが機能するかどうかを確認するために実行してみて、もしそうなら/ usr / local / binに移動してください:

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

あなたの言ったことは真実ですが、彼が望んだことには答えませんでした。彼はファイルの名前/ファイルのエイリアスを使用してそれを実行したかった
ジョン14

1
@ジョン:すみません、違いが何なのかわかりません。私は、そのパスを指定せずにプログラムを実行する方法を尋ねる質問として理解しています。シェルがエイリアスを使用するかPATHメカニズムを使用するかは、単にプログラムの実行を要求している場合には違いはありません。あなたがファイルで何か他のことをしたいなら、ファイルのフルパスを提供するためにエイリアスを使用することは確かに最良の方法ですが、彼はファイルを実行したいだけです。私は間違っていますか?
ゾラワー14

いいえ、それは私のせいでした、あなたの正しい。
ジョン14

1
@ジョン:ああ、まあ、とにかく批判的な目をありがとう!
ゾラワー14

0

Ubuntuで始めたときに、これを試みました。LightTableを端末に配置すると、ディレクトリでLightTableという名前のファイルが検索されます$PATHecho $PATHディレクトリを取得するために置くことができます。

でLightTableプログラムを実行する場合./opt/LightTable/deploy/LightTableは、ライトテーブルファイル/usr/games or /usr/bin.を配置する必要がありますが、スーパーユーザー権限が必要です

Ctrl + Alt + Tでターミナルを開きます

次に置く

を使用してLightTableのショートカットを作成することを好みます

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

次に、SUパスワードを入力します。次に、LightTableターミナルで使用してプログラムにアクセスできます

/usr/binまたはの/usr/local/bin代わりに/usr/games$PATHディレクトリであるものを置くことができます。そのようにする必要はありませんが、次の場所に置くことをお勧めします。/usr/local/bin

また、lightpath代わりに出力ファイルを変更することをお勧めしますLightPath

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.