MySQL用户与权限管理

MySQL用户与权限管理 //创建新用户 user0 cREATE USER user0 IDENTIFIED BY 'password0';``` \***密码要带引号 授权: ```bash grant all privileges on database0.* to user0@localhost identified by 'password0'; 授权之后该用户才能用他自己的用户名密码访问MySQL. 从MySQL删除用户账户 要想移除账户,应使用Drop USER语句. Drop USER user [, user] … Drop USER语句用于删除一个或多个MySQL账户。要使用Drop USER,您必须拥有MySQL数据库的全局Create USER权限或Delete权限。使用与GRANT或REVOKE相同的格式为每个 账户命名;例如,‘jeffrey’@’localhost’。 账户名称的用户和主机部分与用户表记录的User和Host列值相对应。 www.87717.com 使用Drop USER,您可以取消一个账户和其权限,操作如下: Drop USER user; 该语句可以删除来自所有授权表的帐户权限记录。 drop user [username@’%’][1] drop user username@localhost 改密码: grant all privileges on DBNAME.* to user0@localhost identified by ‘password4’; ###’@localhost’ 这个一定要有….. 为root加上密码xxx123: ./bin/MySQLadmin -u root password xxx123 或写成 ...

2011-12-26 · 3 min · 500 words · -

非容器环境运行OpenJPA应用

非容器环境运行OpenJPA应用 参考来源: http://lxy19791111.iteye.com/blog/184113 2.Animal.java package com.openjpa.entity; import javax.persistence.Basic; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.SequenceGenerator; /** * Animal 用于表征系统中的Animal对象,他有两个属性 * id - 编号,编号将由Oracle数据库自动生成 * name - Animal的名称 */ /* Entity注释表示该类是持久化类,的name属性是该实体在查询中对应的唯一名称,默认是类名 */ @Entity public class Animal { // 名称 @Basic private String name; // 编号 /* Id注释表示该字段是标识字段 */ @Id //for oracle //@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="SEQ_ANIMAL") //@SequenceGenerator(name="SEQ_ANIMAL", sequenceName="SEQ_ANIMAL") //for MySQL @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } AnimalDAO.java ...

2011-12-25 · 4 min · 717 words · -

Go mem, Go 内存

Go mem, Go 内存 用户程序(Mutator)会通过内存分配器(Allocator)在堆上申请内存,而垃圾收集器(Collector)负责回收堆上的内存空间,内存分配器和垃圾收集器共同管理着程序中的堆内存空间。 https://draveness.me/golang/docs/part3-runtime/ch07-memory/golang-garbage-collector/

2011-12-25 · 1 min · 6 words · -

gopacket, pcap, libpcap

gopacket, pcap, libpcap gopacket 是 google 出品的 抓取网络数据包的库 Windows 平台下有 Wireshark 抓包工具,其底层抓包库是 npcap (以前是 winpcap); Linux 平台下有 Tcpdump,其抓包库是 libpcap; 而 gopacket 库可以说是 libpcap 和 npcap 的 go 封装,提供了更方便的 go 语言操作接口。 # gopacket 依赖 pcap.h, 安装 libpcap-dev sudo apt install libpcap-dev sudo pacman -S libpcap https://zhuanlan.zhihu.com/p/361737169 https://github.com/google/gopacket https://pkg.go.dev/github.com/google/gopacket?utm_source=godoc bpf filter dst host 192.168.50.10

2011-12-25 · 1 min · 52 words · -

JNDI

JNDI JNDI (Java Naming and Directory Interface,Java命名和目录接口) 是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。 英文全称是:Java Naming and Directory InterfaceS 术语解释: 一组帮助做多个命名和目录服务接口的API。 JNDI(Java Naming and Directory Interface)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI SPI的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。集群JNDI实现了高可靠性JNDI[8],通过服务器的集群,保证了JNDI的负载平衡和错误恢复。在全局共享的方式下,集群中的一个应用服务器保证本地JNDI树的独立性,并拥有全局的JNDI树。每个应用服务器在把部署的服务对象绑定到自己本地的JNDI树的同时,还绑定到一个共享的全局JNDI树,实现全局JNDI和自身JNDI的联系。 JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。 JNDI可访问的现有的目录及服务有: DNS、XNam 、Novell目录服务、LDAP(Lightweight Directory Access Protocol 轻型目录访问协议)、 CORBA对象服务、文件系统、Windows XP/2000/NT/Me/9x的注册表、RMI、DSML v1&v2、NIS。 JNDI优点 包含了大量的命名和目录服务,使用通用接口来访问不同种类的服务; 可以同时连接到多个命名或目录服务上; 建立起逻辑关联,允许把名称同Java对象或资源关联起来,而不必知道对象或资源的物理ID。 JNDI程序包: javax.naming: 命名操作; javax.naming.directory: 目录操作; javax.naming.event: 在命名目录服务器中请求事件通知; javax.naming.ldap: 提供LDAP支持; javax.naming.spi: 允许动态插入不同实现。 利用JNDI的命名与服务功能来满足企业级API对命名与服务的访问,诸如EJB、JMS、JDBC 2.0以及IIOP上的RMI通过JNDI来使用CORBA的命名服务。 JNDI架构 JNDI架构提供了一组标准的独立于命名系统的API,这些API构建在与命名系统有关的驱动之上。这一层有助于将应用与实际数据源分离,因此不管应用访问的是LDAP、RMI、DNS、还是其他的目录服务。换句话说,JNDI独立于目录服务的具体实现,只要有目录的服务提供接口 (或驱动) ,就可以使用目录。 关于JNDI要注意的重要一点是,它提供了应用编程接口(application programming interface,API)和服务提供者接口(service provider interface,SPI)。这一点的真正含义是,要让应用与命名服务或目录服务交互,必须有这个服务的JNDI服务提供者,这正是JNDI SPI发挥作用的地方。服务提供者基本上是一组类,这些类为各种具体的命名和目录服务实现了JNDI接口—很象JDBC驱动为各种具体的数据库系统实现了JDBC接口一样。作为一个应用开发者,不必操心JNDI SPI。只需要确认要使用的每一个命名或目录服务都有服务提供者。 JNDI组件 1、Javax.naming: 包含了访问命名服务的类和接口。例如,它定义了Context接口,这是命名服务执行查询的入口。 2、Javax.naming.directory: 对命名包的扩充,提供了访问目录服务的类和接口。例如,它为属性增加了新的类,提供了表示目录上下文的DirContext接口,定义了检查和更新目录对象的属性的方法。 3、Javax.naming.event: 提供了对访问命名和目录服务时的时间通知的支持。例如,定义了NamingEvent类,这个类用来表示命名/目录服务产生的事件,定义了侦听NamingEvents的NamingListener接口。 4、Javax.naming.ldap: 这个包提供了对LDAP 版本3扩充的操作和控制的支持,通用包javax.naming.directory没有包含这些操作和控制。 5、Javax.naming.spi: 这个包提供了一个方法,通过javax.naming和有关包动态增加对访问命名和目录服务的支持。这个包是为有兴趣创建服务提供者的开发者提供的。 JNDI用途 命名或目录服务使用户可以集中存储共有信息,这一点在网络应用中是重要的,因为这使得这样的应用更协调、更容易管理。例如,可以将打印机设置存储在目录服务中,以便被与打印机有关的应用使用。 我们大家每天都不知不觉地使用了命名服务。命名系统中的对象可以是DNS记录中的名称、应用服务器中的EJB组件(Enterprise JavaBeans Component)、LDAP(Lightweight Directory Access Protocol)中的用户Profile。 目录服务是命名服务的自然扩展。两者之间的关键差别是目录服务中对象可以有属性 (例如,用户有email地址) ,而命名服务中对象没有属性。因此,在目录服务中,你可以根据属性搜索对象。JNDI允许你访问文件系统中的文件,定位远程RMI注册的对象,访问象LDAP这样的目录服务,定位网络上的EJB组件。 对于象LDAP 客户端、应用launcher、类浏览器、网络管理实用程序,甚至地址薄这样的应用来说,JNDI是一个很好的选择。 JNDI可访问的现有的目录及服务有: DNS、XNam 、Novell目录服务、LDAP(Lightweight Directory Access Protocol 轻型目录访问协议)、 CORBA对象服务、文件系统、Windows XP/2000/NT/Me/9x的注册表、RMI、DSML v1&v2、NIS JNDI与JDBC JNDI提供了一种统一的方式,可以用在网络上查找和访问服务。通过指定一个资源名称,该名称对应于数据库或命名服务中的一个记录,同时返回数据库连接建立所必须的信息。 JNDI主要有两部分组成: 应用程序编程接口和服务供应商接口。应用程序编程接口提供了Java应用程序访问各种命名和目录服务的功能,服务供应商接口提供了任意一种服务的供应商使用的功能。 代码示例: try{ Context cntxt = new InitialContext(); DataSource ds = (DataSource) cntxt.lookup("jdbc/dpt"); } catch(NamingException ne){ ... } JNDI与JMS 消息通信是软件组件或应用程序用来通信的一种方法。JMS就是一种允许应用程序创建、发送、接收、和读取消息的JAVA技术。 代码示例: try{ Properties env = new Properties(); InitialContext inictxt = new InitialContext(env); TopicConnectionFactory connFactory = (TopicConnectionFactory) inictxt.lookup("TTopicConnectionFactory"); ... } catch(NamingException ne){ ... } 访问特定目录: 举个例子,人是个对象,他有好几个属性,诸如这个人的姓名、电话号码、电子邮件地址、邮政编码等属性。通过getAttributes()方法 Attribute attr = directory.getAttributes(personName).get("email"); String email = (String)attr.get(); 通过使用JNDI让客户使用对象的名称或属性来查找对象: foxes = directory.search("o=Wiz,c=US", "sn=Fox", controls); 通过使用JNDI来查找诸如打印机、数据库这样的对象,查找打印机的例子: Printer printer = (Printer)namespace.lookup(printerName); printer.print(document); 浏览命名空间: NamingEnumeration list = namespace.list("o=Widget, c=US"); while (list.hasMore()) { NameClassPair entry = (NameClassPair)list.next(); display(entry.getName(), entry.getClassName()); } 常用的JNDI操作 void bind(String sName,Object object);――绑定: 把名称同对象关联的过程 void rebind(String sName,Object object);――重新绑定: 用来把对象同一个已经存在的名称重新绑定 void unbind(String sName);――释放: 用来把对象从目录中释放出来 Object lookup(String sName);――查找: 返回目录中的一个对象 void rename(String sOldName,String sNewName);――重命名: 用来修改对象名称绑定的名称 NamingEnumeration listBinding(String sName);――清单: 返回绑定在特定上下文中对象的清单列表 NamingEnumeration list(String sName); 代码示例: 重新得到了名称、类名和绑定对象。 NamingEnumeration namEnumList = ctxt.listBinding("cntxtName"); ... while ( namEnumList.hasMore() ) { Binding bnd = (Binding) namEnumList.next(); String sObjName = bnd.getName(); String sClassName = bnd.getClassName(); SomeObject objLocal = (SomeObject) bnd.getObject(); } JNDI 是什么 http://blog.csdn.net/zhaosg198312/article/details/3979435 ...

2011-12-25 · 3 min · 451 words · -

JTA

JTA JTA,即Java Transaction API,译为Java事务API。 JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。 JTA和JTS Java事务API (JTA: Java Transaction API) 和它的同胞Java事务服务 (JTS: Java Transaction Service) ,为J2EE平台提供了分布式事务服务 (distributed transaction) 。 一个分布式事务 (distributed transaction) 包括一个事务管理器 (transaction manager) 和一个或多个资源管理器(resource manager)。 一个资源管理器 (resource manager) 是任意类型的持久化数据存储。 事务管理器 (transaction manager) 承担着所有事务参与单元者的相互通讯的责任。 JTA与JDBC JTA事务比JDBC事务更强大。一个JTA事务可以有多个参与者,而一个JDBC事务则被限定在一个单一的数据库连接。下列任一个Java平台的组件都可以参与到一个JTA事务中: JDBC连接、JDO PersistenceManager 对象、JMS 队列、JMS 主题、企业JavaBeans (EJB) 、一个用J2EE Connector Architecture 规范编译的资源分配器。

2011-12-25 · 1 min · 48 words · -

B树(B-tree), B+树(B+-tree),B*树(B*-tree)

B树(B-tree), B+树(B+-tree),B树(B-tree) B树(B-tree), B+树(B+-tree), B*树(B*-tree) B树(B-tree) 一颗m阶的B树定义如下: 1)每个结点最多有m-1个关键字。 2)根结点最少可以只有1个关键字。 3)非根结点至少有Math.ceil(m/2)-1个关键字。 4)每个结点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字都大于它。 5)所有叶子结点都位于同一层,或者说根结点到每个叶子结点的长度都相同。 注意: 之前有看到有很多文章把B树和B-tree理解成了两种不同类别的树,其实这两个是同一种树; 概念: B树和平衡二叉树稍有不同的是B树属于多叉树又名平衡多路查找树 (查找路径不只两个),数据库索引技术里大量使用者B树和B+树的数据结构,让我们来看看他有什么特点; 规则: (1)排序方式:所有节点关键字是按递增次序排列,并遵循左小右大原则; (2)子节点数:非叶节点的子节点数>1,且<=M ,且M>=2,空树除外 (注:M阶代表一个树节点最多有多少个查找路径,M=M路,当M=2则是2叉树,M=3则是3叉); (3)关键字数:枝节点的关键字数量大于等于ceil(m/2)-1个且小于等于M-1个 (注:ceil()是个朝正无穷方向取整的函数 如ceil(1.1)结果为2); (4)所有叶子节点均在同一层、叶子节点除了包含了关键字和关键字记录的指针外也有指向其子节点的指针只不过其指针地址都为null对应下图最后一层节点的空格子; 最后我们用一个图和一个实际的例子来理解B树 (这里为了理解方便我就直接用实际字母的大小来排列C>B>A) B树的查询流程: 如上图我要从上图中找到E字母,查找流程如下 (1)获取根节点的关键字进行比较,当前根节点关键字为M,E<M (26个字母顺序),所以往找到指向左边的子节点 (二分法规则,左小右大,左边放小于当前节点值的子节点、右边放大于当前节点值的子节点); (2)拿到关键字D和G,D<E<G 所以直接找到D和G中间的节点; (3)拿到E和F,因为E=E 所以直接返回关键字和指针信息 (如果树结构里面没有包含所要查找的节点则返回null); B树的插入节点流程 定义一个5阶树 (平衡5路查找树;),现在我们要把3、8、31、11、23、29、50、28 这些数字构建出一个5阶树出来; 遵循规则: (1)节点拆分规则:当前是要组成一个5路查找树,那么此时m=5,关键字数必须<=5-1 (这里关键字数>4就要进行节点拆分); (2)排序规则:满足节点本身比左边节点大,比右边节点小的排序规则; 先插入 3、8、31、11 再插入23、29 再插入50、28 B树节点的删除 规则: (1)节点合并规则:当前是要组成一个5路查找树,那么此时m=5,关键字数必须大于等于ceil (5/2) (这里关键字数<2就要进行节点合并); (2)满足节点本身比左边节点大,比右边节点小的排序规则; (3)关键字数小于二时先从子节点取,子节点没有符合条件时就向向父节点取,取中间值往父节点放; 特点: B树相对于平衡二叉树的不同是,每个节点包含的关键字增多了,特别是在B树应用到数据库中的时候,数据库充分利用了磁盘块的原理 (磁盘数据存储是采用块的形式存储的,每个块的大小为4K,每次IO进行数据读取时,同一个磁盘块的数据可以一次性读取出来)把节点大小限制和充分使用在磁盘快大小范围;把树的节点关键字增多后树的层级比原来的二叉树少了,减少数据查找的次数和复杂度; 3、B+树 概念 B+树是B树的一个升级版,相对于B树来说B+树更充分的利用了节点的空间,让查询速度更加稳定,其速度完全接近于二分法查找。为什么说B+树查找的效率要比B树更高、更稳定;我们先看看两者的区别 规则 (1)B+跟B树不同B+树的非叶子节点不保存关键字记录的指针,只进行数据索引,这样使得B+树每个非叶子节点所能保存的关键字大大增加; (2)B+树叶子节点保存了父节点的所有关键字记录的指针,所有数据地址必须要到叶子节点才能获取到。所以每次数据查询的次数都一样; (3)B+树叶子节点的关键字从小到大有序排列,左边结尾数据都会保存右边节点开始数据的指针。 (4)非叶子节点的子节点数=关键字数 (来源百度百科) (根据各种资料 这里有两种算法的实现方式,另一种为非叶节点的关键字数=子节点数-1 (来源维基百科),虽然他们数据排列结构不一样,但其原理还是一样的Mysql 的B+树是用第一种方式实现); ...

2011-12-24 · 1 min · 122 words · -

mobile apps, iOS apps, android apps, app list, apk

mobile apps, iOS apps, android apps, app list, apk iOS/Android bitwarden plex, 流媒体服务器 macrodroid, 设备自动化, 监控电池电量发 http 请求. otter, 语音转文字 Ingress Prime, 一个 LBS 游戏 APTV, apple tv, ios 看电视频道 name comments 古诗文网 Wander iOS app store redirect: 切换 app store 版本 (中国区/美区) name comments 英语轻松读 surge 网络调试工具 wireguard vpn Chanify 消息推送工具 默沙东诊疗手册 Sun Surveyor Lite 查看太阳轨迹 Star Walk 2 Strongbox keepassxc的ios实现, deprecated, > bitwarden iOS app 美区 wireguard telegram android app, apk list name comments macrodroid 设备自动化 英语轻松读 英语学习 ebuoy english buoy 英语学习 酷安 应用商店 internet speed meter lite 网速监控 随手记 Cellular-Z 移动信号监测 PingTools Network Utilities 炼妖壶 流氓软件管理 半导小蕊 Live Transcribe & Sound Notifications/实时转写和声音通知 语音转文字 RssX DevCheck 手机硬件检测工具 Quizlet 英语学习工具 shareit 茄子快传 Internet Speed Meter Lite 网速监控 F-droid 应用商店 android/chromeos apps android apps Live Transcribe & Notification Name Comments airdroid 文件传输 JuiceSSH Kde connect nplayer 视频播放 automate vysor MicroDroid total command Squid pixelbook 笔记或草稿软件 Infinite Painter 绘画软件 Imaging Edge Mobile Sony 相机远程控制 Sony Headphones Connect, Sony 耳机管理软件 rd client 微软的远程桌面安卓版 EBuoy Learn English through video subtitles AnkiDroid Flashcards sfdroid ...

2011-12-24 · 2 min · 267 words · -

蓝牙配对

蓝牙配对 四中配对模式: Numeric Comparison, Just Works, Out of Band and Passkey Entry。 Numeric Comparison:配对双方都显示一个6位的数字,由用户来核对数字是否一致,一致即可配对。例如手机之间的配对。 Just Works:用于配对没有显示没有输入的设备,主动发起连接即可配对,用户看不到配对过程。例如连接蓝牙耳机。 Passkey Entry:要求配对目标输入一个在本地设备上显示的6位数字,输入正确即可配对。例如连接蓝牙键盘。 Out of Band:两设备的通过别的途径交换配对信息,例如NFC等。例如一些NFC蓝牙音箱。 蓝牙连接需要安全加密,就涉及密钥的生成以及身份认证,通过配对完成这个过程中的交互。 Classic 这四种配对方式,除开JUSTWORK外,都可以防止这两种攻击。JUSTWORK由于不涉及人机交互,所以没法防止中间人攻击(MITM)。 (插一句,传统蓝牙的PIN CODE配对方式就是由于无法防止被动监听攻击 (穷举PIN码)才衍生了这四种SSP简单配对方式。) BLE中LE配对分为4.0版本中的LE LEGACY配对方式以及在BLE4.2版本开始导入的 BLE Secure Connection 配对方式。 前者LEGACY中,配对方式三种,JUSTWORK,PASSKEY ENTRY,以及OOB,JUSTWORK依然无法防止MITM,另外由于秘钥生成方式的缺陷,导致LE LEGACY配对方式无法防止被动监听攻击 (OOB可以防止,因为用了非空中的传输交互)正因为此,BLE4.2版本把Secure connection也引入到了BLE中 (为什么说也,是因为CLASSIC模式中也有SECURE CONNECTION方式…),BLE Secure connection和CLASSIC 的SSP采用同样的ECDH加密方式,所以安全性恢复到同样等级,可以防止被动监听攻击了。 BLE SECURE CONNECTION配对又有了四种配对模式,JUSTWORK,PASSKEY ENTRY,NUMERIC COMP.,以及OOB,同样类同于SSP,JUSTWORK防止不了MITM。以上内容,去蓝牙SPEC4.2及其以后版本里头查阅,大概可以弄清楚。总之,用简单的话来说,配对目的就防止两种攻击,被动监听和MITM,防止MITM需要人机交互操作,所以所有的JUSTWORK都没法防止这种攻击。被动监听目前采用非对称加解密方式,即可破解,所以采用EDCH的SSP以及LE SECURE CONNECTION都能防止这种攻击。 作者:城市牧场 链接:https://www.zhihu.com/question/29076831/answer/201659080 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 作者:何新宇 链接:https://www.zhihu.com/question/29076831/answer/43387340 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 https://www.zhihu.com/question/29076831

2011-12-24 · 1 min · 59 words · -

ELF

ELF ELF (Executable and Linkable Format)是一种为可执行文件,目标文件,共享链接库和内核转储(core dumps)准备的标准文件格式。 Linux和很多类Unix操作系统都使用这个格式。 目前常见的Linux、 Android可执行文件、共享库 (.so)、目标文件 ( .o)以及Core 文件 (吐核)均为此格式。 64位ELF文件格式的结构 一个ELF文件由以下三部分组成: ELF头(ELF header) - 描述文件的主要特性:类型,CPU架构,入口地址,现有部分的大小和偏移等等; 程序头表(Program header table) - 列举了所有有效的段(segments)和他们的属性。 程序头表需要加载器将文件中的节加载到虚拟内存段中; 节头表(Section header table) - 包含对节(sections)的描述。 ELF头(ELF header) ELF头(ELF header)位于文件的开始位置。 它的主要目的是定位文件的其他部分。 文件头主要包含以下字段: ELF文件鉴定 - 一个字节数组用来确认文件是否是一个ELF文件,并且提供普通文件特征的信息; 文件类型 - 确定文件类型。 这个字段描述文件是一个重定位文件,或可执行文件,或…; 目标结构; ELF文件格式的版本; 程序入口地址; 程序头表的文件偏移; 节头表的文件偏移; ELF头(ELF header)的大小; 程序头表的表项大小; 其他字段… 节(sections) 所有的数据都存储在ELF文件的节(sections)中。 我们通过节头表中的索引(index)来确认节(sections)。 节头表表项包含以下字段: 节的名字; 节的类型; 节的属性; 内存地址; 文件中的偏移; 节的大小; 到其他节的链接; 各种各样的信息; 地址对齐; 这个表项的大小,如果有的话; 程序头表(Program header table) ...

2011-12-24 · 1 min · 101 words · -

du command

du command disk usage ### 查看文件占用的磁盘空间 du --block-size=1 sparse-file-0 # Show top 10 biggest subdirs in the current dir. du -sk * | sort -nr | head -10 查看各子目录大小 -d, –max-depth du -hd 1 du -hd1 du -h --max-depth=1 du -hd1 --exclude=proc 参数 # 排除文件或目录 --exclude=foo 排序 du -d1 |sort -rn du -sh du -s ./* | sort -rn # 这是按字节排序 du -sh ./* | sort -rn # 这是按兆 (M) 来排序 4.选出排在前面的10个 du -s ./* | sort -rn | head 5.选出排在后面的10个 du -s ./* | sort -rn | tail 说明: ./*也可以改成你想到达的任何目录 如/usr/local/ 这个目录就可以写成 /usr/local/* -s, –summarize display only a total for each argument ...

2011-12-24 · 1 min · 194 words · -

kate

kate kate 是一个文本编辑器,也是一个IDE,集成了Git, 文件浏览器,shell。

2011-12-18 · 1 min · 4 words · -

ext4 的"打洞"功能 (punch hole) , 稀疏文件

ext4 的"打洞"功能 (punch hole) , 稀疏文件 Linux 中有一种文件叫做 sparse file,它可以延迟分配磁盘空间,类似于我们用的虚拟机,在创建虚拟机的时候,可以分配20G的磁盘空间,但是你创建完后,去查看宿主机磁盘占用,确实际没有占用那么多。 稀疏文件 (Sparse File) Sparse files are common in Linux/Unix and are also supported by Windows (e.g. NTFS) and macOSes (e.g. HFS+). Sparse files uses storage efficiently when the files have a lot of holes (contiguous ranges of bytes having the value of zero) by storing only metadata for the holes instead of using real disk blocks. They are especially in case like allocating VM images. 稀疏文件 (Sparse File) 是一种计算机文件,是UNIX类和NTFS等文件系统的一个特性。它的原理是当用户需要申请一块很大的存储空间时,此时文件系统为了节省存储资源,提高资源利用率,不会分配实际存储空间,只有真正写入数据时,操作系统才一点一点地分配空间,以64KB为单位增量增长 (不同文件系统不同) 。它最经典的应用就是为虚拟机创建虚拟硬盘 (thin provision) 和数据库快照,以及日志文件和科学应用中 ...

2011-12-18 · 5 min · 940 words · -

favicon

favicon 所谓favicon,即Favorites Icon的缩写,顾名思义,便是其可以让浏览器的收藏夹中除显示相应的标题外,还以图标的方式区别不同的网站。当然,这不仅仅是Favicon的全部,根据浏览器的不同,Favicon显示也有所区别: 在大多数主流浏览器如FireFox和Internet Explorer (5.5及以上版本)中,favicon不仅在收藏夹中显示,还会同时出现在地址栏上,这时用户可以拖曳favicon到桌面以建立到网站的快捷方式;除此之外,标签式浏览器甚至还有不少扩展的功能,如FireFox甚至支持动画格式的favicon等。 在我们的网站建设中,为网站打造一个契合网站主题的个性化标志则是必需的,这直接关系到能否成功地塑造网站的品牌。这从某些角度看仍在网站推广的范畴之内,而欲取得成功,不仅包括良好的页面设计、令人印象深刻的网站Logo,也包括favicon。favicon显示位置,从特定的技术角度看,favicon也并不只是仅仅让网站给人更专业的观感,也可以在一定程度上减轻服务器的流量带宽占用: 一般为了提高网站的可用性,我们都会为自己的网站创建一个自定义的404错误文件,在这种情况下,如果网站没有相应的favicon.ico文件,每当有用户收藏网站/网页时, Web服务器都会调用这个自定义的404文件,并在网站的错误日志中记录。这显然是应该予以避免的。 如何制作Favicon.ico 制作Favicon.ico的方法相当简单,首先,利用图形工具创建2个反映网站主题的256色的小图片: 1个为32×32像素,另一个为16 ×16像素。需要注意的是,调色板要选用"Windows 默认调色板",不然,在最终的效果展示中图形可能会发生迥异于您初衷的颜色上变化。 需要说明的是,在很多关于Favicon.ico的说明中,常见到要求图片为16色的说法,应该说这类说法大大过时: 在早期如Windows 95时期,16色的Favicon.ico可能是个稳妥的选择,保证其在大多数情况下正常使用,但现在,完全不存在那类限制,16色只能使图标的展示效果大大降低。 至于在浏览器中使用时16×16像素的图片已经足够,为什么还要准备32×32像素的图片,原因在于,正如上文所言,favicon也显示在地址栏中,用户可以拖曳favicon到桌面以建立到网站的快捷方式,而桌面图标则要以32×32显示的,如果您的Favicon.ico不包括32像素的图片,系统就只能使用默认的浏览器图标来标注网站/网页,如Internet Explorer的蓝色"e",起不到我们意欲通过Favicon.ico打造网站品牌的作用。 图片制作好后,使用如Image2Ico之类的小程序即可将2张图片转换到一个Icon文件中 在网页中使用Favicon.ico 浏览器调用Favicon的原则是首先在网页所在的目录下寻找Favicon.ico文件,如果没有,便到网站的根目录下寻找。 因此,在网页中使用Favicon最简单的办法便是将制作好的图标文件命名为Favicon.ico,然后将其上传到网站的根目录即可。 如果您需要将Favicon.ico放到其他目录下,或者希望让不同的网页显示不同的Favicon,就需要在网页Html文件中做设定了,具体设置也很简单,在Html中的<head>部分加入如下的代码: 程序代码:

2011-12-17 · 1 min · 25 words · -

GPG

GPG GNU Privacy Guard 什么是 GPG 首先得搞清楚一个和它很像的东西:PGP (Pretty Good Privacy),这是一个非对称加密协议,可惜它本身是商业软件。于是万能的开源社区搞出了一个遵循此标准的免费实现:GPG (Gnu PG) ‘Debian – Apt-get, NO_PUBKEY / GPG error’ The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 010908312D230C5F Solution sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 3C962022012520A0 Simply type the following commands, taking care to replace the number of the key that displayed in the error message: gpg -keyserver pgpkeys.mit.edu -recv-key 010908312D230C5F gpg -a -export 010908312D230C5F | sudo apt-key add - ...

2011-12-17 · 1 min · 80 words · -

ON DUPLICATE KEY UPDATE重复插入时更新

ON DUPLICATE KEY UPDATE重复插入时更新 http://lobert.iteye.com/blog/1604122 ON DUPLICATE KEY UPDATE重复插入时更新 博客分类: MySQL MySQLDUPLICATEUPDATEkey MySQL当插入重复时更新的方法: 第一种方法: 示例一: 插入多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句: Sql代码 INSERT INTO clients (client_id,client_name,client_type) SELECT supplier_id,supplier_name,‘advertising’ FROM suppliers WHERE not exists(select * from clients where clients.client_id=suppliers.supplier_id); 示例一: 插入单条记录 Sql代码 INSERT INTO clients (client_id,client_name,client_type) SELECT 10345,‘IBM’,‘advertising’ FROM dual WHERE not exists (select * from clients where clients.client_id=10345); 使用 dual 做表名可以让你在 select 语句后面直接跟上要插入字段的值,即使这些值还不存在当前表中。 第二种方法: INSERT 中ON DUPLICATE KEY UPDATE的使用 (本文重点) ...

2011-12-16 · 2 min · 246 words · -

Switch to R1C1 Reference Style in Excel 2010

Switch to R1C1 Reference Style in Excel 2010 Question: How do I switch from A1 to R1C1 reference style? I used to do it in the Options menu, General tab in Excel 2003. But how do I do it in Excel 2010? **Answer: ** In Excel 2010, you would go to Formula section of the Excel Options dialog box. Go to File->Options, click on “Formula” on the left side. On the right side, under “Working with Formulas” section, you will find the checkbox for switching to R1C1 reference style.

2011-12-16 · 1 min · 89 words · -

Fedora

Fedora 配置方法 备份 mv /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora.repo.backup mv /etc/yum.repos.d/fedora-updates.repo /etc/yum.repos.d/fedora-updates.repo.backup 下载新的 fedora.repo 和 fedora-updates.repo 到 /etc/yum.repos.d/ fedora wget -O /etc/yum.repos.d/fedora.repo http://mirrors.aliyun.com/repo/fedora.repo 或者 curl -o /etc/yum.repos.d/fedora.repo http://mirrors.aliyun.com/repo/fedora.repo

2011-12-14 · 1 min · 25 words · -

KVM的USB支持

KVM的USB支持 在启动KVM的时候,加入参数 “-usb”, 同时还要加入 “-usbdevice host::"。 将 USB VendorID 和 ProductID 传给虚拟机,这样虚拟机就会知道有一个 USB设备插入了。 例如: #sudo kvm -usb -usbdevice host:VendorID:ProductID winxp.img $sudo kvm -usb -usbdevice host:08ec:2039 winxp.img 如何知道VendorID:ProductID,通过lsusb命令: unanao@debian:~/Image$ lsusb Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 002: ID 163c:0620 Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub ID后面的 xxxx:xxxx 就是:。如要挂载第2行的USB设备: ...

2011-12-14 · 1 min · 123 words · -

RPC 远程过程调用 (Remote Procedure Call)

RPC,Webservice,RMI,JMS RPC 远程过程调用 (Remote Procedure Call) RPC 是远程过程调用 (Remote Procedure Call) 的缩写形式,Birrell 和 Nelson 在 1984 发表于 ACM Transactions on Computer Systems 的论文《Implementing remote procedure calls》对 RPC 做了经典的诠释。RPC 是指计算机 A 上的进程,调用另外一台计算机 B 上的进程,其中 A 上的调用进程被挂起,而 B 上的被调用进程开始执行,当值返回给 A 时,A 进程继续执行。调用方可以通过使用参数将信息传送给被调用方,而后可以通过传回的结果得到信息。而这一过程,对于开发人员来说是透明的。 RPC (Remote Procedure Call Protocol) ——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。 RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息的到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。 有多种 RPC模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订了 Sun 版本,使得 ONC RPC 协议成为 IETF 标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算环境 (DCE) 。 http://blog.csdn.net/mindfloating/article/details/39473807 http://blog.csdn.net/mindfloating/article/details/39474123 https://waylau.com/remote-procedure-calls/ https://github.com/www1350/javaweb/issues/56 RPC (Remote Procedure Call Protocol) ...

2011-12-14 · 3 min · 476 words · -