bash:
1、命令历史
2、管道、重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名统配
7、变量
8、编程
设置输出语境为英语:export LANG=en
光标跳转命令:
Ctrl + a == Home
Ctrl + e == End
Ctrl + u = 删除光标至命令 行首的内容
Ctrl + k = 删除光标至命令 行尾的内容
Ctrl + d = 向后删除一个字母
Ctrl + l = 清屏
history:查看命令历史
-c :清空命令历史
-d:1. history -d 500:删除第500行;history -d 500 3 从第500行开始,删除3行
-w:保存命令历史至历史文件:
根目录下命令:ls -a ,会查看到隐藏文件 .bash history,历史命令的序列化文件。
能保存的条数是个环境变量:HISTSIZE 。echo $HISTSIZE : 查看其值
!n: 执行历史命令中第n条
!-n:执行命令历史中倒数第n条命令
!!:执行上一条命令
!string :执行命令历史中最近一个以指定字符串开头的命令
!$:引用前一个命令的最后一个参数。 (1).cat /gucc/a.txt (2). man !$
先按Esc键 然后按 . 会自动补全上次输入过的参数
Alt + . 效果同上,但本地支持,远程不支持。
命令补全:
比如像输入history命令,先输入his后,再敲Tab键,命令自动补全。若以his大头的命令有好几个,则敲两下Tab键,会显示出所有的his打头的命令。会在PATH环境变量指定的路径下查找命令
路径补全:
使用方法同命令补全,都是按Tab键,是在输入路径的时候,补全路径
命令别名:
1. 查看所有别名:alias
2. 设定别名:alias CMDALIAS='COMMAND [options] [arguments]'
3. 撤销别名:unalias CMDALIAS
4. 在shell中定义的命令别名仅在当前shell生命周期中有效,有效范围仅为当前shell进程
命令替换:$(COMMAND)、 `COMMAND` 反引号,不是单引号,波浪线键
把命令中某个指明了替换为其执行结果的过程
eg: (1). echo "The current directory is $(pwd)"
(2). touch ./file-$(date +%F-%H-%M-%S).txt (创建以当前时间命名的文件)
``:命令替换
"":弱引用,可以实现变量替换
'':强引用,不完成变量替换
文件名统配:
*:任意长度的任意字符
?:任意单个字符
[]:匹配指定范围内的任意单个字符
[abc],[a-m],[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:alpha:]:大小写字母
[:digit:]:数字
[:alnum:]:数字和大小写字母
# man 7 glob 查看所有的
[^]:匹配指定范围之外的任意单个字符