从任意目录启动Android Studio

从任意目录启动Android Studio

在Android Studio的安装说明中他们说:

3. [OPTIONAL] Add "{installation home}/bin" to your PATH environment
 variable so that you may start Android Studio from any directory.

我按照这个 Stack Overflow 问题。但是我现在该如何启动它呢?问题是我需要执行一个 shell 脚本studio.sh,但我担心这些对于PATH变量来说是不可见的。

我应该能够通过调用在终端的任何目录中调用它studio.sh

编辑:更多信息

studio.sh运行 Android Studio

我按照 android-studio zip 文件(来自官方网站)附带的官方安装说明进行操作。

我补充道

export PATH=$PATH:$HOME/Installs/android-studio/bin

在......的最后~/.profile

添加更多输出:

$ ls -l $HOME/Installs/android-studio/bin/studio.sh
-rwxr-xr-x 1 roman roman 6985 bře 21 18:26 /home/roman/Installs/android-studio/bin/studio.sh

$ echo $PATH
/home/roman/bin:/home/roman/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/roman/Installs/android-studio/bin/studio.sh

$ type studio.sh
bash: type: studio.sh: not found

答案1

这是 PATH 中的最后一项:

/home/roman/Installs/android-studio/bin/studio.sh

问题是 PATH 中的项目需要目录但你添加了一个文件。我不确定这是怎么发生的,因为它与export PATH=...您发布的行不匹配。

答案2

首先找出目录studio.sh,以便将其添加到路径中。考虑以下内容:

rick@alien:~$ locate --regex "wpasupplicant$"
/etc/network/if-down.d/wpasupplicant
/etc/network/if-post-down.d/wpasupplicant
/etc/network/if-pre-up.d/wpasupplicant
/etc/network/if-up.d/wpasupplicant
/lib/systemd/system-sleep/wpasupplicant
/mnt/e/lib/systemd/system-sleep/wpasupplicant
/usr/share/doc/wpasupplicant
/usr/share/lintian/overrides/wpasupplicant
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~$ which wpasupplicant
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~$ type wpasupplicant
bash: type: wpasupplicant: not found
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~$ ll /lib/systemd/system-sleep/wpasupplicant
-rwxr-xr-x 1 root root 182 Oct 26  2015 /lib/systemd/system-sleep/wpasupplicant*

该文件wpasupplicant定义为可执行文件按照x中的定义-rwxr-xr-x

还有一种可能性是,studio.sh它未定义为可执行文件,但仍在路径中。在这种情况下,whichtype命令将找不到它,但locate命令仍会找到它。

如果文件刚刚创建

考虑一下如果文件刚刚创建:

rick@alien:~$ cp .rm-kernels-ndx asdf.asdf
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~$ locate asdf.asdf
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~$ time sudo updatedb

real    0m3.460s
user    0m0.503s
sys     0m1.167s
───────────────────────────────────────────────────────────────────────────────────────────
rick@alien:~$ locate asdf.asdf
/home/rick/asdf.asdf

您需要运行sudo updatedb定位命令来查找新创建的文件。该程序updatedb会自动调用,cron但新创建的文件可能不会出现。在对此主题发表评论后,我决定将自己的程序改为每五分钟sudo crontab -e运行一次。/usr/bin/updatedb

找到目录后

要将目录添加到路径,请编辑~/.profile并添加以下内容:

if [ -d "$HOME/Installs/android-studio/bin" ] ; then
  PATH="$PATH:$HOME/Installs/android-studio/bin"
fi

相关内容