bash

bash 配置文件

  生效范围划分:存在两类;

    全局配置:   

        /etc/profile

           /etc/profile.d/*.sh

     个人配置;

        ~/. bash_profile

        ~/.bsahrc

按功能划分,存在两类;

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

            全局:/etc/profile,/etc/profile.d/*.sh

            个人:~/.bash_profile

            功用:

               1)用于定义环境变量

                2)运行命令或脚本;

          

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

            全局:/etc/bashrc

             个人:~/.bashrc

                功用:

                  1)定义命令别名

                   2)定义本地变量

   shell登录

       交互式登录:

             直接通过终端输入账号密码登录;

              使用su – UserName”或”su -l UserName”切换的用户

        非交互式登录;

              su UserName

               图形界面下打开的终端

               执行脚本

         ~/.bashrc – -> /etc/bashrc – -> /etc/profile.d/*.sh

     编辑配置文件定义的新配置的生效方式;

 bash中的算术运算

   +*/%

实现算术运算;

          1let var=算术表达式

 

          2var=$(算术表达式)

 

          3var=$((算术表达式))

 

          4var=$(expr ar)   

      乘法符号有些场景中需要转义:

      bash有内建的随机数生成器:$RANDOM

增强型赋值:

  +=-=*=/=,%=

 let varOPERvalue

        例如:let count+=1

自增,自减

     let var+=1

     let var++

     let var-=1

      let var–

条件测试

判断需求是否满足,需要由测试机制来实现

Note:专用的测试表达式需要由测试命令辅助完成测试过程

 

测试命令:

test EXPRESSION

[EXPRESSION]

[[EXPRESSION]]

Note:EXPRESSION前后必须有空白字符

bash的测试类型

数值测试

-get: 是否大于

-ge:  是否大于等于

-eq: 是否等于;

-ne: 是否不等于

-lt:  是否小于

-le:  是否小于等于;

字符串测试

==:是否等于

 >:  是否大于

 <:  是否小于

 l=:  是否不等于;

~=:左侧字符串是否能被右侧的PATTERN所匹配

 -z “SIRING”;测试字符串不否为空,空则为真,不空则为假;

 -n”SIRING”, 测试字符串是否不空,不空则为真,空则为假;

 Note:用于字符串比较时的用到的操作数都应该使用引号;

bash自定义退出状态码

  exit [n]:自定义退出状态码

注意:脚本中一旦遇到exit命令,脚本会立即终止,终止退出状态取决给于exit命令后面的数字;

注意:如果未给脚本指定退出状态码,整个脚本的退出状态码取决于脚本中执行的最后一条命令的状态码

let let命令Shell内建命令 let命令是bash中用于计算的工具,提供常用运算符还提供了方幂**运算符。在变量的房屋计算中不需要加上$来表示变量,如果表达式的值是非0,那么返回的状态值是0;否则,返回的状态值是1

bash运算        

1let var=算术表达式

[root@localhost ~]# num1=3
[root@localhost ~]# num2=20
[root@localhost ~]# let var=num1+num2
[root@localhost ~]# echo $var 

2var=$(算术表达式)

[root@localhost ~]# let var=$num1+$num2
[root@localhost ~]# echo $var
23

(3)var=$((算术表达式))

[root@localhost ~]# echo $(($sum1+$sum2))
32

(4)var=$(expr ar)

[root@localhost ~]# mu12=$(expr $num1 \* $num2)
[root@localhost ~]# echo $mu12
60

增强型赋值  自增

[root@localhost ~]# echo $count
1
[root@localhost ~]# count=$[$count+1]
[root@localhost ~]# echo $count
2
[root@localhost ~]# count=$[$count+1]
[root@localhost ~]# echo $count
3
[root@localhost ~]# count=$[$count+1]
[root@localhost ~]# echo $count
4

bash的基础特性:

globbing:文件名通配(整体文件名匹配,而非部分)

匹配模式:元字符

*:匹配任意长度的任意字符

pa*, *pa*, *pa, *p*a*

pa, paa, passwd

?:匹配任意单个字符

pa?, ??pa, p?a, p?a?

pa, paa, passwd

[]:匹配指定范围内的任意单个字符

有几种特殊格式:

[a-z], [A-Z], [0-9], [a-z0-9]

[[:upper:]]:所有大写字母

[[:lower:]]:所有小写字母

[[:alpha:]]:所有字母

[[:digit:]]:所有数字

[[:alnum:]]:所有的字母和数字

[[:space:]]:所有空白字符

[[:punct:]]:所有标点符号

 

pa[0-9][0-9], 2[0-9][0-9]

[^]:匹配指定范围外的任意单个字符

[^[:upper:]]

[^0-9]

[^[:alnum:]]

原创文章,作者:kang,如若转载,请注明出处:http://www.178linux.com/75836

(0)
kangkang
上一篇 2015-04-15
下一篇 2015-04-16

相关推荐

  • RAID 0 软件实现

    RAID 0 软件实现        RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行…

    Linux干货 2017-05-02
  • 第七周作业

    1、简述linux操作系统启动流程 CentOS 启动流程图: 通电自检 power on system test(POST)–> BIOS –> 主机加电以后会将各个部件运转起来,然后通过COMS上的软件程序BIOS(Basic Input Output System)检测每个设备cpu、内存、硬盘进行故障检查并进行硬件…

    2018-02-07
  • LVM逻辑卷&RAID管理&磁盘配置详解

    LVM逻辑卷管理 应用场景:想象一下,你通过传统的硬盘分区方式为某些用户提供了一块磁盘,随着用户数据的不断增加,分区的容量告急。这时要增加容量,只能选择用另一块容量更大的硬盘或分区来替换,在这个过程中,你需要将数据先拷贝至新设备,拷贝完成之后,再用新设备替换容量告罄的设备。假设你很有耐心并且整个数据的拷贝过程是顺顺利利的,你也需要考虑靠背后文件的权限变化、替…

    Linux干货 2016-09-02
  • N25期–第十周作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 启动过程 (PC架构)    POST –> Boot Sequence(BIOS) –> Boot Loader (MBR)–>GRUB—> Kernel(ramdisk) –> ro…

    Linux干货 2017-03-13
  • linux基础学习-(磁盘管理、分区挂载、SWAP)

    1、磁盘结构 2、分区类型 3、管理分区、文件系统以及挂载设备 4、管理虚拟内存SWAP 一、磁盘结构(机械硬盘) CHS寻址模式将硬盘划分为磁头(Heads)、柱面(Cylinder)、扇区(Sector)。 heads:磁头 tracks:磁道 cylinder: 柱面 sector: 扇区,512bytes(最小的存储单位) 1、其中:每个盘面…

    Linux干货 2016-09-01
  • 【26期】Linux第九周学习小总结

    本周带来的是慢慢的技术分享,有关于计划任务的分享,涉及的知识点主要是at和cron,crontab的详解,计划任务可以将任何脚本、程序或文档安排在某个最方便的时间运行,有利于我们的自动化运维,当某项任务多次重复,或者某个指定的时间点多次执行时,就可以使用计划任务方便我们的工作。

    2017-09-09