linux 命令

来源:互联网 发布:上海java应届生招聘 编辑:程序博客网 时间:2024/06/05 06:14
linux 命令
1.查找压缩包内的文件 find -name "*.jar" -exec sh -c 'unzip -l $1 | xargs printf "$1 %s\n"' {} {} \; | grep spring_bops_cache.xml
2.find -ctime +2 -ctime -10 是找到2天之前,10天以内修改的文件。
3.find -name myalibaba.properties
4.find -name "*.properties" | xargs grep "8002" |grep "http" 找出所有.properties里带着8002又带着http的文件
5.find . -name project.xml | xargs grep -i dubbo

6.svn st | grep '^[AMD]' | cut -c9- | xargs svn ci -m "合并代码"


拉分支

svn cp http://svn.alibaba-inc.com/repos/ali_intl/apps/intl-myalibaba/trunk/ http://svn.alibaba-inc.com/repos/ali_intl/apps/intl-myalibaba/branches/20100505_manag
ecompanyifm_dev3 -m 'modify notice for company profile add by chaosen.lincs'

切换到新分支

svn sw http://svn.alibaba-inc.com/repos/ali_intl/apps/intl-myalibaba/branches/20100505_managecompanyifm_dev3

比较开发分支与新分支的区别

svn di http://svn.alibaba-inc.com/repos/ali_intl/apps/intl-myalibaba/branches/20100505_managecompanyifm_dev1/deploy/i18n/resources/application.xmlhttp://svn.alibaba-inc.com/repos/ali_intl/apps/intl-myalibaba/branches/20100505_managecompanyifm_dev3/deploy/i18n/resources/application.xml

查看开发分支的起始版本号

svn log --stop-on-copy http://svn.alibaba-inc.com/repos/ali_intl/apps/intl-myalibaba/branches/20100505_managecompanyifm_dev1

------------------------------------------------------------------------
r278344 | chaosen.lincs | 2010-05-05 16:13:25 +0800 (三, 05 5月 2010) | 1 line

modify tip@company_refactor_waited_auditing words. author linchaosen
------------------------------------------------------------------------
r278157 | chaosen.lincs | 2010-05-05 13:28:42 +0800 (三, 05 5月 2010) | 1 line

manage ifm company create by linchaosen
------------------------------------------------------------------------

查看当前是否在新分支上 避免合并到错误的分支上

svn info

进行假合并,注意加上--ignore-ancestry这个参数,这样可以只合并本地有修改的内容 而不会合并当前不属于SVN版本管理的那些内容

svn merge --ignore-ancestry -r 278157:head http://svn.alibaba-inc.com/repos/ali_intl/apps/intl-myalibaba/branches/20100505_managecompanyifm_dev1 --dry-run

进行合并

svn merge --ignore-ancestry -r 278157:head http://svn.alibaba-inc.com/repos/ali_intl/apps/intl-myalibaba/branches/20100505_managecompanyifm_dev1

查看合并后的状态 确定一下是否只有本地修改的文件改动了

svn st

对比修改的文件的修改

svn di application.xml

提交文件 此时应该只有假合并列出的文件被提交

svn ci -m 'modify company profile author chaosen.lincs'

再次查看状态

svn st

复核一下是否是目标分支

svn info

alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias vi='vim'
alias vibash='vim ~/.bashrc'
alias sshlee='ssh lee@10.16.42.7'
alias antxe='antx eclipse'
alias antxx='antx reactor goals=clean,default,eclipse'
alias antxp='antx -p RELEASE'
alias mount157='sudo mount 10.20.131.157:/home/admin /mnt/efs/www/;sudo mount -t nfs -o rw 10.20.131.157:/home/admin/volume_photobank /mnt/photobank;sudo mount -t nfs -o rw 10.20.131.157:/home/admin/volume_product /mnt/product_repository'
alias mountphotobank='sudo mount -t nfs -o rw 10.20.131.157:/home/admin/volume_photobank /mnt/photobank'
alias sshhatter='ssh haitao.jianght@172.16.20.162'
alias sshsu='ssh lei.sul@172.16.20.162'
alias kw='./deploy/bin/killws'
alias sw='./deploy/bin/startws'
alias viantx='vi ~/antx.properties'
alias viantxx='vi ~/antxx.properties'
alias antxx2='antx -u ~/antxx.properties reactor goals=clean,default,eclipse'
alias antxp2='antx -u ~/antxx.properties -p RELEASE'
alias antxe2='antx -u ~/antxx.properties eclipse'
alias vibash='vi ~/.bashrc'
alias sshjo='ssh jiaojiao.kuangjj@172.16.20.162'
alias sshpublic='ssh myalibaba@10.20.131.140'
alias sshpan='ssh chenxing.pancx@172.16.20.162'
alias sshvm='ssh admin@10.249.128.114'
alias sshstand='ssh standalone@10.20.131.158'
alias standpwd='echo NNCvIqxly'
alias sshvpn='ssh le.lil@172.16.20.162'
alias vihost='sudo vi /etc/hosts'
alias vpnhome='~/script/vpn'

进入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 :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
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行
dd:删除当前行
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的输出结果放到当前行。

jstat :对VM内存使用量进行监控。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。
jstat -class pid:显示加载class的数量,及所占空间等信息。
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。
jstat -gcnew pid:new对象的信息。
jstat -gcnewcapacity pid:new对象的信息及其占用量。
jstat -gcold pid:old对象的信息。
jstat -gcoldcapacity pid:old对象的信息及其占用量。
jstat -gcpermcapacity pid: perm对象的信息及其占用量。
jstat -util pid:统计gc信息统计。
jstat -printcompilation pid:当前VM执行的信息。
除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。

jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用 SHELL jmap -histo pid>a.log可以将其保存到文本中去(windows下也可以使用),在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=f1 3024可以将3024进程的内存heap输出出来到f1文件里。

简单的查看JAVA进程号:jps -vl


常用命令别名设置
alias vi='vim'
alias vibash='vim ~/.bashrc'
alias antxe='antx eclipse'
alias antxx='antx reactor goals=clean,default,eclipse'
alias antxp='antx -p RELEASE'
alias viantx='vi ~/antx.properties'
alias viantxx='vi ~/antxx.properties'
alias vihost='sudo vi /etc/hosts'
alias freem='free -m'

alias mountbank='sudo mount -t nfs -o rw 10.249.194.30:/home/admin/pub/volume_www /mnt/efs/www'

alias cmd='gnome-terminal'
alias mvnantx='mvn a2m:install-antx-module-intl -Dmaven.test.skip=true'
alias mvneclipse='mvn eclipse:eclipse -Dcheck.parent.skip'
alias mvninstall='mvn clean install -Dmaven.test.skip' #-DuserProp="/home/linchaosen/antx.properties"


增加某主机的路由 sudo route add -host 10.16.197.2 gw 10.16.41.255

ln -s 源路径 目标路径

用apache2.0搭MA系统的时候 需要在deploy/conf/httpd.conf里添加以下模块声明

LoadModule vhost_alias_module /usr/ali/apache2/modules/mod_vhost_alias.so
LoadModule log_config_module /usr/ali/apache2/modules/mod_log_config.so
LoadModule mime_module /usr/ali/apache2/modules/mod_mime.so
LoadModule include_module /usr/ali/apache2/modules/mod_include.so
LoadModule alias_module /usr/ali/apache2/modules/mod_alias.so
LoadModule rewrite_module /usr/ali/apache2/modules/mod_rewrite.so
LoadModule access_module /usr/ali/apache2/modules/mod_access.so
LoadModule auth_module /usr/ali/apache2/modules/mod_auth.so
LoadModule proxy_module /usr/ali/apache2/modules/mod_proxy.so
LoadModule proxy_http_module /usr/ali/apache2/modules/mod_proxy_http.so
LoadModule dir_module /usr/ali/apache2/modules/mod_dir.so
LoadModule deflate_module /usr/ali/apache2/modules/mod_deflate.so
LoadModule headers_module /usr/ali/apache2/modules/mod_headers.so
LoadModule setenvif_module /usr/ali/apache2/modules/mod_setenvif.so

不声明以上模块 将报错:
Syntax error on line 38 of /home/linchaosen/work/intl-myalibaba/deploy/conf/httpd.conf:
Invalid command 'Order', perhaps mis-spelled or defined by a module not included in the server configuration

ZIP
zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:
我们可以使用下列的命令压缩一个目录:

# zip -r archive_name.zip directory_to_compress
下面是如果解压一个zip文档:

# unzip archive_name.zip
TAR
Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。下面是如何打包一个目录:

# tar -cvf archive_name.tar directory_to_compress
如何解包:

# tar -xvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -xvf archive_name.tar -C /tmp/extract_here/
TAR.GZ
这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。使用下面这种格式去压缩一个目录:

# tar -zcvf archive_name.tar.gz directory_to_compress
解压缩:

# tar -zxvf archive_name.tar.gz
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -zxvf archive_name.tar.gz -C /tmp/extract_here/
TAR.BZ2
这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。这个就是你如何使用tar.bz2进行压缩。

# tar -jcvf archive_name.tar.bz2 directory_to_compress
上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/
数据压缩是非常有用的,尤其是对于备份来说。所以,你现在应该考虑在你的备份脚本中使用你在这里学到的压缩方式备份你基本的规则文件以减小你备份文件的大小。

zip.gz

#gunzip xxx.zip.gz

执行查找并进行vi

find . -iname aaa -exec vi {} \;

执行查找并删除

find . -iname aaa -exec rm -i {} \;

执行查找并忽略某目录

find . -iname *.vm |grep -v .svn |xargs grep aaa

eclipse单元测试时需要加的参数

如果出现Error creating bean with name 'emailTemplateDao' defined in resource loader resource [/biz/spring/spring_emailtemplate_dal.xml]: Cannot resolve reference to bean 'emailTemplateSqlMapClient' while setting bean property 'sqlMapClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'emailTemplateSqlMapClient' defined in resource loader resource [/biz/spring/spring_emailtemplate_dal.xml]: Invocation of init method failed; nested exception is com.ibatis.common.exception.NestedRuntimeException: Error occurred.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMapConfig/sqlMap'.  Cause: com.ibatis.common.xml.NodeletException: Error parsing XML.  Cause: org.xml.sax.SAXParseException; lineNumber: 159; columnNumber: 7; The string "--" is not permitted within comments.

Caused by: org.xml.sax.SAXParseException; lineNumber: 159; columnNumber: 7; The string "--" is not permitted within comments.

则加上以下:

-Dfile.encoding=UTF-8


原创粉丝点击