一、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[n]:删除指定位置的命令
例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)."
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:清屏
阅读(1218) | 评论(0) | 转发(0) |