12

我希望能够在 Ubuntu/Gnome 中按 Alt+F2 时出现的“运行应用程序”对话框中从我的 .bashrc 运行我的别名。

有谁知道如何做到这一点?

4

10 回答 10

4

http://www.freedesktop.org/wiki/Specifications可能是一个不错的起点。我发现这些大部分时间都很难理解,但有时你可以弄清楚。具体来说,就是“桌面入口规范”。

另外,我认为您将无法使用来自 的任何别名.bashrc,至少在不编写某种包装脚本的情况下不能。我认为它需要是一个可执行文件。当然,您可以只使用良好的旧符号链接 - 相同 + 什么是我的名字技巧......

(作为参考,如下所示:

  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从头开始创建文件。
  • 您应该能够使用blah blah安装.desktop文件xdg-desktop-menu install
于 2008-10-13T20:00:30.790 回答
4

Linux Mint 和 Ubuntu 有一个非常简单的解决方案(我没有在其他发行版上检查过):

mkdir ~/bin  #actually, need to run this line just once
cd ~/bin
ln -s /bin/any/your/application.sh YOUR_ALIAS_NAME

例如,我喜欢calcAlt+F2菜单运行,所以我的脚本是:

mkdir ~/bin
cd ~/bin
ln -s /usr/bin/gnome-calculator calc

如果要传递任何参数,可以在以下位置创建一个简短的 shell 脚本~/bin

#create the file:
echo '#!/bin/sh
firefox --private-window' > ~/bin/pfx
#make my script executable:
chmod 755 ~/bin/pfx

该解决方案基于以下事实,即.profile开箱即用的 home dir 中有一个名为的文件。我希望,你已经知道,什么是.profilefile。作为其工作的一部分,此文件附加~/bin$PATH(如果bin存在)。

我认为,bin在家不安全,但本文建议遵循描述的方式:https ://help.ubuntu.com/community/HomeFolder#Installing_Software_Into_The_Home_Directory

于 2015-11-26T04:20:44.543 回答
2

您可以添加一个符号链接到 /usr/bin:ln -s <YOUR_ALIAS_PATCH> <ALIAS_NAME>

于 2012-04-03T20:01:05.073 回答
1

我无法让别名工作,所以我这样做了:

  • 创建了一个 shell 脚本来做我想做的事情并将它放在我的主目录中

  • 在/usr/bin中放置一个指向我的 shell 脚本的链接:

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

有用!

于 2008-10-24T18:48:40.587 回答
1

我无法让别名工作,所以我这样做了:

创建了一个 shell 脚本来做我想做的事情并将它放在我的主目录中 将指向我的 shell 脚本的链接放在 /usr/bin 中:例如sudo ln -s ~/bin/MyShellScript.sh /usr/bin/MyShortcutName 它可以工作!

它之所以有效,是因为 /usr/bin 在您的路径变量中。更好的选择是在您的家中创建一个隐藏目录,例如 ~/.scripts/

然后将此目录添加到您的路径中。您现在可以将所有脚本放在该目录中。

于 2010-05-02T15:27:16.353 回答
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/b 下创建了这个脚本,并赋予它全局读取/执行权限:

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

现在我可以使用命令

b foo arg1 arg2

基本上运行

foo arg1 arg2

就好像它是在交互式 shell 中键入的一样。可以使用别名、复合命令等。

于 2015-11-05T06:03:25.767 回答
0

我没有使用 alt-f2 在终端外运行命令,而是使用 gnome-do;它更加方便和灵活(一旦设置好)。您仍然无法运行 shell“别名”,但您可以配置 gnome-do 以使用“文件和文件夹”插件,然后您想要执行的任何“*.desktop”应用程序都可以用于运行、打开等。您也可以以相同的方式执行 shell 脚本。

于 2014-09-02T08:25:19.747 回答
0

我做了类似于@YAG 的事情。

我在 /usr/local/bin 中创建了一个名为“my”的 bash 脚本:

echo -e '#!/usr/bin/bash\n~/bin/$@' > ~/temp
sudo cp ~/temp /usr/local/bin/my
rm ~/temp

现在,如果我想从 Alt+F2 调用 ~/bin 内的脚本,我只需输入:

my script.sh

优点是所有用户都将访问他们自己的 ~/bin 目录,并且您不必为每个 ~/bin/* 文件创建新的符号链接。

缺点是每次都需要输入'my',不能依靠alt+f2的自动完成功能来完成'script.sh'

于 2014-09-02T17:43:31.700 回答
0

只需输入: bash -ic 'MY_ALIAS'

于 2018-10-18T13:17:00.630 回答