> 技术文档 > 零基础Linux操作基础小白快速掌握Shell脚本bash的配置文件

零基础Linux操作基础小白快速掌握Shell脚本bash的配置文件


bash的配置文件

bash shell的配置文件很多,可以分为以下类别

1.1 按生效范围划分为两类

1.1.1 全局配置:
/etc/profile/etc/profile.d/*.sh/etc/bashrc
1.1.2 个人配置:
~/.bash_profile~/.bashrc

1.2 shell登录的两种方式分类

1.2.1 交互式登录
  • 直接通过终端输入账户密码

  • 使用su - username 切换用户

配置文件执行顺序:

5.2 shell登录的两种方式分类5.2.1 交互式登录- 直接通过终端输入账户密码- 使用su - username 切换用户配置文件执行顺序:
1.2.2 非交互式登录
  • su username

  • 图形界面下打开的终端

  • 执行脚本

  • 任何其他的bash实例

配置文件执行顺序:

/etc/profile.d/*.sh --> /etc/bashrc --> ~/.bashrc

1.3 按功能划分分类

1.3.1 Profile类

profile类为交互式登录的shell提供配置

  • 全局:/etc/profile, /etc/profile.d/*.sh

source 配置文件

    11111111

    • 个人:~/.bash_profile

    • 功能:

    • 用于定义环境变量

    • 运行命令或脚本

    1.3.2 Bashrc类

    bashrc类:为非交互式和交互式登录的shell提供配置

    • 全局:/etc/bashrc

    • 个人:~/.bashrc

    • 定义命令别名和函数

    • 定义本地变量

    1.4 编辑配置文件生效

    功能:

    source 配置文件

    二、流程控制

    2.1 条件选择

    2.1.1 选择执行if语句
    if结构:[root@ansible-salve1 shell]# help ifif: if 条件; then 命令; [ elif 命令; then 命令; ]... [ else 命令; ] fi 根据条件执行命令。 `if COMMANDS\'列表被执行。如果退出状态为零,则执行`then COMMANDS\' 列表。否则按顺序执行每个 `elif COMMANDS\'列表,并且如果它的退出状态为 零,则执行对应的 `then COMMANDS\' 列表并且 if 命令终止。否则如果存在的 情况下,执行 `else COMMANDS\'列表。整个结构的退出状态是最后一个执行 的命令的状态,或者如果没有条件测试为真的话,为零。 退出状态: 返回最后一个执行的命令的状态。[root@ansible-salve1 shell]# 
    2.1.1.1 单分支
    if [ 条件判断式 ];then命令fi 或者if [ 条件判断式 ] then 命令fi
    2.1.1.2 双分支
    if [ 条件判断式 ] then 命令else 命令fi
    2.1.1.3 多分支
    if [ 条件判断式1 ] then 命令elif [ 条件判断式2 ] then 命令......else 命令fi

    示例:依据BMI参数写出判断语句

    [root@ansible-salve1 shell]# vim info5.sh#!/bin/bashread -p \"请输入身高(m为单位):\" HIGHif [[ ! \"$HIGH\" =~ ^[0-2].?[0-9]{,2}$ ]] then  echo \"请不要输入错误的身高\";  exit 1;firead -p \"请输入体重(Kg为单位):\" WEIGHTif [[ ! \"$WEIGHT\" =~ ^[0-9]{1,3}$ ]] then  echo \"请不要输入错误的体重\";  exit 1;fiBMI=`echo $WEIGHT/$HIGH^2|bc` if [ $BMI -le 18 ] ;then echo \"你太瘦了,请注意身体建康\"elif [ $BMI -lt 24 ] ;then echo \"身材很棒!\"else echo \"你太胖了,注意节食,加强运动\"fi[root@ansible-salve1 shell]# chmod +x info5.sh[root@ansible-salve1 shell]# ./info5.sh

    说明:

    • 多个if条件时,逐个条件进行判断,第一次遇见为“真”条件时,执行其分支,而后结束整个if语句

    • if语句可嵌套