Author: Vinny Wang
-
html:table属性以及html简单合并单元格应用
一、table的常用属性1.tr、td、th表格常用table标签来定义。tr来定义行、td来定义表格内容、th来定义表头。 姓名 年龄 性别 张三 17 男 李四 21 男 王晶 19 女 12345678910111213141516171819202122展示的效果如图所示: 加上th表头标签 姓名 年龄 性别 张三 17 男 李四 21 男 王晶 19 女 12345678910111213141516171819202122大多数浏览器表头显示为粗体居中的文本。效果如图所示: 2.边框属性border、cellspacing 、cellpadding2-1、border:边框。设置table的表格,默认为0,是没有表格的,如果不定义这个属性,表格是不会显示的,会呈现如下图所示: 所以一般,我们会设置border=“1” 2-2、cellspacing:外间距设置边框与边框的距离。 设置cellspacing=”0″的效果为(一般我们设置为0): 设置cellspacing=”10″的效果为: 2-3、cellpadding:内间距边框与内容之间的距离。 cellpadding=”10″的效果图 3.标题caption设置表格的标题。 效果如图: 4.对齐方式4-1、align=“center/left/right”当设置在table标签,则表格整体对齐方式发生变化。若设置在tr、td则单元格的文本内容对齐方式发生改变。 如:设置table整体align=“center” 没有设置前的效果图: 设置后的效果图: 同时还可以设置宽度width、高度height。同样也可以单独给tr、td设置宽度、高度,也可以给table整体设置宽度和高度。 效果如图: 5.合并单元格应用colspan合并列、rowspan合并行。 需要实现的效果图: 首先可以借助excel工具,来帮助我们进行行、列的个数统计。将excel的表格线拖动与效果图的行、列完全对齐。这样我们就可以得到多少行多少列。可以直观得到效果图有21行21列。 其次建立表格(我们这里使用快捷代码的方式生成表格) table>tr21>td211 按下tab键即可生成一个21行21列的表格,然后设置表格边框。1这里为了方便你可以看到效果,我设置了宽度和高度,效果如下。 接下来就进行表格的合并。比如第一行的代码:1234567表示空的单元格1联系电话占两列,所以colspan=“2”,同时,这里显示的 colspan=“2”,我们则需要删除本行也就是此个tr标签里面的两个单元格(td标签)。若rowspan等于3,则要删除后面两个tr里面的一个td。这里展示第6到8行的详细代码: 1234567891011121314151617181920212223242526272829303132全部的代码已上传至资料中的”html简单合并表格的应用代码”中。————————————————版权声明:本文为CSDN博主「牛奶面包吖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_50487248/article/details/127152462…
-
处理nginx启动错误Failed to read PID from file /run/nginx.pid
问题产生原因 因为 nginx 启动需要一点点时间,而 systemd 在 nginx 完成启动前就去读取 pid file造成读取 pid 失败 解决方法 让 systemd 在执行 ExecStart 的指令后等待一点点时间即可如果你的 nginx 启动需要时间更长,可以把 sleep 时间改长一点建立目录mkdir -p /etc/systemd/system/nginx.service.d 在新建目录中建立文件override.conf,输入内容 然后systemctl daemon-reloadsystemctl restart nginx.service
-
Systemd 入门教程:命令篇
作者: 阮一峰 日期: 2016年3月 7日 Systemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。 本文介绍它的基本用法,分为上下两篇。今天介绍它的主要命令,下一篇介绍如何用于实战。 一、由来 历史上,Linux 的启动一直采用init进程。 下面的命令用来启动服务。 这种方法有两个缺点。 一是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。 二是启动脚本复杂。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长。 二、Systemd 概述 Systemd 就是为了解决这些问题而诞生的。它的设计目标是,为系统的启动和管理提供一套完整的解决方案。 根据 Linux 惯例,字母d是守护进程(daemon)的缩写。 Systemd 这个名字的含义,就是它要守护整个系统。 (上图为 Systemd 作者 Lennart Poettering) 使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。 上面的命令查看 Systemd 的版本。 Systemd 的优点是功能强大,使用方便,缺点是体系庞大,非常复杂。事实上,现在还有很多人反对使用 Systemd,理由就是它过于复杂,与操作系统的其他部分强耦合,违反”keep simple, keep stupid”的Unix 哲学。 (上图为 Systemd 架构图) 三、系统管理 Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。 3.1 systemctl systemctl是 Systemd 的主命令,用于管理系统。 3.2…
-
Centos安装supervisor,守护Redis进程
前言 基于业务问题,项目中增加了redis,用于缓存和队列。但是现在只是在单服务器上安装部署,没有购买其他的像阿里云式的服务, 也没有搭建主从。 这样就导致了问题,如果redis进程意外卡死,那么业务就无法进行,这是不允许的,所以想到进程守护的东西,能自动监听,就想到了supervisor。 supervisor是一个客户机/服务器系统,它允许用户监视和控制unix操作系统上的许多进程。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。supervisort官网 1.安装supervisor 2.配置 supervisor 文件内容如下: 保存退出,启动supervisor supervisord -c /etc/supervisord.conf 查看supervisor是否启动成功:ps -ef|grep supervisord 到此,supervisor安装就完成了 3.supervisor管理 4.supervisor配置守护Redis 创建supervisor所需目录 创建redis进程守护文件:vi /etc/supervisord.d/conf.d/redis.ini redis配置文件需要修改: 更新文件配置 supervisorctl update 启动 supervisor redis 服务:supervisorctl start redis至此,supervisor 安装配置就结束了 致谢 感谢看到这里,希望本章可以帮到你。谢谢
-
配置wildfly10为linux的服务,并开机启动
正文 1.在opt路径下 下载 wildfly ,并解压下载下的压缩包 cd /opt sudo wget -c http://download.jboss.org/wildfly/10.0.0.Final/wildfly-10.0.0.Final.tar.gz sudo tar -xzvf wildfly-10.0.0.Final.tar.gz 2.创建wildfly 的用户 和 组 sudo addgroup wildfly sudo useradd -g wildfly wildfly 3.改变wildfly 的文件夹权限 sudo chown -R wildfly:wildfly /opt/wildfly-10.0.0.Final 4.创建一个链接映射 (好处:如果你改变WildFly版本,不需要更新其他配置) sudo ln -s wildfly-10.0.0.Final /opt/wildfly 5.复制服务脚本到/etc/init.d/目录 这里分两种情况,如果debian系列的linux(例如ubuntu,Debian)等,复制的是wildfly-init-debian.sh 文件 如果是Redhat系列的linux(例如redhat, centos等),复制的是wildfly-init-redhat.sh 把对应的脚本放到 /etc/init.d/目录下,用来设置并使用 init.d 脚本来启动和停止WildFly #for debian linux sudo cp…
-
Error: rpmdb open failed
1、在centos系统上,在使用yum命令安装软件包时候报错:[root@srv213 yum.repos.d]# yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpmerror: db5 error(11) from dbenv->open: Resource temporarily unavailableerror: cannot open Packages index using db5 – Resource temporarily unavailable (11)error: cannot open Packages database in /var/lib/rpmCRITICAL:yum.main: Error: rpmdb open failed 参考以上提示可知,由于强制结束了yum 操作而导致rpm数据库被损坏了! 2、 重建rpm数据库 ,步骤如下 1. 进入目录, 查看相关rpmdb文件 # cd /var/lib/rpm/ # ls | grep ‘db.’ __db.001 __db.002 __db.003 __db.004 2. 删除损坏的rpmdb文件 将原rpmdb文件都更名为结尾带.bak的文件 #…
-
做为一名优秀的后端工程师-兼公司网管,这些 Linux 指令需要了解下
前言 本文收录了 linux 常用指令,这里面有个小技巧,基本上所有指令后面跟上 –h 可以显示其使用方法。故不必死记硬背,知其意乃通其形。 分类如下: 文件 & 目录操作(16 个) 查看文件 & 内容处理(18 个) 文件压缩 & 解压缩(3 个) 信息显示(11 个) 搜索文件(4 个) 进程管理(11 个) 用户管理(7 个) 网络操作(11 个) 磁盘 & 文件系统(7 个) 系统权限(3 个) 关机重启(5 个) 其他(6 个) 文件 & 目录操作(16 个) ls ls -a 查看所有文件,包含隐藏文件 ls -l 简写 ll,查看详细信息 ls -h 文件大小以易读的方式显示 cd…
-
Linux下tomcat JVM内存 配置
常见的内存溢出有以下两种: java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemoryError: Java heap space 一、java.lang.OutOfMemoryError: PermGen space PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。解决方法: 手动设置MaxPermSize大小建议:将相同的第三方jar文件移置到tomcat/shared/lib目录下,这样可以达到减少jar 文档重复占用内存的目的。 二、java.lang.OutOfMemoryError: Java heap space JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64 ,最大空间(-Xmx)是物理内存的1/4 。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。Heap size 的大小是Young Generation 和Tenured Generaion 之和。提示:在JVM中如果98%的时间是用于GC且可用的Heap size 不足2%的时候将抛出此异常信息。提示:Heap Size 最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。 解决方法:手动设置Heap size ———————-Linux下修改TomcatJVM内存大小———————- 要添加在tomcat 的bin 下catalina.sh 里,位置cygwin=false前 。注意引号要带上,红色的为新添加的. # OS specific support. $var _must_ be set to…
-
配置tomcat服务器内存大小中的Xms、Xmx、PermSize、MaxPermSize 详解
JVM按照其存储数据的内容将所需内存分配为堆区与非堆区两个部分: 所谓堆区即为通过new的方式创建的对象(类实例)所占用的内存空间, 堆是运行时数据区域; 非堆区即为代码、常量、外部访问(如文件访问流所占资源)等。 配置堆区的(-Xms 、-Xmx、-XX:newSize、-XX:MaxnewSize、-Xmn) 配置非堆区(-XX:PermSize、-XX:MaxPermSize) 一. 堆区配置参数: 1、-Xms :表示java虚拟机堆区内存初始内存分配的大小,虚拟机在启动时向系统申请的内存的大小 2、-Xmx: 表示java虚拟机堆区内存可被分配的最大上限,通常为操作系统可用内存的1/4大小。但是开发过程中,通常会将 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。 如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。而堆的最大值受限于系统使用的物理内存。一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。 说明:如果-Xmx 不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try…catch捕捉。 -XX:newSize、-XX:MaxnewSize、-Xmn:新生代、中生代、老生代。java中每新new一个对象所占用的内存空间就是新生代的空间,当java垃圾回收机制对堆区进行资源回收后,那些新生代中没有被回收的资源将被转移到中生代,中生代的被转移到老生代。 1、-XX:newSize:表示新生代初始内存的大小,应该小于 -Xms的值; 2、-XX:MaxnewSize:表示新生代可被分配的内存的最大上限;当然这个值应该小于 -Xmx的值; 3、-Xmn:至于这个参数则是对 -XX:newSize、-XX:MaxnewSize两个参数的同时配置,也就是说如果通过-Xmn来配置新生代的内存大小,那么-XX:newSize = -XX:MaxnewSize = -Xmn,虽然会很方便,但需要注意的是这个参数是在JDK1.4版本以后才使用的。 二. 非堆区内存配置的两个参数: 1、-XX:PermSize:表示非堆区初始内存分配大小,其缩写为permanent size(持久化内存) 2、-XX:MaxPermSize:表示对非堆区分配的内存的最大上限。 这里面非常要注意的一点是:在配置之前一定要慎重的考虑一下自身软件所需要的非堆区内存大小,因为此处内存是不会被java垃圾回收机制进行处理的地方。并且更加要注意的是 最大堆内存与最大非堆内存的和绝对不能够超出操作系统的可用内存。 XX:MaxPermSize设置过小会导致java.lang.OutOfMemoryError: PermGen space 就是内存益出。 说说为什么会内存益出: (1)这一部分内存用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同。 (2)GC(Garbage Collection)不会在主程序运行期对PermGen…
-
PVE Proxmox Tips
PVE Proxmox is Linux + KVM (or LXC) virtualization. It is freely available from: https://www.proxmox.com/en/downloads Tested version: pveversion pve-manager/5.1-41/0b958203 (running kernel: 4.13.13-2-pve) Notable highlights: HTML5/js web client – works from both Linux and Windows. The only exception is SPICE console (requires native binary virt-viewer). However you can always use VNC as fallback KVM/QEMU supports memory…