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.www58058.com/75836

(0)
kangkang
上一篇 2015-04-15 20:27
下一篇 2015-04-16 14:35

相關推薦

  • 系統管理之磁盤管理(一)

    磁盤結構 一.概論 1.操作系統的組成部分: 硬件: 根據馮諾依曼體系,計算機的組成:    運算,控制器:cpu    存儲器:主存(ram);       io設備:      &nbs…

    Linux干貨 2016-08-30
  • Linux磁盤管理 and 文件系統管理

     磁盤管理     主要有以下幾部分:        磁盤結構        分區類型        管理分區        管理文件系統     &…

    Linux干貨 2016-09-01
  • N26-第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; grep ‘^[[:space:]]\+’ /boot/grub2/grub.cfg 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后面跟至少一個空白字符,而后又有至少一個非空白字符的行; grep ‘^#[[:space:]]\+’ /etc/rc.d/rc.…

    Linux干貨 2017-03-06
  • 學習shell scripts

    1. 為什么要學習shell編程?          許多人會問,為什么要學習shell腳本編程?我學的是linux,又不是編程,其實對于個人用戶可能用處不是很大,但是當你在為公司的成千上完的服務器做維護時,可能沒有shell編程的話可能把人累死也無法完成任務,一千臺服務器要做相…

    Linux干貨 2016-08-18
  • 馬哥教育網絡班22期+第四周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -rf /etc/skel/ /home/tuser1 [root@localhost ~]# chmod&…

    Linux干貨 2016-09-19
  • CentOS 6開機啟動流程理論篇

    CentOS 6開機啟動流程理論篇 centos 系統的啟動流程 grub 破壞Linux的核心文件再修復體驗系統啟動流程 概述 任 何系統啟動的第一步必然是加電,然后計算機硬件會主動地讀取BIOS來加載硬件設備信息并檢測,之后系統會主動地讀取第一個有引導程序的設備,該引導程序 (grub)可以指定使用哪個內核來啟動,并將其加載至內存當中運行,同時內核還要加…

    Linux干貨 2016-09-19
欧美性久久久久