如何使用Bash文件创建命令
我创建了一个.sh
(或bash)文件,我想在GNOME-Terminal中为该文件创建一个命令。 我知道你运行.sh
文件:
./file.sh
编译之后,我也知道所有命令都存储在/bin/bash
。 但我似乎无法弄清楚当我在终端的任何目录中时,我可以创建一个可以调用的命令,例如:
abc
会运行abc.h
等等有什么建议吗?
虽然Radu的答案绝对正确,但我觉得初学者不知道某些文件的位置有点不完整,所以这里是第二种方法的一步一步(使用~/bin
)。 如果您想将文件存储在除~/bin
之外的其他位置,请按照步骤1操作,否则请忽略它,并记住您将使用~/bin
作为脚本文件夹。
-
打开终端并运行以下命令:
nano .profile
你应该看到,在文件的末尾:
# set PATH so it includes user's private bin if it exists if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi
如果您没有看到它,请尝试使用
nano .bash_profile
。 请记住,您应该在~/
,即/home/YOUR_USERNAME
这告诉bash用户的脚本在哪里。 默认值为
/home/YOUR_USERNAME/bin
,“缩写”为$HOME/bin
或~/bin
。 然后,您可以将其更改为您要存储脚本的任何文件夹。我的是~/.bin
– 与原始文件相同,但隐藏。 -
如果您已经发布了
chmod +x script.sh
只需将脚本移动到要存储它们的文件夹中 – 如果它不存在则创建它。 在该文件夹中,如果将脚本存储为file.sh
,则必须每次都运行file.sh
,因此将它们存储为file
– 无扩展名。
shell维护一个保存可执行文件(程序)的目录列表,并只搜索该列表中的目录。 如果在搜索列表中的每个目录后找不到该程序,它将发出着名的command not found error
消息。 这个目录列表称为您的路径 。 您可以使用以下命令查看目录列表:
echo $PATH
您可以使用以下命令将目录添加到路径中,其中*directory*
是要添加的目录的名称:
export PATH=$PATH:*directory*
更好的方法是编辑.bash_profile
文件以包含上述命令。 这样,每次登录时都会自动完成。
大多数现代Linux发行版都鼓励每个用户都有自己使用的程序的特定目录。 此目录名为bin
,是主目录的子目录。 如果您还没有,请使用以下命令创建它:
mkdir bin
将您的脚本移动到新的bin
目录中,然后就可以了。 现在你只需输入:
my_script
并且您的脚本将运行。