4.2bash特權及其用法

bash環境:
shell:外殼  做爲操做系統自己的shell,是用戶跟機器交互的接口,把用戶指望執行的命令提交給內核,讓內核把
它啓動起來,並做爲一個進程進行調度   
bash是一個解釋器shell

    編譯器:
    解釋器:在命令行輸入一條命令後,解釋器要對此命令或語句作出解釋
        解釋:可以理解用戶輸入指令的意義
            詞法分析:按照空格做爲分隔符,切割成n個片斷以後,做爲命令解釋器它必須得知道哪一個是命令,哪一個是選項、哪一個是參數。。。?
            語法分析
            語義分析編程

        條件判斷:選擇分支
        循環bash

    過程式編程語言:執行方式通常爲
        順序執行
        選擇執行
        循環執行編程語言

    解釋器:提供了編程環境函數

    腳本:使用bash提供控制機制,將指望執行的命令羅列於文本文件中;
        bash沒有庫,整個程序幾乎都要依賴於系統命令來完成;操作系統

    編譯型:
        源程序(文本文件)--> 預處理 --> 編譯 --> 彙編 --> 連接 命令行

        靜態語言接口

    解釋型:
        源程序(文本文件)--> 解析器去讀取並執行進程

        動態語言內存

    bash的重要特性:變量(內存空間)

        bash變量類別:
            本地變量:只對當前shell進程有效的變量;對其它shell進程無效,包括當前shell進程的子進程;
                 init進程:初始化系統進程,全部的進程都是其fork而來
                VAR_NAME=VALUE
                變量賦值:向變量的存儲空間保存數據
                變量引用:${VAR_NAME}
                    "":弱引用,裏面的變量會被替換;
                    '':強引用,裏面的全部字符都是字面量,直接輸出,不會作任何替換的;

            環境變量:對當前shell進程及其子shell有效,對其它的shell進程無效;
                定義:export VAR_NAME=VALUE
                導出變量:export VAR_NAME

                用戶可自義環境變量
                bash有許多內置的環境變量

                撤消變量:unset VAR_NAME
    NAME
       unset - unset values and attributes of variables and functions

SYNOPSIS
       unset [-fv] name ...

DESCRIPTION
       Each variable or function specified by name shall be unset.           
                只讀變量:readonly VAR_NAME
NAME
       readonly - set the readonly attribute for variables

SYNOPSIS
       readonly name[=word]...

       readonly -p

DESCRIPTION
       The variables whose names are specified shall be given the readonly attribute. The values  of  variables  with  the  readonly
       attribute cannot be changed by subsequent assignment, nor can those variables be unset by the unset utility. If the name of a
       variable is followed by = word, then the value of that variable shall be set to word.
            局部變量:
                對shell腳本中某代碼片段有效;一般用於函數本地;函數調用結束,值消失
                local VAR_NAME=VALUE

            位置變量:
                $1, $2, ..., ${10}

            特殊變量:
                $?

    查看當前shell進程中的全部變量:set
    查看當前shell進程中的全部環境變量: printenv, env         export

    變量命名:
        一、不能使用程序中的關鍵字(保留字);
            if, case, for
        二、只能使用數字、字母和下劃線,且不能以數字開頭;
        三、要見名知義
            userName

    變量類型:
        name=Jerry
            一、存儲機制  文本和二進制格式
            二、存儲空間
            三、參與的運算方式

        變量類型:
            數值型:
                精確數值:整數
                近似數值:浮點型
                    單精度浮點
                    雙精度浮點
            字符型:
                char
                string
            布爾型:
                true, false

        類型轉換:
            顯式轉換
            隱式轉換

        bash是弱類型的語言:一切皆字符


    18:0001 0010  二進制數
    18: 1, 8
        ASCII: 128經常使用字符
            000 0001 a
            000 0010 a

bash的配置文件:
   
    profile類:爲交互式登陸的用戶提供配置
        全局:
            /etc/profile
            /etc/profile.d/*.sh
        用戶:
            ~/.bash_profile

        功用:
            一、設定環境變量
            二、運行命令或腳本

    bashrc類:爲非交互式的用戶提供配置
        全局:
            /etc/bashrc
        用戶:
            ~/.bashrc

        功用:
            一、設定本地變量
            二、定義命令別名

    登陸類型:
        交互式:
            直接經過終端輸入帳號和密碼登陸;
            使用su -l USERNAME 或 su - USERNAME;

        非交互式:
            su USERNAME
            圖形界面下打開的終端
            執行腳本

    經過編輯配置文件修改的配置生效?
        一、退出並從新登陸;
        二、讓bash重讀此配置文件;
            . FILE
            source FILE

    交互登陸的用戶:
        /etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

    非交互登陸的用戶:         ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

相關文章
相關標籤/搜索