关于Bash命令的一些理解

bash中每个命令即对应一个文件, 可以根据which来查询所所使用命令文件所在的位置.

常用的ls,cp等命令都储存/usr/bin中, 可以通过which [命令] 来查看命令文件所在位置. (cd命令无文件, 通过bash实现)
在使用ls查看文件的时候, 同样可以用/usr/bin/ls这样的命令.


Bash执行规则
bash寻找文件的时候, 有两种方式.
第一种就是根据路径来找: 例如我们输入了/或者.等具有路径含义的符号, 则会从路径开始寻找.
第二种,就是直接在环境变量中设置的目录中寻找.

例如我们在终端输入了xxxxx这个奇怪的命令.
终端会去已经设置的系统变量的路径里面, 去寻找这个叫xxxxx名字的文件. 根据设置的顺序依次寻找/usr/local/bin:/bin:/usr/bin(系统变量:分割)
当这所有的文件夹里面都找不到这个xxxxx文件.
提示:未找到命令.

接下来, 我们在随便一个设置了系统变量的文件夹里创建一个xxxxx的文件.

再次执行xxxxx命令.
提示:权限不够.

刚创建的文件没有加权限, 增加执行权限之后.
提示:asdf未找到命令(asdf是我刚刚创建xxxxx文件的时候随便输入的内容)
也就是说,在执行文件的时候,依旧会进去找命令.


在xxxxx内添加了一行内容, 是Python解释器的地址.再次执行.
则直接运行python.


那么, 这也就解释了, 为什么我们在写代码的时候, 前面要加上解释器的地址.不过有所不同的是,如果直接写入解析器地址的话, 则直接打开解释器(后面文本的命令会在关闭解释器的时候再继续执行).
需要对解释器的地址进行特殊注释#!,表示将以下的内容传给哪个文件进行执行.

关于Bash命令的一些理解

原文地址:https://www.cnblogs.com/jrri/p/12114010.html