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

相关文章
相关标签/搜索