第1章 回顾昨天

1.1 linux如何让一个服务/脚本开机自启动?

chkconfig

/etc/rc.local

1.2 被chkconfig管理 需要什么条件

1.2.1 必须放在/etc/init.d/

1.2.2 这个脚本要有执行权限

1.2.3 加上chkconfig要求的内容

chkconfig: 2345 99 99

1.2.4 chkconfig --add 把脚本添加到开机自启动

1.2.5 检查

/etc/rc.local

[root@oldboyedu-40-nb ~]# ls -l /etc/rc3.d/ |grep rc.local

lrwxrwxrwx. 1 root root 11 Aug 10 18:36 S99local -> ../rc.local

1.3 磁盘空间不足 no space left on device

1.3.1 block满了 500G 3*200G视频

df -h

du -sh /*

du -sh /* |grep G

1.3.2 block满了 文件没有被彻底删除  硬链接数为0,进程调用数不为零

1.3.2.1  检查:

lsof|grep delete

文件的删除原理(条件)

硬链接数为0

进程调用数为0

1.3.2.2  日志

/var/log/messages

/var/log/secure

rsyslog

access.log

1.3.3 inode满了

创建一个文件要占用一个inode和至少一个block

大量的小文件

1.3.4 检查

df -i

找出系统中比较大的目录(1M)

1.4 软硬链接区别

第2章 通配符

含义:方便我们查找文件 通配符是用来找文件名字

2.1 例子

2.1.1 /oldboy  以.sh结尾的  修改时间是7天之前的 大于100k 小于10M的文件

find /oldboy -type f -name "*.sh" -mtime +7  -size +100k  -size -10M

通配符大家族常用的符号

所有  任何内容 任何符号 任何文字

2.1.2 准备环境

mkdir -p /oldboy/20170118

cd /oldboy/20170118

touch stu{00..10}.txt oldboy{00..10}.log

touch linux-oldboy{00..5}.txt

touch oldboy.txt stu.txt

2.1.2.1  找出 所有以stu开头的文件

[root@oldboyedu-40-nb 20170118]# ls -l stu*

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu00.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu01.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu02.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu03.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu04.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu05.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu06.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu07.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu08.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu09.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu10.txt

-rw-r--r-- 1 root root 0 Aug 31 09:09 stu.txt

[root@oldboyedu-40-nb 20170118]# find -type f -name "stu*"

./stu07.txt

./stu00.txt

./stu02.txt

./stu01.txt

./stu.txt

./stu06.txt

./stu10.txt

./stu04.txt

./stu03.txt

./stu09.txt

./stu05.txt

./stu08.txt

ls -l stu*.*

以stu开头的 任意字符 小数点 任意字符

2.1.2.2  找出文件名中包含 oldboy 的文件

oldboy.txt

linux-oldboy.txt

ls -l *oldboy*

2.1.3 {} 生成序列 下蛋

{开始..结束}

{开始..结束..每次变化多少}

[root@oldboyedu-40-nb 20170118]# echo oldboy{a..e}.txt

oldboya.txt oldboyb.txt oldboyc.txt oldboyd.txt oldboye.txt

[root@oldboyedu-40-nb 20170118]#

[root@oldboyedu-40-nb 20170118]# echo a c d f 1 2 9 100

a c d f 1 2 9 100

[root@oldboyedu-40-nb 20170118]# echo {a,c,d,f}

a c d f

[root@oldboyedu-40-nb 20170118]# echo {a ,c,d,f}

{a ,c,d,f}

[root@oldboyedu-40-nb 20170118]# echo {a..z}

a b c d e f g h i j k l m n o p q r s t u v w x y z

[root@oldboyedu-40-nb 20170118]# echo {a..z} {A..Z}

a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

[root@oldboyedu-40-nb 20170118]# seq 1 2 10

1

3

5

7

9

[root@oldboyedu-40-nb 20170118]# seq 10 -2  1

10

8

6

4

2

[root@oldboyedu-40-nb 20170118]# echo {a..z}

a b c d e f g h i j k l m n o p q r s t u v w x y z

[root@oldboyedu-40-nb 20170118]# echo {1..10}

1 2 3 4 5 6 7 8 9 10

[root@oldboyedu-40-nb 20170118]# echo {1..10..2}

1 3 5 7 9

[root@oldboyedu-40-nb 20170118]# echo {10..1..2}

10 8 6 4 2

用来备份

[root@oldboyedu-40-nb 20170118]# echo A{B,C}

AB AC

[root@oldboyedu-40-nb 20170118]# echo A{,C}

A AC

[root@oldboyedu-40-nb 20170118]#

[root@oldboyedu-40-nb 20170118]# echo oldboy.txt{,C}

oldboy.txt oldboy.txtC

[root@oldboyedu-40-nb 20170118]# echo oldboy.txt{,bak}

oldboy.txt oldboy.txtbak

[root@oldboyedu-40-nb 20170118]# echo oldboy.txt{,.bak}

oldboy.txt oldboy.txt.bak

[root@oldboyedu-40-nb 20170118]# #cp oldboy.txt{,.bak}

[root@oldboyedu-40-nb 20170118]# ls -l oldboy.txt*

-rw-r--r-- 1 root root 0 Aug 31 09:09 oldboy.txt

[root@oldboyedu-40-nb 20170118]# cp oldboy.txt{,.bak}

[root@oldboyedu-40-nb 20170118]# ls -l oldboy.txt*

-rw-r--r-- 1 root root 0 Aug 31 09:09 oldboy.txt

-rw-r--r-- 1 root root 0 Aug 31 09:38 oldboy.txt.bak

2.2 通配符

找出文件

大部分命令都支持

ls    *.txt

touch {a..z}

mkdir {a..z}dir

3. * {}

2.2.1 特殊符号

2.2.1.1  重定向符号:

>   标准输出重定向 先把文件内容清空 然后向文件中放入内容

>>  标准追加重定向 然后向文件中放入内容

<   标准输入       xargs

<<  追加输入

cat >/oldboy/oldboy.txt <<EOF

oldboy

linux

oldboyedu.com

EOF

2.2.1.2  其他重要符号:

.  当前目录

linux下面隐藏文件

~/.bashrc

.. 当前目录的上一层目录

~  当前用户的家目录

/root

/home/oldboy

/  根目录  路径分隔符

../../..

/etc/hosts

\  取消别名

|  管道

!

1) vi/vim :wq! :q! 强制

2) find里面 awk里面表示 取反

3) 表示使用你用过的命令 使用历史命令

!ls   ===== history |grep ls

#  注释

$  取出变量里面的内容

&& 并且 前一个命令运行成功,然后再运行后面的命令

ifdown eth0 && ifup eth0

;  分开多条命令 在同一行里面放入多个命令

ls; pwd; hostname

2.2.1.3  特殊符号小结:

&&

>>

>

/

$

.

..

~

|

!

#

2.2.1.4  单引号 双引号 不加引号的区别

单引号 吃啥吐啥 所见即所得

[root@oldboyedu-40-nb 20170118]# echo '$LANG $(pwd) `hostname` {a..e}'

$LANG $(pwd) `hostname` {a..e}

双引号 把双引号里面的特殊符号进行解析

[root@oldboyedu-40-nb 20170118]# echo "$LANG $(pwd) `hostname` {a..e}"

en_US.UTF-8 /oldboy/20170118 oldboyedu-40-nb {a..e}

不加引号 和双引号类似 支持通配符

[root@oldboyedu-40-nb 20170118]# echo $LANG $(pwd) `hostname` {a..e}

en_US.UTF-8 /oldboy/20170118 oldboyedu-40-nb a b c d e

反引号 ``  $()  先运行小括号里面的内容 把显示到屏幕上的内容留下

第3章 正则表达式

lidao.身份证

汤 610702199107053598

邹 371481199403259478

莫 52020319810613433X

韩 460106199111137270

荣 530124197504135438

荣 oldboy

荣 babygirl

荣 530124197504135438

阮 360702197902169951

翁 331002198504132813

任 621223198708245176

姜 370602198507189574

霍 320904198403048179

3.1 正则表达式

[0-9]

3.1.1 什么是正则

特殊符号表示文字 文本

^     开头

[0-9] 数字

3.1.2 作用

提高效率   省事 懒

3.1.3 分类

基础正则表达式

^ $ ^$ .  *  .*  [0-9]  [^0-9]

扩展正则表达式

| () + {} ?

3.2 正则表达式与通配符区别?

3.2.1 通配符是用来找文件 名字 ls *.txt

3.2.2 正则表达式用来在文件中找文字(内容)  文本

3.3 中文符号预警准备

1.预警-中文符号

2.grep/egrep

cat >>/etc/profile<<EOF

alias grep='grep --color=auto'

alias egrep='egrep --color=auto'

EOF

source /etc/profile

3.4 环境准备-oldboy.txt

[root@oldboyedu-40-nb oldboy]# vim oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# cat -A oldboy.txt

I am oldboy teacher!$

I teach linux.$

$

I like badminton ball ,billiard ball and chinese chess!$

my blog is http://oldboy.blog.51cto.com $

$

our site is http://www.etiantian.org $

$

my qq num is 49000448.$

$

not 4900000448.$

my god ,i am not oldbey,but OLDBOY!$

3.5 基础正则表达式

3.5.1  ^oldboy    以oldboy开头的行 以......开头的行

[root@oldboyedu-40-nb oldboy]# grep "^m" oldboy.txt

my blog is http://oldboy.blog.51cto.com

my qq num is 49000448.

my god ,i am not oldbey,but OLDBOY!

3.5.2   $          以.....结尾的行

m$    以m结尾的行

[root@oldboyedu-40-nb oldboy]# cat -A oldboy.txt

I am oldboy teacher!$

I teach linux.$

$

I like badminton ball ,billiard ball and chinese chess!$

my blog is http://oldboy.blog.51cto.com$

$

our site is http://www.etiantian.org$

$

my qq num is 49000448.$

$

not 4900000448.$

my god ,i am not oldbey,but OLDBOY!$

[root@oldboyedu-40-nb oldboy]# grep "m$" oldboy.txt

my blog is http://oldboy.blog.51cto.com

3.5.3  ^$  空行 这一行里面什么符号都没有

[root@oldboyedu-40-nb oldboy]# grep "^$" oldboy.txt

[root@oldboyedu-40-nb oldboy]# grep -n "^$" oldboy.txt

3:

6:

8:

10:

[root@oldboyedu-40-nb oldboy]# cat -A oldboy.txt

I am oldboy teacher!$

I teach linux.$

$

I like badminton ball ,billiard ball and chinese chess!$

my blog is http://oldboy.blog.51cto.com$

$

our site is http://www.etiantian.org$

$

my qq num is 49000448.$

$

not 4900000448.$

my god ,i am not oldbey,but OLDBOY!$

[root@oldboyedu-40-nb oldboy]# cat -An oldboy.txt

1  I am oldboy teacher!$

2  I teach linux.$

3  $

4  I like badminton ball ,billiard ball and chinese chess!$

5  my blog is http://oldboy.blog.51cto.com$

6  $

7  our site is http://www.etiantian.org$

8  $

9  my qq num is 49000448.$

10  $

11  not 4900000448.$

12  my god ,i am not oldbey,but OLDBOY!$

[root@oldboyedu-40-nb oldboy]#

排除文件中的空行

3.5.4   .(点)  任意一个字符

[root@oldboyedu-40-nb oldboy]# grep "." oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# #grep到底如何找的文字---花儿为什么这样红

[root@oldboyedu-40-nb oldboy]# grep -o "." oldboy.txt

I

a

省略......

[root@oldboyedu-40-nb oldboy]# grep "oldb.y" oldboy.txt

I am oldboy teacher!

my blog is http://oldboy.blog.51cto.com

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# grep -o "oldb.y" oldboy.txt

oldboy

oldboy

oldbey

grep/egrep  -o 显示grep每一次找到什么东西   grep命令执行过程

3.5.5 \  撬棍  转义字符 脱掉马甲打回原形

找出文件中以小数点(.) 结尾的行

[root@oldboyedu-40-nb oldboy]# grep "\.$" oldboy.txt

I teach linux.

my qq num is 49000448.

not 4900000448.

3.5.6   前一个文本连续出现了0次或1次以上  >=0

00000

00000000000000

000000000000000000000000000000000000000000000000000000000000000

连续出现了0次就是 没出现

[root@oldboyedu-40-nb oldboy]# grep "0*" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# grep -o "0*" oldboy.txt

000

00000

贪婪性---能有多 我吃多少

3.5.7 .*   所有内容 包括空行

贪婪性---能有多 我吃多少

正则表达式表示.*(所有)  连续出现的时候 贪婪性

[root@oldboyedu-40-nb oldboy]# grep "^.*o"  oldboy.txt

I am oldboy teacher!

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

3.5.8  [abc]  筐 表示一个整体 相当于是一个字符  a或b或c

[root@oldboyedu-40-nb oldboy]# grep "[abc]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# grep -o "[abc]" oldboy.txt

a

b

a

c

省略

[root@oldboyedu-40-nb oldboy]#

[root@oldboyedu-40-nb oldboy]# grep "[abcdefghijklmnopqrstuvwxyz]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# grep "[a-z]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# grep "[A-Z]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# grep "[0-9]" oldboy.txt

my blog is http://oldboy.blog.51cto.com

my qq num is 49000448.

not 4900000448.

[root@oldboyedu-40-nb oldboy]# grep "[a-zA-Z]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

3.5.9 练习

3.5.9.1  练习1:以大写字母开头的行

[root@oldboyedu-40-nb oldboy]# #练习1:以大写字母开头的行

[root@oldboyedu-40-nb oldboy]# grep "A-Z" oldboy.txt

[root@oldboyedu-40-nb oldboy]# grep "[A-Z]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# grep "^[A-Z]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

3.5.9.2  练习2:以小写字母结尾的行

[root@oldboyedu-40-nb oldboy]# #练习2:以小写字母结尾的行

[root@oldboyedu-40-nb oldboy]# grep "[a-z]$" oldboy.txt

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

3.5.9.3  练习3:以 m或n或o开头的 并且以  m或g 结尾的行

[root@oldboyedu-40-nb oldboy]# ##第一个里程碑-取出m n o 开头的行

[root@oldboyedu-40-nb oldboy]# grep "[mno]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]# grep "^[mno]" oldboy.txt

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

[root@oldboyedu-40-nb oldboy]#

[root@oldboyedu-40-nb oldboy]# ##第二个里程碑-mg 结尾

[root@oldboyedu-40-nb oldboy]# grep "[mg]$" oldboy.txt

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

[root@oldboyedu-40-nb oldboy]#

[root@oldboyedu-40-nb oldboy]# ##第三个里程碑-合并

[root@oldboyedu-40-nb oldboy]# grep "^[mno][mg]$" oldboy.txt

[root@oldboyedu-40-nb oldboy]# grep "^[mno].*[mg]$" oldboy.txt

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

3.5.10  [^abc]  筐 表示一个整体 排除a或排除b或排除c

[abc] 三选一 想要任何一个

[root@oldboyedu-40-nb oldboy]# grep "[^abc]" oldboy.txt

I am oldboy teacher!

I teach linux.

I like badminton ball ,billiard ball and chinese chess!

my blog is http://oldboy.blog.51cto.com

our site is http://www.etiantian.org

my qq num is 49000448.

not 4900000448.

my god ,i am not oldbey,but OLDBOY!

######grep -v 排除   [^abc]

grep -v 排除行

[^abc]  字符 文字

第4章 今天小结:

特殊符号-通配符-基础正则表达式

1.

特殊符号小结:

&& >> > /$... ~ | ! #

2.通配符* {}

3.正则

1)按照一行

2)^ $ ^$  .*  [] \

如何排除文件中的空行和包含#的行

第5章 预习:

扩展正则表达式

取出网卡ip地址

ifconfig eth0

Linux特殊符号的更多相关文章

  1. Linux特殊符号浅谈

    Linux特殊字符浅谈 我们经常跟键盘上面那些特殊符号比如(?.!.~...)打交道,其实在Linux有其独特的含义,大致可以分为三类:Linux特殊符号.通配符.正则表达式. Linux特殊符号又可 ...

  2. Linux Shell脚本编程--Linux特殊符号大全

    Linux Shell脚本编程--Linux特殊符号大全 linux_shell 特殊符号的介绍 2011

  3. linux shell `符号详解

    linux shell `符号详解 <pre>[root@iZ23uewresmZ arjianghu]# echo `ls`asss.html common guaji.php imag ...

  4. linux特殊符号大全

    #   ;   ;;      .      ,       /       \       'string'|       !   $   ${}   $?      $$   $*  " ...

  5. Linux 特殊符号使用: 倒引号`的使用

    Linux中有很多特殊符号,这里介绍 ` 倒引号的含义. 我们考虑下这个场景,有时我们需要将一个命令的执行结果赋值给某个变量,或者别的用途. 这时我们可以用两个`倒引号将该命令括起来. 例1: 如 e ...

  6. Linux中符号总结

    常用符号~   登陆用户当前的家目录 .   当前目录..   当前目录的上一级目录cd -   返回上一次的目录;   命令分隔符#   表示注释 ?   通配符中表示任意一个字符*   通配符中表 ...

  7. linux -特殊符号

    在shell中常用的特殊符号罗列如下: # ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $* \"string\"* **   ...

  8. Linux特殊符号及基础正则表达式

    第1章 特殊符号 1.1 引号系列 1.1.1 单引号 所见即所得  单引号里面的内容会原封不动的输出 [root@oldboyedu50-lnb ~]# echo 'oldboy $LANG $PS ...

  9. 最全的三剑客和linux正则符号讲解

    第2章 linux符号系列与三剑客    194 2.1 特殊符号系列    194 2.1.1 普通符号系列    194 2.1.2 引号符号系列    196 2.1.3 定向符号    197 ...

随机推荐

  1. 聊天斗图神器aidou mac中文版

    aidou mac中文版是mac上一款专为斗图设计的聊天斗图神器,让您在聊天的时候不怕没有表情用,炫酷的表情即时更新,让您每时每刻都有新表情用!一键下载的表情包!小编现为您带来aidou斗图神器免费版 ...

  2. The History of spring

    Spring的出现  Spring最早出现对早期J2EE规范复杂性的回应 .虽然有些人一直认为Java EE和Spring处于竞争中,但Spring实际上是对Java EE的补充.Spring编程模型 ...

  3. 三.SQL语句

    一.mysqladmin客户端命令 1.查看MySQL存活状态 [root@db01 ~]# mysqladmin -uroot -p123 ping 2.查看MySQL状态信息 [root@db01 ...

  4. mybatis原理分析学习记录,mybatis动态sql学习记录

    以下个人学习笔记,仅供参考,欢迎指正. MyBatis 是支持定制化 SQL.存储过程以及高级映射的持久层框架,其主要就完成2件事情: 封装JDBC操作 利用反射打通Java类与SQL语句之间的相互转 ...

  5. pip安装报错

    ERROR: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat) python通过pip或者源码来安装某些模块时,这 ...

  6. css中绝对定位和相对定位的区别

    先说个技巧一般用:子绝父相,即相对定位是给父级的,绝对定位的时候是给子级的. 一:绝对定位 position: absolute;绝对定位:绝对定位是相对于元素最近的已定位的祖先元素(即是设置了绝对定 ...

  7. GTID做mysql主从时报错

    今天在做主从同步时,显示slave_IO线程为NO ,并且报如下错误 Slave_IO_Running: No ... Last_IO_Error: Fatal error: The slave I/ ...

  8. webpack 4.X 与 Vue 2.X结合

    # Vue.js ## 注意: 有时候使用`npm i node-sass -D`装不上,这时候,就必须使用 `cnpm i node-sass -D` ## 在普通页面中使用render函数渲染组件 ...

  9. os.remove异常处理

    这种情况,正反斜杠都没问题.(windows环境下) 这种情况会出现下列异常 对于目录的形式,把反斜杠改成正斜杠就好了

  10. mybatis-generator自动生成Mapper.dao.entity

    在pom.xml中添加依赖 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId> ...