1. shell是什么?

    1)shell是一个命令解释器,用于用户和计算机linux系统之间的交互

    2)shell是一种编程语言,由若干bash命令组成,并支持特定语法,比如逻辑判断、循环等结构,函数等

    3)每个用户都可以有自己的shell,如zsh,ksh等,centos7默认shell是bash 

  2. 命令历史

     命令历史命令:history

     命令历史文件:~/.bash_history,历史命令保存在该文件中

     永久保存历史命令:chattr  +a   ~/.bash_history

   1)显示执行过的历史命令

        # history        或

        # cat  ~/.bash_history

   2)命令历史的环境变量

        HISTSIZE                         默认值1000,内存中命令缓存的数量;一般在/etc/profile环境变量配置文件中配置才能永久生效

        HISTFILE                   指定记录历史命令的文件

        HISTTIMEFORMAT          定义历史命令的格式

   3)执行命令历史中的命令       

          # !n(中间没空格)            执行命令历史中的第n条命令

          # !-n                                  执行倒数第n条命令

          # !!                                  执行上一条命令

         #  !str                                 执行以str开头的命令   

  3. 命令补全和命令别名

   1)命令补全:tab键敲一下 ,敲两下显示所有相关的命令

        参数补全:必须安装bash-completion包

   2)命令别名:alias命令,给命令重新起一个简洁容易记的名字

                         unalias命令,取消命令别名

   3)命令别名存放的配置文件

        alias命令是临时生效的,要是alias命令永久生效,必须存放到对应的环境变量配置文件中

        某个用户的命令别名配置文件:~/.bashrc

        所有用户的命令别名配置文件:/etc/profile.d目录下的文件

  4. 通配符

     *        任意长度的任意字符

     ?      任意单个字符

    [ ]       指定范围内的任意单个字符

              如:[abc]         表示abc中的任意一个字符

                  [0-9]         表示0到9中的任意一个字符

    { }       指定范围内的任意单个字符

              如:{1,2,3}    表示1 2  3中的任意一个字符

    注意:[a-z]    表示所有英文字符,不区分大小写

  5. 输入输出重定向

     >             输出重定向

     >>          追加输出重定向

     2>           错误输出重定向

     2>>        错误追加输出重定向

     <            标准输入重定向

     举例:正确和错误都输出到a.txt    即&>>a.txt

               正确输出到1.txt   错误输出到a.txt     即 >1.txt  2>a.txt

           shell基础知识-1_第1张图片

   6. 管道符和作业控制

      管道符| : 把前面命令的输出结果作为后面命令的标准输入

      作业控制:

         ctrl+z                把当前作业放在后台,并暂停

         jobs                  列出当前后台的作业及作业状态

         fg                     把后台作业调到前台,并运行

         bg                    把后台的作业调到后台,并运行

         &                     把当前作业放在后台,并运行

   7. shell变量和环境变量

      环境变量:系统的,如PATH,HOME,PWD,LOGNAME等

      shell变量:用户自定义的        如:a=1

    1)env    查看环境变量

         set     查看环境变量和shell变量

    2)变量名规则:

         字母、数字和下划线,首位不能为数字

    3)变量值

         当变量值有特殊符号时,必须用单引号括起来

    4)定义shell局部变量,只在当前shell中生效

         a=1

    5)定义shell全局变量,在当前shell和子shell中都生效

         export  a=1

    6)取消定义的shell变量

         unset   a

   8. 环境变量配置文件

       /etc/profile             所有用户,用户登陆时执行

      /etc/bashrc              所有用户, 用户不用登陆,执行shell时就生效

      ~/.bash_profile        当前用户的环境变量配置文件

      ~/.bashrc                 当前用户的环境变量配置文件,~/.bash_profile会调用该配置文件

      ~/.bash_history        命令历史的配置文件

      ~/.bash_logout        当前用户退出时生效

      环境变量PS1

         \u        表示当前用户

         \h        表示主机名

         \W       表示当前目录的最后一层目录

         \w        表示当前目录的全路径

         $          命令提示符

         image.png


         /etc/bashrc