Linux系列——命令行编辑

命令行编辑

光标跳转

Ctrl+a : 跳转到行首
Ctrl+e : 跳转到行尾
Ctrl+u : 删除光标至命令行行首的内容
Ctrl+k : 删除光标至命令行行尾的内容(不常用)
Ctrl+l : 清屏
Ctrl+c : 退出命令

命令历史

查看命令历史: history
	-c: 清空命令历史
	-d: OFFSET [N]  删除指定位置的命令,OFFSET是命令位置 [n] 是删除多少行
	-w: 保存内存中的历史命令到历史文件中  

命令历史的使用技巧

! n:执行命令历史中的第n条命令
! -n: 执行命令历史中的倒数第n条命令
!!: 执行上一条命令
!string: 执行命令里氏中最近一个以string开头的命令
!$ : 引用上一个命令中最后一个参数

环境变量

PATH:  
HISTSIZE: 命令历史缓冲区大小

命令别名

alias CMDALIS =  'COMMAND [OPTIONS] [ARGUMENTS]' (定义方法)
在shell中定义别名尽在当前shell生命周期中有效:别名有效范围仅为当前shell进程
alis 系统内建命令 不带任何选项可以查看所有定义过的别名
unalias CMADALIS 删除命令别名
\CMD 使用命令本身
如:alias ls='ls-l' 
![在这里插入图片描述](https://img-blog.csdnimg.cn/2018112022313929.png)

命令替换

把命令中的某个字命令替换为器执行结果的过程 就叫做命令替换
用法: $(COMMAND), 反引号`CMD`
file-2018-7-19-14-01-22.txt
如:	touch ./file-$(date + %F-%H-%M-%S).txt
![在这里插入图片描述](https://img-blog.csdnimg.cn/20181120223821746.png)
介绍一些bash 所支持的引号:
``: 反引号代表命令替换
"": 双引号,弱引用,可以实现变量替换 类似$redhat
'': 强引用,不完成变量替换

文件名通配 :globbing

*: 匹配任意长度的任意字符
?: 任意单个字符
[]: 匹配指定范围内的任意单个字符
	[abc], [a-m], [a-z], [a-zA-Z]
	ls [a-z][A-z]*[0-9] 匹配以字母开头以数字结尾的任意文件
[^]:否定选项
[[:space:]]  两个中括号 [:space:] 空白字符
[[:punct:]] 标点符号
[[:lower:]] 小写字母
[[:upper:]] 大写字母
[[:digit:]] 数字 
[[:alnum:]] 数字和大小写字母
使用 man 7 glob 可以查看这些字符集合
一般文件名通配 没有正则表达使用的广泛, 大家只要可以记住就OK啦

有几个练习题:
1、创建a123, cd65, c78m,m.z, k 67, 8yu, 789等文件
touch a123
touch cd65
touch c78m
touch m.z
touch ‘k 67’
2、显示所有的以a或m开头的文件
ls [a,m]*
3、显示所有文件命中包含了数字的文件
ls *[[:digit:]]*
4、显示所有以数字结尾的文件且文件名中不包含空白文件
ls *[^[:space:]][[:digit:]]
5、显示文件名中包含了非字母或数字的特殊符号的文件
ls [^[0-9A-Za-z]]

你可能感兴趣的:(Linux系列——命令行编辑)