Linux shell基础
admin
2023-02-25 16:20:04
0

博文结构
认识bash这个shell
Shell的变量功能

一.认识bash这个shell

1.计算机的运行状况

1.硬件:当然就是需要你的硬件有“声卡芯片”这个配备,否则怎么会有声音;

  1. 核心管理:操作系统的核心可以支持这个芯片组,当然还需要提供芯片的驱动程序;
  2. 应用程序:需要使用者(就是你)输入发生声音的指令!

Linux shell基础

  • Bash主要优点:
1.命令编修能力  (~/.bash_history )
2.命令与文件补全功能
3.命令别名设置功能
4.工作控制、前景背景控制
5.程序化脚本
6.万用字符

Linux shell基础

在使用shell的时候,变量是经常会使用到的,变量的定义也很简单,只需要满足以下三个条件即可:

变量名由数字、字母、下划线组成;

必须以字母或者下划线开头;

不能使用 Shell 里的关键字,下图中的的变量命名就是合法的。

  • 什么是变量?

简单定义就是:变量就是以一组文字或符号等,来代替一些设置或者是一串保留的数据。

  • 变量的设置规则
  1)变量与变量内容以一个等号“=”来连接,myname=VBird
  2)等号两边不能直接接 空格符,如下的定义就是错误的:
    myname = VBrid
    myname=VBrid Tsai
  3)变量的名称只能是英文与数字,但是开头字符不能是数字,如下的定义是错误的:
    2myname=VBird
  4)变量内容若有空符可使用双引号或单引号将变量内容结合起来。
  双引号内的特殊字符如$等,可以保有原来的特性:
    "var=lang is $LANG",则lang is en_US
  单引号内的特殊符号则为一般字符:
    'var=lang is $LANG',则lang is $LANG
  5)可用转义字符“\”将特殊符号变为一般字符,例如\$
  6)在一串命令中,还需要通过其他的命令提供的信息,可以使用反单引号或者$:
    version=$(uname-r)
    echo $version
  7)若该变量为了增加变量内容时,则可用“$变量名称”或${变量}累加内容:
    PATH="$PATH":/home/bin
  8)若该变量需要在其他子进程执行,则需要以export来使变量变成环境变量:
    export PATH
  9)通常大写字符为系统默认的变量,自行设置变量的话使用小写字符。
  10)取消变量的方法:unset myname

Linux shell基础

  • 变量的取用echo
[root@localhost ~]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin
[root@localhost ~]# env
LC_PAPER=zh_CN.utf8
XDG_VTNR=1
SSH_AGENT_PID=2807
XDG_SESSION_ID=1
HOSTNAME=localhost.localdomain
LC_MONETARY=zh_CN.utf8
IMSETTINGS_INTEGRATE_DESKTOP=yes
GPG_AGENT_INFO=/run/user/0/keyring/gpg:0:1
TERM=xterm-256color
SHELL=/bin/bash
XDG_MENU_PREFIX=gnome-
VTE_VERSION=3804
HISTSIZE=1000
WINDOWID=27262983
LC_NUMERIC=zh_CN.utf8
IMSETTINGS_MODULE=IBus
USER=root
....................略
HOME:代表使用者的主文件夹。
SHELL:告知我们,目前这个环境使用的 SHELL 是哪支程序?Linux 默认使用 /bin/bash 的啦!
HISTSIZE:这个与“历史命令”有关,亦即是,我们曾经下达过的指令可以被系统记录下来,而记录的“笔数”则是由这个值来设置的。
MAIL:当我们使用 mail 这个指令在收信时,系统会去读取的邮件信箱文件(mailbox)。
PATH:就是可执行文件搜寻的路径啦~目录与目录中间以冒号(:)分隔,由于文件的搜寻是依序由 PATH 的变量内的目录来查询,所以,目录的顺序也是重要的喔。
LANG:这个重要!就是语系数据啰~很多讯息都会用到他
RANDOM:这个玩意儿就是“随机乱数”的变量啦!目前大多数的distributions 都会有乱数产生器,那就是 /dev/random这个文件。
  • 用set观察所有的变量(含环境变量与自定义变量)

Linux shell基础

环境变量和自定义变量的区别:env环境可以被子进程继承/使用,自定义变量不能被子进程继承/使用。

比如:
在父进程编辑一个变量,去子进程看会显示空白
所以就要用export命令来变为环境变量
环境变量=全域变量 自订变量=区域变量

export:自定变量转成环境变量
举例:

[root@localhost ~]# name=$nameyes
[root@localhost ~]# name="$name"yes
[root@localhost ~]# name=${name}yes
[root@localhost ~]# name=asd
[root@localhost ~]# bash   \\进入子程序
[root@localhost ~]# echo $name

[root@localhost ~]# exit   \\退出子程序
exit
[root@localhost ~]# export name
[root@localhost ~]# bash
[root@localhost ~]# echo $name
asd
[root@localhost ~]# exit
exit
  • echo $? 来查看上次命令是否正确(0为正确非0为错误)
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# echo $?
0
[root@localhost ~]# asd
bash: asd: 未找到命令...
[root@localhost ~]# echo $?
127
  • 变量的有效范围:
    被 export 后的变量,我们可以称他为“环境变量”!环境变量可以被子程序所引用,但是其他的自订变量内容就不会存在于子程序中。

二.shell变量的功能

  • 变量内容的删除与取代
    先让小写的path自定设置的与PATH内容相同
[root@localhost ~]# path=${PATH}
[root@localhost ~]# echo ${path}
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin

假设我不喜欢local/bin,所以将前1个目录删除掉

[root@localhost ~]# echo ${path#/*local/bin:}
/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin

将path的变量内容sbin取代大写SBIN

[root@localhost ~]# echo ${path/sbin/SBIN}
/usr/local/bin:/usr/local/SBIN:/usr/bin:/usr/sbin:/bin:/sbin:/root/bin

#:符合取代文字的“最短的”那一个
##:符合取代文字的“最长的”那一个

Linux shell基础

  • 变量的测试与内容替换

1.测试一下是否存在username这个变量,若不存在给予username内容为root

[root@localhost ~]# echo ${username}

[root@localhost ~]# username=${username-root}
[root@localhost ~]# echo ${username}
root

2.若username未设置或为空字串,则将username内容设置为root

[root@localhost ~]# username=""
[root@localhost ~]# username=${username-root}
[root@localhost ~]# echo ${username}

[root@localhost ~]# username=${username:-root}
[root@localhost ~]# echo ${username}
root

Linux shell基础

取消变量

[root@localhost ~]# name=$aaa
[root@localhost ~]# unset $aaa

取消变量的方法为使用 unset:“unset 变量名称”例如取消 myname 的设置

相关内容

热门资讯

人民日报刊文:扫码用餐 吃得“... 河南信阳推进公务接待改革扫码用餐 吃得“明白”(厉行节约 反对浪费)本报记者 王乐文 毕京津《人民日...
活动回顾:心灵律动·刚柔共生 心灵律动 - 活动回顾 - “五一”期间, 东莞市工人文化宫连续举办了两场 “心灵律动·刚柔共生”心...
商业航天政策利好 全国首个卫星... 来源:21世纪经济报道 21世纪经济报道记者周慧 5月6日,工业和信息化部官网消息称,工业和信息化部...
伊朗确认前往美国参加世界杯:将... 当地时间5月6日,伊朗国家足球队主教练在接受采访时表示,伊朗国家足球队将于美加墨世界杯开始前14天抵...
雷达、机库、营房、燃料库、飞机... 据《华盛顿邮报》5月6日报道,通过卫星影像分析发现,自2月28日战事爆发以来,伊朗空袭已在中东美军军...
从买买买到租租租,“租用一代”... “五一”假期还在路上,年轻人已经“租”起来了。 “租三天,不到300块钱。”五一放假前一周,清清已给...
【品牌】摩托罗拉大折叠屏新机定... 此前联想预热将于5月19日19点举行联想天禧AI一体多端全场景新品超能之夜活动,届时将带来多款新品,...
常州欣隽益取得接线端子用快速冲... 国家知识产权局信息显示,常州欣隽益科技有限公司取得一项名为“接线端子用快速冲切装置”的专利,授权公告...
美媒:特朗普在结束伊朗战争问题... 据“国会山”网站5月6日报道,周二晚间,美国总统特朗普突然宣布终止旨在打破伊朗对霍尔木兹海峡掌控的军...
和创硅材料取得熔融石英制品擦洗... 国家知识产权局信息显示,东海县和创硅材料有限公司取得一项名为“一种熔融石英制品的擦洗脱泥装置”的专利...