03bash特性详解

bash是一个为GUN计划编写的Unix shell。

bash作用:

1、命令历史 、命令补全

2、管道、重定向

3、命令别名

4、命令行编辑

5、命令行展开

6、文件名通配

7、变量

8、编程

 

命令行编辑:

光标跳转:

                ctrl+a:跳到命令行首

                ctrl+e:跳到命令行尾

                ctrl+u:删除光标到命令行首的内容

                ctrl+k:删除光标到命令行尾的内容

                ctrl+l:清屏

 

命令历史:

查看命令历史:history

                -c:清空命令历史

                -d   OFFSET  [n]:删除指定位置的命令

                -w:保存命令历史至历史文件中

 

环境变量

PATH:命令搜索路径

HISTSIZE:命令历史缓冲区大小

 

命令历史的使用技巧:

!n:执行命令历史中的第n条命令

!-n:执行命令历史中的倒数第n条命令

!!:执行上一条命令

!string:执行命令历史中最近一个以指定字符串开头的命令

!$ 或Esc,.(按住Esc后松手按.):引用前一个命令的最后一个参数

 

命令补全:搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件,该文件如果能唯一标识,按一次tab键则直接补全命令,若不能唯一标识,则按两次tab键,可以给出列表

路径补全:搜索我们给出的起始路径下的每个文件名,并试图补全;在打头路径下查找补全。路径补同样支持两次tab,给出列表

 

命令别名

alias CMDALIAS='COMMAND [options] [arguments]'

在shell中定义的别名仅在当前shell生命周期中有效,别名的有效范围仅为当前shell进程

 

不带任何参数和选项的alias可以显示当前定义的所有别名

unalias 别名:取消之前设置的别名

命令替换:$(COMMAND)或`COMMAND`    !注:1、$()中()有时可省略 2、``是反引号不是双引号

把命令中某个子命令替换为其执行结果的过程

 

bash支持的引号:

``:命令替换

" ":强引用,可以实现变量替换

' ':弱引用,不完成变量替换

 

 文件名通配,globbing

*:任意长度的任意字符

?:任意单个字符

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

    [abc],[a-m],[a-z],[A-Z],[0-9]

    [:space:]:空白字符

    [:punct:]:标点符号

    [:lower:]:小写字母

    [:upper:]:大写字母

    [:alpha:]:大小写字母

    [:digit:]:数字

如果不记得这些英文,使用#man 7 glob可以获得这些列表和说明

[^]:匹配指定范围外的任意单个字符

 

例子:

命令别名:

1、给ls起别名abc,则abc就有了ls的作用

     alias  abc=ls

 2、不带任何参数和选项的alias可以显示当前定义的所有别名

 

命令替换:

命令替换:$(COMMAND)或`COMMAND` 

 

posted @ 2017-08-27 18:11  kgcqw  阅读(142)  评论(0)    收藏  举报