ubuntu服务管理工具

ubuntu下的服务管理工具应该有很多的吧,个人才疏学浅就不一一罗列了,今天要说的是 sysv-rc-conf。

sysv-rc-conf是ubuntu下的图形化服务管理工具,通过它我们可以很方便的修改配置开机启动项。

提示没有该命令时需要先安装一下
sudo apt-get install sysv-rc-conf

安装后之后就可以很方便的使用了
sudo sysv-rc-conf

配置启动级别只需要在括号里选中(使用空格键),设置完成直接按q键就可以保存退出了
这里需要特别说明的一点是,已经删除的服务项还是会显示在列表了,让人看着很别扭,那该怎么删除呢?
方法真的很简单哦,只要
sudo sysv-rc-conf -P
看看是不是已经清爽多了

ubuntu下xampp忘记mysql密码重置

之前在ubuntu 12.04里安装了xampp,设置了mysql数据库root密码,今天需要增加个数据库,发现忘记之前设置的密码是什么了。经过一番摸爬滚打,终于搞明白了,注意以下的操作都是以linux的root身份操作的,其它的未测试,目测只要权限允许应该没问题。

先停止mysql
/opt/lampp/lampp stopmysql

接着这样启动mysqld
/opt/lampp/sbin/mysqld --skip-grant-tables &

会看到类似这样的输出

2014-04-29 10:54:43 25686 [Note] /opt/lampp/sbin/mysqld: ready for connections.
Version: ‘5.6.16’ socket: ‘/opt/lampp/var/mysql/mysql.sock’ port: 3306 Source distribution on

此时光标可能会停在on后,没有回到提示符状态,那么就先敲一下回车,然后就回到命令提示符状态了。
接下来,就可以空密码root登录到mysql数据库了
/opt/lampp/bin/mysql -u root

赶紧设置为新的root密码吧

mysql> use mysql;
mysql> update user set password=PASSWORD(“123456”) where User=’root’;
mysql> flush privileges;
mysql> quit

重启mysql
/opt/lampp/lampp stopmysql
/opt/lampp/lampp startmysql

mybatis查询传递Integer类型参数报错

使用mybatis查询数据库,在传递Integer类型参数时,遇到下面的错误:

Servlet.service() for servlet [spring] in context with path /] threw exception [Request processing failed;
nested exception is org.mybatis.spring.MyBatisSystemException:
nested exception is org.apache.ibatis.reflection.ReflectionException:
There is no getter for property named ‘abc’ in ‘class java.lang.Integer’]

解决方法有两种:

一是将参数名称 “abc” 替换为”_parameter”。

二是在接口中定义方法时添加标注@Param(“abc”)

linux执行shell脚本,提示“没有那个文件或目录”

linux执行shell脚本,提示“没有那个文件或目录”

终端直接cd /var正常
shell脚本中执行则报错

原因是脚本是在windows平台下写的,换行符与linux不同,造成脚本不能正确执行。

windows是CR+LF
Unix/linux是LF
Mac是CR

通过html5方法无刷新变更页面url地址

通过html5方法无刷新变更页面url地址,基于安全的要求,url是不可以跨域的

pushState()方法接受三个参数

状态对象(state object) — 一个JavaScript对象,与用pushState()方法创建的新历史记录条目关联。无论何时用户导航到新创建的状态,popstate事件都会被触发,并且事件对象的state属性都包含历史记录条目的状态对象的拷贝。

任何可序列化的对象都可以被当做状态对象。因为FireFox浏览器会把状态对象保存到用户的硬盘,这样它们就能在用户重启浏览器之后被还原,我们强行限制状态对象的大小为640k。如果你向pushState()方法传递了一个超过该限额的状态对象,该方法会抛出异常。如果你需要存储很大的数据,建议使用sessionStorage或localStorage。

标题(title) — FireFox浏览器目前会忽略该参数,虽然以后可能会用上。考虑到未来可能会对该方法进行修改,传一个空字符串会比较安全。或者,你也可以传入一个简短的标题,标明将要进入的状态。

地址(URL) — 新的历史记录条目的地址。浏览器不会在调用pushState()方法后加载该地址,但之后,可能会试图加载,例如用户重启浏览器。新的URL不一定是绝对路径;如果是相对路径,它将以当前URL为基准;传入的URL与当前URL应该是同源的,否则,pushState()会抛出异常。该参数是可选的;不指定的话则为文档当前URL。

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
replaceState, pushState 5 4.0 (2.0) 10 11.50 5.0
history.state 18 4.0 (2.0) 10 11.50 6.0

关于history对象的详细说明可以参考mozilla的文档
https://developer.mozilla.org/zh-CN/docs/DOM/Manipulating_the_browser_history

下面是个简单的小例子:

jquery判断checkbox是否选中

所使用的jquery版本为jquery-1.9.1,浏览器为Chrome

1.通过prop方法获取checked属性,获取的checked返回值为boolean,选中为true,否则为flase

2.如果使用attr方法获取时,如果当前input中初始化未定义checked属性,则不管当前是否选中,$(“#selectAll”).attr(“checked”)都会返回undefined;
如果当前input中初始化已定义checked属性,则不管是否选中,$(“#selectAll”).attr(“checked”)都会返回checked.

总结,如果使用jquery,应使用prop方法来获取和设置checked属性,不应使用attr.