六:变量
变量:是程序运行过程中用来存储变化数据的内存空间地址;程序在运行过程中,需要实时在操作系统或者是外部的接口(API)上获取数据,这个数据要想被调用,就必须存储下来,所以程序中变化的是内存中的数据,不变的是内存的地址
变量名test的值为$(ifconfig ens160|grep netmask|awk ‘{print $2}’)
变化的是变量的值也就是IP,IP在每个机器上操作系统中内容都不一样,但是对于程序而言,要想使用这个IP地址,只需要找到test这个变量名就可以了变量: 由变量名和变量的值组成,在shell中变量名和变量值之间使用等于号连接 test=$(ifconfig ens160|grep netmask|awk ‘{print $2}’)
变量的类型:
本地变量: 指的是由用户来进行定义的变量
环境变量:指的是由系统来存储核心数据的变量
变量的定义:
本地变量 变量名=变量值
环境变量 export 变量名=变量值
本地变量转环境变量 export 变量名(记住不要$)
注意: 变量的名称应以字母或者下划线开头,不能以数字开头(不能以数字开头命名,不表示名字中不能包含数字)
本地变量可以转成环境变量
变量的引用:
echo $变量名 输出变量
echo ${变量名}
变量的区别:
本地变量和环境变量的作用域是不同的
本地变量只能在当前shell中有效,环境变量可以在当前shell以及子shell中生效
取消变量:
unset 变量名(不要$)
系统关键变量:
PATH变量存储的是系统中可执行文件的路径,也就是应用程序必须在该目录才可以作为命令执行
PS1 提示符变量
HOME 用户的家目录变量
查询系统中的变量:
set 查询本地变量(查函数)
env 查询环境变量
七:系统别名
系统别名:
别名的作用的是为了简化用户的命令执行,用户可以将常用的命令定义为别名,通过执行命令的方式来达到执行命令地目的
定义别名:
alias 别名=’所要执行的命令’
查看别名:alias 查看系统中已经生效的所有别名
取消别名:unalias 别名
转义字符: 是为了去掉字符的特殊意义
\ 去掉斜杠后单个字符的特殊意义
‘ ’ 单引号,去掉引号内所有字符的特殊意义(没有例外)
“ ” 双引号,去掉引号内字符的特殊意义(有四个例外)其中 $ `` \ ! 这四种字符无法去掉特殊意义
八:用户登录的Shell
用户的登录shell:
用户不同的登录方式可以得到不同的shell操作环境;如果使用图形化登录和使用su切换,将会获取到不同的登录shell
类型:
登录shell:
图形化登录
字符界面登录(login登录指令)
切换用户(su - 登录到该用户)
非登录shell:
打开虚拟终端控制台
执行脚本
su (仅切换到这个用户的身份,而不是以该用户登录操作系统)
区别:
登录shell 指的是该用户登录到了操作系统,而非登录shell,指的是该用户得到shell的操作环境,区别在于登录shell和非登录shell所触发的shell的文件是不同的
登录shell触发的文件:
/etc/brashc 全局文件 对于所有的用户生效
/etc/profile 全局文件 对于所有的用户生效
~username/.bashrc 用户文件
~uaername/.bash_profile 用户文件
非登录shell只会触发:
/etc/bashrc
~username/.bashrc
定义方式:
/etc/bashrc
将变量或者别名定义在该文件中,则系统所有用户生效无论是登录shell还是非登录shell均有效
~/.bashrc
会对该用户的登录shell和非登录shell均生效
shell文件的加载顺序?
先加载全局的文件,再加载用户的文件
既然用户有登录shell,那是否有登出shell?
.bash_logout 用户登出触发的文件