フルパスを入力せずにプログラム/シェルスクリプトを実行する方法があるかどうかを知りたい:
/opt/idea/bin/idea.sh
フルパスを入力せずにプログラム/シェルスクリプトを実行する方法があるかどうかを知りたい:
/opt/idea/bin/idea.sh
回答:
シンボリックリンクを作成するだけです。で作成します/usr/local/bin
。必要なのは、コマンドを実行することです:
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
その後、file
実行可能ファイルを作成する必要があります。
chmod +x /full/path/to/your/file
これname_of_new_command
で、ターミナルでいつでも実行できるようになります。
これは、家庭でのLinuxの使用にのみ適したソリューションであることに注意してください。
/usr/local/bin
、プライベートホームフォルダ内のスクリプトを指すシンボリックリンクを配置しないでください。シンボリックリンクは他のユーザーには表示されますが、それが指すファイルには表示されません。シングルユーザーシステムでは、これは重要ではないかもしれませんが、それでも、すべてのユーザーが読み込めるスクリプト(またはスクリプトへのリンク)、およびプライベートの自作スクリプト(またはスクリプトへのリンク)を配置することは「良い習慣」ですフォルダー内の単一ユーザー。/home/jack/myscript.sh
jack
/usr/local/bin
~/bin
あなたは追加することができ/opt/idea/bin
、あなたにPATH
変数:
PATH=/opt/idea/bin:"$PATH"
この後、単にで実行できますidea.sh
。
この行を~/.bashrc
ファイルに追加することをお勧めします。
idea
指すその名前のリンクまたはエイリアスを作成する必要がありidea.sh
ます。
idea.sh
スクリプトは、このようなスクリプトではありません、実際にはそのインストールディレクトリの外に移動すると、完全にサポートされていません。Debianパッケージング規則はここでは適用されません。
次の関数を作成できます~/.bashrc
:
some-name () {
/path/to/your/file
# or:
#cd /path/to/your
#./path
}
または、次を作成できますalias
。
alias some-name='/path/to/your/file'
# or
#alias some-name='cd /path/to/your/; ./file'
どちらの場合でも、次を呼び出して実行できます。
$ some-name
ファイルが実行場所に依存しない場合は、次の場所に追加することを検討してください~/bin
。
mkdir -p ~/bin
cp /path/to/you/file ~/bin
# or mv /path/to/you/file ~/bin
# or ln -s /path/to/you/file ~/bin
~/bin
、存在する場合は$PATH
自動的に追加されます。次に、直接呼び出しますfile
:
$ file
(ただし、名前の選択が間違っている場合は、より一般的でない名前を付けることを検討してください。)
file
するソリューションの~/bin
場合、これは私が通常行うことです(より長いスクリプトの場合)。私はおそらくそれを一番上に置いたかもしれません:)エイリアスは、特定のパラメータを持つコマンドへのショートカットに適していますalias l='ls -CF'
。私はエイリアスのはるかに素晴らしい使用を見てきましたが。で関数を宣言する傾向はありません~/.bashrc
(すべてのスクリプトをで別々のファイルに整理することを好みます~/bin
)。これはすべて好みの問題ですが、私は推測します:)
cd
スクリプトは作業ディレクトリに依存する可能性があるため、最も簡単に役立つメソッドを優先しました。:)そうでなければ、はい、私は~/bin
自分でファイルを置く傾向があります。
次のコマンドを使用して、ランチャーを作成できます。
gnome-desktop-item-edit --create-new <path-where-to-save>
。このウィンドウを開きます。
好きな名前を付けて、コマンドボックスに次のように入力します
sh -c '/opt/idea/bin/idea.sh'
保存します。
これで、新しく作成したランチャーを使用してそのファイルを実行できます
または
次の内容の.desktopファイルを作成できます
[Desktop Entry]
Name=<whatever-you-want>
Exec=sh -c '/opt/idea/bin/idea.sh'
Terminal=false
Type=Application
Icon='<path to an icon file if you want>'
.desktop
任意の場所に拡張子を付けて保存します。
このコマンドで実行可能にします chmod a+x <your-desktop-file>
ダブルクリックして開きます。
bind
コマンドを使用して呼び出すことで、関数と追加ホットキーを定義できます。~/.bashrc
ファイルを開き、次の行を追加します。
# define function that opens your program in working directory
Openprog(){
/your-Program/path/here
}
# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'
を押すF12と、プログラムが起動します。
注: エスケープコードを決定する簡単な方法:
端末を開いてCtrl+ を押しますV。次に、お気に入りのキーボードショートカットを押します。正しいエスケープコードが表示されます。ただ、交換することを確認し^[
て\e
例えば置き換え、へのショートカットを追加する前^[[24~
に\e[24~
。
を/opt/idea/bin/idea.sh
使用してファイルを直接実行することもできますbash_aliases
~/.bashrc
実行してファイルを開き、
gedit ~/.bashrc
#
行の前のを削除して保存すると、行が次のようになります。
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
~/.bash_aliases
ファイルを開いて、
gedit ~/.bash_aliases
そのファイルに以下の行を追加して保存し、
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
最後に~/.bashrc
ファイルを入手し、
source ~/.bashrc
これで、次の方法で/opt/idea/bin/idea.sh
ファイルを直接実行できます。
idea
他の適切な答えに~/.local/bin
加えて、このディレクトリをシンボリックリンクし、PATHに追加することを検討してください(.bashrc
インスタンス内から)。このメソッドには特別な権限は必要ありません(/usr/local/bin
たとえば、へのシンボリックリンクとは異なります)。このようにして、$ HOMEをあふれさせることなく、標準のディレクトリ構造を作成できます。これに関するhttps://unix.stackexchange.com/の質問で詳細をお読みください。
私はここと他の場所のすべての答えに従ったので、コマンドが最終的に機能するためにログアウトする必要があるかもしれないという言及に失敗する人はほとんどいません。
特にXubuntuの要約ですが、他のDebian / Ubuntuの亜種についても、これらの簡単な手順を書きました。
(次の手順では、ディレクトリ〜/ binを使用します。これは、これらのOSがコマンドを探す場所であるためです。ここを参照してください。
# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)
# You'll work in your home folder, no need to use sudo for any of this
cd # Go to home directory
mkdir -p bin # Create folder ~/bin if it doesn't exist
# Be careful not to type /bin, that's the bin folder in system root: /
sudo apt install nano # Skip this if you have Nano installed
nano bin/yournewcommand
# In Nano, type:
printf "Your new command works! \n" # \n means line break
# Ctrl+X To leave Nano
# Ctrl+Y To save the unsaved file
# Enter to confirm
chmod +x bin/yournewcommand
yournewcommand # If you just created the bin folder, this command might not yet work.
# You must now log out and log back in to make the bin folder noticed (I think)
yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)
# If you add a second file/command, it should work without logging out (at least in my tests)