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


12

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

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

从命令行可以正常工作(我可以键入android,无论我在哪里,Android SDK和AVD Manager都可以正常启动。

但是,如果我尝试键入android了在Alt+F2对话框中(运行程序),它提供了以下错误:

无法打开位置“ file:/// home / felix / android”

错误指出文件'/ home / felix / android':无此文件或目录

这是为什么?什么PATH不运行应用程序对话框使用?

Answers:


11

我认为bashrcGnome不会读取,为什么要读取它,因为它是的配置文件bash

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


我将PATH=语句移到~/.profile,它在Alt + F2和终端中都可以使用。谢谢。
Felix

就我而言,我无法弄清楚如何使X会话从登录shell开始,因此它将读取~/.profile,因此我不得不将/ bin / sh更改为指向/ bin / dash
elias 2016年

1
嘿,这是Gnome 3.30.1的说法,并且在其中设置PATH ~/.profile不再起作用。有什么更新吗?
iago-lito

2

~/.bashrc~/.profile默认情况下包含。默认情况下,该~/bin目录也被添加到其中PATH。创建~/bin目录,ln -s并向要使用的应用程序添加符号链接(),或修改~/.bashrc

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


1
是的,如果.profile正在执行bash!有条件地检查$BASH_VERSION被定义的对象,而Gnome则不会。顺便说一句,删除条件将导致某些桌面环境(例如LXDE)出现问题。
卡斯滕·泰尔

0

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

问题是,如果它是登录外壳程序(即给定的选项),/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它现在正在工作。:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.