如何创建unix命令

时间:2012-03-09 06:03:59

标签: linux unix

我有一个名为remote_execution.sh的shell脚本。我是否可以在任何文件夹中键入remote_execution并开始执行,就像gcc,vi或任何此类命令一样?

提前致谢。

7 个答案:

答案 0 :(得分:7)

以下四个步骤应该允许您从文件系统的任何位置运行remote_execution

  1. 将文件重命名为remote_execution,删除.sh扩展名
  2. 在文件顶部添加“shebang”行

    #!/bin/bash
    
  3. 修改文件的permissions以使其可执行(请参阅man chmod

    chmod u+x remote_execution
    
  4. 将文件移动到PATH中的目录中,使其“可在任何文件夹中使用”。猜测:

    mv remote_execution /usr/local/bin
    

答案 1 :(得分:4)

另一个选项是设置别名

alias  remote_execution="fullpath to  remote_execution.sh"

答案 2 :(得分:3)

您可以将该脚本放在$PATH

描述的任何文件夹中
$ echo $PATH

[andreas@nyert test]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/andreas/bin

将您的脚本重命名为remote_execution,并将#!/bin/sh放在第一行。还要chmod以确保它是可执行的

$ chmod 755 remote_execution

答案 3 :(得分:1)

将remote_execution.sh所在的目录添加到$PATH变量中。此外,如果您希望在没有结尾.sh的情况下启动它,请将脚本重命名为remote_execution

答案 4 :(得分:1)

您有3种方法:您可以在PATH中的一个目录中复制脚本,也可以在那里为脚本创建符号链接(ln -s),或者将shell脚本的当前目录添加到PATHexport PATH=$PATH:dir)。

要了解PATH看起来像echo $PATH

答案 5 :(得分:1)

是。您有两个选项,将脚本放在路径上的某个位置,或将脚本的目录附加到~/.profile中的路径。

答案 6 :(得分:0)

每个文件都有自己的权限位。您必须修改文件的权限,以使其可执行。所以使用命令 -

chmod +x remote_execution

希望您已将“shebang”行添加到文件顶部

#!/bin/bash

如果使用显式解释器调用脚本,例如

bash remote_execution.sh
/bin/bash remote_execution.sh
dash remote_execution.sh
sh remote_execution.sh
无论shebang说什么,你的选择翻译都会被使用,这只是一个评论。否则,内核会查找shebang并使用其中指定的解释器启动程序。如果使用了Shebang字符,那么无论扩展名是什么!

你的shell是一个程序。它有变量,其中一个是$ PATH

$PATH包含一个以冒号分隔的目录列表,用于搜索命令

如果您想查看它,只需在终端输入$ echo $PATH

在我的电脑上显示

vikram@vikram-Studio-XPS-1645:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

这意味着如果我输入像gcc或vim这样的命令,它会在上面的目录列表中搜索。

现在只需将您的shell脚本复制到上述任何文件夹即可从任何地方访问它。