【Linux操作系统系列六】shell

一、变量

(一)变量的显示与设置:echo,unset

  • 变量的显示:echo
echo $变量名
  • 取消变量:unset
unset 变量名

(二)变量的设置规则

  • 等号两边不能直接接空格符
  • 变量名称只能是英文字母与数字,但是开头字符不能是数字
  • 变量内容若有空格符可使用双引号或单引号将变量内容结合起来,但是双引号内的特殊字符如$等,可以保持原本的特性,单引号的特殊字符则仅为一般字符(纯文本)
  • 可用转义字符“\”将特殊符号变成一般字符
    在一串命令中,还需要通过其它的命令提供的信息,可以使用反单引号“`命令`”或“$(命令)”
  • 若该变量为了增加变量内容时,则可用“$变量名称”或“${变量}”累加内容
  • 若该变量需要在其它子进程进行,则需要以export来使变量变成环境变量

(三)环境变量

  • 查看环境变量:env
env
  • 自定义变量转成环境变量:export
export 变量名称

(四)影响显示结果的语系变量:locale

  • 查看Linux支持的语言
[root@localhost ~]# locale -a
...
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
...
  • 查看当前设置的语言
[root@localhost ~]# locale 
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

(五)变量键盘读取、数组与声明:read,array,declare

  • 读取来自键盘输入的命令:read
read [-pt] 变量名
参数:
-p:后面可以接提示符
-t:后面可以接等待的“秒数”,不会一直等待用户。

范例一:读取用户输入的内容存入到变量atest中
[root@localhost ~]# read atest 
hello world
[root@localhost ~]# echo $atest
hello world

范例二:提示用户30秒内输入自己的姓名,将姓名存入到name变量中
[root@localhost ~]# read -p "请输入姓名" -t 30 name
请输入姓名张三
[root@localhost ~]# echo $name
张三
  • 声明变量的类型:declare/typeset
declare [-aixr] 变量名
参数:
-a:将变量定义为数组类型
-i:将变量定义为整数数字类型
-x:将变量变成环境变量
-r:将变量设置成只读,该变量不可被更改内容,也不能重设,要注销再登录才能复原该变量的类型。

范例一:让变量sum进行100+200+300累加结果
[root@localhost ~]# declare -i sum=100+200+300
[root@localhost ~]# echo $sum
600

范例二:将sum变成环境变量
[root@localhost ~]# declare -x sum
[root@localhost ~]# export | grep sum
declare -ix sum="600"

范例三:让sum变成只读属性,不可变动
[root@localhost ~]# declare -r sum
[root@localhost ~]# sum=666
-bash: sum: readonly variable

范例四:让sum变成非环境变量的自定义变量
[root@localhost ~]# declare +x sum
[root@localhost ~]# declare -p sum
declare -ir sum="600"
  • 数组
[root@localhost ~]# var[1]="haha"
[root@localhost ~]# var[2]="hehe"
[root@localhost ~]# var[3]="xixi"
[root@localhost ~]# echo "${var[1]},${var[2]},${var[3]}"
haha,hehe,xixi

(六)变量的替换

在这里插入图片描述

二、 bash的环境配置文件

  • /etc/profile:这是系统整体的设置,最好不要修改这个文件
  • ~/.bash_profile或~/.bash_login或~/.profile:属于用户个人设置,要改自己的数据就写入这里。只会读取三个文件中其中的一个,读取的顺序是依照上面的顺序。
  • 最终读取的配置文件是~/.bashrc文件,也可以将个人数据设置在这个文件
  • source:读入环境配置文件的命令

三、数据流重定向

(一)特殊符号

  1. 标准输入:代码为0,使用<或<<
  2. 标准输出:代码为1,使用>或>>
  3. 标准错误输出:代码为2,使用2>或2>>
  4. 符号>代表以覆盖的方式输出
  5. 符号>>代表以累加的方式输出

(二)/dev/null垃圾桶黑洞设备与特殊写法

  • /dev/null可以吃掉任何导向这个设备的信息,既不显示也不存储。
范例一:将错误的数据丢弃,屏幕上显示正确的数据
[dev@localhost root]$ find /home -name .bashrc 2> /dev/null
/home/dev/.bashrc
  • 将正确与错误数据写入同一个文件
范例:将命令的数据全部写入名为list的文件中,以下两种写法都可以
[dev@localhost ~]$ find /home -name .bashrc > list 2>&1
[dev@localhost ~]$ find /home -name .bashrc &> list
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值