安装系统环境

CentOS 6.8 64位

jdk版本

7u80 64位

Tomcat版本

Tomcat7

maven版本

Apache Maven 3.6.0

vsftpd版本

vsftpd-2.2.2-24.el6.x86_64

Nginx版本

nginx-1.14.2

mysql版本

mysql-server-5.1.73-8.el6_8.x86_64

git版本

git version 2.18.0

阿里源配置

#备份
[root@192 yum.repos.d]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#下载新的CentOS-Base.repo 到/etc/yum.repos.d/
[root@192 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
#生成缓存
[root@192 yum.repos.d]# yum makecache

设置开机时关闭防火墙

[root@192 vsftpd]# chkconfig iptables off

jdk安装

下载

清理系统默认自带jdk

[root@192 yum.repos.d]# rpm -qa | grep jdk
java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64
java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
[root@192 yum.repos.d]# yum remove java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64
[root@192 yum.repos.d]# yum remove java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64

授权

[root@192 soft]# chmod 777 jdk-7u80-linux-x64.rpm 

安装

[root@192 soft]# rpm -ivh jdk-7u80-linux-x64.rpm 

默认安装路径/user/java

jdk配置环境变量,编辑/etc/profile文件,末尾追加

#jdk
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

使得/etc/profile文件立即生效

[root@192 apache-maven-3.6.0]# source /etc/profile

Tomcat安装

下载

解压

[root@192 soft]# tar -zxvf apache-tomcat-7.0.93.tar.gz -C /opt/module/

Tomcat配置环境变量,编辑/etc/profile文件,末尾追加

#tomcat
export CATALINA_HOME=/opt/module/apache-tomcat-7.0.93
export PATH=$PATH:$CATALINA_HOME/bin

使得/etc/profile文件立即生效

[root@192 apache-maven-3.6.0]# source /etc/profile

配置UTF-8字符集,进入Tomcat安装的conf文件夹,编辑server.xml文件,找到配置8080默认端口的位置,在xml节点末尾增加URIEncoding="UTF-8"

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />

启动Tomcat,进入/opt/module/apache-tomcat-7.0.93/bin目录,执行./startup.sh

访问http://192.168.1.104:8080/

Maven安装

下载

解压

[root@192 soft]# tar -zxvf apache-maven-3.6.0-bin.tar.gz -C /opt/module/

Maven配置环境变量,编辑/etc/profile文件,末尾追加

#maven
export MAVEN_HOME=/opt/module/apache-maven-3.6.0
export PATH=$PATH:$MAVEN_HOME/bin

使得/etc/profile文件立即生效

[root@192 apache-maven-3.6.0]# source /etc/profile

验证

[root@192 apache-maven-3.6.0]# mvn -version

vsftpd安装

安装

[root@192 apache-maven-3.6.0]# yum -y install vsftpd

查看是否已安装

[root@192 apache-maven-3.6.0]# rpm -qa | grep vsftpd
vsftpd-2.2.2-24.el6.x86_64

默认配置文件/etc/vsftpd/vsftpd.conf

创建虚拟用户

根目录下创建ftp文件夹

[root@192 vsftpd]# cd /
[root@192 /]# mkdir ftpfile

添加匿名用户

[root@192 /]# useradd ftpuser -d /ftpfile/ -s /sbin/nologin 

修改ftpfile权限

[root@192 /]# chown -R ftpuser.ftpuser /ftpfile/

重设ftpuser密码

[root@192 /]# passwd ftpuser

将刚刚新增的虚拟用户添加到此配置文件中

[root@192 ~]# cd /etc/vsftpd/
[root@192 vsftpd]# vim chroo_list
[root@192 bin]# cat /etc/vsftpd/chroo_list
ftpuser

编辑配置文件/etc/vsftpd/vsftpd.conf,末尾追加

local_root=/ftpfile
anon_root=/ftpfile
use_localtime=YES
anonymous_enable=no

登录验证的时候出现500提示,编辑/etc/selinux/config文件,设置SELINUX=disabled

[root@192 vsftpd]# vim /etc/selinux/config

如果还报500,执行

[root@192 vsftpd]# setsebool -P ftp_home_dir 1

设置开启启动vsftpd服务

[root@192 vsftpd]# chkconfig vsftpd on

访问ftp://192.168.1.104/

安装Nginx

下载

安装依赖gcc、pcre、zlib、openssl

[root@192 vsftpd]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

解压

[root@192 soft]# tar -zxvf nginx-1.14.2.tar.gz -C /opt/module/

编译安装

[root@192 nginx-1.14.2]# pwd
/opt/module/nginx-1.14.2
[root@192 nginx-1.14.2]# ./configure
[root@192 nginx-1.14.2]# make
[root@192 nginx-1.14.2]# make install

查看Nginx安装目录、版本

[root@192 nginx-1.14.2]# whereis nginx
nginx: /usr/local/nginx
[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.14.2

测试配置文件nginx.conf的正确性

[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx  -t

启动Nginx

[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx
[root@192 nginx-1.14.2]# ps -ef | grep nginx
root 5606 1 0 01:02 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 5607 5606 0 01:02 ? 00:00:00 nginx: worker process
root 5626 2868 0 01:09 pts/0 00:00:00 grep nginx

停止Nginx

[root@192 nginx-1.14.2]# /usr/local/nginx/sbin/nginx -s stop

访问http://192.168.1.104/

Nginx配置虚拟域名

配置虚拟域名映射

[root@192 vhost]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 #centos
#192.168.1.104 www.imooc.com
127.0.0.1 www.imooc.com

测试

[root@192 sbin]# ping www.imooc.com
PING www.imooc.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.013 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.032 ms

编辑/usr/local/nginx/conf/nginx.conf文件,追加

 ###########################vhost##############################################
include vhost/*.conf;

/usr/local/nginx/conf目录下,新建vhost文件夹

/usr/local/nginx/conf/vhost目录下,新建域名转发www.mytest.com.conf配置文件

[root@192 vhost]# cat /usr/local/nginx/conf/vhost/www.mytest.com.conf
#Start www.mytest.com
server {
listen 80;
server_name www.mytest.com; access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.php; if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
} # send request back to apach
location / {
proxy_pass http://127.0.0.1:8080/;
}
}

访问www.mytest.com

Nginx配置静态资源转发

编辑/usr/local/nginx/conf/nginx.conf文件,追加

 ###########################vhost##############################################
include vhost/*.conf;

/usr/local/nginx/conf目录下,新建vhost文件夹

/usr/local/nginx/conf/vhost目录下,新建域名转发www.mytest.com.conf配置文件

[root@192 vhost]# cat /usr/local/nginx/conf/vhost/www.mytest.com.conf
#Start www.mytest.com
server {
listen 80;
server_name www.mytest.com; access_log /usr/local/nginx/logs/access.log combined;
index index.html index.htm index.php; if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
} # send request back to apach
location / {
root /ftpfile/;
}
}

mysql安装

安装

[root@192 ~]# yum -y install mysql-server

配置字符集,编辑/etc/my.cnf文件,追加

#utf8
default-character-set=utf8

设置mysql服务随系统自动启动

[root@192 ~]# chkconfig mysqld on
[root@192 ~]# chkconfig --list mysqld
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

启动mysql服务

[root@192 ~]# service mysqld start
正在启动 mysqld: [确定]

登录,使用非密码登录

[root@192 mysql]# mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.73 Source distribution Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

查看mysql的用户

mysql> select user,host,password from  mysql.user;
+------+---------------+----------+
| user | host | password |
+------+---------------+----------+
| root | localhost | |
| root | 192.168.1.104 | |
| root | 127.0.0.1 | |
| | localhost | |
| | 192.168.1.104 | |
+------+---------------+----------+
5 rows in set (0.00 sec)

删除匿名用户

mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.00 sec)

刷新,立即生效

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

修改root密码

mysql> set password for root@localhost=password("000000");
Query OK, 0 rows affected (0.00 sec)

插入mysql新用户

mysql> insert into mysql.user(Host,User,Password) values("localhost","admin",password("000000"));
Query OK, 1 row affected, 3 warnings (0.01 sec)

查看用户权限

mysql> select * from mysql.user \G
*************************** 1. row ***************************
Host: localhost
User: root
Password: *032197AE5731D4664921A6CCAC7CFCE6A0698693
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 2. row ***************************
Host: 192.168.1.104
User: root
Password:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 3. row ***************************
Host: 127.0.0.1
User: root
Password:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
*************************** 4. row ***************************
Host: localhost
User: admin
Password: *032197AE5731D4664921A6CCAC7CFCE6A0698693
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
4 rows in set (0.00 sec)

查库,新建database数据库

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
+--------------------+
3 rows in set (0.01 sec)
mysql> create database mytest default character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| mytest |
| test |
+--------------------+
4 rows in set (0.00 sec)

本地用户赋予所有权限、给账号开通外网所有权限

mysql> grant all privileges on mytest.* to admin@'%' identified by '000000' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> grant select,delete,create on mytest.* to admin@'192.168.1.104' identified by '000000' with grant option;
Query OK, 0 rows affected (0.00 sec)

导入sql文件

mysql> source /opt/module/mmall.sql

git安装

下载

解压

[root@192 ~]# tar -zxvf git-2.18.0.tar.gz -C /opt/module/

安装依赖

[root@192 ~]# yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker cpio

编译安装

[root@192 git-2.18.0]# make prefix=/usr/local/ install

验证

[root@192 ~]# git --version
git version 2.18.0

生成公私密钥对

[root@192 ~]# ssh-keygen -t rsa -C "782125244@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
85:1e:ef:5a:33:ab:e7:79:a4:46:f6:8e:8f:7f:af:cd 782125244@qq.com
The key's randomart image is:
+--[ RSA 2048]----+
| |
| . |
| o . |
| . + |
| S . |
| .o . |
| o=+ |
| o+Bo .o |
| o=*=+..oE|
+-----------------+

复制公钥粘贴到码云或者GitHub上SSH公钥上

[root@192 .ssh]# cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA1sZvTnjQyVn7r2C7G9Q/WyVTTmJYqWhQdVfh3tBCUX8kJHaAcThwR4sl8ROz6xXl/22wbzlsKtfsiyr5zrV0Ifnq7KuCeNVNUYjOQCTn+ODaRzdj7DYC4Mz9BvxZAr0MDfSbgpLp6ZLAvZlkP3DioOPda7VnfJSAHGEYztOVPITj31pVnP1nXkPZRQlsTwImXEGJpuU+zOaurMShpaukrY/ONxWHR6xlG5M1FgOLdBvEnlbhOFoME1HHziI4/08Xw/NrHIUhvjZZgkAzWUo5NvYZLEwrUjOPtlVxHbYwBEtgBWRgWLFMfTlxQnEJVKzbwUDPLvZWac9WSpGLx5xiww== 782125244@qq.com

配置用户名、邮箱,提交时会引用

[root@192 mytest]# git config --global user.name "shenlibng"
[root@192 mytest]# git config --global user.email "782125244@qq.com"
[root@192 mytest]# git config --global core.autocrlf false
[root@192 mytest]# git config --global core.quotepath off
[root@192 mytest]# git config --global gui.encoding utf-8

开启防火墙配置

查看防火墙初始化配置

[root@192 ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

开放Tomcat端口

重启生效防火墙

[root@192 ~]# service iptables restart
iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
iptables:应用防火墙规则: [确定]

查看防火墙状态

[root@192 ~]# service iptables status
表格:filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

linux系统下开发环境安装与配置的更多相关文章

  1. Linux系统下 Rsync 环境安装搭建

    一.Rsync简介 1.认识 Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的“Rsync算法”来使本地和远 ...

  2. Linux系统下zookeeper的安装和配置

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  3. linux系统下saltstack的安装和配置

    Saltstack是一个新的基础设施管理工具,两大功能:远程执行和配置管理. Saltstack使用Python开发,是一个非常简单易用和轻量级的管理工具.由Master和Minion构成,通过Zer ...

  4. 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

    深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,假设对这个课程有兴趣的,能够加我的QQ2059055336和我联系 ...

  5. Linux系统下修改环境变量PATH路径的三种方法

    这里介绍Linux的知识,比如把/etc/apache/bin目录添加到PATH中有三种方法,看完之后你将学会Linux系统下如何修改环境变量PATH路径,需要的朋友可以参考下 电脑中必不可少的就是操 ...

  6. Nginx+Python+uwsgi+Django的web开发环境安装及配置

    Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...

  7. Linux(Ubuntu)下MySQL的安装与配置

    转自:http://www.2cto.com/database/201401/273423.html 在Linux下MySQL的安装,我一直觉得挺麻烦的,因为之前安装时就是由于复杂的配置导致有点晕.今 ...

  8. 第1章 开发环境安装和配置(二)安装JDK、SDK、NDK

    原文 第1章 开发环境安装和配置(二)安装JDK.SDK.NDK 无论是用C#和VS2015开发Androd App还是用Java和Eclipse开发Androd App,都需要先安装JDK和Andr ...

  9. linux系统下tomcat应用开机自启动 配置

    linux系统下tomcat应用开机自启动 配置 相对简单的方式是将tomcat添加为系统服务第一步  复制文件将 $Tomcat_Home/bin目录下的 catalina.sh脚本文件复制到目录/ ...

随机推荐

  1. Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)

    简介 前边介绍的都是通过按钮点击启动按钮来启动appium服务,有的小伙伴或者童鞋们乍一听可能不信,或者会问如何通过命令行启动appium服务呢?且听宏哥一一道来. 一睹为快 其实相当的简单,不看不知 ...

  2. 10.源码分析---SOFARPC内置链路追踪SOFATRACER是怎么做的?

    SOFARPC源码解析系列: 1. 源码分析---SOFARPC可扩展的机制SPI 2. 源码分析---SOFARPC客户端服务引用 3. 源码分析---SOFARPC客户端服务调用 4. 源码分析- ...

  3. Mac忘记MySQL root密码解决方法(亲测有效)

    重置MySQL root密码 重置MySQL root用户的密码: 1)新建一个文本文件sql.txt,写入修改用户密码的SQL语句. MySQL 5.7.6及更高版本写这句: ALTER USER ...

  4. python学习——文件操作

    打开文件 f = open(文件名, 文件打开模式,文件编码) ‘w’:只写模式,它是只能写,而不能读的.如果用’w’模式打开一个不存在的文件,则会创建新的文件开始写入:如果用’w’模式打开一个已存在 ...

  5. P2050 [NOI2012]美食节 动态连边优化费用流

    题意 类似的一道排队等候,算最小总等待时间的题目. 思路 但是这道题的边数很多,直接跑会tle,可以动态加边,就是先连上倒数第一次操作的边,跑一遍费用流,然后对使用了倒数第一条边的点,连上相应的倒数第 ...

  6. ZOJ-3872-Beauty of Array-思维

    ZOJ-3872-Beauty of Array 传送门:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3872 参考:ht ...

  7. CF1027C Minimum Value Rectangle 贪心 数学

    Minimum Value Rectangle time limit per test 2 seconds memory limit per test 256 megabytes input stan ...

  8. Codeforces Round #385 (Div. 2) C - Hongcow Builds A Nation

    题目链接:http://codeforces.com/contest/745/problem/C 题意:给出n个点m条边,还有k个不能连通的点,问最多能添加几条边. 要知道如果有n个点最多的边是n*( ...

  9. uiautomator2 实现App九宫格解锁

    App九宫格解锁 之前在testerhome社区看见codeskyblue大佬写过一种方法,但是这种办法存在一个弊端,那就是多个点的坐标是写死的,也就是说要是换了部手机,九宫格解锁就行不通了,于是就想 ...

  10. 《Hive编程指南》读书笔记 | 一文看懂Hive的数据类型和文件格式

    Hive支持关系型数据库中的大多数基本数据类型,同时也支持关系型数据库中很少出现的3种集合数据类型. 和大多数数据库相比,Hive具有一个独特的功能,那就是其对于数据在文件中的编码方式具有非常大的灵活 ...