第1天
正则表达式
grep
选项 | 作用 |
---|---|
-i | 忽略大小写 |
-v | 反转匹配 |
-n | 显示行号 |
-R | 递归目录下所有文件 |
-A | 正则表达式匹配项之后的行数 |
-B | 正则表达式匹配项之前的行数 |
-e | 使用多个 -e 选项可以提供多个正则表达式 |
-E | 使用 egrep |
-F | 使用 fgrep |
匹配符
字符匹配
符号 | 匹配项 |
---|---|
. |
任意单个字符 |
[] |
[] 内任意单个字符 |
[^] |
除了 [] 内任意单个字符 |
[[:alnum:]] |
小写 a-z,大写 A-Z,数字 0-9 范围内任意单个字符 |
[[:alpha:]] |
小写 a-z 和 大写 A-Z 范围内任意单个字符 |
[a-z] 或 [[:lower:]] |
小写 a-z 范围内任意单个字符 |
[A-Z] 或 [[:upper:]] |
大写 A-Z 范围内任意单个字符 |
[[:digit:]] |
数字 0-9 范围内任意单个字符 |
[[:punct:]] |
除空格和字母数字以外的任何可打印字符 |
次数匹配
符号 | 匹配内容 |
---|---|
* |
匹配前一个字符任意次,>=0 次 |
\? |
匹配前一个字符 0 或 1 次 |
\+ |
匹配前一个字符大于等于 1 次 |
\{\} |
\{m\} 匹配前一个字符 m 次,\{m,n\} 匹配前一个字符 m 到 n 次,\{m,\} 匹配前一个字符 >= m 次,\{0,n\} 匹配前一个字符 <= n 次 |
位置锚定
符号 | 匹配内容 |
---|---|
^ |
行首定位符 |
$ |
行尾定位符 |
^$ |
空白行 |
\<char |
起始字界符,或使用 \bchar |
char\> |
结束字界符,或使用 char\b |
分组
符号 | 匹配内容 |
---|---|
\(\) |
匹配 \(\) 连续字符串,而不是单个字符 |
\| |
或者,匹配 \| 左侧或右侧字符串 |
egrep
egrep 使用扩展正则表达式,相当于 grep -E,用法基本与 grep 相同,只是某些符号不需要转义。
次数匹配
符号 | 匹配内容 |
---|---|
? |
匹配前一个字符 0 或 1 次 |
+ |
匹配前一个字符大于 1 次 |
{} |
{m} 匹配前一个字符 m 次,{m,n} 匹配前一个字符 m 到 n 次,{m,} 匹配前一个字符 >= m 次,{0,n} 匹配前一个字符 <= n 次 |
分组
符号 | 匹配内容 |
---|---|
() |
匹配 () 连续字符串,而不是单个字符 |
| |
或者,匹配 | 左侧或右侧字符串 |
fgrep
fgrep 将查找内容视为固定字符串,相当于 grep -F。
vim
查找替换
查找替换均在 EX 模式下执行
:%s/OLDCHAR/NEWCHAR/ig
:
进入 EX 模式%s
处理中文档的每一行,及整个文档,%
可以改为需要替换行的行号OLDCHAR
替换前的字符串NEWCHAR
替换后的字符串i
忽略大小写g
替换每一行找到的所有字符,默认指替换第一个字符
寄存器
类型 | 作用 |
---|---|
未命名寄存器 "" |
默认寄存器,最后一次操作的内容,文本来源命令:d/c/s/x/y |
10 个数字命名寄存器 "0 - "9 |
0 缓存最近一次复制的内容,1-9 缓存最近 9 次删除的内容 |
1 个行内删除缓存寄存器 "- |
缓存行内删除的文本 |
26 个字母命名寄存器 "a - "z / "A - "Z |
完全由用户指定内容的寄存器 |
4个只读寄存器 ". "% "# ": |
缓存最近插入文本、当前文件名、当前交替文件名、上次执行 ex 命令 |
表达式寄存器 "= |
使用 VIM 强大的表达式功能 |
选择及拖拽寄存器 "* "+ "~ |
存取 GUI 选择文本,系统剪切板(clipboard)可用时与外部应用交互,"* "+ "~ 分别为鼠标选中区域,系统剪切板,被拖拽的文本 |
黑洞寄存器 "_ |
类似Linux中的/dev/null文件,只进不出,可用来滤掉影响默认寄存器的内容 |
最后搜索寄存器 "/ |
缓存使用过的最后的搜索内容 |
计划任务
at 一次性计划任务
命令 | 作用 |
---|---|
atq at -l |
查看任务 |
at -c |
查看任务执行的命令 |
atrm at -r at -d |
删除任务 |
at -f |
从文件读取任务而不是标准输入 |
at -q |
指定任务队列,范围 a-z,默认是 |
at -m |
任务完成后发送邮件 |
at -M |
不发送邮件 |
at now+1min
at> echo a minute passed
at> <EOT> #ctrl+d
时间格式:/usr/share/doc/at-3.1.13/timespec
* MINUTE HOUR
* NOON MIDNIGHT TEATIME
* AM PM
* NOW
* NEXT
* TODAY TOMORROW
* MINUTE HOUR DAY WEEK MONTH YEAR
cron 周期性计划任务
命令 | 作用 |
---|---|
crontab -l |
列出当前用户计划任务 |
crontab -r |
删除当前用户所有计划任务 |
crontab -e |
编辑当前用户计划任务 |
crontab -u |
为其他用户创建任务(仅 root) |
crontab <filename> |
删除所有任务,从 <filename> 文件读取任务,未指定文件从 stdin 读取 |
任务格式 分 时 日 月 周 COMMAND
*
表示始终/无关紧要- 数字指定分钟数,小时数,日期,工作日等(0 表示周日,1 表示周一... ...,7 也表示周日)
- 可以用三个字母表示月份或工作日
x-y
表示范围,从x
到y
(含)x,y
表示列表,x
,y
为列表中单个元素*/x
表示时间间隔为 x- 命令中未转义的
%
会被作为新行处理
systemd-tmpfile
/etc/tmpfiles.d/*.conf #管理员可修改的配置文件
/usr/lib/tmpfiles.d/*.conf #rpm软件安装的时候,自动更新的配置文件,不能更改
/run/tmpfiles.d/*.conf #daemon应用程序自己管理的配置文件
配置文件格式
类型 路径 权限 用户(UID) 组(GID) 期限 参数
创建文件或目录并设置相应的 属主/属组、权限。
systemd-tmpfiles --create
清理所有过期的文件与目录。
systemd-tmpfiles --clean
删除 D, R 标记的目录中的内容,以及 r, R 标记的目录与文件自身。
systemd-tmpfiles --remove
中文参考手册: http://www.jinbuguo.com/systemd/tmpfiles.d.html