Linux学习笔记 第九章 bash shell和变量


1.什么是shell

shell又称命令解释器,它能识别用户输入的各种命令,并传递给操作系统。他的作用类似于windows操作系统的命令行。在Linux中,shell既是用户交互的界面,也是控制系统的脚本语言。
在这里插入图片描述bash shell功能:
history(内存当中的,而不是磁盘当中的)
-c:清空历史命令(内存中的)
-w:将缓存中的历史记录写入磁盘当中
~/.bash_history 存在磁盘当中的命令记录
echo > ~/.bash_history 清空


1.1bash shell 快捷键:

在这里插入图片描述


1.2bash shell 通配符

文件通配符:
*——匹配0或多个字符
?——匹配任意单个字符
[0-9]——匹配数字
[abc]——匹配该列表内任意字符
[^abc]——匹配处列表字符以外的字符
不要用[A-Z][a-z]匹配大小写 识别不出来

其他常用通配符:
[:alpha:]:匹配字母(忽略大小写)
[:lower:]:匹配小写字母
[:upper:]:匹配大写字母
[:digit:]:匹配数字
[:space:]:匹配空格
[:alnum:]:匹配任意字母或数字
[:punct:]:除空格和字母、数字以外的任何可打印字符

正则表达式(处理字符串的命令)
bash shell 通配符(用来匹配文件)


1.3bash shell 功能-命令拓展符

~:指向一个用户的家目录
$:$(command):调用命令执行的结果

  • 例:echo “the sys name is $(hostname)”
    ``:同$

{}:依次匹配括号内的字符串

  • 例: touch /tmp/file{1,2,3,4,5}或 touch /tmp/file{1…5}

2.认识变量

变量需要加载到内存当中才会生效

2.1变量

变量名:大写、字母+数字,必须字母或下划线开头,A1 _B1
赋值:变量名=值 注意:=两边不能加空格
调用变量:$变量名 或 ${变量名}

在这里插入图片描述
在这里插入图片描述


2.2两大变量

本地变量:仅在当前shell中生效
环境变量:仅在当前shell和子shell中生效
在这里插入图片描述在这里插入图片描述set:在当前shell中生效的所有变量,包含环境变量和本地变量
evc:在当前shell中生效的所有环境变量
unset:取消变量,unset+变量名,包括本地变量和环境变量

在这里插入图片描述

2.3常见系统变量

PS1:提示符变量

在这里插入图片描述
在这里插入图片描述
PATH变量:
在这里插入图片描述
PATH是环境变量,可通过env查看
PATH只能找到当前目录,不会往下寻找子目录

3.变量的配置文件

根目录下建立一个文件夹data
在这里插入图片描述
将/data加入到PATH变量当中
在这里插入图片描述
添加一个hello.sh文件
在这里插入图片描述
让他输出“hello word”
在这里插入图片描述

改权限执行
在这里插入图片描述
直接就能执行
在这里插入图片描述
/data下新建一个bin目录
在这里插入图片描述
把hello.sh复制到bin目录下起名为hello1.sh并修改权限
在这里插入图片描述可以看到bin目录下的命令是执行不了的
在这里插入图片描述
所以PATH变量对子目录中的命令无效

登录shell和非登录shell

登录shell:
/etc/profile
~/.bash_profile
/etc/bashrc
~/.bashrc
非登录shell:
/etc/bashrc
~/.bashrc

登录shell:
图形界面或字符界面登录时
su - 切换用户
四个文件都可以读到

非登录shell:
su 用户 (没有-) 非登录shell
在图形界面打开一个终端(ctrl+shift+t)
执行bash时
执行脚本时
其他情况……
只能读到非登录shell文件

区别:读取环境不一样

3.1/etc/profile

定义系统环境变量的文件
vim打开/etc/profile
在这里插入图片描述
由于PATH是环境变量,文件下添加一行PATH=$PATH:/data/bin保证每次打开终端都能直接运行自己的命令
然后需要将文件加载到内存,PATH才真正改变
在这里插入图片描述
此时打开新终端依旧没有,仍要手动source,每个shell开启时不会读文件,重启系统
在这里插入图片描述
/etc/profile 定义全局环境变量,且对所有用户都生效 source时会读到,切换用户时会读到,重启时会读到

3.2 ~/.bash_profile

定义用户环境变量,针对某个用户,会覆盖/etc/profile

3.3 /etc/bashrc

3.4 ~/.bashrc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浇、水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值