【问题标题】:How to have shell script available to run in terminal and searchable in /bin?如何让 shell 脚本可以在终端中运行并在 /bin 中搜索?
【发布时间】:2017-04-28 16:28:46
【问题描述】:

我从 Jetbrains 下载了 CLion,它是一个带有 shell 脚本的 .tar.gz 来运行它。我决定把它放在我的 /opt 文件夹中,但现在我不知道如何从任何地方运行它,并且它在 /bin 中可用(对于像 dmenu 这样搜索 /bin 的程序可执行文件)。

我尝试将脚本的路径(例如 /opt/clion/clion-2017.1.1/bin)添加到我的 .*rc 文件中的 $PATH 中,但这并没有使它在 /bin 中可搜索?我怎样才能对这样的事情进行单点维护?

【问题讨论】:

  • 你可以在/bin放一个符号链接

标签: linux shell bin


【解决方案1】:

如果你想让它可搜索,那么你必须将它复制或链接到其他程序(如dmenu)搜索的某个目录中。但是 /bin 确实不是一个好的选择:最好是 /usr/local/bin。

可能其他程序 (dmenu) 可以配置为使其在几个地方进行搜索,不仅是 /bin,还可能是 /usr/bin。

关于复制/移动/链接/符号链接,我会说硬链接是最糟糕的选择,因为在那之后就不再清楚原始文件是什么文件了。但有时还好。如果你想将发行版的东西和你自己的东西分开,符号链接也不错。但是,如果您使用 /usr/local/xxx,那是自动的 - 发行版自动管理不会触及 /usr/local 下的任何内容。在这种情况下,即使移动脚本也是一种选择。

【讨论】:

    【解决方案2】:

    如果您确实需要可执行文件出现在/bin 中,您可以创建一个链接:

    ln -s /opt/path/to/script.sh /bin
    

    【讨论】:

    • 这将创建一个符号链接。要创建链接,请省略 -s
    • 我最终使用ln -s /opt/path/to/script.sh /usr/bin/clion 将其放入/usr/bin,现在可以使用dmenu 启动它。谢谢。
    【解决方案3】:

    您需要在 PATH 中添加目录而不是文件。所以它会是:

    export PATH=$PATH:/opt/path/to/
    

    然后,您可以在任何地方运行 script.sh 并执行它。

    【讨论】:

    • 谢谢,是的,我确实做了目录而不是文件。我在我的帖子上犯了一个错误。已编辑。
    猜你喜欢
    • 2019-01-04
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    相关资源
    最近更新 更多