存档

文章标签 ‘Grep’

十条常用nmap命令行格式

2011年4月5日 没有评论

1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 -sS TCP SYN 扫描 (又称半开放,或隐身扫描) -P0 允许你关闭 ICMP pings. -sV 打开系统版本检测 -O 尝试识别远程操作系统 其它选项: -A 同时打开操作系统指纹和版本检测 -v 详细输出扫描情况. nmap -sS -P0 -A -v < target > 2) 列出开放了指定端口的主机列表 nmap -sT -p 80 -oG – 192.168.1.* | grep open 3) 在网络寻找所有在线主机 [...]

分类: Ubuntu 命令 标签: , ,

Vim多文件查找与替换

2010年9月2日 没有评论

Vim中也可以像普通ide那样的在多个文件中查找的功能,用的是:vimgrep这条命令,格式如::vimgrep /AAA/ **/*.* 。执行这条命令后,可以通过:cw命令打开匹配的窗口进行查询结果的查看。 另外,vim还可以通过args命令对多个文件进行批量操作。 在我们的日常工作中,经常需要将多个文件中的某个字段替换为其他的字段,但多数的编辑器只提供了在打开文件中的查找和替换(当然,也有很多强大的编 辑器支持多文件查找和替换,如EditPlus支持在所有打开文件中查找和替换等等),那么,在强大的Vim中,如何进行多文件的查找和替换呢? 答案是利用 args 命令! 举例说明,如果你想将当前目录下所有类型的文件中的 oldword 替换为 newword,那么只需要打开当前目录下的某个文件,输入如下两条命令并回车: :args *.* :argdo %s/oldword/newword/egc | update 接下来的工作就是确认Vim查找到的那个关键词是否要被替换。是则按下 y ,否则按下 n。 我们解释下所用到的命令: * 第一行,我们使用 args 命令,将当前目录下所有类型的文件都加入到参数列表中(不包括子文件夹中的文件,),以备后续操作。 args命令我还没完全搞清楚,嘿嘿。实验了下,使用 :args */* 的话,是将当前目录下 所有在子文件夹中的目录和子文件夹中的文件(不包括下一级文件)加入参数列表中。 了解了这点,你也可以只替换需要的类型,如 :args *.html。举一反三,反不出来的,再去Google,呵呵。 * 第二行,使用 argdo 命令,对参数列表中的文件进行替换操作。s 就是替换命令了,加上 % 指对所有行,即全文匹配。g 指对每一行中所有匹配的地方都执行替换,e 指使用正则模式,为了区分大小写。最后的 c 指每次替换前,都要确认一下。 查找操作呢?引用一下别人的命令吧: 查找 :args *.cpp :argdo /word 替换 [...]

分类: VIM 标签:

SVN分支和合并

2010年8月27日 1 条评论

尽管svn没有作强制要求,但是一般svn版本库目录建议创建trunk、branches和tags三个目录。在实际操作时,trunk主干版本要时刻保持干净,即随时可以基于这个版本进行修改并将应用部署上线。branches是分支目录,存放并行开发的项目代码,因为分支是主干的廉价拷贝(相当只是提交了一次主干版本,增加了一个版本号,并没有取出版本库作镜像拷贝),所以你可以放心建立很多分支版本。不过 Subversion不支持跨版本库的拷贝,当使用svn copy时你只能在同一个版本库内操作。tags目录存放trunk某个的快照,比如说release-1.0即trunk处于1.0版本时的快照。 使用svn来作团队的代码管理,那么分支和合并将是非常常用的操作。下面是一个简单的示例。 1. 创建分支。这里假设你要负责一个叫theme的项目,分支号1.7.2。 1. #这里的localhost是svn服务器地址 2. svn copy -m “1.7.2 – theme” svn://localhost/www/trunk svn://localhost/www/branches/branch1.7.2-theme 3. svn co svn://localhost/www/branches/branch1.7.2-theme 2. 从trunk中merge到分支。忙了一个星期终于开发完了,但是开发期间trunk版本有过改动,部署上线前你需要合并trunk的代码。 1. #branch1.7.2-theme是分支目录,注意不可以进到分支子目录 2. cd branch1.7.2-theme 3. #前面的12972是开分支之前trunk的版本号,后面的12991是merge时trunk的版本号 4. svn merge -r 12972:12991 svn://localhost/www/trunk 如果有冲突选择p(postpone),merge完了之后使用svn st|grep ^C查看冲突文件,然后比对修改冲突文件。解决冲突后再check in ,信息写上执行的merge操作。 1. svn ci -m ‘svn merge -r 12972:12991 svn://localhost/www/trunk’ 3. 从分支merge到trunk。上线测试完毕,你很幸运,一切都如预期正常,这时就要将分支回归trunk,将trunk更新到最新。 1. #先从trunk checkout一份新鲜的代码,然后cd到该版本目录下 [...]

分类: SVN 标签:

ps 和 kill 命令详解

2010年8月27日 没有评论

1.作用 kill命令用来中止一个进程。 2.格式 kill [ -s signal | -p ] [ -a ] pid … kill -l [ signal ] 3.参数 -s:指定发送的信号。 -p:模拟发送信号。 -l:指定信号的名称列表。 pid:要中止进程的ID号。 Signal:表示信号。 4.说明 进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。 Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程和终端没有联系,是一个进程序列。监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的Apache服务器的监控进程。 kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。 5.应用实例 (1)强行中止(经常使用杀掉)一个进程标识号为324的进程: #kill -9 324 (2)解除Linux系统的死锁 在Linux中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。当kill处于X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端,在那里中止有问题的程序。比如,如果Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的 PID,然后使用kill命令停止这个程序: #kill -SIGKILL XXX 其中,XXX是包含有Mozolla浏览器的程序的进程标识号。 (3)使用命令回收内存 我们知道内存对于系统是非常重要的,回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序。例如,使用top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令: #kill -9 XXX 其中,XXX是无用的进程标识号。 然后使用下面命令: #free 此时会发现可用内存容量增加了。 (4)killall命令 Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如: [...]

分类: Ubuntu 命令 标签: , ,

mysql的集群配置

2010年8月27日 没有评论

文档旨在介绍如何安装配置基于2台服务器的MySQL集群。并且实现任意一台服务器出现问题或宕机时MySQL依然能够继续运行。 一、注意! 虽然这是基于2台服务器的MySQL集群,但也必须有额外的第三台服务器作为管理节点,但这台服务器可以在集群启动完成后关闭。同时需要注意的是并不推荐在集群启动完成后关闭作为管理节点的服务器。尽管理论上可以建立基于只有2台服务器的MySQL集群,但是这样的架构,一旦一台服务器宕机之后集群就无法继续正常工作了,这样也就失去了集群的意义了。出于这个原因,就需要有第三台服务器作为管理节点运行。 另外,可能很多朋友都没有3台服务器的实际环境,可以考虑在VMWare或其他虚拟机中进行实验。 下面假设这3台服务的情况: Server1: mysql1.vmtest.net 192.168.0.1 Server2: mysql2.vmtest.net 192.168.0.2 Server3: mysql3.vmtest.net 192.168.0.3 Servers1和Server2作为实际配置MySQL集群的服务器。对于作为管理节点的Server3则要求较低,只需对Server3的系统进行很小的调整并且无需安装MySQL,Server3可以使用一台配置较低的计算机并且可以在Server3同时运行其他服务。 二、在Server1和Server2上安装MySQL ================================= 从    http://www.mysql.com    上下载mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz 注意:必须是max版本的MySQL,Standard版本不支持集群部署! 以下步骤需要在Server1和Server2上各做一次 # mv mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz /usr/local/ # cd /usr/local/ # groupadd mysql # useradd -g mysql mysql # tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz # rm -f mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz # mv mysql-max-4.1.9-pc-linux-gnu-i686 mysql # cd mysql # scripts/mysql_install_db –user=mysql [...]

分类: Mysql 标签: , ,

30分钟搞定BASH脚本编程

2010年8月27日 没有评论

一个最简单的脚本 这篇指南将通过一些例子来帮助大家学习功能强大的shell脚本编程. 在这一节中我将学习一些简单的脚本,它将有利于你深入学习一些知识。 一个最经典的Hello World程序 #!/bin/bash echo Hello World 这个脚本只有二行,它的第一行这个脚本程序由那个程序来解释.第二行只有一个简单的动作,它的功能是在终端上打印出一行”Hello World” 。如果你测试着执行这个命令时(./hello.sh),你将会得到一个command not found的信息,这种情况大部分可能是你的第一行#!/bin/bash这个程序有问题,你一定要确保bash可以找到并且可用。(一般情况下你还要对这个脚本附一个可执行权限) #chmod u+x hello.sh 一个非常简单的备份脚本 #!/bin/bash tar -cZf /var/my-backup.tgz /home/me/ 在这个脚本中,它替换了上一个例子的将一行信息打印在终端上的功能,取尔代之的是一个备份/home目录的tar备份命令。 关于重定向的一些信息 最基本的理论基础 这里有对于三个文件的重定向定义: stdin(标准输入), stdout(标准输出) and stderr(标准错误输出) (std=standard). 基本上你可以 1. 重定向 stdout 到一个文件 2. 重定向 stderr 到一个文件 3. 重定向 stdout 到stderr 4. 重定向 stderr 到 stdout 5. 重定向 stderr 到 stdout [...]

分类: Shell 标签: , ,

Linux Grep命令使用的详细介绍

2010年8月26日 没有评论

grep简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的grep家族包括grep、 egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的扩展,支持更多的re元字符, fgrep就是 fixed grep或fast grep,它们把所有的字母都看作单词,也就是说,正则表达式中的元字符表示回其自身的字面意义,不再特殊。linux 使用GNU版本的grep。它功能更强,可以通过-G、-E、-F命令行选项来使用egrep和fgrep的功能。 grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到屏幕,不影响原文件内容。 grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。 2. grep正则表达式元字符集(基本集) ^ 锚定行的开始 如:’^grep’匹配所有以grep开头的行。 $ 锚定行的结束 如:’grep$’匹配所有以grep结尾的行。 匹配一个非换行符的字符 如:’gr.p’匹配gr后接一个任意字符,然后是p。 * 匹配零个或多个先前字符 如:’*grep’匹配所有一个或多个空格后紧跟grep的行。 .*一起用代表任意字符。 [] 匹配一个指定范围内的字符,如’[Gg]rep’匹配Grep和grep。 [^] 匹配一个不在指定范围内的字符,如:’[^A-FH-Z]rep’匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。 \(..\) 标记匹配字符,如’\(love\)’,love被标记为1。 \< 锚定单词的开始,如:’\\> 锚定单词的结束,如’grep\>’匹配包含以grep结尾的单词的行。 x\{m\} 重复字符x,m次,如:’0\{5\}’匹配包含5个o的行。 x\{m,\} 重复字符x,至少m次,如:’o\{5,\}’匹配至少有5个o的行。 x\{m,n\} 重复字符x,至少m次,不多于n次,如:’o\{5,10\}’匹配5–10个o的行。 \w 匹配文字和数字字符,也就是[A-Za-z0-9],如:’G\w*p’匹配以G后跟零个或多个文字或数字字符,然后是p。 \W \w的反置形式,匹配一个或多个非单词字符,如点号句号等。 \b 单词锁定符,如: ‘\bgrepb\’只匹配grep。 [...]

分类: Shell, Ubuntu 命令 标签: , ,

centos vps安装kloxo控制面板教程

2010年8月25日 没有评论

目前主流的国外vps以linux系统居多,因为linux系统是免费的,对服务商或用户来说都可以省一点钱,况且对于一般的网络应用,linux 平台的性能和稳定性都大大优于win平台。唯一的不足就是linux平台的server不采用图形界面,易用性较差,大多数非专业人员配置、操控起来有难度,即使是专业人员,很多操作在命令行下也稍显繁琐,为了解决这个问题,就有了各种基于web的linux平台控制面板,将常用操作图形化,使之便于管理。 在众多linux发行版中,centos是非常优秀的一个,因为它是基于原来的Redhat Linux,是相对于RHEL(Red Hat Enterprise Linux,现已收费)的免费版本,性能优良,可用文档等资源也很丰富。而在众多的面板中,从资源占用、易用性等方面综合考虑,kloxo(原 lxadmin)无疑最比较适合vps新手的,而且它的基本功能是免费的,唯一的商业限制是不能绑定超过40个域名,对一般用户来说完全够用。因此centos+kloxo平台是用vps搭建web服务非常不错的选择。 下面分几步来说明拿到vps后初始化设置的步骤,仅作简单记述以备忘。下面的方法主要来自网上收集。 ——————————- 第一步 ——————————- 因为拿到的vps一般是安装了centos完全版的,自带有apache等组件,我们要使用kloxo自带的服务器组件,就需要先卸载自带的apache、mysql等。 卸载Mysql # rpm -qa | grep mysql mysql-3.23.58-9 php-mysql-4.3.4-11 mod_auth_mysql-20030510-4.1 mysql-server-3.23.58-9 说明:rpm -qa | grep mysql 命令是为了把mysql相关的包都列出来,卸载从最下面的一个包开始,直到卸载掉第一个为止。 比如:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方法如下: rpm -e mysql-server 说明:rpm -e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,比如我们下一步卸载mod_auth_mysql-20030510-4.1包,方法如下: rpm -e mod_auth_mysql 卸载Apache # rpm -qa | grep httpd 卸载PHP # rpm -qa | grep php [...]

分类: Lamp 安装配置 标签: , , ,