Ubuntu/Gnome で Alt+F2 を押すと表示される [アプリケーションの実行] ダイアログで、.bashrc からエイリアスを実行できるようにしたいと考えています。
誰もこれを行う方法を知っていますか?
http://www.freedesktop.org/wiki/Specificationsはおそらく開始するのに適した場所です。ほとんどの場合、これらに従うのは非常に難しいと思いますが、理解できる場合もあります。具体的には「デスクトップエントリー仕様」。
.bashrc
また、少なくともある種のラッパー スクリプトを作成しない限り、のエイリアスを使用することはできないと思います。実行可能ファイルである必要があると思います。もちろん、古き良き symlinks- to- same + what's- my- name トリックを使用することもできます...
(参考までに、次のようになります。
ちょっと調べてみると、Nautilus (少なくとも私が持っているバージョン) を使用すれば、これらの作成はかなり簡単であることがわかります。
xterm -e 'bash -c "unzip -l %f; sleep 5"'
rm -rf
)~/.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: うん!これにより、メインメニューの「その他」にも表示されます。変!
xdg-desktop-menu
、友人 (特にxdg-icon-resource
) はxdg-utils
パッケージに住んでいます。.desktop
ファイルを最初から作成できるはずです。.desktop
ファイルをインストールできるはずですxdg-desktop-menu install
/usr/bin へのシンボリック リンクを追加するだけです。ln -s <YOUR_ALIAS_PATCH> <ALIAS_NAME>
いくつかのことができます。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」と入力します。
エイリアスを機能させることができなかったので、代わりにこれを行いました:
やりたいことを実行するシェルスクリプトを作成し、ホームディレクトリに配置しました
私のシェル スクリプトへのリンクを/usr/binに置きます。
できます!
/usr/bin/b という名前でこのスクリプトを作成し、グローバルな読み取り/実行権限を付与しました。
#!/bin/bash -i
eval "$@"
これで、コマンドを使用できます
b foo arg1 arg2
基本的に実行される
foo arg1 arg2
対話型シェルで入力されたかのように。エイリアス、複合コマンドなどを使用しても問題ありません。
エイリアスを機能させることができなかったので、代わりにこれを行いました:
やりたいことを実行するためのシェル スクリプトを作成し、ホーム ディレクトリに配置しました。シェル スクリプトへのリンクを /usr/binsudo ln -s ~/bin/MyShellScript.sh /usr/bin/MyShortcutName
に配置しました。
/usr/bin がパス変数にあるため、機能します。~/.scripts/ のように、ホームに隠しディレクトリを作成することをお勧めします。
次に、このディレクトリをパスに追加します。すべてのスクリプトをそのディレクトリに配置できるようになりました。