我运行一个名为 PocketMine 的游戏服务器。所以基本上我的主目录中有一个文件夹,其中有一个用于运行服务器的 bash 脚本:~/PocketMine/start.sh
每次我想运行服务器时,我要么cd
进入文件夹,./start.sh
要么PocketMine/./start.sh
我想知道如何添加一个调用的符号链接pocketmine
(/usr/local/sbin
这里有很多带有符号链接的程序),它将运行start.sh
并使用其目录的内容。
/usr/local/sbin/pocketmine
=~/PocketMine/./start.sh
你可以说我很懒,但我厌倦了 cd 进入文件夹并运行脚本,而不是只输入一个命令。
答案1
您实际上不需要任何符号链接,只需编辑~/.bashrc
并添加以下语句:
PATH=$PATH:$HOME/PocketMine
这可以避免不必要的混乱(如符号链接)污染您的文件系统。如果您是 csh/tcsh 用户而不是 bash 用户,则编辑~/.cshrc
并添加
设置路径 = ( $path ~/PocketMine )
就我个人而言,我会在组织方面更进一步。我会创建一个~/bin
目录,并将你的启动脚本放在那里,也许有一个更独特的名称,例如pmstart
(它是一个 shell 脚本并不重要,是吗?也许有一天你想用 Python 或其他东西重新实现它。.sh
就足够了在可执行文件上通常是一个坏主意,因为您公开并硬编码了最终用户不关心的实现细节(实现语言),并且在此过程中不必要地致力于该实现细节)。
您的 $PATH 可能已经包含 $HOME/bin,但如果没有,您可以类似地添加它。
sbin
最后,关于哪些内容进入目录以及哪些内容进入目录有历史惯例/最佳实践bin
。sbin
通常保留用于管理员工具,而bin
用于一般最终用户实用程序。
答案2
如果你只是想有一个更短的运行方式~/PocketMine/start.sh
,你可以为其创建一个别名。添加以下行~/.bashrc
并调用pm
以运行该脚本:
alias pm=~/PocketMine/start.sh
如果您需要首先更改到脚本的目录,请将其设为函数:
function pm (
cd ~/PocketMine && exec ./start.sh "$@"
)
如果您希望能够从另一个脚本而不仅仅是从交互式 shell 调用此快捷方式,请将快捷方式设置为您放入$PATH
.该脚本需要是一个可执行文件(例如chmod a+rx ~/bin/pm
)并包含
#!/bin/sh
cd ~/PocketMine && exec ./start.sh "$@"