Alt+F2(运行应用程序)不适用于自定义命令

Alt+F2(运行应用程序)不适用于自定义命令

为了加快 Android 开发速度,我编辑了我的,~/.bashrc添加了一些路径PATH

export PATH=${PATH}:/opt/android-sdk/tools:/opt/android-sdk/platform-tools

这在命令行上运行得很好(我只需输入android,无论我在哪里,Android SDK 和 AVD 管理器都会正常启动。

android但是,如果我尝试在对话框(运行应用程序)中输入内容Alt+F2,则会出现以下错误:

无法打开位置‘file:///home/felix/android’

错误声明文件‘/home/felix/android’:没有这样的文件或目录

这是为什么?PATH“运行应用程序”对话框有什么用?

答案1

我认为bashrcGnome 无法读取,为什么它应该读取呢,因为它是的配置文件bash

我在 中定义路径~/.profile。Gnome 和 XFCE 环境肯定会读取此文件,其他环境也应该会读取。(但它只在登录时读取,因此您必须注销并重新登录才能使更改生效!)

答案2

~/.bashrc~/.profile默认包含在内。目录也默认~/bin添加到。创建目录并添加符号链接()到您要使用的应用程序,或者修改您的。PATH~/binln -s~/.bashrc

所提及文件的默认内容可以在/etc/skel--中找到,用于创建新帐户及其主目录。

答案3

我在使用 Linux Mint (Cinnamon 2.8.8) 时遇到了同样的问题,并且无法使用常规修复方法(使用.profile,将Xsessionshebang 更改为/bin/sh -l)使其正常工作。

问题是,如果它是一个登录 shell(即,给出了选项),它通常是读取的/bin/sh符号链接。/bin/dash~/.profile-l

你可以用 strace 检查一下:

$ strace -e open dash
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/dev/tty", O_RDWR)                = 3
$ ^D
+++ exited with 0 +++
$ strace -e open dash -l
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/dev/tty", O_RDWR)                = 3
open("/etc/profile", O_RDONLY)          = 3
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=12260, si_status=0, si_utime=0, si_stime=0} ---
open("/etc/profile.d/Z97-byobu.sh", O_RDONLY) = 3
open("/etc/profile.d/bash_completion.sh", O_RDONLY) = 3
open("/etc/profile.d/vte.sh", O_RDONLY) = 3
open("/home/elias/.profile", O_RDONLY)  = 3
$ ^D
+++ exited with 0 +++

我不知道该更改哪个脚本(在 /etc/X11 和 /etc/mdm 下尝试了很多),但没有成功。

所以我放弃了,改为/bin/sh指向/bin/bash而不是/bin/dash,现在它正在发挥作用。:)

相关内容