命令行展开
eddy@DESKTOP-KTLF3P4:~$ echo ls{0..20}
ls0 ls1 ls2 ls3 ls4 ls5 ls6 ls7 ls8 ls9 ls10 ls11 ls12 ls13 ls14 ls15 ls16 ls17 ls18 ls19 ls20
eddy@DESKTOP-KTLF3P4:~$ echo pwd{1..20..2}
pwd1 pwd3 pwd5 pwd7 pwd9 pwd11 pwd13 pwd15 pwd17 pwd19
eddy@DESKTOP-KTLF3P4:~$ echo pwd{01..20..2}
pwd01 pwd03 pwd05 pwd07 pwd09 pwd11 pwd13 pwd15 pwd17 pwd19
eddy@DESKTOP-KTLF3P4:~$
命令别名
alias, unalias
eddy@DESKTOP-KTLF3P4:~$ alias rm='rm -i'
命令历史
history
!<行号> #执行history中第<>条命令
!! #执行上次命令
快捷键
ctrl + a #移动到命令行首
ctrl + e #移动到命令行尾
ctrl + k #删除光标后的字符
ctrl + u #删除光标前的内容
查询命令位置
which ls
Linux正则表达式(Regular Expression,REGEXP)
- grep:文本过滤工具,(模式:pattern)
- sed:stream editor,流编辑器;文本编辑器
- awk:Linux的文本报告生成器(格式化文本),Linux中是gawk
正则表达式的分类
- 基本正则表达式(BRE,basic regular exporession)
BRE对应的字符有 ^ $ . [] *
- 扩展正则表达式(ERE,extended regular expression)
ERE在BRE的基础上增加 () {} ? + | 等字符
基本正则表达式BRE集合
- 匹配字符
- 匹配次数
- 位置锚定
符号 | 作用 |
---|---|
^ | 尖角号,用于模式的最左侧,如"^oldboy",匹配oldboy单词开头的行 |
$ | 美元符,用于模式的最右侧,如"oldboy$",表示以oldboy单词结尾的行 |
^$ | 组合符,表示空行 |
. | 匹配任意一个有且只有一个字符,不能匹配空行 |
\ | 转义字符,让特殊含义的字符还原本意,例如\. 表示小数点 |
* | 匹配前一个字符(连续出现)0次或1次以上,重复0次代表空,即匹配所有内容 |
.* | 组合符,匹配所有内容 |
^.* | 组合符,匹配任意多个字符开头的内容 |
.*$ | 组合符,匹配任意多个字符结尾的内容 |
[abc] | 匹配[]内的任意一个字符,a或b或c,可以写为[a-c] |
[^abc] | 匹配除了^后面的任意字符,a或b或c,^表示对[abc]的取反 |
扩展正则表达式ERE集合
扩展正则表达式必须用grep -E
才能生效
字符 | 作用 |
---|---|
+ | 匹配前一个字符一次或多次 |
[: /]+ | 匹配[] 内的":“或者”/"字符一次或多次 |
? | 匹配前一个字符0次或一次 |
| | 表示或 ,同时过滤多个字符串 |
() | 分组过滤,被括起来的内容表示一个整体 |
a{n,m} | 匹配前一个字符最少n 次,最多m 次 |
a{n,} | 匹配前一个字符最少n次 |
a{n} | 匹配前一个字符正好n次 |
a{,m} | 匹配前一个字符最多m次 |
👷♂️
💢
🚲