linuxisperfect 2019-12-15
Linux命令执行过程
1.判断用户是否以绝对路径或相对路径的方式输入命令(如 /bin/ls) ,如果是的话则直接执行
2.Linux系统检查用户输入的命令是否为”别名命令”.
即用一个自定义的命令名称来替换原本的命令名称(格式 : alias 别名=命令)
若要取消一个命令别名,则用unalias,格式 : unalias 别名
3.Bash解释器判断用户输入的是内部命令还是外部命令.内部命令时解释器的内部指令,会被直接执行;而用户在绝大部分时间输入的是外部命令,这些命令会交由步骤4继续处理.可以使用”type命令名称”来判断用户输入的命令是内部的命令还是外部命令.
4.系统在多个路径中查找用户输入命令文件,而定义这些路径的变量叫做PATH,可以简单的把它理解成是”解释器小助手”,作用是告诉Bash解释器待执行的命令可能存放的位置,然后Bash解释器就会乖乖的的在这些位置中逐个查找.PATH是由多个路径值组成的变量,每个路径值之间用冒号间隔,对这些路径的增加和删除操作将影响到Bash解释器对Linux命令的查找.
注:
1.为什么不能将当前目录(.)添加到PATH变量中呢?
答 : 尽管可以将当前目录(.)添加到 PATH 变量中,从而在某些情况下可以让用户免去输入命令 所在路径的麻烦。但是,如果黑客在比较常用的公共目录/tmp 中存放了一个与 ls 或 cd 命令同 名的木马文件,而用户又恰巧在公共目录中执行了这些命令,那么就极有可能中招了。
2.接收任何一台Linux系统后一定会在执行命令前检查PATH变量是否有可疑目录
Linux系统中最重要的10个环境变量
变量名称 | 作用 |
HOME | 用户的主目录(即家目录) |
SHELL | 用户在使用shell解释器名称 |
HISTSIZE | 输出的历史命令记录条数 |
HISTFILESIZE | 保存的历史命令记录条数 |
邮件的保存路径 | |
LANG | 系统语言,语系名称 |
RANDOM | 生成一个随机数字 |
PS1 | BASH解释器的提示符 |
PATH | 定义解释器搜索用户执行命令的路径 |
EDITOR | 用户默认的文本编辑器 |
变量的组成 : 固定的变量名与用户或系统设置的变量值两部分组成的
提升全局变量的命令 : export
5.环境变量配置在linux系统下,需要将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里面方法一:将文件移动到属于环境变量目录中sudo mv chromedriver /user/bin
写脚本涉及到数据库的配置信息,然后上面要求这种关键信息不能体现到脚本中,哦,那怎么办,那我去哪里读取数据库信息呢?从运行脚本的机器的环境变量里读取数据库信息,这样脚本中全是代码,就没有明文配置信息了。