web-dev-qa-db-ja.com

完全なパスを入力せずにスクリプトを実行する方法は?

フルパスを入力せずにプログラム/シェルスクリプトを実行する方法があるかどうかを知りたい:

/opt/idea/bin/idea.sh
57
Poorman_Patrick

symlink を作成するだけです。 /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の使用にのみ適したソリューションであることに注意してください。

60
c0rp

/opt/idea/binPATH変数に追加できます。

PATH=/opt/idea/bin:"$PATH"

この後、単にidea.shで実行できます。

おそらく、この行を~/.bashrcファイルに追加する必要があります。

28
janos

~/.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

(名前の選択は間違っていますが、一般的ではない名前を付けることを検討してください。)

15
muru

次のコマンドを使用して、ランチャーを作成できます。

gnome-desktop-item-edit --create-new <path-where-to-save>。このウィンドウを開きます。

enter image description here

好きな名前を付けて、コマンドボックスに次のように入力します

sh -c '/opt/idea/bin/idea.sh'して保存します。

これで、新しく作成したランチャーを使用してそのファイルを実行できます

OR

次の内容の.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>

ダブルクリックして開きます。

10
g_p

/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
7
Avinash Raj

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~に置き換えます。

7
αғsнιη

他の適切な答えに加えて、~/.local/binへのシンボリックリンクを作成し、このディレクトリをPATHに追加することを検討してください(たとえば、.bashrc内から)。このメソッドには特別な権限は必要ありません(たとえば、/usr/local/binへのシンボリックリンクとは異なります)。このようにして、$ HOMEをあふれさせることなく、標準のディレクトリ構造を作成できます。これらの詳細については https://unix.stackexchange.com/ の質問をご覧ください。

4
abstrus

/usr/binディレクトリにそのソフトリンクを作成します。

ln -s /usr/bin/idea.sh  /opt/idea/bin/idea.sh

次を使用して実行します。

idea.sh
1
J.Franks

または、単に使用することができます

nano ~/.bashrc

そして追加

PATH=/full/path/to/file:"$PATH"

最後に、保存して終了します。その後、ファイル名を入力するだけです。

0
Help the Newbie

私はここと他の場所のすべての答えに従いましたが、コマンドが最終的に機能するためにLOG OUTが必要な場合があることに言及するのに失敗する人はほとんどいません。

要約すると、特に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)
0
Manu Järvinen