我想知道是否有一种无需输入完整路径即可运行程序/ shell脚本的方法:
/opt/idea/bin/idea.sh
我想知道是否有一种无需输入完整路径即可运行程序/ shell脚本的方法:
/opt/idea/bin/idea.sh
Answers:
您可以只创建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是一个很好的解决方案。
/usr/local/bin
指向私有主文件夹中的脚本的符号链接,例如/home/jack/myscript.sh
,因为jack
通常只有用户才能执行它。符号链接对其他用户可见,但对它指向的文件不可见。在单用户系统上,这可能并不重要,但仍然是“好的做法”,将所有用户都可以读取的脚本(或指向脚本的链接)/usr/local/bin
以及私有的,自制的脚本(或指向脚本的链接)放入~/bin
文件夹中的一个用户。
您可以添加/opt/idea/bin
到PATH
变量中:
PATH=/opt/idea/bin:"$PATH"
之后,您可以简单地运行它idea.sh
。
您可能想在~/.bashrc
文件中添加此行。
idea
,您必须创建一个指向该idea.sh
脚本的链接或别名。
idea.sh
脚本不是这样的脚本,实际上完全不支持将其移出安装目录。Debian打包规则不适用于此处。
您可以在中创建一个函数~/.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
(尽管名称选择不当,请考虑使用不太通用的名称。)
file
到您的解决方案~/bin
,这是我通常所做的(对于较长的脚本)。我什至可能把它放在顶部:)别名对于带有某些参数(例如)的命令的快捷方式很有用alias l='ls -CF'
。尽管我已经看到了别名的强大用法。我不倾向于在中声明函数~/.bashrc
(我更喜欢将所有脚本组织在中的单独文件中~/bin
)。尽管所有这些都是关于品味的问题,但我想:)
cd
,因为脚本可能取决于工作目录。:)否则,是的,我倾向于将文件放在~/bin
自己的手中。
您可以使用以下命令创建启动器:
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
添加快捷方式,如更换前^[[24~
有\e[24~
。
我们也可以/opt/idea/bin/idea.sh
直接使用运行文件bash_aliases
~/.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/问题上了解更多有关此的信息:
我遵循了此处和其他位置的所有答案,因此很少有人提及您可能需要注销才能使该命令最终生效。
回顾一下,特别是对于Xubuntu,但是对于其他Debian / Ubuntu变体,我也写了这些简单的说明。
(在以下说明中,我们使用目录〜/ bin,因为这是这些操作系统自动查找命令的地方。请参见此处:
# Open Terminal with Ctrl + Alt + T (or your system's own shortcut)
# You'll work in your home folder, no need to use sudo for any of this
cd # Go to home directory
mkdir -p bin # Create folder ~/bin if it doesn't exist
# Be careful not to type /bin, that's the bin folder in system root: /
sudo apt install nano # Skip this if you have Nano installed
nano bin/yournewcommand
# In Nano, type:
printf "Your new command works! \n" # \n means line break
# Ctrl+X To leave Nano
# Ctrl+Y To save the unsaved file
# Enter to confirm
chmod +x bin/yournewcommand
yournewcommand # If you just created the bin folder, this command might not yet work.
# You must now log out and log back in to make the bin folder noticed (I think)
yournewcommand # Now it works! (You can use Tab to autocomplete the command you're typing)
# If you add a second file/command, it should work without logging out (at least in my tests)