shell:外壳
用户登录时将会打开shell。每个用户都是独立的进程,互不干扰,进程是程序的副本,进程是程序执行实例。
广义上shell有两类:GUI[gnome、kde、xface] CLI[sh、bash、ksh、csh]
bash
1、命令历史
2、管道、重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、变量
8、编程
命令行编辑光标跳转:
ctrl+A[行首] ctrl+E[行尾] ctrl+U[删除光标之前到行首]
ctrl+K[删除光标之后到行尾] ctrl+L[清屏]
ctrl+左右箭头[一次跳一个单词]
命令历史: history
-c[:清空命令历史 ]
-d[:删除指定位置的命令 ]
-w:[保存命令历史到历史文件]
命令历史使用技巧:
!n:执行命令历史中的第N条命令
!-n:执行命令历史中的倒数第N条命令
!!:执行上一条命令
!string:执行命令历史中最近一个指定字符串开头的命令
!$或者esc+"."或者alt+". ":引用前一个命令的参数
命令别名 alias
alias [自定义别名 ]= [bash命令 +选项 + 参数 ]
alias 不加参数直接显示系统所有别名命令
只在shell的进程生命周期中有效。ualias:撤销别名。
通过修改bash配置文件可以使得别名永久有效。
命令补全
tab:自动搜索环境变量补全命令;两次tab显示全部有可能出现的情况
路径补全
tab: 从给定的目录路径下补全;两次tab显示全部有可能出现的情况
命令替换 $()或反引号
把命令中某个子命令替换为其执行结果的过程。
``:反引号
双引号:弱引用,可以实现变量替换
单引号:强引用,不完成变量替换。
使用命令替换创建以时间作为文件名:touch ./$(date+%F+%H+%M+%S).txt
文件名通配:globbing
* :匹配任意长度的任意字符
?:匹配任意单个字符
[] :指定范围类任意单个字符
[^]:匹配指定范围之外的任意单个字符
内置常用特殊字符表示法
[:space:]:空白字符
[:pinct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
网友评论