12

Ubuntu/Gnome で Alt+F2 を押すと表示される [アプリケーションの実行] ダイアログで、.bashrc からエイリアスを実行できるようにしたいと考えています。

誰もこれを行う方法を知っていますか?

4

10 に答える 10

4

http://www.freedesktop.org/wiki/Specificationsはおそらく開始するのに適した場所です。ほとんどの場合、これらに従うのは非常に難しいと思いますが、理解できる場合もあります。具体的には「デスクトップエントリー仕様」。

.bashrcまた、少なくともある種のラッパー スクリプトを作成しない限り、のエイリアスを使用することはできないと思います。実行可能ファイルである必要があると思います。もちろん、古き良き symlinks- to- same + what's- my- name トリックを使用することもできます...

(参考までに、次のようになります。

  1. 独自の名前をパラメーターとして使用するスクリプトを作成します。
  2. パラメーター値をリンク名として使用して、上記のスクリプトへのシンボリックリンクを作成します。)

調査中...

ちょっと調べてみると、Nautilus (少なくとも私が持っているバージョン) を使用すれば、これらの作成はかなり簡単であることがわかります。

  1. ランダムなファイルのコンテキスト メニューを表示し、[アプリケーションから開く] -> [他のアプリケーションで開く] を使用します。
  2. 「カスタム コマンドを使用する」を展開し、次のように入力します。
    1. xterm -e 'bash -c "unzip -l %f; sleep 5"'
  3. これにより、
    1. 実行中のコマンド (入力しないでくださいrm -rf)
    2. ~/.local/share/applications/呼び出されたファイルxterm-usercreated.desktop

ここでは、少なくとも次のファイルを取得します。

[Desktop Entry]
Encoding=UTF-8
Name=xterm
MimeType=application/zip;
Exec=xterm -e 'bash -c "unzip -l %f; sleep 5"' %f
Type=Application
Terminal=false
NoDisplay=true

4: システム xterm .desktop を見ると、次のことがわかります。

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=XTerm
GenericName=
Comment=XTerm: terminal emulator for X
Icon=/usr/share/pixmaps/xterm-color_32x32.xpm
Exec=xterm
Terminal=false
Categories=X-Debian-Applications-Terminal-Emulators;

5: .usercreated.desktop ファイルを次のように編集します。

[Desktop Entry]                                                                 
Type=Application                                                                
Encoding=UTF-8                                                                  
Name=xtermz                                                                     
Exec=xterm -e 'bash -c "unzip -l %f; sleep 5"' %f                               
Terminal=false                                                                  
Categories=X-Local-WTF                                                          

6: xdg-desktop-menu forceupdate --mode user を実行します

7: "xtermz" がリストに表示されるようになりました... 成功です!

8: うん!これにより、メインメニューの「その他」にも表示されます。変!


いくつかのメモ:

  • 私の Debian/testing ではxdg-desktop-menu、友人 (特にxdg-icon-resource) はxdg-utilsパッケージに住んでいます。
  • .desktopファイルを最初から作成できるはずです。
  • 何とか何とかして.desktopファイルをインストールできるはずですxdg-desktop-menu install
于 2008-10-13T20:00:30.790 に答える
2

/usr/bin へのシンボリック リンクを追加するだけです。ln -s <YOUR_ALIAS_PATCH> <ALIAS_NAME>

于 2012-04-03T20:01:05.073 に答える
1

いくつかのことができます。Brad Parks + Nostoc が言うように、プログラムを実行するスクリプトをローカル パスに入れることができます。

$ cat my/local/path/terminal
#! /bin/bash
gnome-terminal

多くのエイリアスに対してこれを行いたくない場合は、単一の「エイリアス エグゼキューター」をローカル パスに追加します。

$ cat my/local/path/myAlias
#! /bin/bash
CMD="$*"
eval "$CMD"

次に、ダイアログで「myAlias aliasedProgram arg1 arg2 etc」と入力します。

于 2013-07-29T15:02:47.057 に答える
1

エイリアスを機能させることができなかったので、代わりにこれを行いました:

  • やりたいことを実行するシェルスクリプトを作成し、ホームディレクトリに配置しました

  • 私のシェル スクリプトへのリンクを/usr/binに置きます。

    • sudo ln -s ~/bin/MyShellScript.sh /usr/bin/MyShortcutName

できます!

于 2008-10-24T18:48:40.587 に答える
1

/usr/bin/b という名前でこのスクリプトを作成し、グローバルな読み取り/実行権限を付与しました。

#!/bin/bash -i
eval "$@"

これで、コマンドを使用できます

b foo arg1 arg2

基本的に実行される

foo arg1 arg2

対話型シェルで入力されたかのように。エイリアス、複合コマンドなどを使用しても問題ありません。

于 2015-11-05T06:03:25.767 に答える
1

エイリアスを機能させることができなかったので、代わりにこれを行いました:

やりたいことを実行するためのシェル スクリプトを作成し、ホーム ディレクトリに配置しました。シェル スクリプトへのリンクを /usr/binsudo ln -s ~/bin/MyShellScript.sh /usr/bin/MyShortcutName に配置しました。

/usr/bin がパス変数にあるため、機能します。~/.scripts/ のように、ホームに隠しディレクトリを作成することをお勧めします。

次に、このディレクトリをパスに追加します。すべてのスクリプトをそのディレクトリに配置できるようになりました。

于 2010-05-02T15:27:16.353 に答える