【26期】Linux第四周學習小總結

    第四周了,轉眼就學習有關Linux的知識一月了,從開始的懵懵懂懂,到現在的懵懵懂懂,不變的是無邊無際的知識,改變的是一小片迷霧被我們漸漸撥開了一角,學習的枯燥和充實,陪我們走完這安穩的最后學習時光。

    今天分享的是一些我們本周學習的變量方面的東西,那么,什么是變量呢?變量來源于數學,是計算機語言中能儲存計算結果或能表示值抽象概念。在我們的linux中bash 屬于弱類型變量把所有的變量統統視作字符型,對于變量的引用無需事先聲明,相當于把聲明和賦值過程同時實現。

    變量名的命名法則:
        變量名只能包含數字,字母,下劃線,而且不能以數字開頭
        見名知義,命名機制遵循某種法則
        不能使程序中的保留字:例如if, for,else,then,while等等 

    變量的分類:本地變量、環境變量、局部變量,位置參數變量、特殊變量、只讀變量……

    本地變量:本地變量顧名思義,就是本地能夠使用的變量

    【26期】Linux第四周學習小總結

    我們可以看到我們把a賦值為444,通過echo可以打印出變量a的值
    【26期】Linux第四周學習小總結

   我們進入子shell,變量a只是本地的,不能用了,沒有輸出結果,默認為空和直接輸入命令echo一樣,沒有任何值。

    【26期】Linux第四周學習小總結 

    既然可以定義一個變量,那么我們定義了哪些變量了呢?該怎么查看呢?這里就要用到了我們的set查看變量,既顯示本地變量又顯示環境變量!

    【26期】Linux第四周學習小總結

    這里定義的東西太多了,那我們查找時,就可以利用我們的grep配合管道符|來查找我們定義的變量!

    【26期】Linux第四周學習小總結

    既然有了定義和查看,撤銷一個變量也是變得理所當然,unset varname 從內存中刪除該變量的定義,釋放內存空間。

    環境變量,環境變量的范圍非常廣泛,對當前的shell和子shell都有用,我們來看幾個例子:

    【26期】Linux第四周學習小總結

    【26期】Linux第四周學習小總結

    首先我們定義了一個環境變量A為666,我們知道每打開一個shell腳本就相當于進入到了下一級的,只有一些腳本里的本地變量根本沒有必要去清除,因為我們知道變量的作用周期是shell的存活時間,然后運行腳本test,這里我們用了bash,就不用加上權限都可以執行的,結果當然是我們的666,我們還拿了一個本地變量做為例子:

    【26期】Linux第四周學習小總結

    【26期】Linux第四周學習小總結

    本地變量的作用域在腳本中讀不出來,那我們怎么定義、查看、撤銷環境變量呢?

    環境變量賦值:①export name=value②name=value ;export name③name=value; declare -x name
                    注意:②③都可以把本地變量定義為環境變量

    環境變量查看:export,declare -x,env,printenv
                    注意:bash內嵌了很多的環境變量(通常為全大寫字符),用于定義bash的工作環境
                         PATH SHELL USERUIDHOME PWD SHLVL LANG MAIL HOSTNAME HISTSIZE —

    【26期】Linux第四周學習小總結
    可以看出我們定義的A可以被查詢出來! 

    境變量撤銷:unset varname和本地變量的撤銷方法一樣

    【26期】Linux第四周學習小總結

    局部變量:這個知識點還沒有涉及,會在以后的博客里補充

    只讀變量:只讀變量無法重新賦值,且不支持撤銷,存活時間為當前bash的生命周期

                    readonly varname 設置只讀變量
                    declare -r varname 設置只讀變量

                    readonly -p 查看所有的只讀變量

    【26期】Linux第四周學習小總結
    可以看出我們定義了一個只讀的A,然后給A賦值,失敗提示只讀變量,那我們看看我們的只讀變量都有什么

    【26期】Linux第四周學習小總結
    我們的A還在其中,但是如果我們退出當前shell,A就失效了

    【26期】Linux第四周學習小總結

    剛好我們當前處于二級shell,退出當前shell,變量就會失效,我們再次通過readonly -p查詢,也沒有結果A

    而我們看到這里就會想了,我們的shell為什么一開始就有那么多的變量呢?這些變量從來的?開機就定義的?這就要涉及到我們的配置文件方面的知識了,當我們進入登錄時的shell進程時,系統會讀取我們的配置文件,來為系統的運行自動加入一些變量,如果有興趣的可以提前去預習有關bash的配置文件方面的知識。

原創文章,作者:努力!奮斗!,如若轉載,請注明出處:http://www.www58058.com/83761

(0)
努力!奮斗!努力!奮斗!
上一篇 2017-08-05 14:33
下一篇 2017-08-05 15:11

相關推薦

  • N25 – 第二周博客作業

      Linux上的文件管理類命令有哪些,其常用的使用方法及相關示例演示 more: more命令非常簡單,只用more file即可,但是more命令有一個特點,就是翻屏至文件尾部后自動退出 less: less命令就是在使用man時是一樣的,因為man手冊就是調用less來查看的  head: head命令用來查看文件的前#行,#默認為…

    Linux干貨 2016-12-07
  • 磁盤管理

    磁盤管理 本文將按順序以實例演示磁盤管理的所有操作,讓我們開始吧! 一,磁盤的添加 ① 先來查看linux系統總共有幾個磁盤,由圖可知是兩個,分別是sda,sdb。我們再加一個,按照磁盤命名順序,應是sdc,他們都在/dev目錄下。 補充: 1,磁盤命名規則: 不同磁盤,按照a-z依次標識,如sda,sdb,sdc 同一磁盤的不同分區,按照1,2,&#823…

    2017-08-19
  • 初識路由以及小實驗

    路由(routing)就是通過互聯的網絡把信息從源地址傳輸到目的地址的活動。路由發生在OSI網絡參考模型中的第三層即網路層。 初識路由以及小實驗 根據實驗的目的要求畫出實驗拓撲圖 準備實驗環境 根據實驗拓撲圖開始配置 配置計算機的IP: 配置路由器R1和R2的IP 配置路由 實驗目的 實驗準備 實驗步驟 驗證實驗結果 實驗目的 為了更好的了解路由,通過一個小…

    Linux干貨 2016-11-24
  • Nginx基本使用方法及各模塊基本功能

    一、Nginx介紹     Nginx是由俄羅斯軟件工程師Igor Sysoev開發的一個高性能的HTTP和反向代理服務器,具備IMAP/POP3和SMTP服務器功能,Nginx最大的特點是對高并發的支持和高效的負載均衡,在高并發的需求場景下,是Apache服務器不錯的替代品。目前,包括新浪、騰訊等知名網站都已使用Nginx作為Web應用…

    Linux干貨 2016-01-21
  • Linux-文件基本權限及特殊權限詳解

    Linux文件基本權限及特殊權限詳解 背景 Linux文件基本權限和特殊權限對于初學者很少煩惱,各種無法理解,所以在學到這一節時,將自己學到的以及自己的理解寫出來以檢查自己對這個部分的掌握情況。 什么是權限 在Linux里一切皆文件,所謂的權限就是用戶對文件(目錄也是以個文件)的操作范圍,對文件的操作包括讀、寫和執行,用戶對文件有不同的權限就能做相應的操作?!?/p>

    Linux干貨 2017-07-22
  • history命令詳解,銘記歷史,圓夢中華。

        銘記歷史,圓夢中華。在Linux操作系統中,對于管理員操作的命令進行查詢也是非常重要,而且熟練掌握調用命令歷史能提高管理員管理系統的效率。     history的命令緩存數目是由一個在/etc/profile文件名為HISTSIZE的變量決定,可以通過env命令查看當前設定的數目,也可以通…

    Linux干貨 2016-07-26
欧美性久久久久