当前位置: 首页 > news >正文

零基础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 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 单分支
    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/bash
    read -p "请输入身高(m为单位):" HIGH
    if [[ ! "$HIGH" =~ ^[0-2].?[0-9]{,2}$ ]]thenecho "请不要输入错误的身高";exit 1;
    fi
    read -p "请输入体重(Kg为单位):" WEIGHT
    if [[ ! "$WEIGHT" =~ ^[0-9]{1,3}$ ]]thenecho "请不要输入错误的体重";exit 1;
    fiBMI=`echo $WEIGHT/$HIGH^2|bc` if [ $BMI -le 18 ] ;thenecho "你太瘦了,请注意身体建康"
    elif [ $BMI -lt 24 ] ;thenecho "身材很棒!"
    elseecho "你太胖了,注意节食,加强运动"
    fi[root@ansible-salve1 shell]# chmod +x info5.sh
    [root@ansible-salve1 shell]# ./info5.sh

    说明:

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

    • if语句可嵌套

    http://www.dtcms.com/a/362795.html

    相关文章:

  • PHP操作LibreOffice将替换变量后的word文件转换为PDF文件
  • CICD的持续集成与持续交付和Zabbix
  • Rsync + Rsyncd 从入门到项目实战:自动化备份全攻略
  • 系统配置不是“乐高积木”:制造企业如何通过科学变更管理保障稳定运行
  • 关于ANDROUD APPIUM安装细则
  • 科研绘图(二):R 语言实现小鼠脑图谱 3D 渲染,附完整代码与数据获取指南
  • LoRaWAN®协议,如何为工业制造的数字化转型赋能?
  • 《CrystalDiskInfo》 [9.7.2] [单文件版] 下载
  • CHT共轭传热: 导热系数差异如何影响矩阵系数
  • 从0死磕全栈第2天:Vite + React 配置全解析,让你的开发效率飞起来
  • Element-Plus 入门指南
  • 跳出“中央集权”的泥潭:以Data Mesh重构AI时代的活性数据治理
  • MongoDb(②pymongo)
  • 豪华酒店品牌自营APP差异对比分析到产品重构
  • 腾讯混元世界模型Voyager开源:单图生成3D世界的“核弹级”突破,游戏、VR、自动驾驶迎来新变量
  • C++ 面试高频考点 力扣 852. 山脉数组的峰顶索引 二分查找 题解 每日一题
  • ansible循环
  • GitHub Classroom:编程教育的高效协作方案
  • 从零开始的云计算生活——第五十七天,蓄势待发,DevOps模块
  • 数据量太大处理不了?Hadoop+Spark轻松解决海洋气象大数据分析难题
  • HQX SELinux 权限问题分析与解决
  • 使用 Avidemux 去除视频的重复帧
  • 亚马逊美加站点物流新规解读:库存处理逻辑重构与卖家应对策略
  • 两台电脑通过网线直连共享数据,设置正确,却互相ping不通的解决方法
  • 探索 UniHttp:解锁 Xml 及 JavaBean 序列化的多种方式
  • ASP.NET Core上传文件到minio
  • 嵌入式硬件 - 51单片机1
  • JVM中产生OOM(内存溢出)的8种典型情况及解决方案
  • 自从不小心踢了一脚主机之后,电脑频繁蓝屏、死机、无法开机……
  • 鸿蒙Next开发指南:XComponent与Progress组件的深度解析与实践