如何使用 bash 脚本在 linux 中创建命令?
How do I make a command in linux using a bash script?
我正在尝试为终端发出命令。我准备了一个 bash 脚本 (la.sh),我只想输入 la 到 运行 它。我怎样才能获得代码以便我只需键入 la?
我试过将它放在 /bin 文件夹中,但是没有成功。
我该怎么做才能解决这个问题?
我正在使用最新版本的 Manjaro Gnome。
非常感谢!!!
顺便说一句,脚本实际上只是 ls
。
这只是一个练习脚本。
文件 la.sh 必须放在您的 path 中。然后你可以为它创建一个别名。
alias la="la.sh"
假设您的脚本存储在 /some/path/la.sh
下。在我看来,您有几种解决方案可以实现您的目标:
选项 1:
将脚本添加到您的用户路径中,以便您可以直接调用它。
echo "export PATH=$PATH:/some/path/" >> ~/.bashrc
然后您就可以在您的终端中使用:
$ la.sh
使用此选项,您可以根据需要使用任何参数调用 la.sh
。如果要求只是调用 la
您还可以重命名脚本或创建软链接:
mv /some/path/la.sh /some/path/la
或
ln -s /some/path/la.sh /some/path/la
选项 2:
为脚本创建别名。
echo "alias la='/some/path/la.sh'" >> ~.bashrc
然后您就可以在您的终端中使用:
$ la
但是,使用此选项您将无法将参数传递给脚本(执行类似于 la param1 param2
的操作),除非您定义更复杂的别名(使用 [=20 中的函数的别名) =],但我认为这超出了问题的范围)。
重要提示:记得在您的终端中重新加载环境(source .bashrc
)或关闭并再次打开终端每次 您对 .bashrc
文件进行了修改。否则,您将看不到任何更改。
如果你想让一个命令以两个不同的名称(la.sh
和 la
在你的情况下可用),我建议不要使用别名:别名定义在你的 .bashrc 仅在交互式 bash 中可用;如果你 运行,比如说,一个非 bash 交互式 shell,或者写一个 bash 脚本,你不能使用它。
IMO 最通用的方法是创建 link。既然你说你已经将 la.sh
放入 bin 中,你可以在同一目录中创建 link,即
ln /bin/la /bin/la.sh # creates a hard link
或
ln -s /bin/la /bin/la.sh # creates a symbolic link
对于您的情况,两者都可以。如果您想了解更多关于硬 link 和符号 link 之间的区别,请查看 here.
它结合了每个人的答案。
我所要做的就是进入 la.sh
所在的目录。
将其重命名为 la
作为文本文件。
运行 chmod 777 la
将其变成对任何人都可执行的文件。
使用命令 export PATH=$PATH:~/Directory/It/Was/In/
将其添加到我的路径
感谢所有贡献者。
我正在尝试为终端发出命令。我准备了一个 bash 脚本 (la.sh),我只想输入 la 到 运行 它。我怎样才能获得代码以便我只需键入 la?
我试过将它放在 /bin 文件夹中,但是没有成功。
我该怎么做才能解决这个问题?
我正在使用最新版本的 Manjaro Gnome。
非常感谢!!!
顺便说一句,脚本实际上只是 ls
。
这只是一个练习脚本。
文件 la.sh 必须放在您的 path 中。然后你可以为它创建一个别名。
alias la="la.sh"
假设您的脚本存储在 /some/path/la.sh
下。在我看来,您有几种解决方案可以实现您的目标:
选项 1:
将脚本添加到您的用户路径中,以便您可以直接调用它。
echo "export PATH=$PATH:/some/path/" >> ~/.bashrc
然后您就可以在您的终端中使用:
$ la.sh
使用此选项,您可以根据需要使用任何参数调用 la.sh
。如果要求只是调用 la
您还可以重命名脚本或创建软链接:
mv /some/path/la.sh /some/path/la
或
ln -s /some/path/la.sh /some/path/la
选项 2:
为脚本创建别名。
echo "alias la='/some/path/la.sh'" >> ~.bashrc
然后您就可以在您的终端中使用:
$ la
但是,使用此选项您将无法将参数传递给脚本(执行类似于 la param1 param2
的操作),除非您定义更复杂的别名(使用 [=20 中的函数的别名) =],但我认为这超出了问题的范围)。
重要提示:记得在您的终端中重新加载环境(source .bashrc
)或关闭并再次打开终端每次 您对 .bashrc
文件进行了修改。否则,您将看不到任何更改。
如果你想让一个命令以两个不同的名称(la.sh
和 la
在你的情况下可用),我建议不要使用别名:别名定义在你的 .bashrc 仅在交互式 bash 中可用;如果你 运行,比如说,一个非 bash 交互式 shell,或者写一个 bash 脚本,你不能使用它。
IMO 最通用的方法是创建 link。既然你说你已经将 la.sh
放入 bin 中,你可以在同一目录中创建 link,即
ln /bin/la /bin/la.sh # creates a hard link
或
ln -s /bin/la /bin/la.sh # creates a symbolic link
对于您的情况,两者都可以。如果您想了解更多关于硬 link 和符号 link 之间的区别,请查看 here.
它结合了每个人的答案。
我所要做的就是进入 la.sh
所在的目录。
将其重命名为 la
作为文本文件。
运行 chmod 777 la
将其变成对任何人都可执行的文件。
使用命令 export PATH=$PATH:~/Directory/It/Was/In/
感谢所有贡献者。