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
下一篇 2015-04-16

相關推薦

  • Http協議中的各種長度限制總結

    HTTP1.0的格式 request(HTTP請求消息)結構:一個請求行.部分消息頭,以及實體內容,其中的一些消息內容都是可選擇的.消息頭和實體內容之間要用空行分開. GET /index.html HTTP/1.1 //請求頭,下面都是消息頭.Accept: */*Accept-Languang:en-usConnection:keep-aliveHost…

    Linux干貨 2015-04-04
  • N29第一周作業:初識Linux系統

    1、描述計算機的組成及其功能。
    2、按系列羅列Linux的發行版,并描述不同發行版之間的聯系與區別。
    3、描述Linux的哲學思想,并按照自己的理解對其進行解釋性描述。
    4、說明Linux系統上命令的使用格式;詳細介紹ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相應的示例來闡述。
    5、如何在Linux系統上獲取命令的幫助信息,請詳細列出,并描述man文檔的章節是如何劃分的。
    6、請羅列Linux發行版的基礎目錄名稱命名法則及功用規定

    2018-03-04
  • 在Centos7上源碼編譯httpd

    在Centos7上源碼編譯httpd 安裝源碼包 首先在http://httpd.apache.org下載所需要的安裝包 小編在這里下載的是httpd-2.4.27.tar apr-1.6.2.tar apr-util-1.6.0.tar 首先編譯安裝apr-1.6.2.tar.gz #1 tar -zxf apr-1.6.2.tar.gz #先解壓安裝包 …

    2017-08-21
  • inode總結

    inode的介紹以及影響inode號的命令

    2017-11-27
  • linux 網絡管理命令 SS的使用詳則

    SS命令 ss命令用來顯示處于活動狀態的套接字信息,ss迷路可以用來獲取socket統計信息,它可以顯示和netstat類似的內容。但ss的優勢在于它能夠顯示更多更詳細的有關TCO和連接狀態信息,而且比netstat更快速更高效。 當服務器的socket連接數量變得非常大時,無論是使用netest命令還是直接  cat/proc/net/tcp 。…

    2017-08-19
欧美性久久久久