问题描述
我想知道是否有办法在不键入完整路径的情况下运行程序/shell脚本:
/opt/idea/bin/idea.sh
最佳解决方法
您只需创建symlink即可。在/usr/local/bin
中创建它。您只需要运行命令:
sudo ln -s /full/path/to/your/file /usr/local/bin/name_of_new_command
之后你应该使你的file
可执行:
chmod +x /full/path/to/your/file
现在,您应该可以在终端中随时运行name_of_new_command
。
请注意,这仅适用于Linux的家庭使用。
次佳解决方法
您可以将/opt/idea/bin
添加到您的PATH
变量中:
PATH=/opt/idea/bin:"$PATH"
在此之后,您只需使用idea.sh
即可运行它。
您可能希望在~/.bashrc
文件中添加此行。
第三种解决方法
您可以在~/.bashrc
中创建一个函数:
some-name () {
/path/to/your/file
# or:
#cd /path/to/your
#./path
}
或者您可以创建一个alias
:
alias some-name='/path/to/your/file'
# or
#alias some-name='cd /path/to/your/; ./file'
在这两种情况下,您都可以通过调用来运行它:
$ some-name
如果文件不依赖于它的运行位置,请考虑将其添加到~/bin
:
mkdir -p ~/bin
cp /path/to/you/file ~/bin
# or mv /path/to/you/file ~/bin
# or ln -s /path/to/you/file ~/bin
~/bin
(如果存在)会自动添加到您的$PATH
中。然后直接调用file
:
$ file
(虽然名称选择不当,但请考虑称之为不那么通用。)
第四种方法
您可以使用以下命令创建启动器:
gnome-desktop-item-edit --create-new <path-where-to-save>
。我会打开这个窗口。
将其命名为您喜欢的名称,并在命令框中键入以下内容
sh -c '/opt/idea/bin/idea.sh'
并保存。
现在,您可以使用新创建的启动器运行该文件
要么
您可以创建包含以下内容的.desktop文件
[Desktop Entry]
Name=<whatever-you-want>
Exec=sh -c '/opt/idea/bin/idea.sh'
Terminal=false
Type=Application
Icon='<path to an icon file if you want>'
现在将.desktop
扩展名保存在任何地方。
使用此命令chmod a+x <your-desktop-file>
使其可执行
现在双击打开它。
第五种方法
我们可以使用bind
命令来调用它来定义函数和添加热键。打开~/.bashrc
文件并将以下行添加到其中:
# define function that opens your program in working directory
Openprog(){
/your-Program/path/here
}
# bind hotkey to it (<F12>)
bind -x '"\e[24~":"Openprog"'
现在,当您按F12
时,您的程序将启动。
注意:确定转义码的快速方法:
打开终端并按Ctrl
+ V
。现在按您喜欢的键盘快捷键。应出现正确的转义码。只需确保将^[
替换为\e
,然后再添加快捷方式,例如用\e[24~
代替^[[24~
。
第六种方法
我们也可以使用bash_aliases
直接运行/opt/idea/bin/idea.sh
文件
通过运行打开~/.bashrc
文件,
gedit ~/.bashrc
删除行前的#
并保存,以便行看起来像,
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
现在打开~/.bash_aliases
文件,
gedit ~/.bash_aliases
在该文件中添加以下行并保存,
alias idea='cd /opt/idea/bin && sudo ./idea.sh'
最后获取~/.bashrc
文件,
source ~/.bashrc
现在您可以直接运行/opt/idea/bin/idea.sh
文件,
idea
第七种方法
除了其他好的答案之外,请考虑将符号链接到~/.local/bin
并将此目录添加到PATH(例如,在.bashrc
中)。此方法不需要特殊权限(例如,与符号链接到/usr/local/bin
不同)。这样,您可能有一个标准的目录结构,而不会充斥您的$ HOME。在这些https://unix.stackexchange.com/问题上阅读更多相关信息:
-
https://unix.stackexchange.com/questions/11544/what-is-the-difference-between-opt-and-usr-local
-
https://unix.stackexchange.com/questions/36871/where-should-a-local-executable-be-placed