您的位置:首页 > 运维架构 > Shell

bash的一些基础特性(复习)

2018-04-03 23:42 387 查看
(一)bash的基础特性:
           1.命令历史:history
                        -d:删除历史中指定的命令
                        -c:清空历史
                        history #:显示历史中最近的#条命令
            2.调用历史命令:
                         !#:重复执行第#条指令
                         !!:上一条命令
                         !name:调用历史中最近一个以name开头的命令
                         ctrl+p:上一条命令
           修改环境变量值的方式:export     
                    如:export HUSTCONTROL="ignoredups"
                            

 
                     如:export name="值”
3.命令,路径补全:按TAP,不是唯一时,再按一次TAP,出现补全列表
4.命令行展开:
                    ~:展开为user的主目录
                    ~USERNAME:展开为指定user的主目录
                     {}:课承载一个一逗号分隔的列表,并将其展开为多个路径
            比如:创建/tmp目录下的:a_c, a_d, b_c, b_d目录,a_c目录下的a_c, a_d, b_c, b_d文件。
         




(二)bash的基础特性:             1.命令别名:alias


alias NAME="VALUE"     :定义别名name,相当于执行命令valuenote:定义别名,仅对当前shell进程有效。如果想永久有效,要定义配置文件。           仅对当前user:~/.bashrc           对所有用户有效:/etc/bashrc                  撤销别名:unalias                                        unalias [-a] name [mame.....]                                          note:如果别名同原命令的名称,则要执行原命令可使用“\COMMAND”         2.glob(globbing)bash中实现文件名“通配”                         *:任意长度的任意字符,如:a*b:ab,a123b,a12b(a开头,b结尾)                         ?:任意单个字符,如a?b:a和b之间只有一个字符,a??b:a和b之间只有两个字符                         [   ]:匹配指定范围内的任意单个字符,如【0-9】,【a-z】不区分大小写,【A-Z】只大写字母                         [^  ]:匹配指定范围外的任意单个字符,如【^0-9】,[^a-z],[^0-9 a-z]  专用字符合集:[:digit:]                                 [:lower:]:任意数字,相当于0-9                                 [:upper:]:任意小写字母                                 [:alpha:]:任意大写字母                                 [:alnum:]:任意数字或字母                                 [:space:]:空格                                 [:punct:]:标点符号                   

                   


                   


                   


                   


                   


             3.bash的I/O重定向及管道                             输出重定向                        COMMANO > NEW_POS :覆盖重定向,目标文件中的原有内容会被清除                        COMMANO >> NEW_POS :追加重定向,新内容会追加至文件尾部                        


                       


                            set -C:禁止将内容覆盖输出至已有文件中
                            >|:强制覆盖
                            set -C:关掉
  标准输出和错误输出各自定向至不同位置
                            COMMAND > /path/to/file.out 2> /path/to/error.out
  合并标准输出和错误输出为同一个数据流进行重定向
                          &>:覆盖重定向
                          &>>:追加重定向
                     


输入重定向:<
               tr命令:转换或者删除字符
                         tr [OPTION] ........ SET  [SET2]
                       


HERE Documentatio:<<
               cat << EOF
               cat > /path/to/somefile << EOF
                                     


管道:COMMAND1 | COMMAND2 | COMMANOD3 | ........
      note:最后一个命令会在当前shell进程的子shell进程中执行
      tee命令:tee [OPTION] ......[FILE].......             一个输入两个输出
                             


                                   note:tee是强覆盖的输出
       4.bash提供了编程环境
                 bash脚本:文本文件
                        #! /bin/bash                  #! /esr/python
                        #! /usr/bin/perl
                 逻辑运算:
                          与(&&):1         1      =1
                                         1         0      =0
                                         0         1      =0
                                         0         0      =0
                           或(||):1          1     =1
                                          1           0     =1 
                                          0           1     =1
                                          0           0     =0
                           非(!):1    =  0
                                            0    =  1
                 短路运算:
                           与(&&):第一个为0,结果必定为0
                                              第一个为1,第二个必须参与运算
                          或(||):第一个为1,结果必定为1
                                          第一个为0,第二个必须参与运算
                     


              来做个简单的脚本
                    


                    


                   还可以这么改把创建用户当变量
                   


总结:不在学习中爆发,就在学习中灭亡,加油!加油!加油!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息