grep用法详解:grep与正则表达式

首先要记住的是: 正则表达式与通配符不一样,它们表示的含义并不相同!
正则表达式只是一种表示法,只要工具支持这种表示法, 那么该工具就可以处理正则表达式的字符串。vim、grep、awk 、sed 都支持正则表达式,也正是因为由于它们支持正则,才显得它们强大;

1基础正则表达式

grep 工具,以前介绍过。
grep -[acinv]   ‘搜索内容串‘   filename

-a 以文本文件方式搜索
-c 计算找到的符合行的次数
-i 忽略大小写
-n 顺便输出行号
-v 反向选择,即显示不包含匹配文本的所有行
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-s 不显示不存在或无匹配文本的错误信息。
grep命令加- E参数,这一扩展允许使用扩展模式匹配。

Continue reading

linux,unix为什么要编译内核?

今天看的内容是有关书上第六章编译内核的问题:
首先为什么要编译内核?
它最大的好处就是可以调整linux系统,以便其更合理地安装到计算机中。linux集成套件通常包括多种目
标内核,能够处理各种机器。除此之外,还可以通过重新编译内核以便在你的计算机上实现一些功能,
例如:将linux系统设置为一个临时路由器,使之拥有内置的路由功能,或者作为放火墙,添加一个新的外部设备(如SCSI卡等)
创建自己的内核的最好理由就是使全世界内核设计者所提供的各种为改进性能而设计的内核得到充分利用。创建内核的过程不是很困难,只是要花费一些时间,并且系统越老或运行越慢,在创建时所花费的时间就越长,而且要特别注意一些关键的驱动程序或者其特性时,那会带来不少麻烦的

这个内核将针对机器的处理器进行优化,并且只提供需要的驱动和特征。另一个原因是为内核增加新的支持特性,有些特性在发行商提供的内核中有可能没有包括进来,或让硬件工作得更好。

最终结果是建立一个更小的,更快的,打上所有最新最稳定的补丁和增强特性的内核。

利用g4u备份与恢复UNIX系统

这里使用的vm的网桥联网方便的.以下为参考方法,已经测试过,只作为参考.

准备FTP服务器

如果你打算使用G4U为虚拟机创建镜像,将需要一个可用的FTP服务器。你也需要在FTP服务器上创建一个帐号,以便有权限创建和写入文件。

如果你寻找快速的FTP应用,不妨考虑Cerberus FTP。这款软件对个人免费开放,商业版本需要59.99美元。有了FTP服务器设置和叫做安装的帐号,就可以对源虚拟机创建镜像了。

克隆源虚拟机

使用以下步骤克隆源虚拟机硬盘镜像:

1.从http://www.feyrer.de/g4u/站点下载G4U CD-ROM ISO镜像并保存在源虚拟机主机系统上。

2.使用所下载的g4u-2.2.iso文件配置虚拟机的虚拟CD-ROM。

3.在虚拟机开始启动时按下ESC键。将出现虚拟机的启动菜单,然后选择CD-ROM驱动。

4.默认下,虚拟机将通过DHCP试图获取一个IP地址。如果没有可用的DHCP服务器,通过以下步骤为虚拟机设置一个静态IP地址:

  1. 运行ifconfig –a命令给网络接口命名。
  2. 现 在运行ifconfig <ip address> netmask <subnet mask>命令设置IP地址。例如,为了在接口pcn0上设置IP地址,你将运行ifconfig pcn0 192.168.0.10 netmask 255.255.255.0。

5.现在开始创建镜像。运行uploaddisk <ftp server> <filename.gz> [disk]命令。例如,在服务器192.168.0.5上的镜像文件夹里创建叫做w2ksrv.gz的镜像,你将运行  uploaddisk 192.168.0.5 images/w2ksrv.gz

注意,如果虚拟机使用的是虚拟SCSI磁盘,你将需要在命令句法里指定克 隆哪个磁盘。通过使用G4U运行磁盘命令能看见所有的磁盘。因此如果上面的例子使用的是虚拟SCSI磁盘而不是IDE磁盘的话,该运行这个命 令:uploaddisk 192.168.0.5 images/w2ksrv.gz sd0

6.出现提示时,输入密码以在FTP服务器上安装帐户。不久将开始上传镜像。

7.等待上传。完成后关闭源虚拟机。

现在已经准备好将镜像部署到目标虚拟机。

准备目标虚拟机

按照以下步骤进行:

1.在Virtual Server(或Virtual PC)上创建一台与源虚拟机硬件配置相同的虚拟机。注意,目标系统上的虚拟硬盘必须等于或大于源虚拟机的虚拟硬盘。

2.使用downloaded g4u-2.2镜像文件配置虚拟机的虚拟CD-ROM。

3.默认下,虚拟机将通过DHCP试图获取一个IP地址。如果没有可用的DHCP服务器,通过以下步骤为虚拟机设置一个静态IP地址:

  1. 运行ifconfig –a命令给网络接口命名。
  2. 现 在运行ifconfig <ip address> netmask <subnet mask>命令设置IP地址。例如,为了在接口pcn0上设置IP地址,你将运行ifconfig pcn0 192.168.0.10 netmask 255.255.255.0。

4.使用以下命令句法下载虚拟机:slurpdisk <FTP Server> <image path and file> [disk]。例如,为了下载服务器192.168.0.5镜像文件夹里叫做w2ksrv.gz的镜像,你应该运行slurpdisk 192.168.0.5 images/w2ksrv.gz

5.出现提示时,输入密码安装FTP帐号。注意,如果下载出现错误,可能需要使用slurpdisk命令句法(例如:slurpdisk 192.168.0.5 images/w2ksrv.gz wd0)指定目标磁盘。运行磁盘命令查看所有目标磁盘。

6.下载完成后重启虚拟机。

7.重启系统后登录虚拟机。你应该能看见检测到的新硬件,并且出现重启的提示,点击“Yes”。

8.系统重启后登录,然后安装虚拟机附件。这将在新虚拟机上安装与Virtual Server(或Virtual PC)兼容的驱动。

我已经使用过本文描述的步骤转换Windows 2000、Windows XP和Windows Server 2003上的VMware虚拟机到Virtual Server 2005 R2。

当克隆系统在虚拟服务器上不能启动时,常见的问题如下:

与VMware相关的驱动在源系统未克隆之前没有安装。这能通过登录到Recovery Console并禁用与VMware相关的驱动来纠正。

复制了不正确的hal.dll和ntoskrnl.exe文件到%windir%system32文件夹。这能通过登录到Recovery Console并复制正确的文件版本到%windir%system32文件夹来纠正。

源系统的Boot.ini文件指在新Virtual Server磁盘上的错误操作系统位置。这能通过运行Recovery Console里的bootcfg /rebuild修复。

作为最后的手段,许多人都重新在克隆虚拟机上重新运行Windows设置,并选择修复现有的操作系统安装。尽管这能让克隆虚拟机重新操作,不过这需要花费很长时间,还可能需要重新安装先前安装在虚拟机上的所有应用。

解决Windows设置问题的更多信息请参加Windows Server 2003 – Troubleshooting Startup。

当我第一次开始执行VMware到Virtual Server的迁移时,这个过程通常非常耗时。在迁移过程中,为克隆准备源虚拟机要不到15分钟,其余时间都花在克隆软件本身了。

任何镜像方法都能用于从源虚拟机克隆虚拟磁盘到目标虚拟机,不过迁移过程的真正关键在于准备源虚拟机。如果准备得好,虚拟机迁移过程就很简单。

freebsd中查看文件夹/目录大小的方法/命令

du、df,freebsd/linux du,df(磁盘空间信息)命令详解

df和du命令详解df命令详细用法

a:显示全部的档案系统和各分割区的磁盘使用情形

i:显示i -nodes的使用量

k:大小用k来表示 (默认值)

t:显示某一个档案系统的所有分割区磁盘使用量

x:显示不是某一个档案系统的所有分割区磁盘使用量

T:显示每个分割区所属的档案系统名称

常用命令:df -hi

du:查询档案或目录的磁盘使用空间

a:显示全部目录和其次目录下的每个档案所占的磁盘空间

b:大小用bytes来表示 (默认值为k bytes)

c:最后再加上总计 (默认值)

s:只显示各档案大小的总合

x:只计算同属同一个档案系统的档案

L:计算所有的档案大小

常用命令:du -a

帮 Webmin 安装vsftpd 模块

除了租用国外的 VPS 用的是 linux 外,如果是我安装且提供网络服务的主机,用的作业系统大都是没有安装 X windows 的 FreeBSD 。虽然习惯在纯文字下界面底下工作,但是我还是会装上 Webmin 来辅助一些管理的作业。

Webmin 预设值 已经安培好了相当多的各种 service 的模块,可是奇怪的是大家也常用的 vsftpd ( Very Secure FTP Daemon ) 用的模組,却从来也没有出现在预设安装的模块中。因此,vsftpd 的使用者如果想要用 webmin 来管理,就得自行把模块安装上去。

那要去哪里找到給 webmin 用的 vsftpd 模块呢?
如果你要找任何一个 webmin 的模块,应该要到 webmin 官方网站的 Third-Party Modules 网页,打入关键字应该都会有答案。如果这里找不到,再去求助 google 即可。

目前的给 webmin 用的 vsftpd 模块最新的是 1.20b 版,概要述如下:

所以到 Webmin 管理介面 ” Webmin Configuration ” 中,找到 ” Webmin Modules ” ,然后在 “ Install ” 那一个位置,勾选 ” From ftp or http URL ” 然后把上面的网址放入,按下 ” Install Module ” 按键,就可帮 Webmin 安装vsftpd 模块。

现在就可以使用 Webmin对vsftpd 做简单的管理了!

推荐一批开源或免费虚拟主机管理系统

1. ZPanel – 在Windows下的免费Hosting Panel

网址:
http://sourceforge.net/projects/zpanel/
http://www.thezpanel.com/

中文讨论:
http://www.twftp.org/phpbb/viewtopic.php?t=3104

2. web-cp – *nix的虚拟主机管理

网址:
http://sourceforge.net/projects/webcp/
http://www.web-cp.net/

中文讨论:
http://www.twftp.org/phpbb/viewtopic.php?t=5095

3. VHCS – Virtual Hosting Control System – 一样是*nix系统的,不过比ZPanel还热门喔

网址:
http://sourceforge.net/projects/vhcs/
http://www.vhcs.net/

其他的:

http://sourceforge.net/search/?words=hosting

webmin的虚拟主机管理模块virtualmin- –

webmin是一个可运行于Linux/freebsd的web界面的主机管理系统,本身自带以及有人贡献了不少模块

而virtualmin则是它的一个虚拟主机管理模块,功能如下图:

webmin官方站: http://www.webmin.com/
virtaulmin站点: http://www.swelltech.com/virtualmin/

基于php/mysql的虚拟主机控制程序PHPMyWebHosting- –

PHPMyWebHosting是个开源的,基于php/mysql的虚拟主机控制面板程序,你可以用它建立带有邮箱,mysql支持的多域名虚拟主机
它须建立在Linux/freebsd之上,不支持windows

安装phpmywebhosting你必须拥有系统管理员(root)权限,并依次安装以下套件:

MySQL
Apache and PHP
Postfix
Maildrop
Courier
ProFTPd
PHPMyWebHosting

官方站上有基于各平台详细的安装说明 http://www.ladse.de

phpmywebhosting下载:http://www.ladse.de/index.php/Files

SysCP虚拟主机管理系统[全php版]- –

1.有中文包
2.admin,reseller,client 三级管理
3.全部为php代码构成
4.有不少模块(modules)供选择安装
5.开源,免费(基于GPL)
6.Linux/bsd环境,特别是debian(最初是专为它开发的)

是德国人写的,有简体中文,英文,法文,德文语言包,是多语言的

用户界面:

管理员界面:

具有以下特性:

Customer Interface
managing email accounts
managing email forwarders
managing subdomains
managing mysql databases
managing additional ftp account
managing .htaccess password protections for directories
managing path options for example directorylisting
Admin Interface:
managing of customers: you can define exactly what kind of resources your customers get (e.g. amount of pop accounts, amount of mysql databases etc.)
manage domains: you can individualy edit zone files and directory index per domain
支持以下配套服务器或引擎:

webserver: [Apache 1.3] with [PHP4] (apache2.0.x也可以)
mail transfer agent: [Postfix]
pop/imap server: [Courier]
ftp server: [ProFTPd]
database server: [MySQL]
nameserver: [Bind9]
traffic accounting and statistics: [Webalizer]

官方站:http://www.syscp.de/ 
下载:http://www.syscp.de/wiki/EnDownloads
模块下载:http://modules.syscp.de/
在线演示:http://www.syscp.de/onlinedemo/index.php

现在最新版是Version 1.2.7, 2005.2.11推出的

GREP – UNIX从头学之命令篇

简介
grep是在UNIX和Linux上很有用的命令之一。grep 与 awk, sed, perl等有很多相似之处,如果熟悉其他几个命令,也很容易掌握grep,反之亦然。
Grep的基本功能就是搜索。它通过正则表达式对输入数据检索并输出满足正则表达式的行。


Qyii – 2004 年 09 月 08 日 – 03:00 PM
标题:


用法举例

1. 从文件中查找包含某个字符串的所有行
grep 北京 a.txt

2. 现实当前目录中文件名包含某个字符串的文件名称
ls -l | grep haha

3.使用-v参数,现实不包含某个字符串的行
grep -v lala a.txt


Qyii – 2004 年 09 月 08 日 – 11:29 PM
标题:


通配符

. (点)

> cat test.txt
abc
adc
aec
abb
dbb
cdd

> grep a.c test.txt
abc
adc
aec


Qyii – 2004 年 09 月 08 日 – 11:32 PM
标题:


*
> cat test.txt
abc
adc
aec
abb
dbb
cdd

> grep a.* test.txt
abc
adc
aec
abb


Qyii – 2004 年 09 月 08 日 – 11:47 PM
标题:


正则表达式

\是转义字符,在特殊字符前面加上\可以让这个特殊字符变成通常的字符。

例如:

查找包含字符 bonoy.gif 的行

grep ‘bonoy\.gif’ 文件名称

操作符 ?

一个字符跟一个转义的问号组成的表达式匹配一个或零个那个字符。

例如:
bono?y 匹配 bonoy 和 bony


Qyii – 2004 年 09 月 14 日 – 11:07 PM
标题:


grep -i …

忽略大小写

代码:
>cat a.txt
Abc
aBc
abc
ass

 

代码:
>grep -i abc a.txt
Abc
aBc
abc