linux -- shell 基础

     linux -- shell基础

    

一、概述

  1、shell 功能

    

  2、shell 分类

    

二、脚本执行方式

  1、echo

      

    

    

    

三、bash 基本功能

  1、历史命令

    配置文件:/etc/profile

    命令格式:history [options] file 

         - c :清空历史命令

         - w :把缓存中的历史命令写入历史保存文件 ~/.bash_history

  2、别名设置

    配置文件:/root/.bashrc

    命令格式:

         设置别名:alias 别名=‘原命令’(不可有空格存在)

         查询别名:alias

         删除别名:unalias

  3、快捷键

    

 

  3、输入 输出 重定向

    概念理解:

      键盘     -- /dev/stdin -- 0 -- 标准输入

      显示器  -- /dev/sdtout -- 1 -- 标准输出

      显示器  -- /dev/sdterr -- 2 -- 标准错误输出

    输出重定向

      标准输出重定向:

        覆盖:命令 > 文件

        追加:命令 >> 文件

      标准错误输出重定向:

        覆盖:错误命令 2> 文件

        追加:错误命令 2>> 文件

      正确输出与错误输出同时保存:

        覆盖:命令 > 文件1 2> 文件2

        追加:命令 >> 文件1 2>> 文件2

      # &>/dev/null(黑洞,垃圾箱)

    输入重定向:

      

  4、多命令顺序执行 与 管道符

    多命令: (;) (||)(&&)

      

      

      

    管道符: (|)

      命令1  |  命令2  # 命令1 的正确输出作为命令2 的操作对象

      grep:

        grep  [options]  “搜索内容”  文件名

          [options]

          - i :忽略大小写

          - v:反转输出结果  example:grep -v "#"  grep -v "^$"

          - c:相当于将其传递给 wc 程序

          - n:显示行号,多用于编译时使用

          - w:精确匹配

          - r:在目录里面递归搜索

          - A,B,C:

          --color=auto :搜索出的关键字用颜色显示

      example:

        

  5、通配符 与 其他特殊符号

    通配符:

      ?    匹配任意一个字符

      *  匹配任何内容

      []  匹配括号中的任意一个字符

      [-]   匹配中括号钟任意一个字符,- 代表范围

      #  注释

      $  用于调用变量的值

      \   转义符,在跟 \ 之后的特殊符号将失去特殊含义,变为普通字符

      [^]      逻辑非,表示匹配不是中括号内的一个字符。

    其他特殊符号:

      ’ ’      在单引号中所有的特殊符号都没有特殊含义

      “ ”     在双引号中特殊符号都没有特殊含义

          但是“$”(调用变量的值)、“ ' ”(引用命令)、“\”(转意符)是例外

          

      $()  和反引号作用一样,用来引用系统命令

          

四、bash 变量(重难点)

  

  1、用户自定义变量

    1)、什么是变量

      变量是计算机内存的单元,其中存放的值是可以改变的。

    2)、变量设置规则

      可以由字母,数字,下划线组成,但是不能以数字开头

      变量的默认类型都是字符串型。

      变量要用等号连接值,等号左右两侧不能有空格

      变量的值如果有空格,需要使用单引号或者双引号包括

      变量的值中,可以使用 “\” 转义符

      可以把命令的结果作为变量值赋予变量,则需要使用 反引号 $() 包含命令

      如果是把命令的结果作为变量值,那么可以进行变量值得叠加。不过变量需要用 “$变量名”${变量名} 包含

      环境变量名建议大写,便于区分

    3)、变量分类(背)

      用户自定义变量:自由定义(只要符合规则)

      环境变量:这种变量中主要保存的是和操作系统环境相关的数据

      预定义变量:是 Bash 中已经定义好的变量,变量名不能自定义,变量作用也是固定的

      位置参数变量:这种变量主要是用来向脚本当中传递参数(严格来说是预定义变量中的一种)

    4)、设置:变量名=变量值

    5)、调用:echo

    6)、变量查看:set

    7)、变量删除:unset name

  2、环境变量

    1、定义:

      用户自定义变量只是在当前的 shell 中生效,而环境变量会在当前 shell 和这个 shell 的所有子 shell 的所有子 shell 当中生效

      如果把环境变量写入相应的配置文件,那么这个环境变量就会在所有的 shell 中生效

    2、设置环境变量

      概述:   环境变量,对于所有的环境都会影响

      export:  export 申明为全局变量

      env:                   

      unset:           

      pstree:进程树

    3、系统常见环境变量

      PATH:

        系统查找命令的路径

        

        example(临时生效)

          (并不习惯如此)

          使用变量叠加的方式,把自己存放脚本的位置添加到环境变量当中

      PS1:

        定义系统提示符的变量

        

        

 

  3、位置参数变量

    

    

    

    

    

    ($* 和 $@ 的区别)

  4、预定义变量

    

    

  # 接收键盘输入

    

    - p: “ 提示信息 ”,在等待 read 输入时,输出提示信息

    - t : “ 秒数 ”,read命令会一直等待用户输入,使用此选项可以指定等待时间

    - n: “ 字符数 ”,read命令只接受指定的字符数,就会执行

    - s: “ 隐藏 ”, 隐藏输入的数据,适用于机密信息的输入

    

五、bash 运算符

  1、数值运算 与 运算符

    1)、linux 默认的变量是 字符串类型(integer)

      

    2)、declare 声明变量类型

      

  2、变量测试 与 内容替换

      

六、环境变量配置文件

  1、环境变量配置文件简介

    source命令:

    定义:

    类型:

  2、环境变量配置文件作用

 

 

 

 

 

 

 

    

 

posted @ 2017-10-19 19:17  unetwork007  阅读(266)  评论(0编辑  收藏  举报