[8-30]Bash环境变量知识梳理

知识储备


  • Shell是交互式命令解释器,用户是不允许直接访问内核和操作的,那么Shell就是这样一个中间件,他负责对用户输入的命令做语法分析、语义分析,判断要做什么样的操作,有哪些增强功能选项,操作什么样的对象,并且通过自身提请内核启动进程,是一个用户和内核的代理人;
  • 广义的Shell包含GUI和CLI,而狭义的Shell仅仅指的是CLI;
  • Linux支持众多Shell实例,如tsh、zsh等等,使用最广泛的是Bash[众多Shell中的一个实例];
  • 请注意,shell自身是一个命令环境,那么shell中自然可以嵌套shell,默认CentOS中登录后使用的是Bash,如果在CLI中继续输入zsh,那么你所属的环境就是-->bash-->zsh,请注意你的位置哦。

Bash环境配置文件分类



什么是变量?


  • 变量本质上是内存空间中的一块指定区域,其数据内容会发生变化;
  • 变量名本质是个指针,指向这个数据变化的内存空间,那么在命令执行或者操作时,只需要通过变量名,就能够随时调用那个变化的数据,很方便

变量的类型



在Linux中,大体上变量有5种类型

  • 环境变量:作用范围是当前Shell进程和其子Shell进程
  • 本地变量:仅作用域当前Shell进程
  • 局部变量:仅作用当前Shell进程中的某个代码片段[通常是函数上下文]
  • 位置变量:形如$1 $2等,主要是为了Bash脚本传递参数
  • 特殊变量:$? 可以查看上一条命令的执行状态[请区分执行结果和执行状态不是一回儿事]

如何定义与撤销变量?


  • 之前说过,Bash是Shell的一个实例,自身就是一个命令环境,那么他本身也包含内置变量,这些变量我们可以通过#man bash中来查看,可以使用/Variables来快速找到变量;
  • 由于Bash是弱类型的编程语言,变量可以未经生命直接使用,只不过是Empty值罢了;
  • 定义本地变量
    • Name=Value
    • 使用set可以查看定义的本地变量
  • 定义环境变量
    • Export Name=Value
    • Declare -x Name=Value
    • 使用env、printenv、export可以查看定义的环境变量
  • 撤销变量
    • unset Name即可
  • 变量的生存周期就是当前的Shell进程,进程终止变量自然终止

如何引用变量?


  • ${name} 通常{}可省略,但是有时候出于特殊目的,是不可以省略的,比如下面的情况

  • 想新增环境变量而不想覆盖原有变量也是这个道理

export PATH=”$PATH:/usr/test/bin”

  • ‘‘单引号,强引用,不会发生变量替换
  • ""双引号,弱引用,会发生变量替换

Shell登录类型与Bash配置文件作用次序



Shell登录类型大致有2种:

  • 交互式登录

    • 直接通过Console、VTY、ssh等连接方式以输入账号密码的形式登录进系统;
    • 通过#su -l UserName实现的切换用户,请注意-l是以login形式
  • 非交互式登录
    • GUI界面下打开的终端窗口;
    • 执行脚本:编写脚本必须在开头指定shell,脚本执行会自动打开该shell
    • 通过#su Username实现的无参数切换用户

Bash配置文件作用次序

  • 交互式登录

    • /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile -->~/etc/bashrc --> ~/.bashrc
  • 非交互式登录
    • ~/.bashrc ---> /etc/bashrc ---> /etc/profile.d/*.sh


编辑的配置文件如何生效?


  1. 重新登录即可;
  2. 让当前的shell进程重新读取配置文件

#source /PATH

# .   /PATH

注意:可能有副作用,不小心读多次会追加的,如果你能确保只读了一次,可以忽略此副作用

时间: 2024-08-01 15:24:48

[8-30]Bash环境变量知识梳理的相关文章

vim、find 的使用bash环境变量

今天我给大家带来的是VIM,find,命令的使用和bash环境变量的一些内容. vim命令 vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏纯文本编辑器.Linux中的vi编辑器叫vim,它是vi的增强版,与vi编辑器完全兼容,而且实现了很多增强功能. vi编辑器有三种模式:输入模式,命令模式(编辑模式)和末行模式,(默认打开命令模式) 语法:   vi(选项)(参数) 参数解释: Ctrl+u:向文件首翻半屏: Ctrl+d:向文件尾翻半屏: Ctrl+f:向文件尾翻一屏: Ctr

bash环境变量读取顺序

bash环境变量读取顺序: 交互式登录的用户: /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc 非交互式登录的用户: ~/.bash_profile --> ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

bash环境变量、特殊权限及磁盘管理与文件系统

bash环境配置: 配置文件,生效范围划分,存在两类: 全局配置:/etc/profile, /etc/profile.d/*.sh,/etc/bashrc 个人配置:~/.bash_profile,~/.bashrc 按功能划分,存在两类: profile类:为交互式登录的shell提供配置 /etc/profile, /etc/profile.d/*.sh ~/.bash_profile 功用: (1) 定义环境变量,例如PATH.PS1 (2) 运行命令或脚本 bashrc类:为非交互式登

bash环境变量

bash环境配置:         配置文件,生效范围划分,存在两类:         全局配置:             /etc/profile, /etc/profile.d/*.sh             /etc/bashrc         个人配置:             ~/.bash_profile             ~/.bashrc 按功能划分,存在两类:         profile类:为交互式登录的shell提供配置             /etc/pro

bash 环境变量

bash环境配置: 配置文件: 生效范围划分,存在两类:   全局配置: /etc/profile,/etc/profile.d/*.sh /etc/bashrc   个人配置: ~/.bash_profile ~/.bashrc 按功能划分,存在两类: profile类: 为交互式登录的shell提供配置 /etc/profile,/etc/profile.d/*.sh ~/.bash_profile 功用: 1 定义环境变量,例如PATH,PS1 2 运行命令或脚本 bashrc类: 为非交

find,vim,bash环境变量,文件权限

Linux中一切皆文件,所以文本文件的编辑就是运维工作的常事,熟练使用一款文本编辑器就非常重要,linux中有nano文本编辑器,现在学习更为强大的Vim文本编辑器 全屏幕的编辑器:VIM vi: visual interface sed:行编辑器 vi, vi iMproved vim: 模式化: 编辑模式:命令模式 输入模式: 末行模式: 编辑模式 --> 输入模式: i: insert, a:append, o:new line, I: 行首 A:行尾 O:上方新建行 输入模式 -->

Bash环境变量配置

配置文件,生效范围划分,存在两类: 全局配置: /etc/profile, /etc/profile.d/*.sh /etc/bashrc 个人配置: ~/.bash_profile ~/.bashrc 按功能划分,存在两类: profile类:为交互式登录的shell提供配置 /etc/profile, /etc/profile.d/*.sh ~/.bash_profile 功用: (1) 定义环境变量,例如PATH.PS1 (2) 运行命令或脚本 bashrc类:为非交互式登录shell提供

新手理解的bash环境变量解析漏洞

p{ line-height:150%; font-size:18px; font-family:fangsong; margin-top:20px; } pre {font-size:15px; background-color:black; color: white;font-family: sans-serif } #refer{background-color:gray;} h1 {font-family:simhei;} 1 环境变量是什么 无论是Windows程序还是Linux程序,

20150830-Linux bash环境变量定制

待完善... bash环境配置: 配置文件,生效范围划分,存在两类: 全局配置: /etc/profile, /etc/profile.d/*.sh /etc/bashrc 个人配置: ~/.bash_profile ~/.bashrc 按功能划分,存在两类: profile类:为交互式登录的shell提供配置 /etc/profile, /etc/profile.d/*.sh ~/.bash_profile 功用: (1) 定义环境变量,例如PATH.PS1 (2) 运行命令或脚本 bashr