Linix
- 一、Linix的基本使用
- 1.1 、Linux目录结构
- 1.2、文件目录属性
- 1.3、目文件展示
- 1.4、用户及权限管理
- 1.4.1、概述
- 1.4.2、用户管理
- 1.4.3、组管理
- 1.4.4、权限管理
- 1.5、查看用户信息 查看用户组信息
- 二、命令相关
- 2.1、系统相关
- 1.4.4、权限管理
- 2.2、进程相关
- 2.2.1、端口占用情况
- 2.2.2、根据进程号查看进程详情
- 2.2.3、根据一个进程ID,找到它的日志目录
- 2.2.4、日志关键字搜索
- 2.3、基本指令
- 2.3.1、文件目录相关
- 2.3.2、解压相关
- 2.3.3、vi\vim的使用
- 三、网关相关
- 3.1、网关概念
- 3.2、默认网关
- 四、ftp文件服务器的安装
- 五、sftp文件服务器的安装
- 六、curl 的使用
- 七、java jar包部署
一、Linix的基本使用
1.1 、Linux目录结构
etc 存放系统配置文件home 存放用户文件的根目录root 超级用户目录(1)、bin (binaries)存放二进制可执行文件(2)、boot 存放用于系统引导时使用的各种文件(3)、dev (devices)用于存放设备文件(4)、lib (library)存放跟文件系统中的程序运行所需要的共享库及内核模块(5)、sbin (super user binaries)存放二进制可执行文件,只有root才能访问(6)、tmp (temporary)用于存放各种临时文件(7)、usr (unix shared resources) 用于存放共享的系统资源(8)、var(variable)用于存放运行时需要改变数据的文件
1.2、文件目录属性
[root@centos8 install]# ls -lhi
总用量 4.0K
17751256 drwxr-xr-x. 9 es es 155 8月 8 23:12 es-master817952 drwxr-xr-x. 9 es es 155 8月 8 23:13 es-slave1
17823623 drwxr-xr-x. 9 es es 155 8月 8 23:13 es-slave2第一列:inode索引节点编号(唯一的,像人的身份证)第二列:文件类型及权限(共10个字符,第一字符为类型,后9个为文件权限)第三列:硬链接数第四列:文件或目录所属的用户第五列:文件或目录所属的组第六列:文件或目录的大小第七、八、九列:时间戳第十列:实际的文件或目录名
1.3、目文件展示
ls . 显示当前文件和目录列表(list)
ll 以长格式列表输出指定目录中的文件清单 (等价于ls -l 长格式展示)文件类型 文件权限 链接数 属主 属组 大小 日期 时间 文件名d rwxrwxr-x 2 user1 user1 4096 Aug 17 09:10 abcls -R 递归显示指定目录下的文件清单
ls -a (all) 含隐藏文件、特殊目录.和..
ls -la 长格式展示,包括隐藏文件
1.4、用户及权限管理
1.4.1、概述
Linux操作系统用组的概念来管理用户每个用户可以在一个独立的组每个组也可以有零个用户或者多个用户。Linux系统用户是根据用户ID来识别的,默认ID长度为32位,从默认ID编号从0开始,
但是为了和老式系统兼容,用户ID限制在60000以下,Linux用户分总共分为三种,分别如下:root用户 (ID 0)系统用户 (ID 1-499)普通用户 (ID 500以上)Linux系统中的每个文件或者文件夹,都有一个所属用户及所属组,使用id命令可以显示当前用户的信息,
使用passwd命令可以修改当前用户密码。Linux操作系统用户的特点如下:每个用户拥有一个UserID,操作系统实际读取的是UID,而非用户名;每个用户属于一个主组,属于一个或多个附属组,一个用户最多有31个附属组;每个组拥有一个GroupID;每个进程以一个用户身份运行,该用户可对进程拥有资源控制权限;每个可登陆用户拥有一个指定的Shell环境。
1.4.2、用户管理
Linux用户在操作系统可以进行日常管理和维护,涉及到的相关配置文件如下:/etc/passwd 保存用户信息/etc/shdaow 保存用户密码(以加密形式保存)/etc/group 保存组信息/etc/login.defs 用户属性限制,密码过期时间,密码最大长度等限制/etc/default/useradd 显示或更改默认的useradd配置文件如需创建新用户,可以使用命令useradd,执行命令useradd test1即可创建test1用户,
同时会创建一个同名的组test1,默认该用户属于test1主组。Useradd test1命令默认创建用户test1,会根据如下步骤进行操作:1、在/etc/passwd文件中添加用户信息;2、如使用passwd命令创建密码,密码会被加密保存在/etc/shdaow中;3、为test1创建家目录:/home/test1;4、将/etc/skel中的.bash开头的文件复制至/home/test1家目录;5、创建与用户名相同的test1组,test1用户默认属于test1同名组;6、test1组信息保存在/etc/group配置文件中。在使用useradd命令创建用户时,可以支持如下参数:用法:useradd [选项] 登录useradd -Duseradd -D [选项]
1.4.3、组管理
所有的Linux或者Windows系统都有组的概念,通过组可以更加方便的管理用户,组的概念应用于各行行业,
例如企业会使用部门、职能或地理区域的分类方式来管理成员,映射在Linux系统,同样可以创建用户,并用
组的概念对其管理。Linux组有如下特点:每个组有一个组ID;组信息保存在/etc/group中;每个用户至少拥有一个主组,同时还可以拥有31个附属组。
1.4.4、权限管理
Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户或用户组可以对特定文
件进行相应的操作。Linux每个进程都是以某个用户身份运行,进程的权限与该用户的权限一样,用户的权限越大,则进程拥有的权
限就越大。Linux权限授权,默认是授权给三种角色,分别是user、group、other,Linux权限与用户之间的关联如下:U代表User,G代表Group,O代表Other;每个文件的权限基于UGO进行设置;权限三位一组(rwx),同时需授权给三种角色,UGO;每个文件拥有一个所属用户和所属组,对应UGO,不属于该文件所属用户或所属组使用O来表示。d 表示目录,同一位置如果为-则表示普通文件;rwxrwxr-x 表示三种角色的权限,每三位为一种角色,依次为u,g,o权限,如上则表示user的权限为rwx,group的权限为rwx,other的权限为r-x;2表示文件夹的链接数量,可理解为该目录下子目录的数量;Chmod用户及组权限:修改某个用户、组对文件夹的权限,用命令chmod实现,其中以代指ugo,+ - =代表加入、删除和等于对应权限
(1) 授予用户对peter.net目录拥有rwx权限 chmod –R u+rwx peter.net
(2) 授予组对peter.net目录拥有rwx权限 chmod –R g+rwx peter.net
(3) 授予用户、组、其他人对jpeter.net目录拥有rwx权限chmod –R u+rwx,g+rwx,o+rwx peter.net
(4) 撤销用户对peter.net目录拥有w权限 chmod –R u-w peter.net
(5) 撤销用户、组、其他人对peter.net目录拥有x权限chmod –R u-x,g-x,o-x peter.net
(6) 授予用户、组、其他人对jpeter.net目录只有rx权限chmod –R u=rx,g=rx,o=rx peter.netChmod二进制权限:Linux权限默认使用rwx来表示,为了更简化在系统中对权限进行配置和修改,Linux权限引入二进制表示方法得出结论,用r=4,w=2,x=1来表示权限。使用二进制方式来修改权限案例演示如下,其中默认peter.nett目录权限为755:(1) 授予用户对peter.net目录拥有rwx权限 chmod –R 755 peter.net
(2) 授予组对peter.net目录拥有rwx权限 chmod –R 775 peter.net
(3) 授予用户、组、其他人对peter.net目录拥有rwx权限chmod –R 777 peter.net
hdfs 修改权限
sudo -u hdfs hadoop fs -chown impala:hive /user/hive/warehouse/tdm.db/
1.5、查看用户信息 查看用户组信息
cat /etc/passwd
cat /etc/group
--查看 用户信息 查看用户组信息
[root@centos8 home]# cat /etc/passwd |grep ftpuser
ftpuser:x:1001:1001::/home/ftpuser:/bin/bash
[root@centos8 home]# cat /etc/group |grep 1001
ftpuser:x:1001:查看当前登录用户的组内成员 groups
root
查看sftp_jc用户所在的组,以及组内成员:groups sftp_jc
sftp_jc : sftp查看当前登录用户名:whoami
root--查询所有的组
cat /etc/passwd
cat /etc/passwd|grep sftp_jc root:x:0:0:root:/root:/bin/bashbin:x:1:1:bin:/bin:/sbin/nologindaemon:x:2:2:daemon:/sbin:/sbin/nologinadm:x:3:4:adm:/var/adm:/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/sbin/nologinsync:x:5:0:sync:/sbin:/bin/syncshutdown:x:6:0:shutdown:/sbin:/sbin/shutdownhalt:x:7:0:halt:/sbin:/sbin/haltmail:x:8:12:mail:/var/spool/mail:/sbin/nologinoperator:x:11:0:operator:/root:/sbin/nologingames:x:12:100:games:/usr/games:/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/sbin/nologinnobody:x:99:99:Nobody:/:/sbin/nologinsystemd-network:x:192:192:systemd Network Management:/:/sbin/nologindbus:x:81:81:System message bus:/:/sbin/nologinpolkitd:x:999:998:User for polkitd:/:/sbin/nologinsshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologinpostfix:x:89:89::/var/spool/postfix:/sbin/nologinchrony:x:998:996::/var/lib/chrony:/sbin/nologinmysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/falsees:x:1000:1000::/home/es:/bin/bashkibana:x:997:995:kibana service user:/home/kibana:/sbin/nologinftpuser:x:1001:1001::/home/ftpuser:/bin/bashntp:x:38:38::/etc/ntp:/sbin/nologinsftp_jc:x:1002:1002::/home/sftp_jc:/sbin/nologinarangodb:x:996:994:Arango Server:/var/arangodb:/bin/bash
--用户 用户密码 用户id 组id 用户家目录 shell 命令所在
--组信息 用户组口令 组id
[root@centos8 ~]# cat /etc/group cat /etc/group |grep kibana
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
input:x:999:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:998:
ssh_keys:x:997:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
chrony:x:996:
mysql:x:27:
es:x:1000:
kibana:x:995:
ftpuser:x:1001:
ntp:x:38:
sftp:x:1002:
arangodb:x:994:
二、命令相关
2.1、系统相关
ip addr(centos7) 查看本机ipping 测试网络的连通性find 用来查找文件的命令 find / -name "text.txt*"查看centos版本:cat /etc/redhat-release查看内核版本: uname -a磁盘相关:du/dfdu 显示指定的文件(目录)已使用的磁盘空间的总量du -h 文件大小以K,M,G为单位显示df -h 查看服务器存储使用情况
1.4.4、权限管理
Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都
拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户或用户组可以对特定文件进行相应的操作。Linux每个进程都是以某个用户身份运行,进程的权限与该用户的权限一样,用户的权限越大,则进程
拥有的权限就越大。Lnux中有的文件及文件夹都有至少权限三种权限,常见的权限如表5-1所示:
2.2、进程相关
2.2.1、端口占用情况
1、查看已知的端口是否被占用:netstat -anp |grep 80892、查看服务器已使用的所有端口命令:netstat -nultp3、删除已被占用的端口命令:kill -9 pid4、查看4445被占用情况netstat -anlp | grep 4445 5、根据进程pid查端口 lsof -i | grep pid
6、根据进程pid查端口 netstat -nap | grep pid7、根据端口port查进程 lsof -i:port
8、根据端口port查进程 netstat -nap | grep port
2.2.2、根据进程号查看进程详情
方式一: ps -aux |grep -v grep|grep 28990
[root@iZbp13806tx36fgoq7bzk1Z 28990]# ps -aux |grep -v grep|grep 2899028990 0.7 14.0 5112056 1128224 ? Ssl Sep26 231:10 /opt/java/bin/java -server -Dinstall4j.jvmDir=/opt/java -Dexe4j.moduleName=/opt/sonatype/nexus/bin/nexus -XX:+UnlockDiagnosticVMOptions -Dinstall4j.launcherId=245 -Dinstall4j.swt=false -Di4jv=0 -Di4jv=0 -Di4jv=0 -Di4jv=0 -Di4jv=0 -Xms1200m -Xmx1200m -XX:MaxDirectMemorySize=2g -Djava.util.prefs.userRoot=/nexus-data/javaprefs -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -XX:+LogVMOutput -XX:LogFile=../sonatype-work/nexus3/log/jvm.log -XX:-OmitStackTraceInFastThrow -Djava.net.preferIPv4Stack=true -Dkaraf.home=. -Dkaraf.base=. -Dkaraf.etc=etc/karaf -Djava.util.logging.config.file=etc/karaf/java.util.logging.properties -Dkaraf.data=../sonatype-work/nexus3 -Djava.io.tmpdir=../sonatype-work/nexus3/tmp -Dkaraf.startLocalConsole=false -Di4j.vpt=true -classpath /opt/sonatype/nexus/.install4j/i4jruntime.jar:/opt/sonatype/nexus/lib/boot/nexus-main.jar:/opt/sonatype/nexus/lib/boot/org.apache.karaf.main-4.0.9.jar:/opt/sonatype/nexus/lib/boot/org.osgi.core-6.0.0.jar:/opt/sonatype/nexus/lib/boot/org.apache.karaf.diagnostic.boot-4.0.9.jar:/opt/sonatype/nexus/lib/boot/org.apache.karaf.jaas.boot-4.0.9.jar com.install4j.runtime.launcher.UnixLauncher run 9d17dc87 org.sonatype.nexus.karaf.NexusMain
方式二: cd /proc/28990
2.2.3、根据一个进程ID,找到它的日志目录
lsof -p 128737 | grep log
2.2.4、日志关键字搜索
关键词 查看日志 并返回关键词所在行:方法一:cat 路径/文件名 | grep 关键词cat test.log | grep "test" # 返回test.log中包含test的所有行方法二:grep -i 关键词 路径/文件名 (与方法一效果相同,不同写法而已)grep -i -a "test" ./test.log # 返回test.log中包含test的所有行(-i忽略大小写) -a, --text equivalent to --binary-files=text,即让二进制文件等价于文本。
2.3、基本指令
2.3.1、文件目录相关
touch(1)、不存在 创建空文件(2)、存在 修改创建时间mkdir(1)、创建文件夹 mkdir aa(2)、一次性构建多个目录 mkdir -p aa/bb/cccp(1)、复制文件到指定目录 cp test.txt aa/bb/cc(2)带包复制(包中含文件) cp -r ee/ ff/远程复制:scp XXX root@2g.CentOS.com:/opt/backupmv(1)、mv aa.txt bb.txt 文件改名(2)、mv aa.txt bb/ 移动文件到指指定目录rmrm test.txt 删除文件提供友情提示rm -f test.txt 强制删除文件rm -f *.text 支持统配符rm -r aa/ 代提示删除文件夹rm -rf aa/ 强制删除文件夹catcat test.txt 查看一个屏幕内容(适合一个屏幕的文件)more test.txt 以百分比查看 ctrl +c 退出less test.text 按业查看 翻页 pgup/dowmn sheft+Q 退出head -n text.txt 看前面n条数据tail -n text.txt 看后面n条数据tail -f text.txt 动态的展示文件的内容 用于日志通常grep 文件中查询指定 字符串:grep 'test' aaa.text文件中查询指定 字符串并放回行数: 24grep -n 'test' aaa.txt //显示file文件里匹配字串那行以及上下5行grep -C 5 'zhangsan' aaa.text
2.3.2、解压相关
tar:tar -cf aa.tar a.txt b.txt c.text 压缩文件 使用档名 .tartar -zf aa.tar 解压缩 .tartar -zcvf aa.tar.gz a.txt b.txt c.text Gzip 压缩tar -zxvf aa.tar.gz解Gzip压缩
2.3.3、vi\vim的使用
(12)、vim命令模式 vi/vim a.txtu 取消上一步操作Ctrl r 回到ui之前的状态gg 文本第一行G 文本最后一行插入模式: i 进行插入 esc 回到命令模式末行模式: shift +:q 改了不能退q! 改了可以退wqwq!:set nu 加行号:set nonu 取消行号:N 跳到第n行esc 回到命令模式 不保存
三、网关相关
3.1、网关概念
- 网关实质上是一个网络通向其他网络的IP地址。
比如有网络A和网络B:网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换
机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)与主机的IP 地址作 “与” 运算的结
果不同判定两个网络中的主机处在不同的网络里。而要实现这两个网络之间的通信,则必须通过网关。如
果网络A中的主机发数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转
发给网络B的网关,网络B的网关再转发给网络B的某个主机。完成网络A向网络B转发数据包的过程。所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。网关的IP地址是具有路由功能的设备的IP地址:1、具有路由功能的设备有路由器。2、启用了路由协议的服务器(实质上相当于一台路由器)3、代理服务器(也相当于一台路由器)网关也被称为 IP路由器
- 举例: 来源百度百科
- 假设你的名字叫小不点(很小,这里你就是一个url地址,指向某个网页资源),你住在一个大院子里,你的邻居有很多小伙伴,父母是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声。他的名字,他听到了就会回应你,并且跑出来跟你玩。
- 但是你家长不允许你走出大门,你想与外界发生的一切联系,都必须由父母(网关)用电话帮助你联系。
- 假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家里也有父母(小明的网关)。但是你不知道小明家的电话号码,不过你的班主任老师有一份你们班全体同学的名单和电话号码对照表,你的老师就是你的DNS服务器。
- 家长:找班主任查一下小明的电话号码。问到,他家的号码是211.99.99.99
- 家长向电话局发出了请求接通小明家电话的请求,最后一关当然是被转接到了小明家家长那里,然后他家长把电话给转到小明
3.2、默认网关
- 就好像一个房间可以有多扇门一样,一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。默认网关。默认网关一般填写192.168.x.1
四、ftp文件服务器的安装
yum -y install vsftpd 1、环境:ftp为vsftp。被限制用户名为ftpuser。被限制路径为/home/ftpuser
2、建用户,命令行状态下,在root用户下://增加用户ftpuser,并制定ftpuser用户的主目录为/home/ftpuser运行命令:useradd -d /home/ftpuser ftpuser//为ftpuser设置密码,运行后输入两次相同密码运行命令:passwd ftpuser vi /etc/vsftpd/vsftpd.conf把第一行的 anonymous_enable=YES ,改为NO在目标文件夹下输入chmod -R 777 /home/ftpuser 即可systemctl restart vsftpd.service
systemctl start vsftpd.service
systemctl status vsftpd.service设置vsftpd开机启动 :systemctl enable vsftpd.service
五、sftp文件服务器的安装
搭建步骤:使用root操作1、建SFTP组 groupadd sftp 创建完成后使用 cat /etc/group可以看到2、创建用户 sftp_jc useradd -g sftp -s /sbin/nologin -M sftp_jc-g 加入到sftp组-s 禁止ssh登陆-M 不要自动建立用户的登陆目录(在/home下)3、为sftp_jc用户设置密码passwd sftp_jcjc123456重复输入两次同一密码4、创建sftp存放文件的目录并设置文件拥有者mkdir -p /data/sftp/verifyfilechown -R sftp_jc:sftp /data/sftp/verifyfilechmod 755 /data/sftp/verifyfile5、编辑配置文件/etc/ssh/sshd_config时间同步网络:ntpdate -u cn.pool.ntp.org注:修改配置文件前先备份原有正常配置文件,方面还原cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bakvi /etc/ssh/sshd_config注释掉Subsystem sftp /usr/libexec/openssh/sftp-server在其下面添加Subsystem sftp internal-sftp在文件最后添加Match Group sftp # 指定活动目录ChrootDirectory /data/sftp # 指定根目录ForceCommand internal-sftp # 强制执行内部SFTP,并忽略任何~/.ssh/rc中的命令AllowTcpForwarding no # 禁用端口转发X11Forwarding no # 禁用X11图形界面转发
6、重启sshdservice sshd restart7、测试sftp sftp_jc@192.168.134.8输入密码即可连接上8、权限控制按照上面的设置chown sftp_jc:sftp /data/sftp/verifyfilechmod 755 /data/sftp/verifyfilesftp_jc是拥有/data/sftp/verifyfile文件的读写权限的sftp组其他用户的权限是5,即没有写入权限如新增用户 jackuseradd -g sftp -s /sbin/nologin -M jackpasswd jackjack123456重复输入两次同一密码那么jack的权限只有59、以上只是基本操作,但可基于此依据你自己需求(用户、文件目录、权限)自行设计专属sftp文件服务器,
对于不断新增特定目录、特定权限用户的操作,可以配合sheel脚本使用或基于脚本再开发前端页面方面操作。
- 基本指令
1. sftp常用命令ls 查看当前目录下文件help 查看sftp支持哪些命令cd 指定目录pwd 查看当前目录get xxx.txt 下载xxx文件put xxx.txt 上传xxx文件quit / bye / exit 退出sftpsftp xxx.xxx.xxx.xxx 登录root用户sftp zygf@xxx.xxx.xxx.xxx 进行登录zygf用户
2. sftp命令行登录过程sftp xxx.xxx.xxx.xxx 登录(默认root用户),若指定用户 sftp zygf@xxx.xxx.xxx.xxx 进行登录(zygf为用户名)登录成功后,会提示输入 密码然后,可进入目录, ls 查看目录下内容cd 切换目录,get 获取文件, put 上传文件quit / bye / exit 退出sftp
--设置下载的路径lcd C:\Users\jc336\Desktop\sftp
六、curl 的使用
# 带参数请求,参数用&连接
curl -H 'key1:mo' -H 'key2:qwwq' http://127.0.0.1:8080/login?admin=sas\&passwd=12345678 语法格式:
curl -X POST [options] [URL]
# 使用该-F选项时,curl使用的默认Content-Type是“multipart/form-data”,以key=value配对形式
curl -X POST -F 'name=Jason' -F 'email=jason@example.com' http://127.0.0.1:8000/login# 使用-d选项,可以使用&符号对发送数据进行合并
curl -X POST -d 'name=Jason&email=jason@example.com' http://127.0.0.1:8000/login# 使用-H选项,指定Content-Type为application/json发送JSON对象 # 通过-d指定json data内容
curl -X POST -H "Content-Type:application/json" -d '{"user": "admin", "passwd":"12345678"}' http://127.0.0.1:8000/login
七、java jar包部署
java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M XXX.jar
java -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M MyClass
说明:
后面是JVM的参数
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配