bash的基本特性

    shell能够提供给用户操作系统的一个接口,能够将我们输入的命令与内核通信,好让内核可以控制硬件来正确无误的工作。shell中有很多中形式,比如bshell,CShell,KShell,TCSH等等,通过/etc/shells中文件可以查看当前系统中存在的shell形式。当我们进行用户登录时,系统会自动检查/etc/passwd目录下的文件,取得当前系统中当前用户使用的shell形式。

    bshell中的特性:

     1、命令补全

     2. 命令历史
     查看命令历史:history
                             -c:清空命令历史
                             -d OFFSET [n]: 删除指定位置的命令
                            -w:保存命令历史至历史文件中

    3.命令别名
        alias CMDALIAS='COMMAND [options] [arguments]'
        在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程;

        ualias CMDALIAS
    4、命令行编辑

   光标跳转:
   Ctrl+a:跳到命令行首
   Ctrl+e:跳到命令行尾
   Ctrl+u: 删除光标至命令行首的内容
   Ctrl+k: 删除光标至命令行尾的内容
   Ctrl+l: 清屏2、管道、重定向

   bash支持的引号:
  ``: 命令替换
   "": 弱引用,可以实现变量替换
   '': 强引用,不完成变量替换

   5、文件名通配, globbing
   *: 任意长度的任意字符
   ?:任意单个字符
   []:匹配指定范围内的任意单个字符
    [abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]
    [:space:]:空白字符
    [:punct:]:标点符号
    [:lower:]:小写字母
    [:upper:]: 大写字母
    [:alpha:]: 大小写字母
    [:digit:]: 数字
    [:alnum:]: 数字和大小写字母
    # man 7 glob
   [^]: 匹配指定范围之外的任意单个字符

   [[:alpha:]]*[[:space:]]*[^[:alpha:]]
  6、变量

    主要分为环境变量、本地变量、位置变量、特殊变量。

    本地变量: set VARNAME=VALUE:作用域为整个bash进程。

    局部变量:local VARNAME=VALUE 作用域为当前代码段

    环境变量: 作用域为当前shell进程及其子进程;

    export VARNAME=VALUE

    VARNAME=VALUE

    export VARNAME "导出"

    特殊变量$?:上一个命令的执行状态返回值

    程序执行可能有两类返回值:程序执行结果,程序状态返回代码(0-255) 0:正确执行 1-255:错误执行,其中1,2,127系统预留。

    与变量相关的操作命令有:

    查看系统中所有变量(含环境变量和自定义变量):set

    撤销变量: unset VARNAME

    查看当前shell中的环境变量:printenv、env、export
  7、编程 ..............

补充对shell的认识

    1.变量的显示与取消    echo    unset

    2.命令的运行顺序

        1.以相对/绝对路径执行命令

        2.由alias找到该命令来执行

        3.由bash内置的命令来执行

        4.通过$PATH这个变量的顺序找到第一个命令执行

     3.bash的登陆与欢迎信息

        \d :本地终端的日期

        \l:显示第几个终端接口

        \m:显示硬件的等级

        \n :显示主机的网络名称

        \o :显示domain name

        /etc/issue  :登陆信息

        /etc/motd :欢迎信息

    4.login 与no-login shell

    login shell:取得bash时需要完整的登录流程,就称为login shell。举例来说,由tty1~tty6登陆,需要输入用户的账号和密码。。

    no-login shell:取得bash接口的方法不需要重复登陆的举动。

    全局配置:/etc/profile,/etc/profile.d/*.sh,/etc/bashrc

    个人配置:~/.bash_profile,~/.bashrc

    profile类的文件:

                设定环境变量

                运行命令或脚本

    bashrc类的文件

                设定本地变量

                定义命令别名

登陆式shell读取配置文件的方式:

    /etc/profile--->/etc/profile.d/*.sh--->~/.bash_profile----> ~/.bashrc --> /etc/bashrc

 非登录式shell读取配置文件的方式:

    ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

    

你可能感兴趣的:(bash的基本特性)