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

bash的配置文件

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

1.1 按生效范围划分为两类

1.1.1 全局配置:
java 复制代码
/etc/profile
/etc/profile.d/*.sh
/etc/bashrc
1.1.2 个人配置:
java 复制代码
~/.bash_profile
~/.bashrc

1.2 shell登录的两种方式分类

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

  • 使用su - username 切换用户

配置文件执行顺序:

java 复制代码
5.2 shell登录的两种方式分类

5.2.1 交互式登录

- 直接通过终端输入账户密码
- 使用su - username 切换用户

配置文件执行顺序:
1.2.2 非交互式登录
  • su username

  • 图形界面下打开的终端

  • 执行脚本

  • 任何其他的bash实例

配置文件执行顺序:

java 复制代码
/etc/profile.d/*.sh   -->  /etc/bashrc --> ~/.bashrc

1.3 按功能划分分类

1.3.1 Profile类

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

  • 全局:/etc/profile, /etc/profile.d/*.sh
java 复制代码
source 配置文件

11111111

  • 个人:~/.bash_profile

功能:

  • 用于定义环境变量

  • 运行命令或脚本

1.3.2 Bashrc类

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

  • 全局:/etc/bashrc

  • 个人:~/.bashrc

  • 定义命令别名和函数

  • 定义本地变量

1.4 编辑配置文件生效

功能:

java 复制代码
source 配置文件

二、流程控制

2.1 条件选择

2.1.1 选择执行if语句
java 复制代码
if结构:
[root@ansible-salve1 shell]# help if
if: 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 单分支
java 复制代码
if [ 条件判断式 ];then
	命令
fi 

或者

if [ 条件判断式 ]
  then
   命令
fi
2.1.1.2 双分支
java 复制代码
if [ 条件判断式 ]
  then
    命令
else
   命令
fi
2.1.1.3 多分支
java 复制代码
if [ 条件判断式1 ]
 then
  命令
elif [ 条件判断式2 ]
 then 
  命令
...
...
else
 命令
fi

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

java 复制代码
[root@ansible-salve1 shell]# vim info5.sh

#!/bin/bash
read -p "请输入身高(m为单位):" HIGH
if [[ ! "$HIGH" =~ ^[0-2].?[0-9]{,2}$ ]]
   then
           echo "请不要输入错误的身高";
           exit 1;
fi
read -p "请输入体重(Kg为单位):" WEIGHT
if [[ ! "$WEIGHT" =~ ^[0-9]{1,3}$ ]]
   then
           echo "请不要输入错误的体重";
           exit 1;
fi

BMI=`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语句可嵌套

相关推荐
Jerry.张蒙30 分钟前
AI工具Opencode助力SAP提质增效实践
大数据·运维·服务器·人工智能·运维开发
糖果店的幽灵35 分钟前
软件测试接口测试从入门到精通:curl命令行工具
linux·软件测试·接口测试·命令行·curl
毒爪的小新8 小时前
Linux 环境极速部署 vLLM:从零搭建生产级大模型推理服务
linux·人工智能·ai·语言模型·vllm
鹤落晴春8 小时前
RH124问答3:从命令行管理文件
linux·运维·服务器
凡人叶枫8 小时前
Effective C++ 条款30:透彻了解 inlining 的里里外外
linux·开发语言·c++·嵌入式开发·effective c++
guslegend9 小时前
大模型驱动大数据SRE智能运维
大数据·运维
遇见火星9 小时前
Docker Compose 完全入门:一键启动所有容器
运维·docker·容器·docker compose
Net_Walke9 小时前
【Linux系统】静态链接库与动态链接库
linux·嵌入式硬件
小啊曼9 小时前
CIO实战方法论_11_组织变革打破部门墙
运维
syc789012310 小时前
中文语境下AI编码工具实战对比:从迭代体验看日常开发选择
linux·人工智能·ubuntu