热搜:前端 nest neovim nvim

执行文件怎么写(什么叫执行文件有何风险)

lxf2023-09-05 09:00:01

在linux中,执行一个文件意味着该文件可以运行,并且该文件拥有“X”权限;执行文件可以是代码文件(脚本文件)或二进制文件。有两种方法运行文件:1。用解释器直接运行文件;2.用“.”运行文件。/",语法是"。/文件名”。

执行文件怎么写(什么叫执行文件有何风险)

本教程的操作环境:linux7.3系统和Dell G3电脑。

何为可执行文件

可执行文件意味着该文件可以运行。该文件可以是代码文件或二进制文件。

Linux文件系统只有文件和目录(一切都是文件)。

在Linux中,有两种运行文件的主要方法:bash test.sh或。/test.sh .

这个test.sh称为可执行文件。

可执行文件分为两种:一种是常见的二进制文件,另一种是脚本文件。前者是二进制文件,比如ls和LS,mkdir命令,后者是shell脚本或者Python脚本,取决于解释器的执行。

您可以通过命令文件查看文件的类型。例如,二进制文件将显示:

执行文件怎么写(什么叫执行文件有何风险)

而脚本文件则输出:
执行文件怎么写(什么叫执行文件有何风险)输出脚本文件时:

可执行文件之间的差异

从上面两个脚本文件可以看出,输出内容是不同的。一个被认为是shell脚本,另一个被认为是普通的文本文件。但是这两个文件都是可执行的:

执行文件怎么写(什么叫执行文件有何风险)

如图:两个文件运行后都会输出hello world!。

这里使用了两种不同的运行模式。第一个直接指定了一个可执行文件。/hello.sh。如果以这种方式运行,脚本必须满足以下两个要求:

  • 该文件带有“x & quot权限

  • 如果文件不是二进制类型的文件,它的解释器必须在开头的第一行指定。

    第一个是指“在Linux文件系统中”。rwx & quotr是只读的,w代表可写的,而“x & quot这意味着这个文件是可执行的。

    这里判断这个文件是可执行的和“鸭子类型”有些相似之处,也就是说,只要一个动物会嘎嘎叫,我就认为它是一只鸭子。这时候就算狗叫两声,也算鸭子。
    不管文件类型是什么,只要文件有“X & quot权限,那么系统认为是可执行文件。

    示例:创建一个新的文本文件,内容为hello world!,然后添加“x & quot行政权力。

    执行文件怎么写(什么叫执行文件有何风险)

    可以看到,在检查文件类型时,他与上面打印的Python脚本一致,认为是txt文件。

    然后他被授予行政权力,然后。/'运行,提示“命令”没有找到。。

    在这里,系统将它作为一个shell脚本来执行,依次从中读取内容,然后将其交给“/bin/bash & quot;要执行的解释程序。

    接下来,做同样的事情,把Python脚本变成系统识别的可执行文件。

    执行文件怎么写(什么叫执行文件有何风险)

    此时,您也可以使用。/来运行它。

    。/什么意思?

    有两种方法运行文件。第一种方法是用它的解释器直接运行它,比如:

    执行文件怎么写(什么叫执行文件有何风险)

    每个解释器只能运行对应于自己语法的脚本。如果使用另一个解释器,就会抛出一个错误,比如Python解释器不能运行shell脚本。

    接下来说。/,在Linux系统中圆点代表“。当前目录",而"/"只是一个普通的路径分隔符,它们加在一起无非是一个相对路径,比如:

    执行文件怎么写(什么叫执行文件有何风险)

    所以在执行系统认可的可执行文件时,。/不是最重要的部分,而是文件本身。例如,我可以用绝对路径运行一个可执行文件:

    执行文件怎么写(什么叫执行文件有何风险)

    如果你甚至删除了前面的/root/file/py结尾,也就是只需输入“Hello”,打印一个hello world!那么这个文件看起来和Linux系统中的一个命令没什么区别。

    然后把他变成和ls“命令”一样的命令。

    执行文件怎么写(什么叫执行文件有何风险)

  • 请先重命名此可执行文件。

  • 然后把他放到/usr/bin目录下。

    直接输入hello,直接打印hello world!

    这也从侧面说明,只要你把一个脚本变成系统认可的可执行文件,放在/usr/bin目录下,和常见的命令没什么区别。

    为什么/usr/bin?

    其实Linux系统中有一个变量叫做PATH。这个变量是一组路径。当您输入一个命令(比如ls)时,他会在这个变量的内容中给出的目录中查找具有相应名称的文件,然后运行它。

    所以,如果我可以将当前目录添加到这个变量中,那么当前目录中的文件就可以由系统直接运行,而不需要指定路径。

    执行文件怎么写(什么叫执行文件有何风险)

    如果文件没有“x & quot是一行,那么即使它被放到/usr/bin目录中,也不能被执行。

    通常,PATH变量很少直接声明。当操作这个变量时,它也将被写入~/。bashrc目录或两个环境变量/etc/profile的文件。这样,内容将在会话连接后自动运行,并且该目录将被添加到PATH变量中。

    摘要

    如果脚本文件有“x & quot权限还在第一行指定了相应的解释器,或者一个二进制文件有“X & quot权限,那么这个文件就成为系统识别的可执行文件。此时,运行它不仅可以指定绝对路径或相对路径,还可以通过它的解释器执行它,甚至可以将其目录添加到“PATH & quot在这个变量中。

    如果一个脚本文件不满足上述要求,你只能通过它的解释器来执行,比如“bash hello.sh & quot或者“python hello.py & quot这边走。

    相关推荐:《Linux视频教程》

    以上是linux可执行文件是什么的细节。更多详情请关注AdminJS的其他相关文章!