1、命令行链接数据库:
mysql -hhostIp -uusername -ppwd databasename --default-character-set=utf8
2、库表导出文件:
mysql -hhostIp -uusername -ppwd databasename --default-character-set=utf8 -e "sql sentence" > /path/filename
3、redies文档:
https://github.com/springside/springside4/wiki/redis
4、maven实战:http://tangyanbo.iteye.com/
5、压缩js的地址:http://closure-compiler.appspot.com/home
6、json在线编辑:http://jsoneditoronline.com/
7、去掉返回给页面的空白字符,在tomcat/conf/web.xml文件中,加入以下节点:
<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>
或者xml_header.jsp文件第一行加上以下内容:
trimDirectiveWhitespaces="true"
8、区分html的行、块标签
1)如果不知道标签是行还是块,直接放两个同名的标签,如果换行展示,则为块标签;如果不换行,则为行标签;
2)行标签没有长宽高等属性,块标签有长宽高属性;
9、ibatis打出sql语句的配置:
log4j.logger.java.sql.PreparedStatement=debug
log4j.logger.java.sql.Connection=debug
xml文件的配置:
<logger name="java.sql.PreparedStatement">
<level value="debug" />
</logger>
<logger name="java.sql.Connection">
<level value="debug" />
</logger>
10、淘宝类目api:http://api.taobao.com/apitools/apiPropTools.htm
11、infobright操作:/home/webadmin/infobright/mysql-ib -uroot -proot -D test --default-character-set=gbk
12、mysql手工导入文件到数据库:"LOAD DATA INFILE '/data/test.txt' INTO TABLE t_tablename FIELDS TERMINATED BY '\t'";
13、授权给infobright:
1)登陆到infobright的mysql的控制台
2)输入命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by "root";
这里root和root是用户名/密码。
14、启动infobright: /home/webadmin/infobright/mysqld-ib start
停止infobright: /home/webadmin/infobright/mysqld-ib stop
15、cd 'dirname $0'单纯标识当前脚本运行的相对目录,./aa.sh;
cdir = $(cd 'dirname $0';pwd)可以输出当前脚本目录的绝对目录。
16、samba服务:ln -s /usr/local/brand/ brand
17、命令测试url:
curl http://ip:port/jsp/xxx.jsp
18、查询某文件中的某个特定字符串:grep -n -e "查找的字符串" 文件名
19、上传文件:rz,在弹出框中选择文件
20、上传文件:scp /home/文件名 username@hostip:/home/username
21、执行sql文件:source /home/xxx.sql
22、取文件:scp webadmin@hostip:/data/xxx.log /home/xxxdir
23、取文件到本地目录,输入:sz 文件名
1)配置本地默认接受地址:ScureCRT->Session Options->Xmodem/Zmodem->directories->配置本地目录
(如果选择不了文件夹,则右击右下角的三角形图标,右击“Critix”打开连接中心,选择文件的完全读写控制权限)
2)上传:rz 文件名
24、服务器映射到本地debug调试:
1)cd /usr/local/tomcat/tshop/bin/
2) ./catalina.sh jpda run
3)本地eclipse配置:debug->remote application->双击->输入ip和端口
25、查看linux服务器定时任务:
1)登陆服务器
2)执行命令:crontab -l
3)新增执行:crontab -e
26、查看当前文件夹下文件数(包括子文件夹):ls -lR|grep "^-"|wc -l
27、查看文件的行数:wc -l 文件名
28、windows查看端口号被占用的进程:
netstat -nao | findstr "80" (查出来进程号例如为6564)
查看进程名称:
tasklist | findstr "8732"
强制杀死进程:
taskkill /F /pid "8732"
29、mysql控制台乱码:set character_set_results='gbk';
或者:set character_set_results='utf8';
30、查看磁盘使用情况:df -h
查看内存使用情况:free -m
查看端口号被占用的进程:lsof -i:859(859即为端口号)
31、文件中查找包含的文字: find /var/log | xargs grep -nH "test"
32、去掉第一行
sed -i '1d' t_weixin_send_message_journal.txt
33、uname -a,查看linux的位数,是32位还是64位
34、maven启动调试功能:
1)set MAVEN_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
2)本地通过远程调用debug
35、maven编译文件:mvn package -Dmaven.test.skip
36、catalina.sh文件增加了:CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9606
可以启动jpda
37、maven的debug启动:mvndebug clean -Dmaven.tomcat.port=8081 tomcat:run -U
38、从第9行开始打印文件的后面4行:cat system.out.10|awk 'NR>=9'|awk 'NR<=4'
给文件加上行号:
1)nl file
2)cat -n file
3)sed = file|sed 'N;s/\n/:/'
39、打印出某一个特殊字符所在的行号
cat -n file|grep 'xxx'
40、vi操作
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行
41、linux下启动mysql的命令:
mysqladmin start
/ect/init.d/mysql start (前面为mysql的安装路径)
42、linux下重启mysql的命令:
mysqladmin restart
/ect/init.d/mysql restart (前面为mysql的安装路径)
43、linux下关闭mysql的命令:
mysqladmin -u root -p密码 shutdown
/ect/init.d/mysql shutdown (前面为mysql的安装路径)
44、连接本机上的mysql:
进入目录mysql\bin,再键入命令mysql -uroot -p, 回车后提示输入密码。
退出mysql命令:exit(回车)
45、修改mysql密码:
mysqladmin -u用户名 -p旧密码 password 新密码
或进入mysql命令行SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
GRANT USAGE ON *.* TO '用户名'@'主机' IDENTIFIED BY 'biscuit';
修改自己的密码SET PASSWORD = PASSWORD('biscuit');
46、增加新用户。(注意:mysql环境中的命令后面都带一个分号作为命令结束符)
grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;
flush privileges;(刷新权限设置)
grant select on 数据库.* to 用户名@登录主机 identified by "密码"
如增加一个用户test密码为123,让他可以在任何主机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to " Identified by "123";
47、跳过授权访问mysql
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
48、有关mysql数据库方面的操作
必须首先登录到mysql中,有关操作都是在mysql的提示符下进行,而且每个命令以分号结束
1)显示数据库列表。
show databases;
2)显示库中的数据表:
use mysql; //打开库
show tables;
3)显示数据表的结构:
describe 表名;
4)建库:
create database 库名;
5)建表:
use 库名;
create table 表名(字段设定列表);
6)删库和删表:
drop database 库名;
drop table 表名;
7)将表中记录清空:
delete from 表名;
8)显示表中的记录:
select * from 表名;
9)编码的修改
如果要改变整个mysql的编码格式:
启动mysql的时候,mysqld_safe命令行加入
--default-character-set=gbk
如果要改变某个库的编码格式:在mysql提示符后输入命令
alter database db_name default character set gbk;
49、数据的导入导出
1)文本数据转到数据库中
文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:
name duty 2006-11-23
数据传入命令 load data local infile "文件名" into table 表名;
2)导出数据库和表
mysqldump --opt news > news.sql(将数据库news中的所有表备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
mysqldump --opt news author article >author.article.sql(将数据库news中的author表和article表备份到author.article.sql文件,author.article.sql是一个文本文件,文件名任取。)
mysqldump --databases db1 db2 > news.sql(将数据库dbl和db2备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
mysqldump -h host -u user -p pass --databases dbname > file.dump
就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中
mysqldump --all-databases > all-databases.sql(将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。)
3)导入数据
mysql < all-databases.sql(导入数据库)
mysql -u root -p fukai –force < dmc010003_db.myisam.sql(强行导入)
mysql>source news.sql;(在mysql命令下执行,可导入表)
MySQLimport的常用选项介绍:
-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息
-f or --force 不管是否遇到错误,MySQLimport将强制继续插入数据
-i or --ignore MySQLimport跳过或者忽略那些有相同唯一关键字的行, 导入文件中的数据将被忽略。
-l or -lock-tables 数据被插入之前锁住表,这样就防止了,你在更新数据库时,用户的查询和更新受到影响。
-r or -replace 这个选项与-i选项的作用相反;此选项将替代表中有相同唯一关键字的记录。
--fields-enclosed- by= char 指定文本文件中数据的记录时以什么括起的, 很多情况下数据以双引号括起。 默认的情况下数据是没有被字符括起的。
--fields-terminated- by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。
默认的分隔符是跳格符(Tab)
--lines-terminated- by=str 此选项指定文本文件中行与行之间数据的分隔字符串或者字符。 默认的情况下MySQLimport以newline为行分隔符。
您可以选择用一个字符串来替代一个单个的字符:
一个新行或者一个回车。
MySQLimport命令常用的选项还有-v 显示版本(version),-p 提示输入密码(password)
例子:导入一个以逗号为分隔符的文件
文件中行的记录格式是这样的:
"1", "ORD89876", "1 Dozen Roses", "19991226"
我们的任务是要把这个文件里面的数据导入到数据库Meet_A_Geek中的表格Orders中,我们使用这个命令:
bin/MySQLimport –prl –fields-enclosed-by=" –fields-terminated-by=, Meet_A_Geek Orders.txt
50、连接MySQL
格式: mysql -h主机地址 -u用户名 -p用户密码
1)例1:连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>。
2)例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3)退出MYSQL命令: exit (回车)。
mysql常用维护命令
1)show global status;列出MySQL服务器运行各种状态值
2)show variables;查询MySQL服务器配置信息语句
3)查看慢查询
show variables like '%slow%';
show global status like '%slow%';
4)最大连接数
show variables like 'max_connections';MySQL服务器最大连接数
show global status like 'Max_used_connections'; 服务器响应的最大连接数
5)查看表结构
desc Tablename;
describe Tablename;
show columns from Tablename;
show create table Tablename;
6)SELECT count(*) TABLES, table_schema FROM information_schema.TABLES where table_schema = 'test' GROUP BY table_schema
52、mybase文档
http://www.mybatis.org/generator/generatedobjects/javamodel.html
4、ibatis自动生成器:
http://www.mybatis.org/generator/
53、@ModelAttribute("chargeItem") 意思和 modelAndView.addObject("chargeItem", chargeItem);相同
54、maven处理
1)编译:mvn elclipse : compile
2)默认放置在target目录下
3)如果要elcipse编译即可用,则eclipse配置默认的class文件目录
55、maven项目本地运行方法:
1)checkout工程
2)执行命令:
mvn eclipse:clean eclipse:eclipse
3)将步骤2的target工程的lib文件防止到WEB-INF/lib目录下
4)修改编译的目标文件
56、mvn install
生成文件:mvn eclipse:eclipse
运行:mvn -Dmaven.tomcat.port=8081 tomcat:run
debug步骤:
1)设置debug的端口:set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9000
2)mvn -Dmaven.tomcat.port=80 tomcat:run
以utf-8参数启动
1)set MAVEN_OPTS=-Dfile.encoding=UTF-8
2)mvn -Dfile.encoding=UTF-8 -Dmaven.tomcat.port=80 tomcat:run
设置utf-8参数:set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9000 -Dfile.encoding=utf-8
57、跨域问题:
1)爷爷和孙子属于同一个域,父亲属于另一个域被include
2)父亲中include孙子的iframe(孙子只要能被访问到即可)
3)页面初始化时,父亲传递页面高度给孙子,孙子拿到父页面高度,调用top对象获取爷爷对象,从而调用爷爷页面的方法,设置爷爷页面的iframe高度。
4)同域的调用:直接在父亲页面调用方法
function resetIframe(height) {
$('#main_iframe').height(height);
}
5)跨域的调用,需要在body中添加如下iframe:
<div style="display:none;">
<iframe id="test" src="http://xxx"></iframe>
</div>
并添加如下脚本:
window.onload = function() {
var bodyHeight = document.body.clientHeight || document.documetnElement.clientHeight;
document.getElementById('test').src = reset(document.getElementById('test').src, bodyHeight);
};
function reset(src, height) {
if(src.indexOf('#') != -1) {
return src.replace(/#\d+/g, '#'+height);
}else {
return src + '#'+height;
}
};
58、修改定时任务的下次执行时间:
T_CRM_QRTZ_TRIGGERS 表中的:NEXT_FIRE_TIME字段
59、显示第一行
head -n 1 t_weixin_message_receive.txt | awk {print R2}
删掉文件一行
sed -i "1 d" t_weixin_message_receive.txt
显示第一行第二列
head -n 1 t_weixin_message_receive.txt | awk '{print $2}'
60、MAVEN常用命令
Maven库:http://repo2.maven.org/maven2/
Maven依赖查询:http://mvnrepository.com/
Maven常用命令:
创建Maven的普通java项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName
创建Maven的Web项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp
编译源代码: mvn compile
编译测试代码:mvn test-compile
运行测试:mvn test
产生site:mvn site
打包:mvn package
在本地Repository中安装jar:mvn install
清除产生的项目:mvn clean
生成eclipse项目:mvn eclipse:eclipse
生成idea项目:mvn idea:idea
组合使用goal命令,如只打包不测试:mvn -Dtest package
编译测试的内容:mvn test-compile
只打jar包: mvn jar:jar
只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile
( -skipping 的灵活运用,当然也可以用于其他组合命令)
清除eclipse的一些系统设置:mvn eclipse:clean
ps:一般使用情况是这样,首先通过cvs或svn下载代码到本机,然后执行mvn eclipse:eclipse生成ecllipse项目文件,然后导入到eclipse就行了;修改代码后执行mvn compile或mvn test检验,也可以下载eclipse的maven插件。
mvn -version/-v 显示版本信息
mvn archetype:generate 创建mvn项目
mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app 创建mvn项目
mvn package 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
mvn jetty:run 运行项目于jetty上,
mvn compile 编译
mvn test 编译并测试
mvn clean 清空生成的文件
mvn site 生成项目相关信息的网站
mvn -Dwtpversion=1.0 eclipse:eclipse 生成Wtp插件的Web项目
mvn -Dwtpversion=1.0 eclipse:clean 清除Eclipse项目的配置信息(Web项目)
mvn eclipse:eclipse 将项目转化为Eclipse项目
在应用程序用使用多个存储库
<repositories>
<repository>
<id>Ibiblio</id>
<name>Ibiblio</name>
<url>http://www.ibiblio.org/maven/</url>
</repository>
<repository>
<id>PlanetMirror</id>
<name>Planet Mirror</name>
<url>http://public.planetmirror.com/pub/maven/</url>
</repository>
</repositories>
mvn deploy:deploy-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DrepositoryId=maven-repository-inner - Durl=ftp://xxxxxxx/opt/maven/repository/
发布第三方Jar到本地库中:mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar
-DdownloadSources=true
-DdownloadJavadocs=true
mvn -e 显示详细错误 信息.
mvn validate 验证工程是否正确,所有需要的资源是否可用。
mvn test-compile 编译项目测试代码。 。
mvn integration-test 在集成测试可以运行的环境中处理和发布包。
mvn verify 运行任何检查,验证包是否有效且达到质量标准。
mvn generate-sources 产生应用需要的任何额外的源代码,如xdoclet。
常用命令:
mvn -v 显示版本
mvn help:describe -Dplugin=help 使用 help 插件的 describe 目标来输出 Maven Help 插件的信息。
mvn help:describe -Dplugin=help -Dfull 使用Help 插件输出完整的带有参数的目标列
mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull 获取单个目标的信息,设置 mojo 参数和 plugin 参数。此命令列出了Compiler 插件的compile 目标的所有信息
mvn help:describe -Dplugin=exec -Dfull 列出所有 Maven Exec 插件可用的目标
mvn help:effective-pom 看这个“有效的 (effective)”POM,它暴露了 Maven的默认设置
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook 创建Maven的普通java项目,在命令行使用Maven Archetype 插件
mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序
mvn dependency:resolve 打印出已解决依赖的列表
mvn dependency:tree 打印整个依赖树
mvn install -X 想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行
mvn install -Dmaven.test.skip=true 给任何目标添加maven.test.skip 属性就能跳过测试
mvn install assembly:assembly 构建装配Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件
mvn jetty:run 调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用
mvn compile 编译你的项目
mvn clean install 删除再编译
mvn hibernate3:hbm2ddl 使用 Hibernate3 插件构造数据库
mvn eclipse:eclipse 导入eclipse
mvn clean install 编译打包
mvn tomcat:run -Dmaven.tomcat.port=80 以80端口启动web工程
mvn dependency:copy-dependencies -DoutputDirectory=D:\work\ScmInfoSys_proj\workspace-color\publiclib
编译:
mvn package -Dmaven.test.skip
下载所有源码:
mvn eclipse:eclipse -DdwonloadSources
运行tomcat:
mvn tomcat:run
61、重启nginx:start nginx -s reload
62、svn copy http://xxxxxxxxxx/trunk http://xxx/branches/20130722_release -m "release branch at 20130722"
63、修改tomcat内存:
1)双击tomcat server
2)open launch configuration -> argument ->vm参数增加:-Xms512M -Xmx1024M
64、比较器:
Comparator<CouponBatchBO> comparetor = new Comparator<CouponBatchBO>() {
@Override
public int compare(CouponBatchBO b1, CouponBatchBO b2) {
return (int)(b2.getCreateTime().getTime() - b1.getCreateTime().getTime());
}
};
static class ComparatorByOrder implements Comparator {
private int sortId;
public ComparatorByOrder(int sortId){
this.sortId = sortId;
}
@Override
public int compare(Object o1, Object o2) {
CouponBatchBO b1 = (CouponBatchBO) o1;
CouponBatchBO b2 = (CouponBatchBO) o2;
if (sortId > 0) {
if (sortId == 1)
return b2.getTotalUsed() - b1.getTotalUsed();
else
return b1.getTotalUsed() - b2.getTotalUsed();
} else
return (int) (b2.getCreateTime().getTime() - b1.getCreateTime().getTime());
}
}
mysql -hhostIp -uusername -ppwd databasename --default-character-set=utf8
2、库表导出文件:
mysql -hhostIp -uusername -ppwd databasename --default-character-set=utf8 -e "sql sentence" > /path/filename
3、redies文档:
https://github.com/springside/springside4/wiki/redis
4、maven实战:http://tangyanbo.iteye.com/
5、压缩js的地址:http://closure-compiler.appspot.com/home
6、json在线编辑:http://jsoneditoronline.com/
7、去掉返回给页面的空白字符,在tomcat/conf/web.xml文件中,加入以下节点:
<init-param>
<param-name>trimSpaces</param-name>
<param-value>true</param-value>
</init-param>
或者xml_header.jsp文件第一行加上以下内容:
trimDirectiveWhitespaces="true"
8、区分html的行、块标签
1)如果不知道标签是行还是块,直接放两个同名的标签,如果换行展示,则为块标签;如果不换行,则为行标签;
2)行标签没有长宽高等属性,块标签有长宽高属性;
9、ibatis打出sql语句的配置:
log4j.logger.java.sql.PreparedStatement=debug
log4j.logger.java.sql.Connection=debug
xml文件的配置:
<logger name="java.sql.PreparedStatement">
<level value="debug" />
</logger>
<logger name="java.sql.Connection">
<level value="debug" />
</logger>
10、淘宝类目api:http://api.taobao.com/apitools/apiPropTools.htm
11、infobright操作:/home/webadmin/infobright/mysql-ib -uroot -proot -D test --default-character-set=gbk
12、mysql手工导入文件到数据库:"LOAD DATA INFILE '/data/test.txt' INTO TABLE t_tablename FIELDS TERMINATED BY '\t'";
13、授权给infobright:
1)登陆到infobright的mysql的控制台
2)输入命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by "root";
这里root和root是用户名/密码。
14、启动infobright: /home/webadmin/infobright/mysqld-ib start
停止infobright: /home/webadmin/infobright/mysqld-ib stop
15、cd 'dirname $0'单纯标识当前脚本运行的相对目录,./aa.sh;
cdir = $(cd 'dirname $0';pwd)可以输出当前脚本目录的绝对目录。
16、samba服务:ln -s /usr/local/brand/ brand
17、命令测试url:
curl http://ip:port/jsp/xxx.jsp
18、查询某文件中的某个特定字符串:grep -n -e "查找的字符串" 文件名
19、上传文件:rz,在弹出框中选择文件
20、上传文件:scp /home/文件名 username@hostip:/home/username
21、执行sql文件:source /home/xxx.sql
22、取文件:scp webadmin@hostip:/data/xxx.log /home/xxxdir
23、取文件到本地目录,输入:sz 文件名
1)配置本地默认接受地址:ScureCRT->Session Options->Xmodem/Zmodem->directories->配置本地目录
(如果选择不了文件夹,则右击右下角的三角形图标,右击“Critix”打开连接中心,选择文件的完全读写控制权限)
2)上传:rz 文件名
24、服务器映射到本地debug调试:
1)cd /usr/local/tomcat/tshop/bin/
2) ./catalina.sh jpda run
3)本地eclipse配置:debug->remote application->双击->输入ip和端口
25、查看linux服务器定时任务:
1)登陆服务器
2)执行命令:crontab -l
3)新增执行:crontab -e
26、查看当前文件夹下文件数(包括子文件夹):ls -lR|grep "^-"|wc -l
27、查看文件的行数:wc -l 文件名
28、windows查看端口号被占用的进程:
netstat -nao | findstr "80" (查出来进程号例如为6564)
查看进程名称:
tasklist | findstr "8732"
强制杀死进程:
taskkill /F /pid "8732"
29、mysql控制台乱码:set character_set_results='gbk';
或者:set character_set_results='utf8';
30、查看磁盘使用情况:df -h
查看内存使用情况:free -m
查看端口号被占用的进程:lsof -i:859(859即为端口号)
31、文件中查找包含的文字: find /var/log | xargs grep -nH "test"
32、去掉第一行
sed -i '1d' t_weixin_send_message_journal.txt
33、uname -a,查看linux的位数,是32位还是64位
34、maven启动调试功能:
1)set MAVEN_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
2)本地通过远程调用debug
35、maven编译文件:mvn package -Dmaven.test.skip
36、catalina.sh文件增加了:CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9606
可以启动jpda
37、maven的debug启动:mvndebug clean -Dmaven.tomcat.port=8081 tomcat:run -U
38、从第9行开始打印文件的后面4行:cat system.out.10|awk 'NR>=9'|awk 'NR<=4'
给文件加上行号:
1)nl file
2)cat -n file
3)sed = file|sed 'N;s/\n/:/'
39、打印出某一个特殊字符所在的行号
cat -n file|grep 'xxx'
40、vi操作
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename….filename :打开多个文件,依次进行编辑
移动光标类命令
h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
屏幕翻滚类命令
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b;向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令
i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本
搜索及替换命令
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息
最后行方式命令
:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行
41、linux下启动mysql的命令:
mysqladmin start
/ect/init.d/mysql start (前面为mysql的安装路径)
42、linux下重启mysql的命令:
mysqladmin restart
/ect/init.d/mysql restart (前面为mysql的安装路径)
43、linux下关闭mysql的命令:
mysqladmin -u root -p密码 shutdown
/ect/init.d/mysql shutdown (前面为mysql的安装路径)
44、连接本机上的mysql:
进入目录mysql\bin,再键入命令mysql -uroot -p, 回车后提示输入密码。
退出mysql命令:exit(回车)
45、修改mysql密码:
mysqladmin -u用户名 -p旧密码 password 新密码
或进入mysql命令行SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
GRANT USAGE ON *.* TO '用户名'@'主机' IDENTIFIED BY 'biscuit';
修改自己的密码SET PASSWORD = PASSWORD('biscuit');
46、增加新用户。(注意:mysql环境中的命令后面都带一个分号作为命令结束符)
grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;
flush privileges;(刷新权限设置)
grant select on 数据库.* to 用户名@登录主机 identified by "密码"
如增加一个用户test密码为123,让他可以在任何主机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to " Identified by "123";
47、跳过授权访问mysql
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
48、有关mysql数据库方面的操作
必须首先登录到mysql中,有关操作都是在mysql的提示符下进行,而且每个命令以分号结束
1)显示数据库列表。
show databases;
2)显示库中的数据表:
use mysql; //打开库
show tables;
3)显示数据表的结构:
describe 表名;
4)建库:
create database 库名;
5)建表:
use 库名;
create table 表名(字段设定列表);
6)删库和删表:
drop database 库名;
drop table 表名;
7)将表中记录清空:
delete from 表名;
8)显示表中的记录:
select * from 表名;
9)编码的修改
如果要改变整个mysql的编码格式:
启动mysql的时候,mysqld_safe命令行加入
--default-character-set=gbk
如果要改变某个库的编码格式:在mysql提示符后输入命令
alter database db_name default character set gbk;
49、数据的导入导出
1)文本数据转到数据库中
文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:
name duty 2006-11-23
数据传入命令 load data local infile "文件名" into table 表名;
2)导出数据库和表
mysqldump --opt news > news.sql(将数据库news中的所有表备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
mysqldump --opt news author article >author.article.sql(将数据库news中的author表和article表备份到author.article.sql文件,author.article.sql是一个文本文件,文件名任取。)
mysqldump --databases db1 db2 > news.sql(将数据库dbl和db2备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
mysqldump -h host -u user -p pass --databases dbname > file.dump
就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中
mysqldump --all-databases > all-databases.sql(将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。)
3)导入数据
mysql < all-databases.sql(导入数据库)
mysql -u root -p fukai –force < dmc010003_db.myisam.sql(强行导入)
mysql>source news.sql;(在mysql命令下执行,可导入表)
MySQLimport的常用选项介绍:
-d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息
-f or --force 不管是否遇到错误,MySQLimport将强制继续插入数据
-i or --ignore MySQLimport跳过或者忽略那些有相同唯一关键字的行, 导入文件中的数据将被忽略。
-l or -lock-tables 数据被插入之前锁住表,这样就防止了,你在更新数据库时,用户的查询和更新受到影响。
-r or -replace 这个选项与-i选项的作用相反;此选项将替代表中有相同唯一关键字的记录。
--fields-enclosed- by= char 指定文本文件中数据的记录时以什么括起的, 很多情况下数据以双引号括起。 默认的情况下数据是没有被字符括起的。
--fields-terminated- by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。
默认的分隔符是跳格符(Tab)
--lines-terminated- by=str 此选项指定文本文件中行与行之间数据的分隔字符串或者字符。 默认的情况下MySQLimport以newline为行分隔符。
您可以选择用一个字符串来替代一个单个的字符:
一个新行或者一个回车。
MySQLimport命令常用的选项还有-v 显示版本(version),-p 提示输入密码(password)
例子:导入一个以逗号为分隔符的文件
文件中行的记录格式是这样的:
"1", "ORD89876", "1 Dozen Roses", "19991226"
我们的任务是要把这个文件里面的数据导入到数据库Meet_A_Geek中的表格Orders中,我们使用这个命令:
bin/MySQLimport –prl –fields-enclosed-by=" –fields-terminated-by=, Meet_A_Geek Orders.txt
50、连接MySQL
格式: mysql -h主机地址 -u用户名 -p用户密码
1)例1:连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>。
2)例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3)退出MYSQL命令: exit (回车)。
mysql常用维护命令
1)show global status;列出MySQL服务器运行各种状态值
2)show variables;查询MySQL服务器配置信息语句
3)查看慢查询
show variables like '%slow%';
show global status like '%slow%';
4)最大连接数
show variables like 'max_connections';MySQL服务器最大连接数
show global status like 'Max_used_connections'; 服务器响应的最大连接数
5)查看表结构
desc Tablename;
describe Tablename;
show columns from Tablename;
show create table Tablename;
6)SELECT count(*) TABLES, table_schema FROM information_schema.TABLES where table_schema = 'test' GROUP BY table_schema
52、mybase文档
http://www.mybatis.org/generator/generatedobjects/javamodel.html
4、ibatis自动生成器:
http://www.mybatis.org/generator/
53、@ModelAttribute("chargeItem") 意思和 modelAndView.addObject("chargeItem", chargeItem);相同
54、maven处理
1)编译:mvn elclipse : compile
2)默认放置在target目录下
3)如果要elcipse编译即可用,则eclipse配置默认的class文件目录
55、maven项目本地运行方法:
1)checkout工程
2)执行命令:
mvn eclipse:clean eclipse:eclipse
3)将步骤2的target工程的lib文件防止到WEB-INF/lib目录下
4)修改编译的目标文件
56、mvn install
生成文件:mvn eclipse:eclipse
运行:mvn -Dmaven.tomcat.port=8081 tomcat:run
debug步骤:
1)设置debug的端口:set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9000
2)mvn -Dmaven.tomcat.port=80 tomcat:run
以utf-8参数启动
1)set MAVEN_OPTS=-Dfile.encoding=UTF-8
2)mvn -Dfile.encoding=UTF-8 -Dmaven.tomcat.port=80 tomcat:run
设置utf-8参数:set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9000 -Dfile.encoding=utf-8
57、跨域问题:
1)爷爷和孙子属于同一个域,父亲属于另一个域被include
2)父亲中include孙子的iframe(孙子只要能被访问到即可)
3)页面初始化时,父亲传递页面高度给孙子,孙子拿到父页面高度,调用top对象获取爷爷对象,从而调用爷爷页面的方法,设置爷爷页面的iframe高度。
4)同域的调用:直接在父亲页面调用方法
function resetIframe(height) {
$('#main_iframe').height(height);
}
5)跨域的调用,需要在body中添加如下iframe:
<div style="display:none;">
<iframe id="test" src="http://xxx"></iframe>
</div>
并添加如下脚本:
window.onload = function() {
var bodyHeight = document.body.clientHeight || document.documetnElement.clientHeight;
document.getElementById('test').src = reset(document.getElementById('test').src, bodyHeight);
};
function reset(src, height) {
if(src.indexOf('#') != -1) {
return src.replace(/#\d+/g, '#'+height);
}else {
return src + '#'+height;
}
};
58、修改定时任务的下次执行时间:
T_CRM_QRTZ_TRIGGERS 表中的:NEXT_FIRE_TIME字段
59、显示第一行
head -n 1 t_weixin_message_receive.txt | awk {print R2}
删掉文件一行
sed -i "1 d" t_weixin_message_receive.txt
显示第一行第二列
head -n 1 t_weixin_message_receive.txt | awk '{print $2}'
60、MAVEN常用命令
Maven库:http://repo2.maven.org/maven2/
Maven依赖查询:http://mvnrepository.com/
Maven常用命令:
创建Maven的普通java项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName
创建Maven的Web项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp
编译源代码: mvn compile
编译测试代码:mvn test-compile
运行测试:mvn test
产生site:mvn site
打包:mvn package
在本地Repository中安装jar:mvn install
清除产生的项目:mvn clean
生成eclipse项目:mvn eclipse:eclipse
生成idea项目:mvn idea:idea
组合使用goal命令,如只打包不测试:mvn -Dtest package
编译测试的内容:mvn test-compile
只打jar包: mvn jar:jar
只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile
( -skipping 的灵活运用,当然也可以用于其他组合命令)
清除eclipse的一些系统设置:mvn eclipse:clean
ps:一般使用情况是这样,首先通过cvs或svn下载代码到本机,然后执行mvn eclipse:eclipse生成ecllipse项目文件,然后导入到eclipse就行了;修改代码后执行mvn compile或mvn test检验,也可以下载eclipse的maven插件。
mvn -version/-v 显示版本信息
mvn archetype:generate 创建mvn项目
mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app 创建mvn项目
mvn package 生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
mvn jetty:run 运行项目于jetty上,
mvn compile 编译
mvn test 编译并测试
mvn clean 清空生成的文件
mvn site 生成项目相关信息的网站
mvn -Dwtpversion=1.0 eclipse:eclipse 生成Wtp插件的Web项目
mvn -Dwtpversion=1.0 eclipse:clean 清除Eclipse项目的配置信息(Web项目)
mvn eclipse:eclipse 将项目转化为Eclipse项目
在应用程序用使用多个存储库
<repositories>
<repository>
<id>Ibiblio</id>
<name>Ibiblio</name>
<url>http://www.ibiblio.org/maven/</url>
</repository>
<repository>
<id>PlanetMirror</id>
<name>Planet Mirror</name>
<url>http://public.planetmirror.com/pub/maven/</url>
</repository>
</repositories>
mvn deploy:deploy-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DrepositoryId=maven-repository-inner - Durl=ftp://xxxxxxx/opt/maven/repository/
发布第三方Jar到本地库中:mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar
-DdownloadSources=true
-DdownloadJavadocs=true
mvn -e 显示详细错误 信息.
mvn validate 验证工程是否正确,所有需要的资源是否可用。
mvn test-compile 编译项目测试代码。 。
mvn integration-test 在集成测试可以运行的环境中处理和发布包。
mvn verify 运行任何检查,验证包是否有效且达到质量标准。
mvn generate-sources 产生应用需要的任何额外的源代码,如xdoclet。
常用命令:
mvn -v 显示版本
mvn help:describe -Dplugin=help 使用 help 插件的 describe 目标来输出 Maven Help 插件的信息。
mvn help:describe -Dplugin=help -Dfull 使用Help 插件输出完整的带有参数的目标列
mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull 获取单个目标的信息,设置 mojo 参数和 plugin 参数。此命令列出了Compiler 插件的compile 目标的所有信息
mvn help:describe -Dplugin=exec -Dfull 列出所有 Maven Exec 插件可用的目标
mvn help:effective-pom 看这个“有效的 (effective)”POM,它暴露了 Maven的默认设置
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook 创建Maven的普通java项目,在命令行使用Maven Archetype 插件
mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序
mvn dependency:resolve 打印出已解决依赖的列表
mvn dependency:tree 打印整个依赖树
mvn install -X 想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行
mvn install -Dmaven.test.skip=true 给任何目标添加maven.test.skip 属性就能跳过测试
mvn install assembly:assembly 构建装配Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件
mvn jetty:run 调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用
mvn compile 编译你的项目
mvn clean install 删除再编译
mvn hibernate3:hbm2ddl 使用 Hibernate3 插件构造数据库
mvn eclipse:eclipse 导入eclipse
mvn clean install 编译打包
mvn tomcat:run -Dmaven.tomcat.port=80 以80端口启动web工程
mvn dependency:copy-dependencies -DoutputDirectory=D:\work\ScmInfoSys_proj\workspace-color\publiclib
编译:
mvn package -Dmaven.test.skip
下载所有源码:
mvn eclipse:eclipse -DdwonloadSources
运行tomcat:
mvn tomcat:run
61、重启nginx:start nginx -s reload
62、svn copy http://xxxxxxxxxx/trunk http://xxx/branches/20130722_release -m "release branch at 20130722"
63、修改tomcat内存:
1)双击tomcat server
2)open launch configuration -> argument ->vm参数增加:-Xms512M -Xmx1024M
64、比较器:
Comparator<CouponBatchBO> comparetor = new Comparator<CouponBatchBO>() {
@Override
public int compare(CouponBatchBO b1, CouponBatchBO b2) {
return (int)(b2.getCreateTime().getTime() - b1.getCreateTime().getTime());
}
};
static class ComparatorByOrder implements Comparator {
private int sortId;
public ComparatorByOrder(int sortId){
this.sortId = sortId;
}
@Override
public int compare(Object o1, Object o2) {
CouponBatchBO b1 = (CouponBatchBO) o1;
CouponBatchBO b2 = (CouponBatchBO) o2;
if (sortId > 0) {
if (sortId == 1)
return b2.getTotalUsed() - b1.getTotalUsed();
else
return b1.getTotalUsed() - b2.getTotalUsed();
} else
return (int) (b2.getCreateTime().getTime() - b1.getCreateTime().getTime());
}
}