首页 文章 精选 留言 我的

精选列表

搜索[个人知识库],共10000篇文章
优秀的个人博客,低调大师

Java个人技术知识点总结(框架篇)

框架篇 Struts1的运行原理 在启动时通过前端总控制器ActionServlet加载struts-config.xml并进行解析,当用户在jsp页面发送请求被struts1的核心控制器ActionServlet接收,ActionServlet在用户请求时将请求参数放到对应的ActionForm对象中的成员变量中,然后ActionServlet则会根据struts-config.xml中的映射关系找到相应的Action中的方法,将对应的ActionForm一并传给这个Action中的方法里,然后执行相应的业务逻辑操作,最后就根据ActionMapping的findforward方法返回一个ActionForward,之后在struts-config.xml中找到与之对应的forward标签,根据它的配置路径找到对应的jsp页面。 Struts2的运行原理 1、tomcat 启动的时候会加载 web.xml 、核心控制器 FilterDispatcher 会加载并解析 struts.xml 2、客户端会发送一个请求到 action 、FilterDispatcher 会根据后缀名进行拦截 3、FilterDispatcher根据 struts.xml 的配置文件信息 找到 某个action 对应的某个类里的指定方法 4、执行相关的业务逻辑最后返回 一个String 5、<action/> 里配置 <result/> name的属性值与返回的String 进行匹配,跳转到指定的jsp 页面 struts2的体系结构 1、客户端向Servlet容器(例如Tomcat)发送一个请求; 2、这个请求经过一系列的过滤器(Filter); 3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请求是否需要调用某个Action; 4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy; 5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类; 6、ActionProxy创建一个ActionInvocation的实例。 7、ActionInvocation在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。 8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是jsp或者FreeMarker的模版。(体系结构图见下一页) Spring MVC运行原理 整个处理过程从一个HTTP请求开始: 1.Tomcat在启动时加载解析web.xml,找到spring mvc的前端总控制器DispatcherServlet,并且通过DispatcherServlet来加载相关的配置文件信息。 2.DispatcherServlet接收到客户端请求,找到对应HandlerMapping,根据映射规则,找到对应的处理器(Handler)。 3.调用相应处理器中的处理方法,处理该请求后,会返回一个ModelAndView。 4.DispatcherServlet根据得到的ModelAndView中的视图对象,找到一个合适的ViewResolver(视图解析器),根据视图解析器的配置,DispatcherServlet将要显示的数据传给对应的视图,最后显示给用户。 Struts1.x与Struts2.x的区别 Struts 2以WebWork为核心, 采用拦截器的机制来处理用户的请求,struts1严重依赖于servletAPI, 属于侵入性框架,struts2不严重依赖于servletAPI,属于非侵入型框架。 线程模型方面: Struts1的Action是单实例的, 一个Action的实例处理所有的请求。 Struts2的Action是一个请求对应一个实例(每次请求时都新new出一个对象), 没有线程安全方面的问题 封装请求参数: Struts1中强制使用ActionForm对象封装请求的参数。 Struts2可以选择使用POJO类来封装请求的参数,或者直接使用Action的属性。 struts1的前端总控制器(核心总控制器)为ActionServlet, struts2的前端总控制器(核心总控制器)为FilterDispather Spring MVC、struts1和struts2区别 1.spring mvc单例 非线程安全 struts1单例 非线程安全 struts2线程安全对每个请求都产生一个实例 2.spring mvc的入口是servlet,而struts2是filter spring的前端总控制器为 DispatcherServlet struts2的前端总控制器为 FilterDispatcher struts1的前端总控制器为 actionServlet 3.参数传递:struts是在接受参数的时候, 可以用属性来接受参数,这就说明参数是让多个方法共享的。 springmvc用方法来接受参数 4.spring mvc是基于方法的设计,而sturts是基于类 如果你依然觉得有些茫然,不如加入我的Java架构师之路:766529531跟有多年Java开发经验的资深工程师聊一聊。也可获取免费的视频学习资料以及电子书学习资料喔! Struts2中result中的type类型 1.dispatcher:它是默认的,用来转向页面,通常处理JSP 2.redirect:将用户重定向到一个已配置好的URL 3.redirectAction:将用户重定向到一个已定义好的action 4.chain:将action和另外一个action链接起来 5.freemarker:呈现Freemarker模板 6.httpheader:返回一个已配置好的HTTP头信息响应 7.stream:向浏览器发送InputSream对象对下载的内容和图片非常有用 8.velocity:呈现Velocity模板 9.xslt :该XML可以通过XSL模板进行转换 10.plaintext:显示原始文件内容,例如文件源代码 Struts2标签 首先需要引用<%@taglib prefix="s" uri="/struts-tags"%> 1.判断标签 后面可跟 <s:else> 2. 迭代标签 3.引入标签 可以把一个JSP页面或者servlet引入一 个页面中 4.输出标签 5.标签赋予变量一个特定范围内的值 6.表单标签 7.文本域标签 8.下拉标签 9.声明一个url的路径 最常用的是: 判断 循环 输出 SSI整合 1、Action继承于Actionsupport 2、引入struts-spring-plugin.jar包,从而完成struts和spring的整合 3、在struts2的action中注入service,保证service的名字和配置文件中的一致, 并生成get,set方法 4、Dao层继承于SqlMapClientDaoSupport 5、在dao层的配置文件中注入sqlMapClient SSH整合 1.首先在web.xml中通过ContextLoaderListener来融入spring, 并加载spring的相关配置文件 2.同样配置sturts2的前端总控制器filterDispatcher来过滤相关的 请求并且加载struts.xml 3.action继承ActionSupport,然后通过引入struts-spring-plugin.jar 包并且根据配置文件中service的id生成get,set方法来注入service层。 4.dao层继承于HibernateDaoSupport,并且在dao的配置文件中注入sessionFactory. 5.通过spring中的配置文件加载hibernate.cfg.xml文件从而融入hibernate. 在ssh框架中是怎么整合spring? 首先在web.xml中通过ContextLoaderListener来融入spring, 并加载spring的相关配置文件 在ssh框架中是怎么整合hibernate? 通过spring中的配置文件加载hibernate.cfg.xml文件从而融入hibernate dao层继承于HibernateDaoSupport,并且在dao的配置文件中注入sessionFactory 在ssh框架中是怎么整合struts2? 配置sturts2的前端总控制器filterDispatcher来过滤相关的 请求并且加载struts.xml 如果你依然觉得有些茫然,不如加入我的Java架构师之路:766529531跟有多年Java开发经验的资深工程师聊一聊。也可获取免费的视频学习资料以及电子书学习资料喔! Spring MVC整合 1.首先,要在web.xml里面配置SpringMVC的核心控制器,DispatcherServlet,对指定的后缀请求进行拦截。 2.Controller层要加 @Controller注解,表明该类是MVC的控制层。 3.创建Service接口,给接口加上注解 @Component或者 @Service 表明这是Service业务处理层 4.在Controller层声明Service变量(属性),给变量(属性) 加上 @Autowired注解,通过自动绑定机制将Service注入到Controller。 (注:@Autowired默认是ByType,如果想根据属性名注入,那么就再加上注解 @Resource(name="属性名")) 5.在Controller层的方法上加上注解 @RequestMapping("requestAddress") 表明该方法的请求地址 6.Dao层要加上注解 @Repository 表明这是数据库持久层 7.同样将dao实例注入到service层中。 8.配置视图解析器 "InternalResourceViewResolver",对处理后的跳转进行统一配置。 Hibernate中get 和 load的区别 加载方式: load为延迟加载(返回的是一个只有id属性的代理,只有使用该对象属性时,才 发出sql语句); get为立即加载(执行时,会立即向数据库发出sql语句) 返回结果: load检索不到记录时,会抛ObjectNotFoundException异常 get检索不到记录时,会返回null Hibernate、Ibatis、Jdbc三者的区别 Hibernate属于全自动, Ibatis属于半自动,Jdbc属于手动,从开发效率上讲hibernate较高,ibatis居中,jdbc较低,从执行效率上讲hibernate较低,ibatis居中,jdbc较高,因为jdbc是手工写sql语句,程序员对sql的控制能力更大,可以根据业务需要进行优化,而ibatis虽然也可以对sql进行优化,但是他里面将resultset封装为实体的过程中采用了反射机制所以一定程度上影响了性能,而hibernate因为高度封装所以开发效率相对较高,但正因为这个原因,所以程序员在对sql语句的控制和优化方面相对比较弱,而且在将resultset封装成实体的过程中也采用了反射机制,所以在性能方面较低 Hibernate的运行原理 首先通过configuration去加载hibernate.cfg.xml这个配置文件,根据 配置文件的信息去创建sessionFactory,sessionFactory是线程安全的, 是一个session工厂,用来创建session,session是线程不安全的,相当于 jdbc的connection,最后通过session去进行数据库的各种操作,在进行操作 的时候通过transaction进行事务的控制。 Hibernate五大核心(类/接口)简述 1 .Configuration接口的作用是对Hibernate进行配置,以及对它进行启动。(加载 hibernate.cfg.xml)并创建一个SessionFactory对象。 2 .SessionFactory接口 SessionFactory接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建 Session对象。SessionFactory是线程安全的。 3 .Session接口 Session(会话)接口是Hibernate应用使用的主要接口。Session接口负责执行被持久化对象的CRUD操作(增删改查)。Session对象是非线程安全的。Session 相当于jdbc的connection 4 .Query与Criteria接口 总之Query和Criteria接口负责执行各种数据库查询。 5 .Transaction接口 Transaction(事务)负责操作相关的事务。 Hibernate与JDBC的区别 [if !supportLists]1、[endif]hibernate和jdbc主要区别就是,hibernate先检索缓存中的映射对象( 即hibernate操作的是对象),而jdbc则是直接操作数据库. [if !supportLists]2、[endif]Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架。Hibernate可以用在任何JDBC可以使用的场合 [if !supportLists]3、[endif]Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的Java程序,和App Server没有任何关系,也不存在兼容性问题。 4、如果正确的使用JDBC技术,它的执行效率一定比hibernate要好,因为hibernate是基于jdbc的技术. 5、JDBC使用的是SQL语句,Hibernate使用的是HQL语句,但是HQL语句最终还会隐式转换成SQL语句执行。 Hibernate中的两大配置文件 *.hbm.xml:主键生成策略,映射关系,一对多,一对一的关系。 Hibernate.cfg.xml:方言(用哪个数据库),数据库连接信息,包含*.hbm.xml内容,映射 文件,也可以配事务。 Hibernate事务处理 开启事务session.beginTransaction(); 执行相关的操作,如果成功则session.getTransaction().commit(); 执行操作失败则session.getTransaction.rollback(); Hibernate的三种状态以及状态的转换 Transient(临时) new一个初始化对象后,并没有在数据库里保存数据,处于临时状态; Persistent(持久化) 当执行save()方法,调用session.close()方法之前,内存中的对象与数据库有对应关系处于持久化状态; Detached(托管/游离) 当执行session.close()之后,处于托管状态; 状态的转换 处于托管状态下,调用update()方法后,转换为持久化状态; 在持久化状态下,执行delete()方法后,转换为临时状态; 在未初始化对象之前,调用get(),load(),find(),iterate()之后,直接进入持久化 状态。 分页步骤 ①前台封装一个显示分页的组件 ②查询总条数 ③后台封装分页工具类,计算开始位置、结束位置、总页数 ④后台写支持分页的sql语句 ⑤前台包含分页组件,实现分页效果 注意: 查询总条数的where和查询列表信息的where条件要保证一致。 hibernate缓存概述 hibernate分为一级缓存即session缓存也叫事务级别的缓存以及 二级缓存sessionFactory即应用级别的缓存,还有查询缓存即三级缓存. 一级缓存的生命周期和session的生命周期保持一致, hibernate默认就启用了一级缓存, 不能将其关闭,可以通过session.clear()和session.evict(object)来管理一级缓存。其中get,load,iterate都会使用一级缓存,一级缓存缓存的是对象。 二级缓存的生命周期和sessionFactory的生命周期保持一致,可以跨session,被多个session共享,hibernate3默认开启二级缓存,也可以手动开启并指定缓存插件如ehcache,oscache 等。二级缓存也只能缓存对象。 三级缓存也叫查询缓存,查询缓存是针对普通属性结果集的缓存, 对实体对象的结果集只缓存id。对query.list()起作用,query.iterate不起作用,也就是query.iterate不使用查询缓存 如果你依然觉得有些茫然,不如加入我的Java架构师之路:766529531跟有多年Java开发经验的资深工程师聊一聊。也可获取免费的视频学习资料以及电子书学习资料喔! Ssh的概述: ssh是web开发中常见的一种框架 s-struts2 s-spring h-hibernate 其中struts2在框架中充当控制器,实现MVC,主要用来处理用户的请求,和跳转页面。使项目结构清晰,开发者只需要关注业务逻辑的实现即可。 spring在ssh充当粘合剂,粘合struts-sping-hibernate,主要用来进行事物的控制, hibernate-充当数据库持久层,主要用它来与数据库交互,提高开发效率,减轻程序员sql控制要求,而且hibernate通过反射机制,有灵活的映射性,还支持各种关系,一对一,一对多,多对多。 在进行ssh整合的时候,我们应该注意: 1. Action继承于ActionSupport 引入struts-spring-plugin.jar包,从而完成struts和spring的整合 在struts2的action中注入service,保证service的名字和配置文件中的一致,并生成get,set方法 Dao层继承于hibernateDaoSupport 在dao层的配置文件中注入sessionFactory 防止表单重复提交 针对于重复提交的整体解决方案: 1.用redirect来解决重复提交的问题 2.点击一次之后,按钮失效 3.通过loading 4.自定义重复提交过滤器 5.解决struts2重复提交 可以结合s:token标签来解决重复提交问题 利用token的原理: 1.在前端的jsp页面中加入s:token标签,在访问该页面时就会生成 隐藏域,该隐藏域中包含一个随机生成的字符串,并把该字符串 存入session中 2.在struts2的配置文件中加入token拦截器后,当正常访问action 的时候,会从session中取出该字符串,然后和页面隐藏域中提交 字符串做对比,如果一致则正常执行并删除session中存储的字符串。 JSP标签: 1.JSP include动作 jsp:include动作 以“<jsp: 动作名 ” 开始,以“</jsp:动作名> ” 结束 比如: 2.JSP指令:<%@ include%><%@ %> 以“<%@ ” 开始,以“%> ” 结束。比如: <%@ include file = " Filename" %> 3.JSP输出表达式:<%= %><%=Java表达式 %> 输出变量的值,后边不能加<%= ; %> 4.JSP Scriptlet【脚本】:<% ;%> <% Java 代码 %> 例子: <% Calendar now = Calendar.getInstance(); %> 5.JSP声明:<%! %> <%! 函数或者方法 %> 例子: <%! String getHello(String name) { return "Hi," + name + "!"; } %> 6.迭代标签:<c:foreach> Jstl中的核心标签(core) 7.JSP注释: <%--这也是注释,但客户端不能查看到 --%> el表达式:${} jsp:include动作是在运行时动态包含。 @include指令是在编译时包含。 它们两个都只能包含本项目的相关文件,不能包含其他项目的。 如果要包含其他项目的文件可以使用c:import 过滤器 filter的概述: filter是一个过滤器,用来在请求前和响应后进行数据的处理。 filter的生命周期是: 实例化--->初始化(init)-->进行过滤(doFilter)--->销毁(destroy)-->释放资源 一个Filter必须实现javax.servlet.Filter接口 在项目中我们通常通过filter进行编码转换, 进行安全验证,进行重复提交的判断。 了解(不需要主动说) filter 相当于 拦截器 相当于Spring AOP servlet+jsp+javabean+jdbc+filter <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.leopard.filter.EncodingFilter</filter-class> <init-param> <param-name>encode</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>*</url-pattern> </filter-mapping> 拦截器的理解 如果你依然觉得有些茫然,不如加入我的Java架构师之路:766529531跟有多年Java开发经验的资深工程师聊一聊。也可获取免费的视频学习资料以及电子书学习资料喔! 什么是拦截器: 拦截器是AOP中的概念,它本身是一段代码,可以通过定义“织入点”,来指定拦截器的代码在“织入点”的前后执行,从而起到拦截的作用 正如上面Struts2的Reference中讲述的,Struts2的Interceptor,其拦截的对象是Action代码,可以定义在Action代码之前或者之后执行拦截器的代码。 在项目中,我们经常用来拦截通过非正常程序而进行的访问 Struts2的拦截器和Servlet过滤器类似。在执行Action的execute方法之前,Struts2会首先执行在struts.xml中引用的拦截器,在执行完所有引用的拦截器的intercept方法后,会执行Action的execute方法。 其中intercept方法是拦截器的核心方法,所有安装的拦截器都会调用之个方法。在Struts2中已经在struts-default.xml中预定义了一些自带的拦截器,如timer、params等。如果在<package>标签中继承struts-default,则当前package就会自动拥有struts-default.xml中的所有配置。代码如下: <package name="demo" extends="struts-default" > ... </package> 拦截器是Struts2框架的核心,它主要完成解析请求参数、将请求参数赋值给Action属性、执行数据校验、文件上传等工作 在struts-default.xml中有一个默认的引用,在默认情况下(也就是<action>中未引用拦截器时)会自动引用一些拦截器。struts2中默认的拦截器是defaultStack. 自定义拦截器需要特别注意的是不要忘记引入struts2默认的拦截器。为了实现某些操作,我们可以自定义拦截器, 自定义拦截器有三种方式定义。分别为实现Interceptor接口,继承抽象类AbstractInterceptor,继承MethodFilterInteceptor类。 拦截器在项目中的运用: 同时可以减轻代码冗余,提高重用率。 如果要求用户密码、权限等的验证,就可以用自定义的拦截器进行密码验证和权限限制。对符合的登入者才跳转到正确页面。 Spring融入框架 我们通过在web.xml中配置ContextLoaderListener这个监听器也加载 spring的配置文件,从而融入到项目框架中。 项目的部署方式 1、如果项目单独部署到tomcat中的时候,应该看tomcat中的server.xml; 2、如果和eclipse结合使用进行项目部署的时候,应该看eclipse里面的server.xml.

优秀的个人博客,低调大师

如何快速学习大数据挖掘分析(个人观点)

本文梳理了学习大数据挖掘分析的思路和步骤,为大家提供了一些参考,希望能对大家有所帮助。 最近,很多人都咨询过,想学大数据,但不知道怎么开始,在哪里开始学习,需要学什么东西?对于初学者来说,学习大数据挖掘分析的逻辑是什么?本文从0开始梳理如何学习大数据挖掘分析和学习步骤,并给出一个学习建议。 希望可以帮助到大家 很多人认为数据挖掘需要掌握复杂、深刻的算法,掌握数据挖掘技术和分析技术是很有必要的。如果你钻研复杂的算法和技术开发,你只会让自己发疯,而且会越来越难。在公司的实际工作中,最好的大数据挖掘工程师必须是最熟悉和理解的人。对于大数据挖掘的学习,笔者认为学习数据挖掘必须结合实际的业务背景和案例背景进行研究,这是一种面向问题的学习方法。因此,一般来说,大数据挖掘分析的经典案例如下: 预测用户在下一段时间内是否会丢失或丢失。 该公司做了一个促销活动来预测活动的效果以及用户如何接受它。 评估用户的信用度。 细分现有客户市场,哪些客户是目标客户? 产品投放市场后,用户转换率和哪种运营策略最有效? 运营已经做了大量的工作,公司资源也投入了很多,如何提高产品投入产出比; 有些用户购买大量商品,哪些商品同时购买。 预测产品在未来一年的销售额和收入。 大数据挖掘需要将上述类似的业务运作问题转化为数据挖掘问题。 首先,如何将业务运营问题转化为大数据挖掘问题。 所以,问题是,我们应该如何将上述业务操作转化为数据挖掘问题?我们可以将数据挖掘问题细分为四类:分类、聚类、关联和预测。 1、分类问题 用户的流失率、促销活动的响应和用户度的评价属于数据挖掘的分类问题。我们需要掌握分类的特点,知道什么是监督学习,掌握常用的分类方法:决策树、拜厄斯、KNN、支持向量机、神经网络和Logistic回归。 2,聚类问题 细分市场和客户群细分属于数据挖掘的聚类问题。我们需要掌握聚类的特点,了解无监督学习,理解常用的聚类算法,如分区聚类、层次聚类、密度聚类、网格聚类、模型聚类等。 三。相关问题 交叉销售与相关问题相关,关联分析也被称为购物篮分析。我们需要掌握常用的关联分析算法:Aprior算法、CARMA算法、序列算法等。 4、预测问题 我们应该掌握简单的线性回归分析、多元线性回归分析、时间序列等。 二。你用什么工具做大数据挖掘? 有很多工具和方法来实现数据挖掘,如SPSS、SAS、Python、R等等,但是我们需要掌握什么或掌握什么来学习数据挖掘?这取决于你在做什么,你想去哪里。 第一层次:达到理解水平 理解统计和数据库。 二级:达到初级职场应用水平 数据库+统计+ SPSS(也可以是SPSS而不是软件)。 第三级:达到中层应用水平 SAS或R 第四级:达到数据挖掘的划分层次 SAS或R+Python(或其他编程语言) 三。如何使用Python学习大数据挖掘 只要我们能解决实际问题,我们用什么工具来学习数据挖掘并不重要。Python是这里首先要做的事情。如何使用Python来学习数据挖掘?关于Python你需要知道什么? 1大熊猫图书馆的运作 熊猫是一个非常重要的数据分析数据库。我们要掌握以下三点: 熊猫分组计算; 大熊猫指数和多重指数; 这个索引很难,但是很重要。 熊猫多桌经营与PivotTable 2元数值计算 数据计算是数据挖掘的主要应用,对于未来的机器学习、深入的学习来说,这也是一个必须掌握的库,我们必须掌握以下几点: 麻木阵列的理解; 数组索引操作; 数组计算; 广播(线性代数知识) 三。数据可视化- MatPultLIB和海运 Mat普罗蒂布文法 Python最基本的可视化工具是Matplotlib。让我们看看MatMattLIB有点像MatLabb。我们需要弄清楚两者之间的关系,这样就更容易学了。 海运的使用 Seabn是一个非常漂亮的可视化工具。 熊猫绘图功能 正如我之前所说的,熊猫正在做数据分析,但它也提供了一些绘图的API。 4。数据挖掘导论 这部分是最困难和最有趣的部分。我们应该掌握以下几个部分: 机器学习的定义 数据挖掘并没有什么区别。 成本函数的定义 培训/测试/验证 过拟合的定义与避免 5。数据挖掘算法 随着数据挖掘的发展,有很多算法。接下来,我们需要掌握最简单、最核心和最常用的算法。 最小二乘算法; 梯度下降; 矢量化; 极大似然估计; 逻辑回归; 决策树; RandomForesr; XGBoost; 6、数据挖掘实战 通过机器学习,最著名的图书馆SCIKIT学习了解模型。 以上是大数据挖掘的学习逻辑的逻辑。然而,这仅仅是个开始,在数据挖掘和数据科学家的道路上,我们必须学习文本处理和自然语言知识、Linux和火花知识、深入的学习知识等等,并且我们需要对数据挖掘保持持续的兴趣。

优秀的个人博客,低调大师

centos7.3网络实验环境(金个人)

centos7.3网络实验环境 网络拓扑: 服务器IP:192.168.10.7 客户端IP:192.168.10.8 centos7桌面快捷键: alt+F1 应用程序菜单(即开始菜单) alt+F2 运行程序,如运行gedit、gnome-terminal、firefox、gnome-control-center display等程序 Ctrl+Shift+t 打开标签 Ctrl+Shift+n 打开终端(独立) F2 重命名 F5 刷新,Ctrl+R F9 显示窗口左侧导航栏 F10 多功能菜单(全功能) Ctrl+F10 功能菜单(简) Ctrl+Q 关闭所有窗口(不保存) Ctrl+W 关闭所有窗口(自动保存) Ctrl+E 窗口查找栏 Ctrl+T 新窗口标签栏 Ctrl+L 输入位置(显示地址栏) Ctrl+Shift+n 新建文件夹 alt+F2可以运行的程序(xshell可远程执行): gnome-terminal 打开终端(CLI命令终端) gnome-control-center network 网络设置 nm-connection-editor 网络连接 nautilus --new-window 文件管理(资源管理器) 关闭屏保: 操作:Application—System Tools—Setting—Hardware—Power Saving—Blank screen—never 防火墙和selinux关闭: systemctl stop firewalld systemctl disable firewalld setenforce 0 getenforce sed -i '/^SELINUX=/c\SELINUX=permissive' /etc/selinux/config grep ^SELINUX /etc/selinux/config 配置光盘挂载: mkdir -pv /dvd echo 'mount /dev/cdrom /dvd' > /etc/rc.d/rc.local chmod +x /etc/rc.d/rc.local source /etc/rc.d/rc.local df -h 配置本地yum源: cd /etc/yum.repos.d mkdir -pv bak mv *.repo bak/ cat > dvd.repo <<-EOF [centos73] name=centos linux 7.3 baseurl=file:///dvd/ enabled=1 gpgcheck=0 EOF yum配置OK: yum provides /etc/yum.repos.d/CentOS-Base.repo #查文件来自哪个软件包 yum reinstall -y tree centos-release #安装centos的yum源 yum reinstall -y epel-release yum clean all yum makecache fast yum repolist yum search nginx ------------------------------------------------------------------ 安装拼音、五笔输入法: yum install -y ibus ibus-table ibus-libpinyin cherrytree yum install -y ibus ibus-table-wubi ibus-table-wubi* 重启ibus输入法: 杀死ibus进程,然后再次启动 killall ibus-daemon ibus-daemon -d -x -r 添加拼音、五笔输入法: 方法一:屏幕右上角,设置,区域和语言,点+添加“汉语-->拼音、五笔输入法” 方法二:alt+F2-->gnome-control-center region-->回车-->点+添加“汉语-->拼音、五笔输入法” 测试输入法: 打开终端---->gedit &----->输入一段汉字 卸载 libreoffice: yum remove -y libreoffice* 创建桌面图标: cd /usr/share/applications/ ls ln -s /usr/share/applications ~/app cp -pv gnome-terminal.desktop ~/ cp -pv vino-server.desktop ~/ ------------------------------------------------------------------ yum安装常用网络服务: yum install -y vsftpd ftp lftp nfs-utils rpcbind samba* tftp-server xinetd syslinux dhcp mlocate yum install -y bind-chroot httpd mariadb-server mariadb php yum install -y curl elinks wget tree systemctl restart vsftpd systemctl restart rpcbind systemctl restart nfs systemctl restart xinetd systemctl restart smb systemctl restart named systemctl restart httpd systemctl restart mariadb systemctl enable vsftpd systemctl enable rpcbind systemctl enable nfs systemctl enable xinetd systemctl enable smb systemctl enable named systemctl enable httpd systemctl enable mariadb curl 127.0.0.1 mysql -e 'show databases;' mysql -e "grant all on *.* to admin identified by 'admin' with grant option;flush privileges;" mysql -e "select user,host,password from mysql.user;" --------------------------------------------------------- 配置共享: mkdir -pv /var/ftp/dvd mkdir -pv /var/www/html/dvd mount /dev/sr0 /var/ftp/dvd mount /dev/sr0 /var/www/html/dvd echo '/ *(ro)' /etc/exports exportfs -rav showmount -e 127.0.0.1 curl ftp://127.0.0.1 curl http://127.0.0.1 --------------------------------------------------------- 安装、测试nginx软件: yum install -y nginx nginx -t systemctl stop httpd systemctl restart nginx curl 127.0.0.1 firefox 127.0.0.1 --------------------------------------------------------- 自动化管理软件安装 yum install -y ansible yum install -y salt-master yum install -y salt-ssh yum install -y puppet-server puppet 启动salt-master服务: systemctl restart salt-master systemctl enable salt-master netstat -atunlp|grep :450 ss -atunlp|grep :450 --------------------------------------------------------- 安装和使用docker软件: yum install -y device-mapper docker systemctl restart docker systemctl enable docker docker info docker images docker pull daocloud.io/busybox docker pull daocloud.io/nginx docker pull daocloud.io/centos:6 --------------------------------------------------------- 安装和使用KVM虚拟化: 查cpu是否支持虚拟化: 命令1(首选):egrep --color 'svm|vmx' /proc/cpuinfo 命令2(备选):lscpu | egrep -i 'virtual' 安装、启动KVM软件: yum install -y qemu-kvm qemu-img libvirt #虚拟化的主控程序,下面的是KVM的管理软件 yum install -y virt-install libvirt-python virt-manager python-virtinst libvirt-client virt-viewer virt-top 启动服务(默认会启动):systemctl restart libvirtd 查服务状态:systemctl enable libvirtd 图形管理工具:virt-manager #注:virt-manager某些版本中文不兼容,打开时会报错,centos6.5建议用本地yum源。 查看kvm模块:lsmod | grep kvm 打开kvm图形管理工具(运行在linux的桌面环境):virt-manager 创建kvm虚拟机: 查看帮助:virt-install --help 注:重点查看cpu、--network、--location、--pxe功能选项如何使用。 创建虚拟机vmpxe(已测OK): virt-install --name=vmpxe --ram 256 --vcpus=1 --disk path=/vmdisk/vmpxe.img,size=1,bus=virtio --accelerate --pxe --vnc --vncport=5910 --vnclisten=0.0.0.0 --network network=default,model=virtio 创建虚拟机vm00(已测OK): virt-install --name=vm00 --ram 1200 --vcpus=1 --disk path=/vmdisk/vm00.img,size=3,bus=virtio --accelerate --location=nfs:192.168.10.7:/dvd --vnc --vncport=5910 --vnclisten=0.0.0.0 --network bridge=virbr0,model=virtio --noautoconsole 创建虚拟机vm22(已测OK): virt-install --name=vm22 --ram 1200 --vcpus=1 --disk path=/vmdisk/vm22.img,size=3,bus=virtio --accelerate --location=ftp://192.168.10.7/dvd --vnc --vncport=5911 --vnclisten=0.0.0.0 --network network=default,model=virtio --noautoconsole 连接到vm00虚拟机(已测OK): virsh list --all virt-viewer vm00 创建虚拟机vm01(OK): virt-install --name=vm01 --ram 1024 --vcpus=1 --disk path=/vmdisk/vm01.img,size=7 --cdrom /opt/rhel73.iso 创建虚拟机vm11(OK): virt-install --name=vm11 --os-variant=rhel6 --ram 1024 --vcpus=1 --disk path=/vmdisk/vm11.img,size=7 --cdrom /opt/rhel73.iso --vnc --vncport=5920 --vnclisten=0.0.0.0 --network bridge=virbr0,model=virtio --noautoconsole 创建虚拟机vm02: virt-install --name=vm02 --ram 1024 --vcpus=1 --disk path=//vmdisk/vm02.img,size=10,bus=virtio --accelerate --cdrom /opt/rhel73.iso --vnc --vncport=5930 --vnclisten=0.0.0.0 --network bridge=virbr0,model=virtio --noautoconsole 创建虚拟机vm04: virt-install --name=vm03 --ram 512 --vcpus=1 --disk path=//vmdisk/vm03.img,size=7,bus=virtio --accelerate --cdrom=/dev/sr0 --vnc --vncport=5940 --vnclisten=0.0.0.0 --network bridge=virbr0,model=virtio --noautoconsole --------------------------------------------------------- 给kvm虚拟机添加console管理功能(金测OK): KVM主机从console口进入虚拟机: 首先,修改虚拟机的内核: cat /etc/securetty #查看安全终端配置文件 grubby --update-kernel=ALL --args="console=ttyS0" 说明:grubby是修改grub菜单参数的命令,其中--update-kernel和--args是修改kernel内核那行代码的选项。 重启虚拟机,从KVM host主机console虚拟机: virsh console rhel7 --------------------------------------------------------- zabbix基本安装: 第0步,安装lamp环境,给apache创建处理php的配置文件。 yum install -y mariadb-server mariadb httpd php systemctl restart httpd systemctl restart mariadb systemctl enable httpd systemctl enable mariadb echo 'ServerName zabbix' > /etc/httpd/conf.d/srv.conf echo '<?php phpinfo() ?>' >/var/www/html/p.php cat > /etc/httpd/conf.d/zbx_php.conf <<-EOF <IfModule mod_php5.c> php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value always_populate_raw_post_data -1 # php_value date.timezone Europe/Riga php_value date.timezone Asia/Shanghai </IfModule> EOF systemctl restart httpd systemctl enable httpd elinks 127.0.0.1/p.php 测试LAMP环境是否正常 第1步,安装zabbix软件 rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent rpm -q zabbix-server-mysql zabbix-web-mysql zabbix-agent 第2步,创建zabbix库,并导入zabbix数据库文件。 首先,建zabbix库,建zabbix账号。 rpm -q zabbix-server-mysql id zabbix || useradd -r zabbix mysql -uroot -e "create database zabbix character set utf8 collate utf8_bin;" mysql -uroot -e "grant all privileges on *.* to zabbix@localhost identified by 'zabbix';" mysql -e "grant all on *.* to admin@'%' identified by 'admin' with grant option;" mysql -e "select user,host,password from mysql.user;flush privileges;" 然后,导入zabbix数据库,并查看zabbix库中的表。 updatedb cd $(dirname $(locate create.sql.gz)) zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uroot zabbix mysql -uroot -e "show databases;use zabbix;show tables;" 第3步,修改zabbix_server.conf配置文件。 方法一(首选):脚本方式修改zabbix_server.conf配置文件: sed -ri '/^# DBHost=localhost/c\DBHost=localhost' /etc/zabbix/zabbix_server.conf sed -ri '/^# DBPassword=/c\DBPassword=zabbix' /etc/zabbix/zabbix_server.conf grep -Env '^#|^$' /etc/zabbix/zabbix_server.conf 方法二(备选):手动修改zabbix_server.conf配置文件: vi /etc/zabbix/zabbix_server.conf 修改并启用如下内容 DBHost=localhost #数据库主机名 DBName=zabbix #数据库名 DBUser=zabbix #数据库用户账号 DBPassword=zabbix #与数据库中zabbix账号的密码一致 说明:A、数据库密码一定要正确,否则不能正常启动zabbix-server服务。 B、配置文件中只需要修改DB相关的配置就能正常使用了。(金测OK) 检验配置文件:grep -Env '^#|^$' /etc/zabbix/zabbix_server.conf 内容如下 38:LogFile=/var/log/zabbix/zabbix_server.log 49:LogFileSize=0 72:PidFile=/var/run/zabbix/zabbix_server.pid 81: DBHost=localhost 91:DBName=zabbix 107:DBUser=zabbix 115: DBPassword=zabbix 287:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log 413:Timeout=4 455:AlertScriptsPath=/usr/lib/zabbix/alertscripts 465:ExternalScripts=/usr/lib/zabbix/externalscripts 501:LogSlowQueries=3000 第4步,启动zabbix的相关服务。 systemctl restart zabbix-server systemctl restart zabbix-agent systemctl enable zabbix-server systemctl enable zabbix-agent 查zabbix进程: netstat -atunlp|grep zabbix 结果如下(说明OK了) tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 11715/zabbix_agentd tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 11641/zabbix_server tcp6 0 0 :::10050 :::* LISTEN 11715/zabbix_agentd tcp6 0 0 :::10051 :::* LISTEN 11641/zabbix_server 第5步,配置zabbix的web管理平台。 首先,运行firefox 127.0.0.1/zabbix,或打开firefox,在浏览器中输入127.0.0.1/zabbix进入初始化配置向导界面。 然后,点击next下一步,只要看到全部是ok,继续点下一步。 然后,在数据库账号、密码界面输入账号zabbix,密码zabbix。 最后,继续点next下一步,直到初始化配置完成。 注意:如果想要重新初始化zabbix的web管理平台: firefox http://192.168.10.7/zabbix/setup.php 第6步,登录zabbix的web管理平台。 首先,首先,在浏览器中输入127.0.0.1/zabbix进入登录界面。 然后,输入账号Admin,密码zabbix,点登录进入。 最后,在zabbix的web管理平台中进行监控管理。 第7步,熟悉zabbix的web监控平台的各项管理功能。 首先,web界面汉化设置:点右上角的"小人"图标,改语言为chinse cn即可。 然后,上传"中文字体",从windows中上传一个"楷体(首选)或仿宋"到zabbix服务器上。 从win7系统的c:\windows\fonts文件夹中复制"楷体(首选)或仿宋"字体到本机,然后用scp到zabbix的server主机。 mv -v ~/simkai.ttf /usr/share/zabbix/fonts/simkai.ttf scp /root/simkai.ttf root@192.168.10.25:/usr/share/zabbix/fonts/simkai.ttf 注意:区分simkai.ttf大小写,上传后的文件名为小写字母,否则部分中文无法正常显示。 然后,修改/usr/share/zabbix/include/defines.inc.php网页字体定义文件。 mv -v ~/simkai.ttf /usr/share/zabbix/fonts/simkai.ttf sed -ri 's@graphfont@simkai@' /usr/share/zabbix/include/defines.inc.php 最后,在firefox或IE浏览器中访问zabbix服务器的web管理页面,点"监测中/图形",然后选如下分支。 群组:zabbix server 主机:zabbix server 图形:CPU jumps或CPU load 验证界面中曲线图底部正常显示中文,就说明汉化OK了。 --------------------------------------------------------- 本文转自rshare 51CTO博客,原文链接:http://blog.51cto.com/1364952/1964519 ,如需转载请自行联系原作者

优秀的个人博客,低调大师

个人管理 - 程序员的四个阶段

突然记起来刚来公司的时候,对程序员定义了四个阶段,每个阶段用一句话表示出来,其实就是Four stages of competence,下面介绍一下这几个阶段,看看我们自己处在哪个阶段,千万不要把阶段一认为是阶段三了。 阶段一:不知道自己不知道(Unconscious incompetence) Coder 大学期间,我和老师做过一些小项目,自认为自己很牛,当时还去过一些公司面试做兼职,但是就是不知道为什么没有回复。那个时期的我,压根不知道自己不知道,还以为自己懂很多,现在想起自己以前就好笑,那个时候还算不上程序员,顶多只能算是个业余编程爱好者。 表现:假自信、过度承诺、满口我能行没问题、看不起其他程序员.... 阶段二:知道自己不知道(Conscious incompetence) Programmer 工作后,发现自己在项目中工作时遇到困难不知道怎么解决,和身边人一比发现自己知识很欠缺,这时候知道自己技不如人,很多地方都不足,需要大补才行,这个时候就是大家所说的初级程序员阶段,这个阶段必须依靠别人指导。 表现:有点心虚、虚心学习、偷偷努力、羡慕牛人... 阶段三:知道自己知道(Conscious competence) Developer 工作三四年后,自己的技能逐步提高,成为了项目组的技术大拿,这时候也很自信,知道自己能够解决遇到的所有问题,这时候就是高级程序员阶段了。 表现:自信、比较客观、真正承诺、有点自我... 阶段四:不知道自己知道(Unconscious competence)Architect 工作多年后,随着自己知识的深度和广度的提高,越学发现越不懂,有时好觉得自己以前真是浪费了太多时间。虽然觉得自己还有很多需要提高,但是对工作中遇到的问题基本没有解决不了的,这个时候很多知识都自成体系,解决问题也有了自己的潜意识,有时连自己都不知道自己知道,这时候属于架构师级别了。 表现:开放、主动、好学、谦虚... 本文转自 jingen_zhou 51CTO博客,原文链接:http://blog.51cto.com/zhoujg/520519,如需转载请自行联系原作者

优秀的个人博客,低调大师

腾讯乐享知识库深度解析:企业 AI 时代的组织记忆中枢

在企业数字化转型的浪潮中,知识管理正在经历一场深刻的范式迁移。过去,企业的知识散落在各类 IM 工具、文档平台、本地磁盘和业务系统之间,员工找一份资料往往要辗转多个平台,而好不容易找到的内容,又可能早已过期失效。更棘手的是,当企业开始拥抱 AI 时,这些分散、低质、无序的知识,根本无法成为大模型可信赖的"燃料"。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册