如何使用ln -s创建命令行快捷方式?


11

我有一个sh文件,希望可以随时从终端打开。我想在终端中输入“ studio”,并打开android studio

我记得ln -s曾经这样做,但是我已经忘记并且已经浪费了很多时间在网上搜索。

另外,创建的符号链接保存在哪个目录中?

这是我的努力语法,找不到命令

ricardo@debian:~$ ln -s /opt/android-studio/bin/studio.sh studio
ricardo@debian:~$ studio
bash: studio: command not found

尝试一下./studio
塞巴斯蒂安

我想链接到./studio,只需在Studio或香蕉中键入即可在任何地方打开它
rickyjoepr 2015年

如果要在任何地方studio单独使用执行脚本,则必须将链接放在shell所搜索的位置。Shell搜索中的所有内容echo $PATH。您可以更改$PATH链接,也可以将链接放到的目录中$PATH。你喜欢哪个?
塞巴斯蒂安

4
@Sebastian请使用答案回答问题,而不是评论。并且,请勿在回答后建议删除问题。我们在这里建立一个答案库,这些答案可以留在身边,对将来的访问者很有用。
吉尔斯(Gilles)'所以别再邪恶了'

1
您可能会喜欢该alias命令,该命令通常用来代替创建符号链接来缩短命令名称。
Winny

Answers:


10

您运行的命令在当前目录中创建了一个符号链接。根据提示判断,当前目录是您的主目录。在主目录中创建指向可执行程序的符号链接不是特别有用。

当您键入程序名称时,外壳程序会在PATH环境变量中列出的目录中查找它。要查看此变量的值,请运行echo $PATH。目录之间用冒号(:)分隔。一个典型的路径是,/home/ricardo/bin:/usr/local/bin:/usr/bin:/bin但是有很多变化。

您需要在中列出的目录之一中创建此符号链接$PATH。如果要使所有用户都可以使用该命令,请在中创建链接/usr/local/bin

sudo ln -s /opt/android-studio/bin/studio.sh /usr/local/bin/studio

如果要使该命令仅对您可用(如果没有管理员权限,这是唯一的可能性),请在~/binbin主目录的子目录)中创建链接。

ln -s /opt/android-studio/bin/studio.sh ~/bin/studio

如果您的发行版没有放在/home/ricardo/bin您的PATH/home/ricardo您的主目录所在的位置)中,请首先使用进行创建mkdir ~/bin,然后PATH通过添加以下行将其添加到您的发行版中~/.profile(如果文件不存在,则创建该文件):

PATH=~/bin:$PATH

.profile登录时将读取该文件。您可以通过运行在当前终端中读取该文件. ~/.profile(这仅适用于从该终端启动的程序)。


1
+1,但正如Winny的评论一样,我认为其中的别名~/.bashrc会更简单。
Sparhawk

@Sparhawk别名只能用于从交互式外壳程序而不是脚本,桌面快捷方式或任何其他程序中调用程序。
吉尔斯(Gilles)'所以

1
是的,但问题指出I would like to type "studio" into the terminal,这是从标题和引用的命令中隐含的。
Sparhawk

1

实现您的愿望的最直观的方法是使用别名。类型:

alias studio=/opt/android-studio/bin/studio.sh

或在.profile或更好的名称中输入相关的别名:您的shell用作$ ENV的别名。

请注意,您可能仍需要添加

/opt/android-studio/bin

才能使用该软件。最好的办法是首先尝试在没有扩展PATH的情况下是否可以运行。

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.