Linux学习之五(bash特性详解)
2017-05-09 15:45
357 查看
一、bash及其特性
1、shell:外壳
广义shell包含:1、GUI:Gnome、KDE、Xfce
2、CLI:sh,csh,ksh,bash
进程:在每个进程看来,当前主机上只存在内核和当前进程,进程是程序的副本,进程是程序执行实例。
2、bash:
1、支持命令历史、命令补全
2、支持管道、重定向
3、支持命令别名
4、支持命令行编辑
5、支持命令行展开
6、支持文件名通配
7、支持变量
8、支持编程
3、命令历史:
history:
查看命令历史:history
-c:清空命令历史
-d OFFSET
:删除指定位置的命令
例1:history -d 500 #删除第500个历史命令
例2:history -d 500 3 #删除第500个命令起3个历史命令
-w:保存命令历史至历史文件(家目录下.bash_history)中
4、命令历史使用技巧:
!n:执行命令历史中的第N条命令
例:root@localhost /]# !44
!-n:执行命令历史中倒数第N条命令
例:[root@localhost /]# !-44
!!:重新执行上一次命令
!string:执行命令历史中最近一个已指定字符(string)串开头的命令
!$:引用前一个命令的最后一个参数
ESC,.:引用前一个命令的最后一个参数
Alt+.:引用前一个命令的最后一个参数
5、命令别名:
alias CMDALIAS=‘COMMAND [options] [arguments]’
例:[root@localhost /]# alias cls=clear
在shell中定义的别名仅在当前shell生命周期中有效:别名有效范围为当前shell进程
unalias:撤销别名
例:[root@localhost /]# unalias cls
\COMMAND:使用命令本身
6、命令替换:
$(COMMAND)
`COMMAND`:(反引号)
把命令中某个子命令替换为其执行结果的过程
例1:[root@localhost ~]# echo "The current directory is $(pwd)."
4000
The current directory is /root.
例2:[root@localhost ~]# touch ./file-$(date +%F-%H-%M-%S).txt
[root@localhost ~]# ls
anaconda-ks.cfg file-2017-03-30-15-10-30.txt install.log sort.test
Desktop hello install.log.syslog
7、bash支持的引号:
``:命令替换
"":弱引用,可以实现变量替换
‘’:强引用,不完成变量替换
8、文件名通配:globbing
*:匹配任意长度的任意字符
例:[root@localhost test]# ls a*
a a123 ab123 abc
?:匹配任意单个字符
例:[root@localhost test]# ls ?y*
xyz xyz123
[]:匹配指定范围内的任意单个字符
#man 7 glob #查看通配符
[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
例:[root@localhost test]# ls [a-zA-Z]*[0-9]
a123 ab123 x12 xyz123
[^]:匹配指定范围外的任意单个字符
例:[root@localhost test]# ls [^0-9]*
a a123 ab123 abc Helloy x12 xyz xyz123
9、环境变量:
PATH:命令搜索路径
HISTSIZE:命令历史缓冲区大小(默认1000条):
例:[root@localhost ~]# echo $HISTSIZE
1000
二、命令行编辑:
光标跳转:
Ctrl+a:跳到命令行首部
Ctrl+e:跳到命令行尾
Ctrl+u:删除光标至命令行首的内容
Ctrl+k:删除光标至命令行尾的内容
Ctrl+l:清屏
1、shell:外壳
广义shell包含:1、GUI:Gnome、KDE、Xfce
2、CLI:sh,csh,ksh,bash
进程:在每个进程看来,当前主机上只存在内核和当前进程,进程是程序的副本,进程是程序执行实例。
2、bash:
1、支持命令历史、命令补全
2、支持管道、重定向
3、支持命令别名
4、支持命令行编辑
5、支持命令行展开
6、支持文件名通配
7、支持变量
8、支持编程
3、命令历史:
history:
查看命令历史:history
-c:清空命令历史
-d OFFSET
:删除指定位置的命令
例1:history -d 500 #删除第500个历史命令
例2:history -d 500 3 #删除第500个命令起3个历史命令
-w:保存命令历史至历史文件(家目录下.bash_history)中
4、命令历史使用技巧:
!n:执行命令历史中的第N条命令
例:root@localhost /]# !44
!-n:执行命令历史中倒数第N条命令
例:[root@localhost /]# !-44
!!:重新执行上一次命令
!string:执行命令历史中最近一个已指定字符(string)串开头的命令
!$:引用前一个命令的最后一个参数
ESC,.:引用前一个命令的最后一个参数
Alt+.:引用前一个命令的最后一个参数
5、命令别名:
alias CMDALIAS=‘COMMAND [options] [arguments]’
例:[root@localhost /]# alias cls=clear
在shell中定义的别名仅在当前shell生命周期中有效:别名有效范围为当前shell进程
unalias:撤销别名
例:[root@localhost /]# unalias cls
\COMMAND:使用命令本身
6、命令替换:
$(COMMAND)
`COMMAND`:(反引号)
把命令中某个子命令替换为其执行结果的过程
例1:[root@localhost ~]# echo "The current directory is $(pwd)."
4000
The current directory is /root.
例2:[root@localhost ~]# touch ./file-$(date +%F-%H-%M-%S).txt
[root@localhost ~]# ls
anaconda-ks.cfg file-2017-03-30-15-10-30.txt install.log sort.test
Desktop hello install.log.syslog
7、bash支持的引号:
``:命令替换
"":弱引用,可以实现变量替换
‘’:强引用,不完成变量替换
8、文件名通配:globbing
*:匹配任意长度的任意字符
例:[root@localhost test]# ls a*
a a123 ab123 abc
?:匹配任意单个字符
例:[root@localhost test]# ls ?y*
xyz xyz123
[]:匹配指定范围内的任意单个字符
#man 7 glob #查看通配符
[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
例:[root@localhost test]# ls [a-zA-Z]*[0-9]
a123 ab123 x12 xyz123
[^]:匹配指定范围外的任意单个字符
例:[root@localhost test]# ls [^0-9]*
a a123 ab123 abc Helloy x12 xyz xyz123
9、环境变量:
PATH:命令搜索路径
HISTSIZE:命令历史缓冲区大小(默认1000条):
例:[root@localhost ~]# echo $HISTSIZE
1000
二、命令行编辑:
光标跳转:
Ctrl+a:跳到命令行首部
Ctrl+e:跳到命令行尾
Ctrl+u:删除光标至命令行首的内容
Ctrl+k:删除光标至命令行尾的内容
Ctrl+l:清屏
相关文章推荐
- Linux学习笔记——bash特性详解
- Linux学习笔记3.2-bash特性详解
- Red Hat linux 6.5 学习使用笔记《四》bash特性详解
- Linux_bash特性详解(技巧)
- linux基础篇-04,linux bash特性详解
- 0219自学Linux_bash特性+命令学习(cut,sort,uniq,wc,tr,histroy,alias)+通配符glob
- linux学习随记:bash及其特性
- Linux学习笔记:bash的基础特性之二(shell编程)
- [鸟哥linux视频教程整理]03_03_bash特性详解续
- linux笔记-bash特性详解
- Linux 基础学习bash特性 (二)
- Linux学习笔记:bash特性之多命令执行,shell脚本
- [鸟哥linux视频教程整理]03_02_Linux文件管理类命令及bash特性详解
- Linux学习---bash及其特性
- Linux基础入门及系统管理01-Linux运维核心技能-bash基础特性详解09
- Linux学习之道:linux下的bash与sh 详解以及例子
- Linux学习笔记:bash的基础特性之变量
- Linux Bash Shell学习(十七):I/O重定向
- (2010-06-15)Linux学习之问题一:bash: groupadd: command not found
- Linux Bash Shell学习(十二):流程控制——select