2008年12月24日星期三

Virtuabox

Vbox 升级了,然后就尝试了下新的,结果在覆盖安装之后起来发觉无法加载原有host的端口。

查看了下文档

VBoxManage setextradata Solaris "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ftp/HostPort" 2121

已经修改为

VBoxManage setextradata "Solaris " "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ftp/HostPort" 2121

而且顺序也变为

VBoxManage setextradata "Solaris" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCPVBoxManage setextradata "Solaris" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22VBoxManage setextradata "Solaris" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222

Words

  1. 给自己的嘴巴安上一把锁,不要试图讲出全部的想法。培养低调和富有感染力的言谈。说话的方式比内容更为重要。
  2. 少作承诺,并保证它们的信誉。一旦作出承诺,无论付出多大代价都要履行。
  3. 永远不要错过赞赏和鼓励别人的机会。不论是谁做的漂亮的工作,都给予称赞。如果需要提出意见,请以一种帮助的态度,而不是鄙夷的态度。关心别人的需要、工作、家庭和家人。与快乐的人一起快乐;与悲伤的人一起悲伤。
  4. 让每一个与你交往的人,不论多么卑微,都能感觉到你对他的重视。
  5. 做一个快乐的人。不要将自己不足一提的伤痛和失望传染给了周围的人。请记住,每个人都承担着某些压力。
  6. 保持开放的心态。讨论但不要争论,不同意但不愤岔,是伟大心灵的标志。
  7. 让你的美德自己来说话。拒绝谈论别人的短处,不要传播谣言。这些将浪费你宝贵的时间,并会极大地破坏你的人际关系。
  8. 谨慎地对待别人的情感。揶揄和幽默并不值得以伤害别人为代价,尤其当你认为可能性很小的时候。
  9. 无需担心关于你的流言。请记住,散播流言的人并非世界上最准确的报道员。以不变应万变。紧张不安加上坏心眼一般是背后议人是非的原因。
  10. 别太着急属于自己的信誉。将你自己做到最好,并要有耐心。忘记你自己,让别人来”记住”你。这样的成功更令人愉悦。

2008年12月15日星期一

Mark

在021上的编译用/usr/local/bin/make,而不用本机的make.
Solaris上网卡速率:
1.察看网卡相关参数ndd -get /dev/bge0 察看当前参数的值比如"ndd -get /dev/bge0 adv_autoneg_cap"察看solaris中的网卡自适应是否开启。如果不知道参数名称可以使用指令"ndd -get /dev/bge0 \?" 察看所有的参数,其中read only的参数是不能修改的。
2.修改网卡参数对应的就是ndd -set /dev/bge0 。比如关闭自适应" ndd -set /dev/bge0 adv_1000fdx_cap 0",关闭后网卡会中断,那就需要手工修改下面个参数"adv_1000fdx_cap,adv_1000hdx_cap,adv_100T4_cap,adv_100fdx_cap,adv_100hdx_cap,adv_10fdx_cap,adv_10hdx_cap",这些参数对应的就是1000/100/10M的速率和fdx/hdx全/半双工。还可以查看网络是否连通"ndd -get /dev/bge0 link_status" ,当前网卡传输速率"ndd -get /dev/bge0 link_speed"等。当然,网卡的传输速率还与交换机端口,网线规格是否支持等有关,设置的不对网络就中断掉了

bash-3.00$ more S99ndd
#!/sbin/sh
/usr/sbin/ndd -set /dev/bge0 adv_autoneg_cap 0
/usr/sbin/ndd -set /dev/bge0 adv_1000fdx_cap 0
/usr/sbin/ndd -set /dev/bge0 adv_1000hdx_cap 0
/usr/sbin/ndd -set /dev/bge0 adv_100fdx_cap 1
/usr/sbin/ndd -set /dev/bge0 adv_100hdx_cap 0
/usr/sbin/ndd -set /dev/bge0 adv_10fdx_cap 0
/usr/sbin/ndd -set /dev/bge0 adv_10hdx_cap 0


在机器上的编译,$LD_LIBRARY_PATH和$PATH必须定义好

2008年12月11日星期四

mysql error

某日重启mysql遇到以下错误
bash-3.00# /etc/rc3.d/S99mysql startStarting MySQL.... ERROR! Manager of
pid-file quit without updating file.

差错误日志
081211 11:02:41 InnoDB: Starting shutdown...081211 11:02:42 InnoDB:
Shutdown completed; log sequence number 0 46419081211 11:02:42 [Note]
/opt/mysql6/bin/mysqld: Shutdown complete
081211 11:02:42 mysqld_safe mysqld
from pid file /opt/mysql6/data/testenv.atu.pid ended081211 11:04:23 mysqld_safe
Starting mysqld daemon with databases from /opt/mysql6/data081211 11:04:23
InnoDB: Started; log sequence number 0 46419081211 11:04:24 [ERROR] mysqld: File './mysql-bin.000018' not found (Errcode:
13)
081211 11:04:24 [ERROR] Failed to open log (file './mysql-bin.000018',
errno 13)081211 11:04:24 [ERROR] Could not open log file081211 11:04:24 [ERROR]
Can't init tc log081211 11:04:24 [ERROR] Aborting
081211 11:04:24
InnoDB: Starting shutdown...081211 11:04:25 InnoDB: Shutdown completed;
log sequence number 0 46419081211 11:04:25 [Note] /opt/mysql6/bin/mysqld:
Shutdown complete
081211 11:04:25 mysqld_safe mysqld from pid file
/opt/mysql6/data/testenv.atu.pid ended


The error which had been highlighted.
Then
bash-3.00# ../bin/perror 13OS error code 13: Permission denied
bash-3.00#ls -la
-rw-rw---- 1 root root 126 Dec 10 14:53 mysql-bin.000016
-rw-rw---- 1 root root 952 Dec 11 11:04 mysql-bin.000017
-rw-rw---- 1 root root 684783 Dec 11 11:04 mysql-bin.000018

so you may find the three files the owner which is not mysql, so change the owner
bash-3.00# chown mysql:mysql mysql-bin.000016
bash-3.00# chown mysql:mysql mysql-bin.000017
bash-3.00# chown mysql:mysql mysql-bin.000018
bash-3.00# /etc/rc3.d/S99mysql startStarting MySQL... SUCCESS!

2008年12月9日星期二

SUSE下绑定双网卡

2、cp /etc/sysconfig/network/ifcfg-eth-xx:xx:xx:xx:xx:xx /etc/sysconfig/network/ifcfg-bond0
3、编辑ifcfg-bond0文件:
加入如下几行:
BONDING_SLAVE_0='eth0'
BONDING_SLAVE_1='eth1'
BONDING_MASTER=yes
BONDING_MODULE_OPTS=
修改后的ifcfg-bond0文件如下:
BOOTPROTO='static'
BROADCAST='192.168.23.255'
IPADDR='192.168.23.6'
MTU=''
NETMASK='255.255.255.0'
NETWORK='192.168.23.0'
REMOTE_IPADDR=''
STARTMODE='onboot'
UNIQUE='WMHV.+EMLITqy0YF'
BONDING_MASTER=yes
BONDING_SLAVE_0='eth0'
BONDING_SLAVE_1='eth1'
BONDING_MODULE_OPTS='miimon=100 mode=1 use_carrier=0' --注:mode=1为网卡主备用,mode=0为负荷分担。
4、删除/etc/sysconfig/network下的已经绑定的网卡的配置文件(如:ifcfg-eth-xx:xx:xx:xx:xx:xx)
5、使用rcnetwork restart重起服务
6、使用ifconfig -a 命令查看bond0上是否已经有IP,而eth0和eth1上则没有IP地址。

------------

理论上来说还是Yast比较方便

查看全双工和半双工的命令 ethtool

2008年12月8日星期一

Nokia Tips

*#92702689# 查看生产日期
*#0000# 软件版本
*#06#:显示IMEI码
*#06# 查询IMEI号码 所有手机通用
*#7370# 格式化手机 Series 60手机专用
*#7780# 恢复出厂设置 Series 60和Series 40手机通用
*#0000# 查询当前软件版本号 所有诺基亚手机通用
*#7760# 查询生产线号码 Series 40手机专用
*#2820# 查询蓝牙设备地址 Series 60和Series 40手机通用
*3370# 激活EFR 部分型号的手机可用
*#3370# 关闭EFR 部分型号的手机可用
*4720# 激活HFR 部分型号的手机可用
*#4720# 关闭HFR 部分型号的手机可用
*#92702689# 查询总通话时间 所有手机通用
*#92702689# 进入数据模式 Series 40手机专用
*#7370925538# 为手机上锁 Series 60手机专用

2008年12月2日星期二

refresh php & apache

mysql6 is the same as mysql5.1
#/opt/downloads/php-5.2.6/configure --prefix=/opt/php --with-mysql=/opt/mysql6 --with-apxs2=/opt/apache2/bin/apxs --with-freetype-dir=/usr --with-png-dir=/usr --with-iconv --with-png-dir --with-zlib --with-libxml-dir
#cp php.ini-dist /opt/php/lib/php/php.ini
修改php.ini文件register_globals = On
httpd.conf
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

2008年11月26日星期三

mod

apache安装后,如果想再添加模块,往往不想重新安装一次,再者,我在安装中发现,并不是安装文件中所有的modules都会被默认安装,即使在安装中使用了 ./configure --prefix=/usr/local/apache --enable-so --enable-modules=all --enable-mods-shared=all也是如此。我使用上述方法安装的apache2.2.6就没有安装proxy相关模块。这时,需要手工生成so文件,但会自动的被复制到你的apache安装目录的modules中,然后修改apache的配置文件,加载相关模块,验证apache配置并重启服务即可。以上描述的具体操作步骤如下:
操作系统:linux redhat 4.5 ES
apache版本:2.2.6 可自行下载tar包

1. 拷贝安装包到/usr/local,并在目标目录下进行解压。[root@localhost local]# cd /usr/local[root@localhost local]# tar -zxvf httpd-2.2.4.tar.gz2. 配置安装参数,安装的目标目录为/usr/local/apache,建议设置enable-mods-shared=all,不用的module注释掉就行了![root@localhost local]# cd httpd-2.2.4[root@localhost httpd-2.2.4]# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all3. 编译并安装。[root@localhost httpd-2.2.4]# make[root@localhost httpd-2.2.4]# make install4. 启动Apache,并测试。[root@localhost httpd-2.2.4]# cd /usr/local/apache/bin[root@localhost bin]# ./apachectl start
打开浏览器,并在地址栏中输入主机的IP地址如http://192.168.1.254/如果出现以下画面则说明安装成功。It works! 注意:安装完成后检查系统服务中的HTTPD服务是否已经启动,如果启动需要先停止。
5. 编译mod_proxy.so.
[root@localhost httpd-2.2.4]# cd modules
[root@localhost modules]# /usr/local/apache/bin/apxs -c -i mod_proxy.c proxy_util.c
这时生成的mod_proxy.so会被自动复制到/usr/local/apache/modules
6. 修改配置文件
[root@localhost modules]# cd /usr/local/apache/conf
[root@localhost conf]# vi httpd.conf
添加一行 LoadModule proxy_module modules/mod_proxy.so
7. 测试配置是否正确
[root@localhost conf]# cd ..[root@localhost apache]# cd bin[root@localhost bin]# ./apachectl configtest
出现如下信息证明配置正确
[Fri Nov 23 15:45:55 2007] [warn] module rewrite_module is already loaded, skippingSyntax OK8. 重新启动apache
[root@localhost bin]# ./apachectl stop
[root@localhost bin]# ./apachectl start
完成!!
-------------------------------
Personal Configuration:
安装apache============>> apr
#tar -zxvf apr-1.3.2.tar.gz#cd apr-1.3.2#./configure --prefix=/usr/local/apr-httpd/#make#make install
>>apr-util
#tar -zxvf apr-util-1.3.2.tar.gz#cd apr-util-1.3.2#./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/#make#make install
>> apache
#tar -zxvf httpd-2.2.9.tar.gz#cd httpd-2.2.9#./configure --prefix=/usr/local/apache22 \--with-apr=/usr/local/apr-httpd \--with-apr-util=/usr/local/apr-util-httpd \--with-mpm=prefork \--enable-so \--enable-rewrite \--enable-info \--enable-mime-magic \--enable-vhost-alias \--enable-deflate \--enabel-expires \#make#make install
安装php5=========>>mhash
#tar -zxvf mhash-0.9.6.tar.gz#cd mhash-0.9.6#./configure --prefix=/usr/local/mhash#make#make install#cd include/mutils/#rm -R CVS#cp * /usr/local/mhash/include/mutils/
>> xml2#pkg_add -r libxml2
>> PNG#pkg_add -r png
>>iconv#pkg_add -r libiconv
>> php5#tar -zxvf php-5.2.6.tar.gz#cd php-5.2.6#./configure --prefix=/usr/local/php \--with-apxs2=/usr/local/apache22/apxs \--with-mysql=/usr/local/mysql \--with-curl \--disable-debug\--enable-inline-optimization -q \--enable-zlib \--enable-gd \--enable-iconv \--enable-mbstring \#make#make install
配置=====2.apache[/apache/conf/httpd.conf ]修改
A. ServerAdmin your@doman.comB. ServerName 127.0.0.1:80
C. Options FollowSymLinks AllowOverride None Order deny,allow Allow from all # <-- 原来为Deny
D. DirectoryIndex index.html index.php # <-- 增加index.php
E. AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType application/x-httpd-php .php # <-- 增加
F. 启用MPM、Virtual hosts# Server-pool management (MPM specific)Include conf/extra/httpd-mpm.conf
# Virtual hostsInclude conf/extra/httpd-vhosts.conf
E.修改MPM、Virtual Hosts StartServers 5 MinSpareServers 5 MaxSpareServers 10 ServerLimit 4000 MaxClients 2000 MaxRequestsPerChild 0
ServerAdmin webmaster@test.com DocumentRoot /Data/webapps ServerName www.test.com ErrorLog logs/test.com-error_log CustomLog logs/test.com-access_log common
测试: =========在/apache2/htdocs 创建文件phpinfo.php 内容为:

2008年11月13日星期四

mysql5.1.29安装

下载了mysql5.1.29的tar文件,但是解压需要gnu的tar同时解压了以后发觉没有没什么有用的文件,而且也不存在.configure文件所以没办法自编译,当然也不能make;make install了。只能搜文章了,
安装MySQL
# tar xzvf mysql-5.1.24-rc-linux-i686-glibc23.tar.gz
# mv mysql-5.1.24-rc-linux-i686-glibc23 /usr/local/
# ln -s /usr/local/ mysql-5.1.24-rc-linux-i686-glibc23 /usr/local/mysql
# useradd mysql
# chown -R mysql:root /usr/local/mysql/
# cd /usr/local/mysql
# ./scripts/mysql_install_db –-user=mysql
# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
# chown root:root /etc/rc.d/init.d/mysqld
# chmod 755 /etc/rc.d/init.d/mysqld
# chkconfig –add mysqld
# chkconfig –level 35 mysqld on
# cp ./support-files/my-huge.cnf /etc/my.cnf
# mv /usr/local/mysql/data /var/lib/mysql
# chown -R mysql:mysql /var/lib/mysql/
# vi /etc/my.cnf 修改以下内容:
(1) 在 [mysql] 段增加一行:default-character-set = utf8
(2) 在 [mysqld] 段增加或修改:datadir = /var/lib/mysql–skip-innodbdefault-character-set = utf8–wait-timeout = 5max_connections = 512max_connect_errors = 10000000thread_concurrency = CPU个数×2将 log-bin 注释# bin/mysqladmin -u root password ‘password_for_root’

--------------
向上面所说的,当然在建立的时候一定要将mysql目录设置为mysql:mysql,同时很麻烦的就是,在把support-files/mysql.server考出来的时候一定要有所修改。

pkgadd 默认修改/var/sadm/install/admin/default 修改basedir

2008年11月3日星期一

繁忙的周末

回了杭州,周五跟老爹吃夜宵,周六跟一群人玩,好乐迪9折加对折,然后夜宵,长肉。 跟老妈逛街。。花了我一千大洋,买了2件外套了受不了了。 结果。。唉。。去赶火车结果没坐上,改签,跟老妈发脾气。。让我多睡了10分钟结果拉下了火车。 然后做七点四十七的车,一路出战一路狂奔赶地铁。。 终于赶上了。 真不容易,还是要提早啊

2008年10月31日星期五

Sendmail配置一例

在新装的机器上,一般使用sendmail来说是没有问题的。但是在昨天的工作中确实遇到了这样的问题。而且很严重,根本无法在本机和外网发邮件。昨天因为比较晚了,今天一早来就解决问题了。首先比了下一边能发和另一边不能发的机器。 4和23,在里面有个参数文件是DS xxxxxx.xx.com, 这个是规定你sendmail的中继器的邮件地址。 关键是这个上除了问题,倒是发邮件根本没有方法,改成通用的就能发送成功了。 而客户提出在另外台也需要发送的要求,检查了以后发现也是DS参数有问题。改正后还是不能,检查LOG发觉提示不能认hostname,检查/etc/hosts文件没有错误,然后继续检查,在/etc/ient/ipnodes下面并没有加上hostname所以出现了问题

2008年10月22日星期三

Mysql+Apache

设定、测试与启动 Apache2 Solaris 10 已经内置安装了 Apache 2.xx,只需要做一些设定便可以使用。

1. 首先用 Root 了登入文字模式系统 ( Console Mode )

2. 复制 /etc/apache2/httpd.conf-example 到 /etc/apache2/httpd.conf # cp /etc/apache2/httpd.conf-example /etc/apache2/httpd.conf

3. 编辑 /etc/apache2/httpd.conf设定你所需要的 ServerName 服务器名称,预设为 127.0.0.1 在 ServerAdmin 设定正确的 E-mail 地址

4. 使用以下指令启动 Apache# svcadm enable apache2然后,试一试从新启动 Solaris ,看一看 Apache 能不自动启动。基本网页文件位置为 /var/apache2/htdocs 。

设定、测试与启动 MySQLSolaris 10 已经内置安装了 MySQL。安装者必须要用 Root 身份登入系统。以下的安装步骤可以在 /usr/sfw/src/mysql/Docs 目录中找到。

1. 用 root 身份 login 到 Console mode 中,并且进行数据库的事前准备。# /usr/sfw/bin/mysql_install_dbPreparing db tablePreparing host tablePreparing user tablePreparing func tablePreparing tables_priv tablePreparing columns_priv tableInstalling all prepared tables060118 21:24:03 /usr/sfw/sbin/mysqld: Shutdown Complete
2. 建立 mysql user 和 group ,并且更改数据目录的群组。# groupadd mysql# useradd -g mysql mysql# chgrp -R mysql /var/mysql# chmod -R 770 /var/mysql# installf SUNWmysqlr /var/mysql d 770 root mysql
3. 预设 MySQL 设定文件位置为 /var/mysql/my.cnf
4. 复制 MySQL 设定文件到预设位置# cp /usr/sfw/share/mysql/my-medium.cnf /var/mysql/my.cnf
5. 手动启动 mysql# /usr/sfw/sbin/mysqld_safe --user=mysql &
6. 设定 MySQL 的 root user密码 ( 下文中的 new-password 为你想要的密码,你可以自行更改为你喜欢的密码。因为安全理由,切密不要使用 new-password 为你的密码,一定要更改 ) # cd /usr/sfw/bin# ./mysqladmin -u root password 'new-password'# ./mysqladmin -u root -h `hostname` password 'new-password'
7. 测试 MySQL Server# ./mysqlshow -pEnter password: new-password+-----------+ Databases +-----------+ mysql test +-----------+# ./mysql -u root -pEnter password: new-passwordWelcome to the MySQL monitor. Commands end with ; or /g.Your MySQL connection id is 3 to server version: 4.0.20-standardType 'help;' or '/h' for help. Type '/c' to clear the buffer.
mysql> show databases;+-----------+ Databases +-----------+ mysql test +-----------+2 rows in set (0.00 sec)
mysql> quit;Bye
8. 设定 Solaris Server 在启动和关机时,自动运行和停止MySQL Server。# ln /etc/sfw/mysql/mysql.server /etc/rc3.d/S99mysql# ln /etc/sfw/mysql/mysql.server /etc/rc0.d/K00mysql# ln /etc/sfw/mysql/mysql.server /etc/rc1.d/K00mysql# ln /etc/sfw/mysql/mysql.server /etc/rc2.d/K00mysql# ln /etc/sfw/mysql/mysql.server /etc/rcS.d/K00mysql
9. 然后,试一试从新启动 Solaris ,看一看 MySQL 能不自动启动。预设 MySQL 设定文件位置为 /var/mysql/my.cnf 。 下载与设定 PHP1.用 root 身份 login 到 Console mode 中。 2.检查清楚 PATH 是否包含 /opt/csw/bin 和 /usr/sfw/bin,如果没有,请自行加上。# bash # export PS1='/u:/w#'root:/# echo $PATH/opt/csw/bin:/usr/sfw/bin:/usr/sbin:/usr/bin:/usr/openwin/bin:/usr/dt/bin:/usr/ccs/bin3.安装 pkg-getroot:/# mkdir /usr/local/srcroot:/# cd /usr/local/srcroot:/usr/local/src# wget http://www.blastwave.org/pkg_get.pkgroot:/usr/local/src# cp pkg_get.pkg ..root:/usr/local/src# pkgadd -d pkg_get.pkg all You may use and copy this software without charge, as you see fit.The software is copyright (C) Philip Brown, Nov 2002
Dont forget to update /opt/csw/etc/pkg-get.conf with your nearest archive site.The selected base directory must exist before installationis attempted.
Do you want this directory created now [y,n,?,q] yUsing as the package base directory.## Processing package information.## Processing system information.2 package pathnames are already properly installed.## Verifying disk space requirements.## Checking for conflicts with packages already installed.## Checking for setuid/setgid programs.
This package contains scripts which will be executed with super-userpermission during the process of installing this package.
Do you want to continue with the installation of [y,n,?] y
Installing pkg_get - CSW version of automated package download tool as
## Installing part 1 of 1./opt/csw/bin/pkg-get/opt/csw/etc/pkg-get.conf.csw/opt/csw/share/man/man1m/pkg-get.1m/var/pkg-get/admin-fullauto[ verifying class ]## Executing postinstall script.
Installing /opt/csw/etc/pkg-get.conf.csw to pkg-get.confInstallation of was successful.
root:/usr/local/src# cd / root:/#
4.检查是否安装好 pkg-get 和 wget的位置 root:/# which pkg-get/opt/csw/bin/pkg-getroot:/# which wget/usr/sfw/bin/wget
5.安装完整的 wget 软件root:/# pkg-get -i wget注意:将会出现大量文字,不用担心,只要完成安装就可以。
6.移除旧版本的 wgetroot:/# cd /usr/sfw/binroot:/usr/sfw/bin# mv wget wget.origroot:/usr/sfw/bin# exit# bash# export PS1='/u:/w#'root:/#
7.检查wget新的位置是否正确root:/# which wget/opt/csw/bin/wget
8.检查 GNU Autoconf 的版本是否为 2.59 或以上root:/# which autoconf && autoconf --version head -2/opt/csw/bin/autoconfautoconf (GNU Autoconf) 2.59Written by David J. MacKenzie and Akim Demaille.如果不是为 2.59 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i autoconf
9.检查 GNU automake 的版本是否为 1.8.3 或以上root:/# which automake && automake --version head -2/opt/csw/bin/automakeautomake (GNU automake) 1.8.3Written by Tom Tromey <tromey@redhat.com>.如果不是为1.8.3 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i automake
10.检查 GNU sed version 的版本是否为 4.1.4 或以上root:/# which gsed && gsed --version head -2/opt/csw/bin/gsedGNU sed version 4.1.4Copyright (C) 2003 Free Software Foundation, Inc.如果不是为 4.1.4 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i gsed
11.检查 gcc 的版本是否为 3.4.3 或以上root:/# which gcc && gcc --version head -2/usr/sfw/bin/gccgcc (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)Copyright (C) 2004 Free Software Foundation, Inc.如果不是为 3.4.3 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i gcc
12.检查 GNU Make 的版本是否为 3.80 或以上root:/# which gmake && gmake --version head -2/usr/sfw/bin/gmakeGNU Make 3.80Copyright (C) 2002 Free Software Foundation, Inc.如果不是为 3.80 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i gmake
13.检查 flex version 的版本是否为 2.5.4 或以上root:/# which flex && flex --version head -2/usr/sfw/bin/flexflex version 2.5.4如果不是为 2.5.4 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i flex
14.检查 GNU Bison 的版本是否为 1.875 或以上root:/# which bison && bison --version head -2/usr/sfw/bin/bisonbison (GNU Bison) 1.875Written by Robert Corbett and Richard Stallman.如果不是为 1.875 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i bison
15.检查 GNU M4 的版本是否为 1.4.3 或以上root:/# which gm4 && gm4 --version head -2/opt/csw/bin/gm4GNU M4 1.4.3Written by Rene' Seindal.如果不是为 1.4.3 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i gm4
16.检查 Perl 的版本是否为 5.8 或以上root:/# which perl && perl -v head -2/usr/bin/perl This is perl, v5.8.4 built for i86pc-solaris-64int如果不是为 5.8 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i perl
17.检查 GNU zip 的版本是否为 1.3.3 或以上root:/# which gunzip && gunzip -V head -2/usr/bin/gunzipgunzip 1.3.3-patch.1(2002-03-08) 如果不是为 1.3.3 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i gunzip
18.检查 GNU tar 的版本是否为 1.14 或以上root:/# which gtar && gtar --version head -2/usr/sfw/bin/gtartar (GNU tar) 1.14Copyright (C) 2004 Free Software Foundation, Inc.如果不是为 1.14 或以上版本或根本没有这个程序,执行以下指令:root:/# pkg-get -i gtar
19.安装 libxml2 版本 2.6.23在安装 libxml2 之前有一点要特别注意,这程序不可以安装在需要 mount 的 Driver 上。因为,在启动 Solaris 时,当执行自动启动 Apache/php 时需要直接使用 libxml2,但这个时候,mount Driver 是还未启动的。很多时候,都有习惯把 /usr/local 放在 mount driver 上。如果你也有这个习惯,请特别注意,不要把 libxml2 安装在 /usr/local 上。 否则,当 Solaris 从启后, Apache/php 便不能自动启动,只能人手启动了。 在正常情况下,安装 libxml2,安装程序的预设安装路径为 /usr/local, 这个安装路径是可以更改的。以下例子,将会把 libxml2 安装在 /usr/slocal 上。 root:/# cd /usr/local/srcroot:/usr/local/src# wget ftp://xmlsoft.org/libxml2/libxml2-2.6.23.tar.gz...root:/usr/local/src# mkdir /usr/slocalroot:/usr/local/src# cp libxml2-2.6.23.tar.gz /usr/slocal/root:/usr/local/src# cd /usr/slocal root:/usr/slocal# gunzip -cd libxml2-2.6.23.tar.gz gtar xvpf -...root:/usr/slocal# cd libxml2-2.6.23root:/usr/slocal/libxml2-2.6.23# ./configure --prefix=/usr/slocal...root:/usr/slocal/libxml2-2.6.23# gmake ...root:/usr/slocal/libxml2-2.6.23# gmake install
20.如果系统中没有这个档案 /etc/apache2/httpd.conf root:/# cp /etc/apache2/httpd.conf-example /etc/apache2/httpd.conf编辑 /etc/apache2/httpd.conf
§ 设定你所需要的 ServerName 服务器名称,预设为 127.0.0.1 § 在 ServerAdmin 设定正确的 E-mail 地址
21. 下载最新版本的 PHP ( http://www.php.net/downloads.php )root:/# cd /usr/local/srcroot:/usr/local/src# wget http://hk.php.net/get/php-5.1.2.tar.gz/from/this/mirror...root:/usr/local/src# cp php-5.1.2.tar.gz .. root:/usr/local/src# cd .. root:/usr/local# gunzip -cd php-5.1.2.tar.gz gtar xvpf -...root:/usr/local# cd php-5.1.2root:/usr/local/php-5.1.2# ./configure --with-apxs2=/usr/apache2/bin/apxs \--with-mysql=/usr/sfw/ --enable-dbase --with-libxml-dir=/usr/slocal /--with-config-file-path=/etc/apache2 --with-gd-dir=/opt/sfw/bin /--with-jpeg-dir=/usr/lib --with-png-dir=/usr/lib --with-zlib --enable-mbstring ...root:/usr/local/php-5.1.2# gmake...root:/usr/local/php-5.1.2# gmake install
Installing PHP SAPI module: ....................

root:/usr/local/php-5.1.2# cp php.ini-dist /etc/apache2/php.ini root:/usr/local/php-5.1.2#
22. 进入 apache2 设定文件目录root:/usr/local/php-5.1.2# cd /etc/apache2root:/etc/apache2#
23. 如果要设定其它 php 的选项,请编辑 /etc/apache2/php.ini
24. 编辑 httpd.conf 文件安装完 php 后,php 会在 /etc/apache2/httpd.conf 内加入以下句子,请检查清楚,这句子是否存在:LoadModule php5_module libexec/libphp5.so 请在 /etc/apache2/httpd.conf 的最后一行手动加入以下句子: AddType application/x-httpd-php .php
25. 启动 Apache2 和 测试# svcadm enable apache2# svcs grep -i apache2online 18:07:10 svc:/network/http:apache2
26. 然后,试一试从新启动 Solaris ,看一看 Apache2 能不自动启动。如果不能自动启动,而只能手动启动,请看清楚第19项的说明。预设 Apache2 设定文件位置为 /etc/apach2/httpd.conf 。

-----------------------------------------------
总结,其实很多人不用apache而用tomcat来做这个事情,但是很平常的就是其实apache在静态处理页面上来说其实不错。
而同时我们在使用mysql开始的时候也非常的方便,首先只要建立他自己的固有表,然后在建立mysql用户就可以,然后将conf文件拷到启动目录下,最后就是手工启动一次就好了,在做好link就可以了。
但是有一点很奇怪,当我做第一次启动的时候发现其实他没有真正的完全做好,还是有点问题的,比如最常见的就是在/tmp/mysql.sock这个文件不存在,因为这个文件是在my.conf这个文件下指定目录位置的,而且mysql的启动有很大一部分需要他的帮助,如果它没有被创建的话那么整个sql就等于没有起来。
后来的话,我先把已经起来的mysqld全部都kill掉,先停掉然后在起来。 然后在用命令手工启动一次,突然就可以了。。 不知道为什么。

2008年10月20日星期一

Family day

Today is my family day, My dad and Mon came to ShangHai for a short break. I picked them up, totally cost 1 hour take them to the place which I hired a month ago.
We talked, laughed, and walked around, shopping together, I love my parents, but never said that words. Afther dinner, I sent them back to Hangzhou. I found that I hate myself. I never felt that before, Wherever in SiChuan or in Hangzhou. I leave them alone and turn them hair to whrite. I can't say any word , they always worried about me , but I never gave them any happiess. I so worry about how they are and what they will look like. They never told me how they worry about me, just told me everything is ok. I cry .. never do that before.
everything is moving on, I know I should keep moving. Earn a house ,Living with my parents. Just do what I have to do, The salary is not enough, the experience is also not enough.
我还要更努力。。

爸爸妈妈我爱你们

2008年10月12日星期日

Weekend in SH




今天去尝试了介绍的很好的老克勒面馆,小小的店面但是很多的人,后面只得和一个华人拼桌子。点了个在菜单上特别推荐的烟熏鸭脯肉面。 不用等很久就端上来了,从面的纯色和样子来看还是不错的。 价格么是23元。
进店就是找位置,然后给你一张垫子,筷子等等,然后就是点单,不跟一般的快餐店那样先排队点单在找位置。
当然首要任务是喝汤啦,汤确实不错。 不亏是一个老外极力推荐的。料也不错哦,但是相对于来说,南方的人应该吃不惯烟熏肉的味道。 再说面吧,确实比较劲道,但是应该是后面放上去的,所以面相对来说味道不是那么足。 不过店的地理位置很不错,就在人民广场附近的黄河路。 边上还有两家本来想去尝的,那个人啊,简直是。。。 排到别人的点门口了,小杨生煎不用说了,太有名了,但是某位仁兄说不如杭州的咬不得,确实味道差不多。但是他更多汁水,价格稍微便宜点。 还有加佳艺小笼,实在是没机会尝到那个人啊,简直是太多了。
然后就开始徒步走,路途还有点远,见识了下上海的老房子,结果绕啊绕的就绕到了传说中的淮海中路。 那个叫人多啊。。 果然外地人逛南京东路,上海人逛淮海中路。。
买了份地图,到后面实在是找不到北了, 走了回头路,到了襄阳公园。 开头是一段很漂亮的林荫大道。 很宽的路上有两边都是大叔,很舒服。可是SHOPPING这种事不适合我,而且也错个转角去新天地,下个周末有机会要去看看。
然后想去传说中的宜家。。。 结果。。看了地图半天还是放弃靠自己的直觉找。先来到好饰家类似于我们看到的家装市场,东西到不算太吸引人,不过边上的宠物店的松狮还是蛮吸引我的。 真帅。
然后一路向北来到了宜家,终于体会到为什么那么多人要去宜家了,他的家装格调确实不同。而且东西很实用也很漂亮,可以让人了解很多关于自己家以后想什么样子的想法。买了160的东西。。。 额,当然包括一张被子,原来还有那么多讲究的。不过貌似别人都是一对对,就我是单掉,感觉真好,哈哈
今天做了个测试。。浦东张江到浦西松鸿路需要40分钟,外面做公车大概30分钟。 以后路上的时间就是那么多了。 难怪上海人车上的时候不是PSP就是报纸。不要这时间怎么打发啊!
明天开始。
Living in Pudong, Working in PuXi..

2008年10月11日星期六

just want to write something

Only some letters, remark what I did.
Monday will be a new start.
I'm looking forward.

2008年9月24日星期三

Siteminder

一个case,研究protected和unprotected.同级的realm, 做了实验。 在unprotected下如果添加这个realm建立,测试的时候是不保护的,包括你用*扩大搜索也一样。 那如果在protected下有subrealm注明在同为未保护的目录中有特定的url是被保护的,那么这个特定的url是作用的。那么也就是说,其实我们可以自定义,而且是工作无冲突的。

2008年9月21日星期日

上海游

为了逃避很长的队伍,花了大概一个小时去买车票。 然后在徐家汇做了会停留,逛了会交大,很有高中时代想象中的那种大学的样子,红墙黑瓦,很漂亮很舒服。

2008年9月16日星期二

Linux&Solaris

1) 查看开放端口
Linux: netstat -atn
Solaris: netstat -P tcp -f inet -an

2) 查看网卡/网络状态
Linux: ifconfig
Solaris: ifconfig -a 或者 dladm show-dev等
注1:Linux下每个网卡都是以eth0,eth1等来命名的,而Solaris则是以网卡驱动来命名的,如rtls0, iprb0, bge0, bge1,bnx0,e1000g1,nge1,xge0等,可以通过man来查看究竟是什么网卡,比如:
# man iprb
注2:Linux在逐渐淘汰ifconfig命令,取而代之是功能更强调的iproute或者叫iproute2软件包,主要命令有ip和tc。用ifconfig给网卡添加另外一个ip,命令如下:
# ifconfig eth0:0 192.168.3.15/24 broadcast 192.168.3.255
用ip如下:
# ip addr add 192.168.3.15/24 broadcast 192.168.3.255 dev eth0

3) 查看系统安装的所有软件包
Linux: rpm -qa 或者 dpkg-query -l
Solaris: pkginfo

4) 安装软件包
Linux: rpm -ivh stardict.rpm
Solaris: pkgadd -d `pwd` SUNWstardict

5) 卸载软件包
Linux: rpm -e stardict
Solaris: pkgrm SUNWstardict

6) 查看软件包的所有安装文件
Linux: rpm -ql stardict
Solaris: pkgchk -l SUNWstardict | grep Pathname

注:在Solaris上还可以根据某一个文件来判断该文件属于哪一个安装包
# pkgchk -lp /usr/share/stardict/sounds/menushow.wav
Pathname: /usr/share/stardict/sounds/menushow.wav
Type: regular file
Expected mode: 0644
Expected owner: root
Expected group: bin
Expected file size (bytes): 6250
Expected sum(1) of contents: 60494
Expected last modification: Jul 18 11:26:00 2006
Referenced by the following packages:
SUNWstardict
Current status: installed
今天发现rpm也可以实现此功能
# rpm -qf /bin/ls
coreutils-6.4-10

7) 查看进程状态
Linux: top
Solaris: prstat
在Solaris下可以通过pkg-get -i top来下载安装top软件,prstat -L可以进一步显示每个线程的状态

8) 查看系统服务
Linux: chkconfig --list或者chkconfig -L
Solaris: svcs

9) 系统服务管理
Linux: chkconfig samba off或者chkconfig samba on
Solaris: svcadm ensable svc:/network/smtp:sendmail或者svcadm enable svc:/network/smtp:sendmail
Solaris的svcadm可以通过-r参数进一步把相关的服务开启或者禁止掉

10) 查看CPU信息
Linux: more /proc/cpuinfo
Solaris: psrinfo -v或者psrinfo -vp

11) 查看内存大小
Linux: more /proc/meminfo或者top
Solaris: prtconf | grep ^M

12) 监测网络
Linux: tcpdump
Solaris: snoop

13) 显示所有模块信息
Linux: lsmod
Solaris: modinfo
注:Linux也支持modinfo,但是只显示某个模块信息,如
# modinfo fat

14) 插入模块
Linux: insmod/modprobe
Solaris: modload

15) 卸载模块
Linux: rmmod
Solaris: modload
注:Solaris每个模块都有一个整数编号,要卸载需指定编号
# modinfo | grep bge
174 ffffffffeff63000 12150 162 1 bge (BCM579x driver v0.51)
# modunload -i 174

16)查看pci设备
Linux: lspci -vn
Solaris: prtconf -vp

17)给网卡添加额外的IP地址
Linux: ifconfig eth0:1 192.168.3.15
Solaris: ifconfig e1000g addif 192.168.3.15/24 up

2008年9月1日星期一

Tips

/etc/mtod修改登录欢迎界面。
--
Solaris
网卡速度: dmesg |grep link
CPU频率: psrinfo -v 或者mpstat
cpu\内存等:prtdiag -v (大部分信息全部列出) 需要先进入/usr/platform/sun4u/sbin
硬盘: iostat -E

--
1. 获得系统信息:
# uname -X
System = SunOS
Node = Test_SunOS
Release = 5.9
KernelID = Generic_112234-03
Machine = i86pc
BusType =
Serial =
Users =
OEM# = 0
Origin# = 1
NumCPU = 1

2.CPU的信息:
# psrinfo -v 0
Status of processor 0 as of: 09/08/2006 14:42:33
Processor has been on-line since 09/08/2006 14:12:03.
The i386 processor operates at 1733 MHz,
and has an i387 compatible floating point processor.

3.内存的信息
# prtconf |grep Memory
Memory size: 128 Megabytes

问题总结:
1. 交换分区的大小:
swap -s 命令的结果, 每次返回的swap的大小(tatol = used + available),都不一样, 不明白 :-<


2. 硬盘的属性

# iostat -E
sd0 Soft Errors: 0 Hard Errors: 0 Transport Errors: 0
Vendor: NECVMWar Product: VMware IDE CDR10 Revision: 1.00 Serial No: VMware IDE CDR10
Size: 0.00GB <0 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0
Illegal Request: 0 Predictive Failure Analysis: 0

3. 网卡的信息 ,
netstat -np 只能看到可用的网卡信息 包括, 名称, MAC, IP 信息, 没有配置IP的网卡,看不到, 还有别的方法吗?
# kstat -c net|grep name
name: lo0 class: net
name: pcn0 class: net
name: pcn1 class: net
name: zero_copy class: net
--
1.showrev
查看系统Hostid: 24cc7225
Release: 5.9
Kernel architecture: i86pc
Application architecture: i386
Hardware provider: COMPAQ
Domain: sinomos.com
Kernel version: SunOS 5.9 Generic 112234-10 Nov 2003
showrev -p可以查看系统的安装的补丁
2、vmstat监视cpu
iostat监视磁盘
iostat -E现在磁盘信息,包括大小和错误数量,厂家等等
3、prtconf显示系统信息
4、prtdiag显示系统cpu,内存,以及OBP
5、netstat -r路由信息
netstat -i接口信息
6、查看网卡状态
ndd -get /dev/eri link_status or link_speed
7、prtvtoc /dev/rdsk/c0t0d0s2
查看分区信息
8、dos2unix | -ascii ;
转换dos文件的格式为unix格式
9、prtconf | grep "Memory size"
显示内存大小
10、prstat -a类似top的命令

----------------------------
英语中只有两个时态,现在时和过去时。
he is working.
he was working.
he have been working.
he had been working.
在这三句中只有2个时态 is和have是表现在时,was和had是表过去时。
所以当我们在写英语文章的时候可以这么些,当然在表示将来时的时候可以加will来表述。或者转换成为现在时 he plan leaves at 9:00

2008年8月29日星期五

Solaris 安装 oracle 10g in VirtualBox

1. Solaris上无论cde还是jds来说都是可以装的,少了个参数设置,DISPLAY这个。
解决方法:安装时不要在oracle用户的.profile里面加入DISPLAY的环境变量
现在root用户目录下执行#xhost +
然后#su - oracle
$DISPLAY=:0.0;export DISPLAY
$cd /Disk1
$./runInstaller
2.VirtualBox在跑Solaris的时候有点奇怪,他的JDS界面会起不来。重装了几次还不成功,用CDE界面就可以,但似乎没装上ORACLE
3. 按照提示如下例做
安装准备:

首先以root用户登录

打开一个终端:

1.编辑几个跟内存分配有关的系统参数参数

vi /etc/system
set shmsys:shminfo_shmmax=4294967295 (给oracle最大内存设为2G)
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set semsys:seminfo_semmni=110
set semsys:seminfo_semmns=310

//附注说明:
----------------------------------------------
ORACLE安装时缺省的设置: 建议修改的设置:
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=15
set semsys:seminfo_semmns=200
set semsys:seminfo_semmni=70
set ulimit=3000000
set semsys:seminfo_semmni=315
set semsys:seminfo_semmsl=300
set semsys:seminfo_semmns=630
set semsys:seminfo_semopm=315
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmni=315
set shmsys:shminfo_shmseg=10
set shmsys:shminfo_shmmin=1

其中这些参数的含义

shmmax - 共享内存段的最大字节数,建议设大点,甚至可以大过物理内存的字节数
shmmin - 共享内存段的最小尺寸.
shmmni - 共享内存段的最大数目.
shmseg - 每个进程可分配的最大共享内存段数目.
shmall - 最大的并发共享内存段数目,比SGA还要大.
semmns - 信号灯的最大数量,跟ORACLE的PROCESS数有关.
semmsl - 每个信号灯集合中最多的信号灯数目.
-------------------------------------------------------
2. 创建用户和组
# groupadd dba
# groupadd oinstall
#useradd –g dba -G oinstall –d /export/home/oracle –m oracle
#passwd oracle (改oracle用户密码)

3.创建必要的目录然后给Oracle用户授权!
我习惯实在安装系统的时候单独划分盘区 3 -- /Oracle 作为ORACLE_BASE
机构必要的目录需要给oracle用户和dba,oinstall组授予访问权限,我这里是直接
# chmod -R 777 /oracle

4.设定oracle用户的环境参数
//其他人到这步是su到oracle用户, 用vi编辑oracle 用户主目录下的 .profile
我不太喜欢vi ,习惯用gedit ,但是在oracle用户下 gedit 不能打开 .profile
所以现在root下编辑完!
# gedit /export/home0/oracle/.profile

我的oracle用户 .profile 内容如下:

##############################################################
ORACLE_BASE=/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.0.2
ORACLE_SID=ora10g
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
PATH=$ORACLE_HOME/bin:/bin:/sbin:/usr/ccs/bin:/usr/local/bin
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/local/lib:/usr/lib

TMPDIR=/var/tmp
export ORALCE_BASE ORACLE_HOME ORACLE_SID NLS_LANG PATH LD_LIBRARY_PATH


umask 022
##############################################################

5.准备安装介质

从oracle网站下载得到以下文件:solarisx86_DB_10_1_0_3_Disk1.cpio
先用ftp 以oracle用户登录到我的Solaris 机器上
复制此文件到oracle 主目录下

$ gunzip -d solarisx86_DB_10_1_0_3_Disk1.cpio.gz
$ cpio -ivmd < solarisx86_DB_10_1_0_3_Disk1.cpio
Disk1/stage/Components/oracle.assistants.acf/10.1.0.3.0/1/DataFiles/lib.jar
Disk1/stage/Components/oracle.assistants.acf/10.1.0.3.0/1/DataFiles/class.jar
Disk1/stage/Components/oracle.assistants.acf/10.1.0.3.0/1/DataFiles
Disk1/stage/Components/oracle.assistants.acf/10.1.0.3.0/1
Disk1/stage/Components/oracle.assistants.acf/10.1.0.3.0
Disk1/stage/Components/oracle.assistants.acf
......
Disk1/install/oneclick.properties.ORIG
Disk1/install
Disk1/response/custom.rsp
Disk1/response/dbca.rsp
Disk1/response/emca.rsp
Disk1/response/enterprise.rsp
Disk1/response/netca.rsp
Disk1/response/standard.rsp
Disk1/response
Disk1/runInstaller
Disk1/welcome.htm
Disk1
1310640 块

$ cd Disk1
$ ls
doc response stage
install runInstaller welcome.htm

6.修改两个安装配置文件,增加版本5.10,以便顺利通过系统版本检查

$ gedit oraparam.ini
#You can customise error message shown for failure through CERTIFIED_VERSION_FAI
LURE_MESSAGE
Solaris=5.6,5.7,5.8,5.9,5.10 (就是添加5.10)

$ gedit oraparam.var

#You can customise error message shown for failure through CERTIFIED_VERSION_FAI
LURE_MESSAGE
Solaris=5.8,5.9,5.10 (就是添加5.10)

OK下面就可以开始安装oracle database 了!

5.VirtualBox有很多不一样的特性,待观察

6.Ultra Search URL:
http://ora10.tst:1158/ultrasearch

Ultra Search 管理工具-A URL:
http://ora10.tst:1158/ultrasearch/admin

iSQL*Plus URL:
http://ora10.tst:1158/isqlplus

iSQL*Plus DBA URL:
http://ora10.tst:1158/isqlplus/dba

Enteprise Manager 10g Database Control URL:
http://ora10.tst:1158/em

sys oracle

2008年8月27日星期三

Solaris in VirtualBox

Restore the Solaris in VirtualBox, Open the ssh. install vb guest additional but seems not work, its still can't use the command
mount -F vboxsf share /mnt/share or mount.vboxsf

In the final way, I just add the usb driver and put the file in the flash, and upload them to solaris via that way. I think it will be very useful.

2008年8月25日星期一

VirtualBox SSH

今天想试下virtualbox下怎么进行ssh,因为virtual box的网络桥接方式比较不一样,他的nat和vm的差很多,vm的只要稍微配置下,你的ip定义的也会很有规律,而同时bridge又很方便,类似于开了一个新的网卡,能够dhcp很方便,所以大家都用。但由于HP现在不是很让用这个,而vb现在是sun力推的。所以可以试下,看了下vb的manaul, 也没多大看懂,google一下,然后一结合应该OK。

总结:
1. 给自己的gust machine取一个简单的名字,减少space,用几个字符搞定
2.建立一个bat文件,内容为:

VBoxManage setextradata RH5
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata RH5
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata RH5
"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP

这里的RH5是我自定义的端口,而这里的ssh是我开放的服务名称,都是可选变量。我们可以改换成solaris或者ubuntu,然后把开放的服务改成mysql,oracle,ftp等等。
3. 重启客户机,然后打开putty
4. 输入127.0.0.1端口是2222, 然后就能login

2008年7月29日星期二

solaris笔记

不知道为什么,static不行一定要dhcp。
/etc/resolv.conf
/etc/defaultrouter
/etc/hosts
/etc/inet/ipnodes
/etc/inet/netmasks
/etc/nsswitch.conf
/etc/hostname.xxx

试过很多次都不知道为什么不行。

2008年7月14日星期一

New Key Word

WFH-Work From Home


-----
I'd like to use the page mark what I have learned the new key words.

2008年7月12日星期六

To my dear Friend

Hi Wen,
It's such a long time I have not saw.It's last over tow years. U will get married.
这两年里我人生阶段的三个好的女性朋友都一个个结婚了,小学,中学,大学。很衷心的祝福妳,同时也有了一个好归宿。一直蛮想写封信给你,但是没有办法。上次聊了以后结果就是汶川大地震,这是谁也想不到的,也许因为地震所以你才会下定决心结婚,这个时候最能体会出一个人的真心。现在事情过了很久了。。虽然到现在才写这封信,因为这些或那些的事情牵绊着。
在你结婚的时候我会过来,给你一个大大的拥抱。因为我们是朋友。

Best regards

Tu Lei
---------------------
ShangHai,China

2008年7月9日星期三

记忆

今天得到一个消息,Ericsson和HP又签了份合约,从中剔除了很多原来在做的项目,特别是我边上的一个,很突然,就这么这个项目组就解散了,没有征兆,一张纸就解散了,里面的regular和contractor不知道怎么安排,也许regular更好些,contractor不知道会怎么样。。。唉,果然啊要会技术啊,没技术那里都去不了,也会被人像皮球一样踢来踢去。还是要技术啊。。
还有个消息就是我的积蓄正式没有,还欠老爸老妈钱,我要五十块过6天,在上海,我一定要做到。。我准备着、、为之活着,还好不用担心下两个月的房租。
开始跑步了。。。就那么走吧。我还是我,毫无牵绊的活着,当然家里很重要

2008年7月5日星期六

原来如此

原来不是我弄不清楚,而是有人弄不清楚。我很清楚我要什么,希望什么。再也不会foolish

2008年6月29日星期日

today's visit

今天想去逛去书城看看,就想出去散散心,然后出门,搭车,搭地铁,到了南京东路,下了车,去福州路,其实书城不远,走了点路就到,有点类似于文化商城的那条街,一路卖文具的点,其实可以在路上看到东方明珠,离得很近很近。走到福州路和福建中路交叉就是上海书城了,巨型新华书店。几倍的杭州文二路书店,很多人,书的品种很丰富,但是技术书确实还不算很全,也许有更好的。路上路过了上海外文书店,觉得很符合外文书店的名字,应该有的外文书,很好的摆设,很舒服的格局,一楼和四楼的全外语书,很棒,而且里面店员的素质很高。


然后稍微逛了逛,下不了手买书啊。。好贵。。其实还是很想看电影的,接着就去世纪看电影,结果发觉时间不是很好而且是中文版的,我想练听力。结果就灰溜溜的回家了。。然后开始下自己今天在书店发觉的好书,呵呵,真邪恶,因为太贵了。。

放上自己的步行图,其实不是很远

2008年6月27日星期五

大雨

今天大雨,这两天天天和同事在外面吃,然后我付打的费,因为他们能报销。他们的福利真好啊。然后再公司等雨停,7点了,和小贾同学聊了回天,结果还是成了个落汤鸡,可怜我的鞋啊。。。被暴雨淋湿了,郁闷,等着吧。。。唉,明天见同学,后天去看电影,OYEAH。
Butterfly on the wheel. 呵呵,又有T说电影咯。看了三天终于搞明白siteminder了。。靠

2008年6月24日星期二

Give Up

2年了。。。已经2年了。。还是进不了,我只是个外人而已,single,whatever I do,I'm just a friend and now forever.OK,I give up.

2008年6月22日星期日

T说电影《功夫熊猫》

Hi,I'm back.一个礼拜没有更新blog了,因为在忙,同时也懒。在看资料,感觉很多东西需要学习学习。然后慢慢地做啊做,还有一个ActivCard还没到,什么也做不了啊。还在等待。。。。
不过慢慢的来吧。。。
还是说重点吧,今天去上海的电影院看了电影。。在中山广场附近的世纪大上海电影院。上海人的素质还是高的,基本没有原版的电影,只有英文中子的,片子还是很不错,不过原来看过可惜是枪版而且声音和画面不是很清晰,还是喜欢去电影院的味道。整体的画面很流畅,同时声音也更清楚,感觉挺有美国味道的。挺逗的,不过没有被阉割过,还是很好的。不知道为什么有傻冒会抵制他,人都是有天赋的只是还没被发掘。
我等着剩下的几本片子。。打法时间专用,呵呵

2008年6月15日星期日

1st Weekend in SH

早想好了,昨天应该去逛的,可是实在是被下雨闹得,天气是好是坏就没有出门,只是傻傻的呆在租的地方(不习惯把这地方称为家)。。。

今天睡到9点,然后还是想出去逛逛,实在闲的无聊,就当也给父母长辈来熟悉熟悉路。。然后出门,带把伞,带上自己的脚丫子,坐上车,转到地铁二号线。。到陆家嘴。。


白天的活动基本以陆家嘴为中心,两边发散行走,有特别高的路,比如金茂大厦也在那边,今天雨天雾气很重,所以高楼间感觉烟雨缭绕的,偶尔还有雾气上升,感觉非常的好看。。许多高楼,数不清的世界500强在其中,公司的办公啊什么的还是比较有格调的,然后最大的感觉就是中国的各大政府银行和各大非政府银行的办公大楼林立在其中,果然还是金融业最有钱啊,都是人民的钱啊,近距离的观看了东方明珠和上海海洋馆。。真搞不明白这地方怎么有那么多人要上去的,100多的票啊,真有钱~~~~在边上看了眼上海国际展览中心,那个曾经有一个叫做创业赢家的节目在那里办过,然后再一个比较有代表的建筑海鸥号边上看到了一对新婚夫妇的婚礼,很简单,只要请了大部分的亲人,不过二十来人,简单,但温馨。。。然后今天的重头就是看黄浦江的对岸,虽然不是很清楚,有点雾气,但是还是很漂亮,那么欧式,看着老上海。。想象很多电视剧出现的场面。。很多很多的高楼大厦在新建立,实在是开发中的圣地啊。本来打算回去的,但是想想既然出来了那就继续玩一下么。。。然后想办法到对岸。。等公交。。等不到。。。只能。。。只能地铁。。。然后到了静安寺。。。
然后下午花了4个钟头走了以上的路线,全靠脚。。中饭KFC解决的,回来写BLOG的时候发觉自己今天竟然走了那么多的路,来的路上很远啊,路上走过了和老爸走过的路,好怀念啊,和吹牛老爸走。。那时候他装的很知道的样子,结果回来跟我发牢骚说脚泡的走起的。。今天重走一段路,发觉其实我们那时候完全走错了,哈哈。。。看了静安寺的外观,但是不想进去看,要钱的,这点还是杭州好,不收费的。。然后一路走啊一路走,。。。一心想到人民广场,然后看看两边,出来消费的人还真多,到了以后看到家nike的工厂店,不过还是TAOBAO的看起来比较新一点。。。接着想去看外滩,看看对过的上海浦东。。然后一路走。。结果走到了浙江北路,果然是老上海,都走到闸北快了,果然很旧很旧的房子,大概都在等拆迁吧,然后发觉走错了,绕回来,走北京东路,一路向东。。。路上很多的电器店,铝制品店走啊走,发觉终于到了
很多的老式洋房,很漂亮,很有时代的气息,老上海的感觉,摸着那些石头,感觉这那些记忆仿佛在我的手中溜走,只是那些老房子好像没有很好的维护,很破很旧,老房子有他的味道,荒废着可惜,不知道上海政府怎么想的,终于到了外滩,没有急着去看黄浦江,而是看了那些老房子。。果然又是各大银行。。。真有钱啊。。。靠着江的各个都是银行。。。大大小小的银行,真有气派因为恰逢什么路在修,结果就不想走过去了,转到到了外滩,很多人,很多的小贩,然后就是江景,在这边看着对过的现代的上海,不一样的气息啊。。
然后逛南京西路,想了想约了某人吃饭,呵呵,做了车,然后感觉很累,吃着日本菜,聊着天,感觉很好,多希望那一刻能停止啊,送人回家,然后自己回家。1个小时,到的时候还提前了准备去超市买下东西。。结果。。。。关门了!唉。。明天下班的时候买吧

2008年6月8日星期日

Working in HP

在CCAV辞职了,换了个工作,到了上海和大展签了约,到HP作外签,现在还不知道做什么,很想知道以后的工作安排.
一个人开始生活了,有点累,但是还不知道充实不充实,还需要更努力.

2008年5月14日星期三

仅已此文纪念我的学校



2008年注定是不平凡的一年,很多很多的事情发生,关于前端时间发生的我也不说什么了,大家的整体意识形态不同造成的,而现在比较关键的发生的512地震,一个我曾经生活过四年的地方,而这个地方离这次震中直线距离只有100KM。杭州也是这次地震的波及范围,只感到了轻微晃动。意识到后我就打电话给我在四川的同学们,不,应该用兄弟姐妹们比较合理,一直打不通。。关键时候移动也不怎么样么 ! 群上炸开了锅,都是担心我们那些在四川的朋友们的,一个我寝室里的兄弟在德阳,虽然电话打不通,但是人还是没什么事情,然后就是德阳全城大停电 。。直到昨天晚上我才打通电话,好像那些兄弟姐妹们都没什么事情,在学校的一些关系好的同学我一点都打不通,还是关机状态,想必是没电了吧,网上看了下几个在学校比较有影响的论坛,上面有消息的也不多,只是有个帖子贴出了震后的学校。。触目惊心。。
让我们一起来祈祷,尽自己的努力去帮助四川的遇难的民众,其他不能相信,但是在这种灾难面前,我们的ZF绝对是有能力解决这方面的事情的。。。
如果我在现场的话,我会和我的兄弟们一起来帮助学生们的,同患难。
昨天24点的时候据说还余震不断
--------------------------------



地震导致绵阳市区部分地区停电停水,西南科技大学学生都{敏感字屏蔽}在学校操场,学校建筑除5食堂外均受到不同程度的损坏。 电今晨来了,但是学校里几乎所有建筑全部被封,寝室进不去,全部人都还滞留在外面空旷处,如柳池,龙山体育场,九州湖边,五食堂外草坪,新区体育场等,随处可见学生搭建的临时栖身处,学校没有统一组织,但各学院班级都积极团结起来,搭建自己的大本营. 搭建的临时栖身处比较简陋,由竹子或其他东西支撑,可以挡雨,睡的是学生自己从寝室抱出来的床垫和被子(公寓楼偶尔允许学生快速从寝室抱东西出来).下了一夜一天的雨,没有丝毫停止的势头,没有其他地方可去,也没有其他事可做,就只有呆在临时帐篷里睡觉休息或者打扑克消遣之类.学校提供了免费饭票,一天三餐,但是很简单,午餐一碗饭加点素菜(拌萝卜丁之类),晚餐一个馒头一碗稀饭,还要冒雨排很长很长的队… 损失和人员伤亡方面:概括而言,新区比老区严重,教学楼比寝室楼严重.老区清华楼,一食堂一带虽然历史最久,确没什么大的破坏.据了解,受损最严重的是西七一三区和逸夫图书馆,就我看到的,其他如西一教学楼,东八教学楼,行政楼,二食堂,五食堂等也有不同程度的损坏.学生绝大多数是平安的,也有学生在逃出的过程中受伤,个别伤势较严重,有人被掉下的天花板等杂物砸中,甚至有人跳楼.至于死亡,听说新区有人不幸罹难,人数大约两人左右,但只是听说,真实情况不得而知.请各位不必过分担心,我们都很平安. 地震后信号曾一度中断,直到昨晚也极难拨通电话(我打了一下午打出去两个,短信一条没发出)现在情况稍微好点了,但是学校里人与人之间还是很难联系,找人只能是大海捞针.大家了解外界新闻的主要途径是手机上网和广播,随处可以听见广播里滚动播出的受灾新闻.有部分学生回家或准备回家.刚刚看到有人检查寝室楼安全状况,也许明天就能回寝室睡个安稳觉了,我们都盼望着这一刻能早点到来…… 昨天晚上是最难受的,准备工作没有做好,后半夜又开始下大雨,很多人没带伞,也没带被子,冷得哆嗦,又困得要死,而且要想办法避雨,就只有躲在建筑物下,想睡却没被子没床垫,也不敢睡,一个余震一来所有人都得在迷糊中拼命往雨中跑…就这样熬到天亮,整个人都快垮了… 学生被安排到操场,由于停水停电导致学校只好砍掉旧的桌椅来给学生们做饭,刚刚电话连线到手机还有电的学生称,他们刚刚吃到了一些米饭和莴笋,学生目前都安好。 小的余震一直都有,但大家已不再害怕,目前最恶劣的因素是雨,还有空虚,不知道什么时候能正常上课,能再回到温馨的寝室和宽敞的教室.有了这一次的难忘经历,相信我们都已懂得了学习机会的珍贵…… 16点更新:有网友称道和导师通了电话,他一夜没合眼,一直在安排学生,学校提供免费的食品!学校有人受伤,图书馆基本废弃,大家分散休息,新区主要集中在新修的足球场,老区在龙山体育场和后山那里。绵江高速两侧的房屋基本倒掉!相信我们的母校可以度过这个难关 16点30分更新:刚才又和学校朋友连线了,学生图书馆中间的顶棚踏下来了,新区东7倒了一片墙,东8破了一个大洞(我的宿舍就就在一楼)。 学生早餐可以免费领两个鸡蛋。面条就是白水挂面(有人说是米线)加一钥酱油。 很多男生冒死从到宿舍拿生活用品,用来度过晚上.(向你们致敬) 只要不是一个班的即便认识也很难联系,同学们就一直没和几个同学联系上…… 大量北川幸存者已经被运至九洲体育中心… 晚上从163得知死亡达到12000人,绵阳7000多人被埋,汶川5,6万人失去联系.现在知道了学习机会的不容易和联系的重要性.平安后,大家好好学习啊,珍惜生命.22点知道消息:一个好消息和一个坏消息:好消息是学校里有很多地方在为大家提供免费充电服务,坏消息是雨又下大了……
西苑(1)(2)开始进学生了 只能上1-2楼.寝室里一片狼藉,书架上的东西掉了一地,还有人显示器摔地上了
北苑不能进,因为房子比西苑高.危险程度高.外面房子严重程度不是很厉害.
-------------
一些帖子
http://bbs.my9x.cn/dispbbs_5_118792_1.html 学生情况贴
http://bbs.my9x.cn/dispbbs_5_118793_1.html 绵阳状况贴


2008年5月8日星期四

DG主备库切换

连不上主库,查看bdump下的日志,发觉链接不上。而备库的bdump下同样显示的disconnect,无奈重启主库,发觉仍旧不能连上,查看dmesg网卡坏了。。。。不过刚好,给我个主备库切换的机会。
因为主库的网卡以坏,同时也没有其他的生产用机连接,因为是测试机^ ^所以开始切换。根据piner在书中提到的switchover脚本,开始进行切换。基于以上原因我就没有修改备库IP。

$ more switchprimary.sh
#!/bin/sh ORACLE_BASE=/SERVER/ora9;export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/9.2;export ORACLE_HOME
PATH=$ORACLE_HOME/bin:$PATH;export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib; LD_LIBRARY_PATH
ORACLE_SID=ora9i; export ORACLE_SID
ORACLE_NLS=$ORACLE_HOME/ocommon/nls/admin/data; export ORACLE_NLS
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG NLS_DATE_FORMAT='yyyy-mm-dd
hh24:mi:ss';export NLS_DATE_FORMAT

$ORACLE_HOME/bin/sqlplus /nolog <

startup pfile=?/dbs/initora9i.ora_pri
exit
EOF
lsnrctl stop
listenerdb lsnrctl start

但是服务器由此出来的提示是ora-01153错误,然后我做了下查看
[oracle@ora9-2 oracle]$ oerr ora 01153
01153, 00000, "an incompatible media recovery is active"
// *Cause: Attempted to start an incompatible media recovery or open
resetlogs
// during media recovery or
RMAN backup . Media recovery sessions
// are incompatible if they
attempt to recover the same data file.
// Incomplete media
recovery or open resetlogs is incompatible with
// any media recovery.
Backup or restore by RMAN is incompatible
// with open
resetlogs
// *Action: Complete or cancel the other media recovery session or RMAN
backup

所以根据提示我有做了以下动作
[oracle@ora9-2 oracle]$recover managed standby database cancel;
[oracle@ora9-2 oracle]$ shutdown immediate;

但是似乎很不性,我shutdown了以后起来的时候用pfile启动到nomount但是alterdatabase到mount下是提示的这是备库的controlfile。如下错误:
ORA-01666: controlfile is for a standby database
之后又做了一次后提示ORA-01012: not logged on 。。 然后就开始飚血~~~~~~~~~~~
麻烦了,之后重启了机器,重启后就OK了,但是还是提示好了还是如此。我继续shutdown然后重新启动到原来的备库状态。。
startup nomount pfile = initora9i.ora_std
alter database mount standby database

这样就启动到了备库的状态了。那么余下的就是如何切换了,没有用piner提供的脚本而是google了下,这次我做
alter database commit to switchover to primary;

的时候提示
[oracle@ora9-2 oracle]$ oerr ora 16139
16139, 00000, "media recovery required"
// *Cause: The database has not been recovered through the end of log
stream.
// Graceful
switchover is not possible.
// *Action: Ensure that the entire log stream has been applied. If
appropriate,
// reissue the
graceful switchover command.

所以根据GOOGLE的经验,需进行以下操作
结束备库的管理恢复
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
如果报错,则执行
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH SKIP STANDBY
LOGFILE;
切换备库到主库
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
SQL> shutdown immediate
SQL> startup mount
SQL> startup

至此切换成功
SQL> select database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY

很好,很强大
还需要增加三个REDO,和一个临时表空间

2008年4月28日星期一

ORACLE-DG实例

今天起ORACLE不能起,当我做到
SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
的时候不能启动,然后再做
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-03114: not connected to ORACLE
就提示以上任务。
原因后来查明,而且我现在的DG是最大保护模式。因为周五的时候我主库的机器挂了然后重新冷启动的时候按错了机器,先将备库重启了。在主库与备库的交换中出现问题。
解决方法,首先我先期备库将备库的监听器启动,启动备库数据库监听,然后将备库启动到MOUNT。
之后启动主库,然后一步步照做就可以了

春の花嫁

老妹结婚,感想预留

2008年4月25日星期五

T说电影《黄石的孩子》

开始有这个习惯了,周三有聊无聊都会去电影院看本片子,这次看的是《黄石的孩子》。贴合现在的实际发觉这本片子还是满爱国主义的,还是有点迎合PARTY的需要,揭露了丑陋的日帝国主义和腐败的国民党。大概讲述的就是某个英国战地记者为了展现南京屠杀后的真实场面,伪装成红十字会的人进入南京,目睹了大屠杀的真实尽力,然后被日发现,媒体的力量很强大,原来那时候日媒体对外宣称的是日来华进行辅助管理的,看来谁蛊惑谁本事。这时候我们敬爱的周润发出现了,带了武装小分队救了人。在Dr.LEE的指点下送到了黄石,在黄石的孤儿院里由此开始了整个故事主线,如何生活,如何教人等等等等。而主角HOOK也因此开始对这里的孩子和对战争有了新的认识。直到国民党开始溃退,准备占用他们的学校,HOOK转移他们到兰州。直到HOOK死于非命。
整体评价这本片子,是一本很好的爱国主义,他能让你热血沸腾的同时也不让你忘记这段国耻家恨,在加上电影院本该由的音效,你会感觉到轰炸机在你头顶那种撕心裂肺的恐惧,战争带了的是什么。在剪辑中,开头剪的不是很完美,有些交代都不明不白的,跳跃性思维也太强烈了。周润发在里面塑造的不算是我们映像中PARTY,而是一个对日军憎恨,有很强说服力的人。一个亲眼目睹自己父母死亡,姐妹被日军OOXX的小孩在他的几个动作之下就能激起他的愤怒,而直接杀了日本人。HOOK的魅力也很大,不过归根究底还是要以诚待人。HOOK带领了那么多小孩从黄石到兰州,走了3个月~~~~~~驴行啊,其中还是很多精彩说不上来,杨紫琼和女主角并不很出彩。还是本以男人为主线的电影,战争带给我们的思考太多,相比现在的盲目爱国,我们是不是应该作些更好的事情呢。
以诚待人,更有礼貌的看待世间的事情。对人不卑不亢,做更多能够让自己国家强大的事情。

2008年4月17日星期四

Shell实际运用和Oracle DataGuard一天小结

在实际生产应用中,其实我可以这么些,首先判断这个人是不是ROOT
那么就需要在脚本中写上这么个判断语句:
#!/bin/sh

#ifroot
if [ "$LOGNAME" != "root" ]
then
echo "You
need to be
root to run this script" >&2
exit 1
else
echo "Yes
indeed
you are $LOGNAME proceed"
fi



return是函数返回,exit是结束进程.
exit(0); /*这个是正常的关闭所有程序 */
exit(1); /*这个就刚好相反,有错误的关闭 */

/dev/null #表示的是类似于windows的回收站,无限大 2>&1#表示将这些在后台处理

同样的语句在solaris下和RH下有点不同,当我使用exit语句时rh下会执行,而solaris直接就是跳出。也是是因为SHELL不同的缘故。

在for in中加” ”就是字符串,数字不加就是数字显示的是竖直排列,家了引号后就是横向排列了。
在使用的时候Sorlaris不支持$()这样的在shell中嵌套的写法,反而是支持``反引号的写法,RH测试两者都支持。

可以用ls wc –l显示文件夹的文件数,用shell的话是做个count
#!/bin/sh
#forcount
counter=0
for files in *
do
counter=`expr $counter + 1`
done
echo "count the `pwd` total files
is $counter"


要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld
根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。
在非NT版本的Windows中,在后台启动mysqld。也就是,服务器启动后,你应当可以看见后面的命令提示。如果你用该方法在Windows NT、2000、XP或2003中启动服务器,服务器则在前台运行,在服务器退出前,不会出现命令提示。因此,当服务器运行时,应当打开另一个控制台窗口来运行客户端程序。
下述命令可以停止MySQL服务器:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown
该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQL root用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。
如果mysqld不能启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于C:\Program Files\MySQL\MySQL Server 5.1\data目录中。是带后缀.err的文件。还可以尝试将服务器启动为mysqld --console;此时,可以从窗口中获得一些有用的信息,可以帮助解决问题。
最后选项是用--standalone --debug启动mysqld。此时,mysqld 写入日志文件C:\mysqld.trace,应当包含mysqld不启动的原因。
使用mysqld --verbose --help显示mysqld的所有选项。



使用脚本中的函数参数作为shell命令,一开始不是很明白现在有点明白了,在刚刚开始的使用你如同平时写脚本一般将函数写进去,例如
findit(){
if [ $# -lt 1 ]
then
echo "usage :findit file"
return
1
fi
find / -name $1
}


然后写完chmod后,在执行下. ./XXX,当你在命令行下用set命令后你会发现他已经被加载到你的用户下,当然了在你退出这个session后,会自动消失的。那么这个使用你在使用这个函数类似于findit他就不会报错,而且也不需要向刚刚执行脚本一样,而他直接已经加载到你的bin下,所以当我使用findit main的时候他会全盘搜索,但是用于我是用其他用户的所以不能找到,因为权限不够。
当使用了unset命令后则可以将已经加载的这个函数去除。Set后他已经不再了

参数输入没怎么细看,有些用的找有些用不着 -、-

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root 也就是说可以基于SSH进行文件的传输
ssh 下如果我登陆别的服务器或者说是被改变了端口的服务器那么我需要用到的是
ssh –p 10088 192.168.18.91 假如我91的SSH端口是10088

Oracle DATAGUARD
-------------------------------------------------------------------------
我在备份服务器上MOUNT的时候只用了一个CONTROLFILE所以我alter system mount database;的时候怎么也MOUNT不起来。


我在做采用ARCH归档日志的最大性能
SQL>alter system set log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
scope=both;
SQL> alter system set log_archive_dest_state_2=enable
scope=both;
SQL>alter system archive log current;

在做第一句的时候提示不能写pfile,然后用show parameter spfile以后发觉我果然是用pfile启动的,那么之后我就直接修改目前pfile的语句,而
SQL>alter system set log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
scope=both

也改成

SQL>alter system set log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
scope=memory;
在vi中编辑
*.log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
*.log_archive_dest_state_2=enable scope=both



关于如何检查和校验是否备用服务器设置成功
[3] STANDBY_ARCHIVE_DEST
*.standby_archive_dest='/oracle/oracle9i/oradata/archive' 这段在备库的文件中添加表示的是你将传过来的log存放的位置,那么还可以在你ORACLE安装的admin/cdump下找到,alert_log..这个文件中找到,当你在主库做一次log切换的时候例如说你alter system switch logfile;之后那么就会从主库传log到备库上去,而且同时在上面提到的两个log文件中出现。
以上是我白天做了一天的DG的一些错误解析,那么我晚上小小的来解析下。
这个做完大概是MAXIMIZE PERFORMANCE。由于是练手,那么其实在练习过程前,领导已经练习过了做好了大概的pfile,所以在使用之前我并没有自己建立属于自己的PFILE,在我做
SQL>SHOW PARAMETER SPFILE
则显示的空字段,那么我是以PFILE启动的,将文档设为强制
SQL>ALTER DATABASE FORCE LOGGING;
两台机子的环境要设成一样。然后将进行以下步骤
$cd $ORACLE_BASE
$mkdir -p oradata/tbdb/archiv
$mkdir -p
admin/tbdb/bdump
$mkdir -p admin/tbdb/cdump
$mkdir -p admin/tbdb/udump
我因为篇幅的关系我下面就不写了,但是我现在环境下$diff initora9i.ora_pri initora9i_std比较了一下其中
#if change controlfile then edit this
*.control_files='/u01/oracle/oradata/tbdb/control01.ctl',
'/u01/oracle/oradata/tbdb/control02.ctl',
'/u01/oracle/oradata/tbdb/control03.ctl'
#standby database parameter
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
*.standby_archive_dest='/u01/oracle/oradata/tbdb/archive'
*.fal_server='DBPRIMARY'
*.fal_client='DBSTANDBY'
大概的差距如何具体解释下,在写的过程中,如果你把controlfile改写了后需要把位置改下,同时把备课的时间改写,特别要注意的是fal_server和fal_client的改写,在fal_client这里很重要的就是你以后再实行找到备库的名字。
在主库rman下backup database和logfile,在备库中Oracle

$rm $ORACLE_HOME/dbs/orapw$ORACLE_SID
$orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=test entries=4
我在做的时候按照教程设了两个listener一个1521一个1522端口。在备库上较复杂在主库上则比较简单。
下一步就需要在主库上生成控制文件SQL> alter database create standby controlfile as '路径和控制文件名'在做一次$ scp,例如今天的环境下$scp 路径和名称 192.168.18.92:'路径和名称'。
在备库中启动
SQL> connect / as sysdba Connected to an idle instance.
SQL>startup nomount pfile=路径
SQL>alter database mount standby database;

之后rman了以后进行restore database和restore archivedlog all.
在arch模式下用
SQL>alter system set log_archive_dest_2='SERVICE=dbstandby REOPEN=300'
scope=both;
SQL>alter system set log_archive_dest_state_2=enable scope=both;
SQL>alter system archive log current;
如何验证呢
SQL>SELECT SEQUENCE#,FIRST_TIME,NEXT_TIME FROM V$ARCHIVED_LOG;
这样可以看

当我在tail -10 $ORACLE_BASE/ora9/admin/dbump/alter_.....log这个的时候可以看出他现在正在等哪个,第一次我没有做成功的原因是我不知道如何将日志穿到备库上。而这时候需要老师点播了,在主库上做一次SQL>alter system switch logfile;这时候tail的时候你可以看到已经传到备库了。今天就到这里了。明天最剩下的工作。

2008年4月16日星期三

Shell总结

Shell的PDF基本上已经看完了,现在剩下的工作就是消化和吸收,其中还是有很多东西不明白,当然的在后期的摸索中度过,当然了现在小部分的SHELL语句已经基本上能读懂,但是大量的还是需要自己去看去体会。
http://publish.itpub.net/zt/oracle11g/index.html11G

2008年4月15日星期二

Shell记录20080415

在实际生产应用中,其实我可以这么些,首先判断这个人是不是ROOT
那么就需要在脚本中写上这么个判断语句:
#!/bin/sh
#ifroot
if [ "$LOGNAME" != "root" ]
then
echo "You need to be root to run this script" >&2
exit 1
else
echo "Yes indeed you are $LOGNAME proceed"
fi


return是函数返回,exit是结束进程.
exit(0); /*这个是正常的关闭所有程序 */
exit(1); /*这个就刚好相反,有错误的关闭 */

/dev/null #表示的是类似于windows的回收站,无限大 2>&1#表示将这些在后台处理

同样的语句在solaris下和RH下有点不同,当我使用exit语句时rh下会执行,而solaris直接就是跳出。也是是因为SHELL不同的缘故。

在for in中加” ”就是字符串,数字不加就是数字显示的是竖直排列,家了引号后就是横向排列了。
在使用的时候Sorlaris不支持$()这样的在shell中嵌套的写法,反而是支持``反引号的写法,RH测试两者都支持。

可以用ls wc –l显示文件夹的文件数,用shell的话是做个count
#!/bin/sh
#forcount
counter=0
for files in *
do
counter=`expr $counter + 1`
done
echo "count the `pwd` total files is $counter"

要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld
根据系统中MySQL安装位置的不同,前面的例子中使用的路径也不同。
在非NT版本的Windows中,在后台启动mysqld。也就是,服务器启动后,你应当可以看见后面的命令提示。如果你用该方法在Windows NT、2000、XP或2003中启动服务器,服务器则在前台运行,在服务器退出前,不会出现命令提示。因此,当服务器运行时,应当打开另一个控制台窗口来运行客户端程序。
下述命令可以停止MySQL服务器:
C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown
该命令调用MySQL管理工具mysqladmin连接服务器并告知它关闭服务。该命令使用MySQL root用户连接,这是MySQL权限系统中的默认管理账户。请注意MySQL权限系统中的用户完全独立于Windows下的登录用户。
如果mysqld不能启动,检查错误日志看看服务器是否写入了显示问题原因的任何消息。错误日志位于C:\Program Files\MySQL\MySQL Server 5.1\data目录中。是带后缀.err的文件。还可以尝试将服务器启动为mysqld --console;此时,可以从窗口中获得一些有用的信息,可以帮助解决问题。
最后选项是用--standalone --debug启动mysqld。此时,mysqld 写入日志文件C:\mysqld.trace,应当包含mysqld不启动的原因。
使用mysqld --verbose --help显示mysqld的所有选项。



使用脚本中的函数参数作为shell命令,一开始不是很明白现在有点明白了,在刚刚开始的使用你如同平时写脚本一般将函数写进去,例如findit(){
if [ $# -lt 1 ]
then
echo "usage :findit file"
return 1
fi
find / -name $1
}
然后写完chmod后,在执行下. ./XXX,当你在命令行下用set命令后你会发现他已经被加载到你的用户下,当然了在你退出这个session后,会自动消失的。那么这个使用你在使用这个函数类似于findit他就不会报错,而且也不需要向刚刚执行脚本一样,而他直接已经加载到你的bin下,所以当我使用findit main的时候他会全盘搜索,但是用于我是用其他用户的所以不能找到,因为权限不够。
当使用了unset命令后则可以将已经加载的这个函数去除。Set后他已经不再了

开心啊开心

我要做干爸爸,我要做干爸爸,哈哈,

2008年4月14日星期一

These days

I'm very happy The Great Firewall had been gotten my Blog in my motherland, and now it's still out of the there and still be contraled.
做了些SHELL联系,然后呢昨天K了3个小时的歌,非常非常的无聊。汇报完毕,继续工作,当然了,还有些没写。 稍后添加关于SHELL的笔记。

忘了补一句,很感谢林SAN的支持,让我有这么个好机会,可是由于一点阻力,最终无法成行,还是十分感谢他对我能力的肯定,到底还是要请他吃顿饭,结果大家AA了。由于广告嫌疑,这个地方就不说是哪里了,看地图吧,味道整体来说还不错,上菜的速度也很快,价格也实惠。物美价廉啊

晚上练习SHELL,在echo过程中一个很难得问题也可以说很简单" "或者' '这样都可以显示echo后面的,但是如何显示shell固有的命令呢,查了很久试了很久其实很简单``这个就是tab上面的那个键位,这样可以显示,但是itpub上有一位大哥说还是比较现实用$()这个会更好,但是呢现在来看似乎$()不是很成功

2008年4月9日星期三

窘境

不过怎么说,现在对我来说处于窘境。。手机,工作,生活,感情
老妈买的幸运珠好像变色了,跟现在状况一样。

2008年4月8日星期二

感觉

在路途上想起爱情来。 觉得最好的爱情是两个人彼此做个伴。
不要束缚,不要缠绕,不要占有,
不要渴望从对方身上挖掘到意义,那是注定要落空的东西 而应该是, 我们两个人并排站在一起,看看这个落寞的人间。
有两个独立的房间, 各自在房间里工作。
一起找小餐馆吃晚饭。
散步的时候能够有很多话说。
拥抱在一起的时候觉得安全。
不干涉对方的任何自由。
哪怕他还在和旧日女友联络。
不要对彼此表白,
表白是变相的索取。很平淡。很熟悉。
好像他的气味就是你自己身上的气味。
不管在何时何地,都要留给彼此距离。
随时可以离开
想安静的时候, 即使他在身边, 也像是自己一个人。 有一致的生活品味。 包括衣服,唱片,香水,食物等等。
不太会想起对方,但累的时候,知道他就是家 我们很容易碰到的, 都是自私或者愚蠢的人。 他们爱别人, 只是为了证明别人能够爱自己。 或者抓在手里不肯放,直到手里的东西死去。 成熟的感情都需要付出时间去等待它的果实。 但是我们一直欠缺耐心。 有谁会用10年的时间去等一个远行的人。
有谁会在10年的远行之后,依然想回头找到那个人。
有些爱情因为太急于要得到它的功利, 无法被证明, 于是也就得不到成立。
——载“想起来的爱情”

朋友的BLOG转来的,貌似很喜欢这种感觉

2008年4月1日星期二

Solaris学习笔记20080331

想看看Solaris的FTP服务,所以去网站上找,可是没有找到如何安装。。而SUN提供的技术文档里也没有关于这个的说法,结果#svcs ftp发现竟然是online状态开着的,所以粗略研究了下了,在/etc/ftpd下有人文件,大概的说下ftpusers是被禁止的用户而不是开放的用户,比如说root,而ftphosts列出的允许或拒绝从各种主机登录的,cat了一下发觉没有东西,猜想是不是类似于ip+用户名。Ftpaccess是主文件,只用使用ftpaccess –a了以后才能调用/etc/ftpd/ftpaccess的文件。
里面一些关键词:
格式如下class typelist addrglob
Class 用于定义关键词,里面目前有realusers guestusers anonusers,real当然表示本机的用户,用anonymous进去发现不行,登录不了,然后切换到那天建立的ccav用户发觉就可以了。
Typelist呢表示三类用户,addrglob呢表示地址,默认为*
添加权限:
Limit class n times [message_file]
在最后两行但是被#注释掉了,limit表字串意思,class表刚刚定义的类,主要是guest,realuser,anon.n表用户数,times表相连接日期和时间,any表任何日期,message_file表用户被拒绝访问的消息文件。
按照所提供的意思,可以把下面三行的意思可以认为如下:
Limit-time anonymous 30 可以理解成限制链接时间,匿名,30分钟
Limit anonousers 10 wk0730-1800 /etc/… 可以理解为限制匿名用户为10个在工作的时间早7:30-18:00 信息为如下目录
Limit anonousers 50 SaSuAny1800-0730 /etc/…可以理解为限制匿名用户为50个在周六或者周日和其他任何时间的晚18:00-7:30
在环境中用/usr/sbin/ftpwho命令可以查看目前正在使用的用户是哪些
/usr/sbin/ftpcount可以查看目前哪些用户和登录限制
Loginfails 表示登录失败的次数
想修改ftpuser然后重启服务,发觉根本不会搜了下
ftp pkill -HUP inetd (ftp)
dns pkill -HUP named(telnet)
限制对缺省服务器的访问增加以下字段
Defaultserver deny username[username]禁止对defaultserver的受限访问权限的用户
Defaultserver allow username[username]允许对defaultserver的受限访问权限的用户
阻止匿名用户访问defaultserver private
对用户创建我还是习惯于unix下的useradd这个命令,对于文中提到的脚本ftpconfig我找了下似乎没有。那对于欢迎信息和帮助文档而言,具体的格式都和上面的差不对,标签分别是message和readme。
对文件访问的命令
Command yesno typelist command包括了chmod,delete..等等啦,而后面后最yes or no这些都可以在具体文档那个中查看出来。
上传文件upload [absoluterelative][class=]...[-] root-dir \
dirglob yesno ownergroupmode [dirsnodirs][]
path-filter typelistmesgallowed_charset{disallowedregexp...}
例子:upload /export/home/ftp /incoming yes ftpadm ftpadmin 0440 nodirs
path-filter anonymous /etc/ftpd/filename.msg ^[-A-Za-z0-9._]*$^[.-]
可以理解为对前个目录使用chroot的ftp帐户可传到/incoming目录下,文件为ftpadm和组ftpadmin拥有,nodirs的关键字为0440阻止匿名用户创建子目录。
在ftpaccess中的noretieve的意思是可禁止用户检索文件。
在ftpaccess中添加virtual address rootbannerlogfile path可对虚拟服务进行编辑
例子virtual 192.168.18.95 root /var/ftp/vritual/ftp-serv
在/etc/ftpd/ftpservers添加以下
address /conig-ile-dir
address 是IP地址 conig-ile-dir 是目录

启动ftp服务
# svcadm enable network/ftp
瞌睡 -。- ~~~

进入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行
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的输出结果放到当前行 。

I hate Vi!!!
查看ixpub上的solaris的维护,这些和LINUX机器上的差不多
#dmesg grep cpu 查看cpu
#dmesg grep mem 查看内存
#vxdisk list查看磁盘的个数
#df –k 如何查看文件系统
#format 如何查看磁盘的大小
#cd /opt/SUNWexplo/bin/explorer 收集信息的工具
#explorer
查看informix的版本
#su - informix
informix>onstat –
#netstat –in查看子网 想看看Solaris的FTP服务,所以去网站上找,可是没有找到如何安装。。而SUN提供的技术文档里也没有关于这个的说法,结果#svcs ftp发现竟然是online状态开着的,所以粗略研究了下了,在/etc/ftpd下有人文件,大概的说下ftpusers是被禁止的用户而不是开放的用户,比如说root,而ftphosts列出的允许或拒绝从各种主机登录的,cat了一下发觉没有东西,猜想是不是类似于ip+用户名。Ftpaccess是主文件,只用使用ftpaccess –a了以后才能调用/etc/ftpd/ftpaccess的文件。
里面一些关键词:
格式如下class typelist addrglob
Class 用于定义关键词,里面目前有realusers guestusers anonusers,real当然表示本机的用户,用anonymous进去发现不行,登录不了,然后切换到那天建立的ccav用户发觉就可以了。
Typelist呢表示三类用户,addrglob呢表示地址,默认为*
添加权限:
Limit class n times [message_file]
在最后两行但是被#注释掉了,limit表字串意思,class表刚刚定义的类,主要是guest,realuser,anon.n表用户数,times表相连接日期和时间,any表任何日期,message_file表用户被拒绝访问的消息文件。
按照所提供的意思,可以把下面三行的意思可以认为如下:
Limit-time anonymous 30 可以理解成限制链接时间,匿名,30分钟
Limit anonousers 10 wk0730-1800 /etc/… 可以理解为限制匿名用户为10个在工作的时间早7:30-18:00 信息为如下目录
Limit anonousers 50 SaSuAny1800-0730 /etc/…可以理解为限制匿名用户为50个在周六或者周日和其他任何时间的晚18:00-7:30
在环境中用/usr/sbin/ftpwho命令可以查看目前正在使用的用户是哪些
/usr/sbin/ftpcount可以查看目前哪些用户和登录限制
Loginfails 表示登录失败的次数
想修改ftpuser然后重启服务,发觉根本不会搜了下
ftp pkill -HUP inetd (ftp)
dns pkill -HUP named(telnet)
限制对缺省服务器的访问增加以下字段
Defaultserver deny username[username]禁止对defaultserver的受限访问权限的用户
Defaultserver allow username[username]允许对defaultserver的受限访问权限的用户
阻止匿名用户访问defaultserver private
对用户创建我还是习惯于unix下的useradd这个命令,对于文中提到的脚本ftpconfig我找了下似乎没有。那对于欢迎信息和帮助文档而言,具体的格式都和上面的差不对,标签分别是message和readme。
对文件访问的命令
Command yesno typelist command包括了chmod,delete..等等啦,而后面后最yes or no这些都可以在具体文档那个中查看出来。
上传文件upload [absoluterelative][class=]...[-] root-dir \
dirglob yesno ownergroupmode [dirsnodirs][]
path-filter typelistmesgallowed_charset{disallowedregexp...}
例子:upload /export/home/ftp /incoming yes ftpadm ftpadmin 0440 nodirs
path-filter anonymous /etc/ftpd/filename.msg ^[-A-Za-z0-9._]*$^[.-]
可以理解为对前个目录使用chroot的ftp帐户可传到/incoming目录下,文件为ftpadm和组ftpadmin拥有,nodirs的关键字为0440阻止匿名用户创建子目录。
在ftpaccess中的noretieve的意思是可禁止用户检索文件。
在ftpaccess中添加virtual address rootbannerlogfile path可对虚拟服务进行编辑
例子virtual 192.168.18.95 root /var/ftp/vritual/ftp-serv
在/etc/ftpd/ftpservers添加以下
address /conig-ile-dir
address 是IP地址 conig-ile-dir 是目录

启动ftp服务
# svcadm enable network/ftp
瞌睡 -。- ~~~

进入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行
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的输出结果放到当前行 。

I hate Vi!!!
查看ixpub上的solaris的维护,这些和LINUX机器上的差不多
#dmesg grep cpu 查看cpu
#dmesg grep mem 查看内存
#vxdisk list查看磁盘的个数
#df –k 如何查看文件系统
#format 如何查看磁盘的大小
#cd /opt/SUNWexplo/bin/explorer 收集信息的工具
#explorer
查看informix的版本
#su - informix
informix>onstat –
#netstat –in查看子网

.tar解包: tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------------------------------------.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz解压:tar zxvf FileName.tar.gz压缩:tar zcvf FileName.tar.gz DirName---------------------------------------------.bz2解压1:bzip2 -d FileName.bz2解压2:bunzip2 FileName.bz2压缩: bzip2 -z FileName.tar.bz2解压:tar jxvf FileName.tar.bz2压缩:tar jcvf FileName.tar.bz2 DirName---------------------------------------------.bz解压1:bzip2 -d FileName.bz解压2:bunzip2 FileName.bz压缩:未知.tar.bz解压:tar jxvf FileName.tar.bz压缩:未知---------------------------------------------.Z解压:uncompress FileName.Z压缩:compress FileName.tar.Z解压:tar Zxvf FileName.tar.Z压缩:tar Zcvf FileName.tar.Z DirName---------------------------------------------.tgz解压:tar zxvf FileName.tgz压缩:未知.tar.tgz解压:tar zxvf FileName.tar.tgz压缩:tar zcvf FileName.tar.tgz FileName---------------------------------------------.zip解压:unzip FileName.zip压缩:zip FileName.zip DirName---------------------------------------------.rar解压:rar a FileName.rar压缩:rar e FileName.rarrar请到:http://www.rarsoft.com/download.htm 下载!解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):[root@www2 tmp]# cp rar_static /usr/bin/rar---------------------------------------------.lha解压:lha -e FileName.lha压缩:lha -a FileName.lha FileNamelha请到:http://www.infor.kanazawa-it.ac.jp/.../lhaunix/下载!>解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):[root@www2 tmp]# cp lha /usr/bin/ ---------------------------------------------.rpm解包:rpm2cpio FileName.rpm cpio -div---------------------------------------------.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea解压:sEx x FileName.*压缩:sEx a FileName.* FileNamesEx只是调用相关程序,本身并无压缩、解压功能,请注意!sEx请到: http://sourceforge.net/projects/sex下载!解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):[root@www2 tmp]# cp sEx /usr/bin/

2008年3月28日星期五

Solaris学习笔记20080328

smc类似于windows中我的电脑,管理,在终端中键入smc只能在X桌面下,会启动但是似乎时间比较长,因为第一次启动需要加载一些东西。
/etc/init.d/init.wbem是关于smc产生的Solaris Mangerment Console这个的启动,包括的选项有status,start,stop。
貌似还有个JAVA WEB CONSOLE进入方法https://hostname:6789/,但是我本机连服务器连不上。。看下面的文档似乎是因为服务没有起来,在控制台下
#smcwebserver start

经过加载好像起来了。提示加载错误,某个管理程序没注册。去服务器上看看。服务器上还是不行,大概是因为我在安装的时候去掉了关于JAVA环境,所以导致有这个问题。先暂且不管他,因为尽然已经熟悉PUTTY的话,这个就不是很在乎了,无非多了一个更方便或者说远程连接进来控制服务器的一个手段。有一点需要指出的是在看操作手册的同时发现,关于昨天所讲的
#smcwebserver enable
中的类似于服务的enable和disable表述的意思是关于随机的启动服务,而不是重启该服务。
おまかせください是“就交给我吧”

Solaris环境为每个系统上/etc/skel目录中的每个shell提供缺省的用户初始化文件。在默认的用户的/home下,ls了一番以后是没有任何东西的,而如果我们要安装oracle这样的话那么就需要在上面提到的/etc/skel这个文件中的关于local.cshrc复制到自己的文件夹下面。但是查找了一些资料好像多以自己建立为主,在Solaris提供的系统管理指南下,也可以自定义建立用户初始化文件
#mkdir /export/skel/oracle
#cp /etc/skel/local.cshrc /export/skel/oracle/.cshrc

添加用户和将用户添加到组
# groupadd -g 102 scutters
# useradd -u 1003 -g 102 -d /export/home/scutter1 -s /bin/csh \-c
"Scutter1" -m -k /etc/skel scutter1

这个相比而言蛮有意思的,在LINUX下或者说在rh下只要输入useradd -G XXX -g xxx就可以了,而在这里却需要把它的目录等等都写进去。
在手册上的P114有一个建立用户共享文档的例子。在下面的文档查看中好像基本上能够实现的方法都是以SMC这个形式出现的,大量的图形界面来操作。
这个部分讲述了如何关闭系统=、= 会开总要会关吧,现在我看到了poweroff和reboot这两个都是迅速结束当前用户的会话而不考虑其他用户,当然还有shutdown这个,可以使用shutdown -i(0,1,2,5) -g(mins) -y期间0和5表关闭系统而保留状态,6为重新引导,2是多用户操作例子#shutdown -i6 -y是表示直接重启 #init 0表示安全关闭电源,类似于98的时候,然你自己去按下电源键
degraded处于启动,但是以有限的功能运行disabled处于禁用legacy_run传统服务不由SMF进行管理但可查看服务maintenance遇到错误必须由管理员解决offline处于企业能够状态但尚未运行或者无法运行online处于启用状态uninitialized所有服务在配置经过读取之前的初始状态
运行级,比较特殊的一个东西,WIN下面也有但是只是处理前后的不同 0电源关闭装题啊 S单用户状态 1管理状态 2多用户状态 3NFS资源共享多用户级别 4替换多用户状态 5电源关闭状态 6重新引导状态
重启服务
#svcadm restart XXX
-。- 原来我还不停的ENABLE,DISABLE检查服务是否已经停止或启动
#pgrep -f xxxx服务名字

patchadd pkgchk installer prodreg 等等安装,具体真实的尝试还没用过,需要待验证prodreg这个好像是查看prodreg browse查看solaris产品注册的信息的
# prodreg info -m "name"
查看某个软件的属性# prodreg unstall 能删除某个
# pkgadd -a admin-file -d device-name pkgid
# pkginfo 查看所有安装包的信息
# pkgchk检查
# pkgrm 删除
passwd -l 是锁定用户; -d 是解锁

2008年3月27日星期四

Solaris学习笔记

经过一段时间的配置,Solaris在虚拟机和测试机上正式开跑,在安装过程中前面只要按照提示走就好了,特别值得一提的当还还是在分区的时候,由于虚拟机上就当为纯硬盘的所以很方便,但介于测试机原先是windows系统,在安装的时候会显示原分区,而出现的是other标签,对于我们来说目前先不要,根据提示删除以后,然后分区,第一次分区的时候没有意外,之后就是按照提示MOUNT目录,F2继续以后发觉文档不能建立,格式化不能进行。对这点表示奇怪。
之后重启,跳过前期步骤,当在提示安装附加目录是,类似于Solaris的Extrat和DOC,以及java等等来说,其实可以跳过,建议安装下DOC,因为在后期装完后,发觉在使用帮助文档时会提示无安装。当然对于空间不是很富裕的人来说,可以滤过,这一部分将近需要消耗4G左右。之后则会提示使用如何安装,我在虚拟机上安装的是最精简模式大概只有869MB的样子,但是由于虚拟机的问题,在显示的时候出现大量的乱码。
下面回到测试机上,在跳过了这些以后,重新进入分区,在编辑中我重新查看了关于Solaris的分区,他已经讲整个分区设置成为一个大约10MB左右的X86BOOT和57GB的Solaris分区,在F2之后可选手工编辑,这时候可以根据用户的自定义需要进行目录的加载。然后就是漫长的等待过程。
今天上班,局域网地址因为在安装向导的时候已经设置完毕,但是对于DNS来说我并不是很清楚在哪里设置。网上GOOGLE了以后也没有发现比较妥当的方式。
启用SSH,因为测试机在机房中,对于跑来跑去跑比较麻烦,当然首先开启SSH。SSH在默认中已经打开了,但是出现和安装SUSE相同的问题,默认的ROOT用户在此期间是禁止的,在你新建的用户可以登录,但所有目录和文件都是只读的。解决该问题的方法就是在SSH的目录中sshd_config中的PermitRootLogin 改成yes,就可以访问。但是改完后如何重启SSH呢,不想RH系列认为是一个service或者说想UBUNTU OR SUSE可以在/etc/init.d下的bin命令直接启动和关闭。在Solaris下的init.d无法找到关于ssh,他使用的是
#svcs
查看所有开启的服务。
关闭和开启服务测试
#svcadm disable ssh
#svcadm enable ssh

下午完成FLASH以后,在调试在桌面下用WEB上网,由于上面提到的经过向导可以设置好本机IP,但是在桌面下怎么也上不了网。所以我GOOGLE了一下,发觉讲的很少。调试了一下
#vi /etc/nsswitch.conf
host: files dns

需要修改这个参数
同时由于在出安装时没有建立所以你自己需要建立一下两个文件
#vi /etc/defaultrouter
192.168.18.1(公司的router)
#vi /etc/resolv.conf
nameserver 202.101.172.35
nameserver 202.101.172.46


但是我不知道需不需要重启,和其他的linux不一样的也有,重启直接使用reboot命令,而不是平时的shutdown.而其他的还包括不能直接按上下键进行先期命令的切换,不能使用TAB自动填充命令。

--------------
隆重推荐http://www.photoshop.com/express。在线做效果,瓦哈哈

T说电影<史前一万年>原版

看了《史前一万年》的原版,带点口音的英语,虽然从感官上来说已经做得相当真实,但还是能少少的看出点破绽。
总体的影片思路是讲一个BOY为了保护一个女孩从逐渐成长,其父为了族人编了个谎去寻找更适合的生存伎俩,比如说耕种。之后呢乱世出英雄,这小子逐渐成长,为了自家的女人无所不能,WHATEVER 有些人生来就是被保护的,有些人生来就是保护别人的,你选择哪个一个呢,人必须要有使命感。
中国人信仰佛,西方人信仰耶稣,而非洲人更信仰土著,通灵。很多时候人有不能解释的东西,而那些都将被称作迷信,而有时候你又不得不信。有的时候你不许face错误,在爱情和大众面前当然兼得可以最好,可是很难。
当然了影片大部分还是以完美大结局收场,很漂亮,因为武术的力量,推翻了暴政。风光不错,同时音效设置的很好,很紧凑。
练习了英语听力,感觉还不错,要是日语片也能这么引进就好了。可惜,呵呵,不是崇日,只是希望多加深点听力。由于是原版片,剪掉的不算很多,这次过度的还是比较平滑。还是比较推荐去看的。

婺源游记


地图位置,但是我们似乎没有往这条路走,而是从安徽方向走的,不管如何就表示下吧。

2008年3月21日星期五

VMWARE上网

从昨天下班到今天的现在,差不多一天,都在搞这个事情。关于VMWARE上网,GOOGLE了下发觉很多很多人都说简单等等,其实我还是不会,后来没办法。我的FREEBSD要上网下,那么我就设置了。后来看了个FALSH才知道,其实很简单,安装好后VMWARE两块网卡都需要把bridge协议钩掉,然后再虚拟机中使用自定义,我开始NAT到1上的。,后来分配下就好了,不知道怎么回事情。郁闷啊郁闷。
但是仅仅正对于FREEBSD和RHAT的上网,UBUNTU可以用桥接直接上 -、-
--------
下午准备出发

懊恼

今天准备出发,东西都准备好了,结果发现我的旅行包包不见了,不知道被放到哪里去了,火啊。。

2008年3月19日星期三

Blocking China

The last few days there are so many connections to our mirror server from China that I started to block certain subnets. There are usually around 10 clients connecting via HTTP and each is opening over 50 connections to our server. They are downloading mainly ISO images and other big files. I can see that each client is starting to download lots of different things. From Fedora 3 to Fedora 7 ISO images, Ubuntu ISO images, openSUSE ISO images and other old and large files.
I started to block individual IP addresses but there are just too many so that I started to block whole subnets. I am using the following command to get an overview about which clients are opening many connections at once:
lynx -dump -width=2000 http://localhost/server-status awk -F\ '{ print $11} ' sort -n uniq -c sort -n.
The output looks something like this: 21 122.48.129.75
23 210.21.106.229
24 218.17.228.216
26 220.175.101.252
27 222.67.18.227
30 222.27.89.136
39 123.116.101.186
52 121.231.17.153
63
63 ::1
With the following command I am calculating the netmask which will be blocked:
$ whois 121.231.17.153 grep inetn sed -e "s, - ,:,g" awk ' { print "netmask "$2 }' sh
121.224.0.0/12
And then I am using a simple iptables rule to drop any traffic coming from that network:
iptables -A INETIN -s 121.224.0.0/12 -j DROP
Currently this is the only idea I have how to get rid of those ~500 connections which seem to be some kind of abuse.
-------------------------------
今天早上看cnBeta得到的消息,Adrian doing the blog 的BLOG来的,迅雷带来的影响看来波及国外了,无节制的获取而不付出,不知道是为了什么。

2008年3月11日星期二

T说电影

《江山美人》骗钱的,难看,能猜到讲什么,看过《投名状》以后再看类似电影跟本发觉不在同一个档次,看着演员的脸都是歪的,假的不能再假的特效,不标准的普通话,唉,不行啊。同样是一个人奋勇杀敌,甄子丹招牌的霸气但是单纯的冷兵器却掩盖了他应用的动作潇洒。黎大爷还是一样的憨厚,没有演技,更不要说其他的,除了最早的那个七剑之后就看他的扮相想吐,吐啊吐的就习惯了。唯一的花瓶,应该说不应该说花瓶至少还有点那么效果,但是和《投名状》相比的,没有了老徐的演技,一个字烂。真搞不明白,为啥那海报那大,真的很想看《双食记》~~~~
题外话,流氓老板貌似可以通过她未来老婆那一关了,想娶了,哈哈,看来我们要没有领导了。

2008年3月9日星期日

周末

周六下大雨,具白痴的早早到浙大,等啊等,看着一个具不爽的男人等一个男人,恶心的要死。浪费了将近半个小时,然后沿路走到植物园门口,做Y3,原来Y3只要2块就好了,一直以为这类车要个4块,5块的,然后到龙井茶园下车,说来真是惭愧。连龙井都不知道在哪来,被人拉的上山,然后下山到龙井,在爬十里锒铛,有好路不走,走差路,不管后面的那群人自己管自己先到达了山顶,从高中到大学我爬山从来没有第一过,这次蛮有成就感的。到了梅家坞就不想走了,然后安呆的找了个茶室,做了一个下午打了会牌,双扣还好,斗地主。稍微输了那么点。晚上吃了顿饭,在什么辅食,味道东西还不错,就是闲了点。然后排队去唱歌等了都快要一个小时,头疼。差点睡着,接着就是将近5个小时的歌 -、- 受不了。。。不过还是有点收获的。哈哈

2008年3月6日星期四

一百篇记和理财篇

这个BLOG已经发到一百篇,真厉害,目前也能写那么多。早上看GOOGLE READER看到的,其实这个也蛮简单的,但是从小我的父母似乎并没有那么早的言传身教,所以从目前来看我的理财观念并不是很好。
可是这一点让我能够清楚的认识到以后该如何的运用自己的财富。或者说运用自己以后的财富,该花的时候花,某个小姑娘(现在已经成为人妻)说过一句比较好的话,其实不要吝啬自己的钱,人会因为你的大方而跟你交朋友。虽然我收入不是很高,但是我至少目前过的比较开心。

让孩子成为理财高手
在给子女零花钱的同时,别忘了让他们懂得一些金融常识。想让自己的孩子长大后成为一名理财高手?看看以下四个小试验。我的建议是:在你自己的孩子身上做这些试验,然后向他们传授经验教训--再回过头来想想你自己在财务上是否也曾出过这些差错。--先苦后甜。要想子女长大后能勤于储蓄,就要让他们学会先苦后甜,但这种习惯并不容易养成。想证实一下?那可以在第一周给孩子5块钱的零花钱,然后第二周让他们选择是立即拿到5块钱,还是等到下一周可以拿7块钱。加州大学洛杉矶分校(University of California at Los Angeles)的经济学教授什洛莫•贝纳茨(Shlomo Benartzi)表示,这涉及到是否立即得到满足的问题。眼前两手空空可不是件令人高兴的事情,因此孩子可能会选择立即拿到5块钱。不过这并不意味着你的孩子一定要立即拿到所有的零花钱。身为行为金融学论坛(Behavioral Finance Forum)的联合创始人,贝纳茨建议给孩子另外两种选择,一种是立即拿到7块钱,另一种是每天拿1块钱。他估计孩子们可能会选择后者,因为与成年人一样,孩子子也喜欢积少成多。--减缓支出。根据金钱存在形式的差异,我们对它的感觉是不同的。例如,如果我们用现金支付,一般会比刷卡消费更为克制。若要在孩子身上证明这一点,可以试试以不同的方式给他们零花钱。比如在第一周给他们5个1块钱,然后在第二周给他们一张5块钱的整钞。这时你会发现,他们拿着5块钱的钞票时花钱会更加克制。
广告艾奥瓦大学(University of Iowa)营销学教授达南杰•纳亚坎库潘(Dhananjay Nayakankuppam)称,看上去5块钱钞票在心中的份量更重;一张5块钱钞票与5个1块钱相比更让人难以割舍。成年人也有相同的倾向。《消费者研究》(Journal of Consumer Research)2006年3月刊上的一份研究报告发现,拿着一张50块钱钞票的人,其消费意愿要低于拿着5张10块钱钞票的人。这份报告是由纳亚坎库潘与阿鲁尔•米希拉(Arul Mishra)和希曼苏•米希拉(Himanshu Mishra)共同完成的。--许愿清单。当看到商店中称列的和广告中展示的商品时,我们都会忍不住想买下来。不过有时候,我们却对买下的东西感到失望。还有的时候,我们忍上几天,这股冲动就一去不复返了。你是否想抑制孩子的购物冲动?不妨试试新泽西州金融分析师海兰娜•贝克(Helane Becker)的办法。每当贝克的两个孩子提出要买东西时,她便将这些东西写进他们的许愿清单。几天或几周过后,她再与孩子们一起复查一遍清单,看看哪些东西他们还念念不忘地想要动用自己的“小金库”购买,还是更愿意等到生日和圣诞节时作为礼物“笑纳”。贝克说,让我吃惊的一点是,当他们还小时,有时候在周二还死活要买的某件玩具,到了周五便被忘得一干二净了。--留下零钱。孩子们总是要这要那的,不必为此大惊小怪。毕竟,买东西的钱又不是他们自己出,用的是他们父母的钱。而这里要介绍的办法便是让孩子觉得用的是自己的钱。我在自己的女儿身上便发现了这点。在汉娜第一次参加学校郊游时,我给了她5块钱,并要她把花剩下的零钱带回来。最后她带了一包小首饰回来,手中只剩下几分钱。第二次郊游时,我又给了她5块钱。不过这一次我告诉她花剩下的钱可以自己留下来。最后她回家时这5块钱分文未动。后来我又在汉娜的弟弟身上用了相同的办法。虽然并不是很成功,但为我与他讨论用钱方面的问题提供了又一次机会。在这个问题上,只要父母做得不是很过头,或许便会是一件好事。圣塔克拉拉大学(Santa Clara University)金融学教授梅尔•斯特曼(Meir Statman)表示,你不会希望将孩子变成一部存钱机器。知道何时将钱放进存钱罐是件好事情,不过知道何时将钱取出来同样是件好事情。

2008年3月5日星期三

学习与进步

这两天忙着很多事情,有了些新的计划安排。从华尔街日报上的文章。我渴望成功,但是成功的道路很崎岖,要把握每个机会。

从实习生到董事长

现年45岁的伊曼纽尔•马塞达(Emmanuel P. Maceda)已是贝恩公司(Bain & Co.)亚太区的董事长了,然而20年前他刚加入公司的时候,还只是个暑期实习生。马塞达在贝恩曾担任过很多职务,包括全球招聘主管。这家全球管理咨询公司总部位于美国波士顿,在世界25个国家中拥有2,700名顾问和3,600个企业客户。马塞达的童年在菲律宾度过,他的父亲是政治家,母亲是电影制片人,他还有四个弟弟。少年马塞达的理想并不是商业咨询。他从芝加哥的伊利诺伊理工学院(Illinois Institute of Technology)获得了化学工程学位,之后在美国的杜邦公司(DuPont Co.)谋得了一份化学工程师的工作。在杜邦,他先后从事过塑料产品开发、营销以及销售工作,从而接触到了商业活动的各个方面。马塞达说,一旦有机会在不同的岗位上轮转,他就对商业产生了浓厚兴趣,他想也许应该读个工商管理硕士学位。于是,马塞达进入麻省理工学院(Massachusetts Institute of Technology)斯隆商学院(Sloan School of Management)学习,不过他当时仍不知道有管理咨询这样一个行业。在斯隆商学院读书期间,他曾说服自己的偶像之一、通用电气公司(General Electric Co.)董事长兼首席执行长杰克•韦尔奇(Jack Welch)来学校讲演。讲演中,一个戴着防毒面具的人向韦尔奇的脚边扔了一个酷似手榴弹的东西。韦尔奇因此中断了讲演,而马塞达在正确地判断出这并不是真的手榴弹之后,把它拣起来,拿着走出了大楼。
广告之后,有一天韦尔奇请马塞达吃午餐,并把他介绍给了通用电气的两位高级主管:企业战略主管和塑料营销主管。通用电气现任董事长杰夫•伊梅尔特(Jeffrey Immelt)当时担任塑料营销主管。两位主管都希望马塞达能加入自己的团队,但他最后还是决定去贝恩。在贝恩的香港办公室中,马塞达接受了《华尔街日报》记者Ellen Sheng的采访。《华尔街日报》(以下简称WSJ):你为什么选择了贝恩,而没有选择通用电气?马塞达:当时贝恩已经有了非常明确的品牌形象,也就是要寻找机会进行改变。这看起来与我的个人目标很一致。WSJ:在早期的职业生涯中,你学到了哪些重要的东西?马塞达:我们大部分人年纪轻轻就开始工作了,希望能藉此充实自己的“装备”。我们都在积累经验。我学会了如何制定战略,如何推动组织变革,如何对人员进行管理和激励。同时,在你觉得自己有了一定的能力后,还需要接受这样一个事实:我知道自己在这方面并不擅长。这种认知非常重要,对我们这种注重团队精神的企业文化来说必不可少,因为这样你才知道该向什么人请教。我在这个行业、这个公司已经干了近20年,不过只是在最近5年,我才感觉到了游刃有余,而不再担心要不断增长自己的才干了。WSJ:对于新人,你最强调的一点是什么?马塞达:把握全局。有时,新人只是担心下一周或下个月会发生什么事情,或是只注意到手头上具体的事情。我希望每一位进来的新人都能牢记:要明白这些事情最终对我们真正的目标有何影响,也就是会如何影响客户价值的提升。WSJ:有些人立刻就能把握这一点,而有人永远无法掌握。员工能通过学习获得这种全局观吗?马塞达:我认为可以。和大多数事一样,有些人进来的时候就有全局观念──当然如果我们的招聘和评估程序都没问题的话。但也有一些人可能永远无法把握全局,这些人是另外一种极端情况。不过,对中间的大部分人来说,通过正确的培训组合,总有一天会茅塞顿开。WSJ:人们都说亚洲公司里管理层级太多,职衔太正式,缺乏灵活性。你是如何引入扁平化管理结构的?马塞达:通过了解文化上的细微差异,并对其进行管理。我们公司没有管理层级过多这样的问题。我们采取全球性、扁平化、一贯性的管理层级观。我在贝恩就是一个非常典型的经理,我75%的时间仍用于处理客户业务。WSJ:你曾遇到过难以应付的老板吗?你是如何解决的?马塞达:我很幸运,因为我遇到的老板都很棒。不过在我们这个行业,你的客户可以说是你的另一位老板。我倒是遇到过一些难打交道的客户。最糟糕的情况是,你最后发现客户的目标与你的目标并不相同,当然这种情况很少见。在这种情况下有时你只能选择放弃。你可以拒绝某个咨询项目。如果你认为交待你去做的事情与提升客户价值这一目标不相符,你可以拒绝。我碰到过几次这样的情况,不过都是早些年的事情了。WSJ:作为一位经理,你做过的最艰难决定是什么?马塞达:都是关于资源配置的问题,或是该在什么事情上说“不”。当你说“不”的时候,你常常需要在不同国家之间进行折衷。有时是短期和长期利益间的折衷。某个机会长期来看可能对客户更有价值,但在短期却无法盈利,或是成本过高。WSJ:你学会了该如何做这样的决定吗?马塞达:这和把握全局类似。如果我考虑了公司的全局,我就会想我做的事情是否会提升公司的长期价值?对公司的长远来说,这是否是最好的做法?WSJ:你最喜欢的管理书籍是哪本?马塞达:我是一名管理顾问,很多管理书籍的作者都是我的朋友。在这点上,我可能有点私心,我要说克里斯•祖克(Chris Zook)和詹姆斯•艾伦(James Allen)合著的《回归核心》(Profit From the Core: Growth Strategy in an Era of Turbulence)是我的最爱。书中收录了多年来我与客户打交道的一系列经验。回归核心不仅适用于客户,我认为对我们的公司也同样适用。贝恩的核心业务仍有很大的增长空间。虽然过去我们曾进行过各种不同的尝试,今后我们仍将继续下去,但我相信我们在核心业务增长方面仍有很大潜力。

2008年2月28日星期四

一天

试用了google maps查公交线路和位置,比原来方便多了,现在数据量比刚beta版本的好很多,而且查询数据更简单。图发布上来 =、=。
昨天下班前装好了FreeBSD,基于Unix的系统,值得使用.
做了report,需要再修改。

2008年2月27日星期三

新闻观后感

“和事佬”老板难和事
从某种层面上来说这个文章很好,因为你一直做一个绵羊的话,别人会对你产生厌恶,特别是对于一个能给你帮助的人来说

2008年2月26日星期二

google新功能

今天偷闲,看google的新发明,不过是中文版的,发觉google多了一个生活,里面有工作啦,房屋啦,餐饮等等,也许只是细化了关键词,但是这点已经和牛了,光这些东西已经减少了时间,还有比率数据 =、= 不敢想象,GOOGLE要是把这些东西更实化会怎么样,光看了下工作,就已经有很多了,餐饮类似于口碑。百家争鸣才能更有意思。google.jp竟然能连到我的blogspot上,神奇

2008年2月20日星期三

远方的朋友近照一张


四川的同学近照一张,貌似日子过得很好,发福了

2008年2月14日星期四

照片一张

日本朋友
神奇,照片不见了

2008年1月31日星期四

Oracle学习笔记20080129

环境和shell变量
$ variable-name = value 或 ${variable-name = value}
注意,等号两边可以有空格。如果取值包含空格,必须用双引号括起来。shell变量可以用大小写字母。
表14-1变量设置时的不同模式
Variable-name=value 设置实际值到variable-name
Variable-name+value如果设置了variable-name,则重设其值
Variable-name:?value 如果未设置variable-name,显示未定义用户错误信息
Variable-name?value 如果未设置variable-name,显示系统错误信息
Variable-name:=value 如果未设置variable-name,设置其值Variable-name:-value 同上,但是取值并不设置到variable-name,可以被替换

显示变量直接echo,清除变量unset,可将多个变量结合使用
有时要测试是否已设置或初始化变量。如果未设置或初始化,就可以使用另一值。
此命令格式为:
$ {variable : -value }意即如果设置了变量值,则使用它,如果未设置,则取新值。
$ { variable : =value }测试变量是否取值,如果未设置,则返回一空串。
方法如下:
$ { variable : +value }使用下述方法初始化变量为空字符串。v
ariable = " "$DETINATION = " "

如果设置变量时,不想再改变其值,可以将之设置为只读方式。如果有人包括用户本人想要改变它,则返回错误信息。
格式如下:variable - name = valuereadonly variable-name
设置环境变量VARIABLE - NAME = value;export VARIABLE-NAME在两个命令之间是一个分号,也可以这样写:VARIABLE - NAME = valueExport VARIABLE-NAME用env查看所有环境变量,同样是用unset命令清楚环境变量

CDPATH改变目录路径变量,保留一系列由冒号隔开的路径名,用于cd命令。如果设置了CDPATH,cd一个目录时,首先查找CDPATH,如果CDPATH指明此目录,则此目录成为当前工作目录。
例子如下:$ CDPATH=:/home/dave/bin:/usr/local/apps;export CDPATH.
如果要$ cd appscd命令首先在C D PAT H中查找目录列表,如果发现a p p s,则它成为当前工作目录。
特定变量参数
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
$$ 脚本运行的当前进程I D号
$! 后台运行的最后一个进程的进程I D号
$@ 与$ #相同,但是使用时加引号,并在引号中返回每个参数
$- 显示s h e l l使用的当前选项,与s e t命令功能相同
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

..那啥,又是草草略过总觉得不知其所以然

引号的重要性表
15-1 shell引用类型
" " 双引号 ` 反引号' ' 单引号 \ 反斜线
上次打了一段话做实验,发觉不行,原因是我用的是单引号而不是反引号,在实际过程中echo "中的命令可以使用反引号"
基础编程脚本不是复杂的程序,它是按行解释的。脚本第一行总是以#!/bin/sh开始,这段脚本通知shell使用系统上的Bourne shell解释器。
条件测试测试文件状态test一般有两种格式,即:test condition或[condition]使用方括号时,要注意在条件两边加上空格。
测试文件状态的条件表达式很多,但是最常用的可在表17-1中查到。
表17-1 文件状态测试
- d 目录
- s 文件长度大于0、非空
- f 正规文件
- w 可写
- L 符号连接
- u 文件有suid位设置
- r 可读
- x 可执行
使用两种方法测试文件scores.txt是否可写并用最后退出状态测试是否成功。记住, 0表示成功,其他为失败。
测试时使用逻辑操作符测试文件状态是否为OK,但是有时要比较两个文件状态
。shell提供三种逻辑操作完成此功能。-
a 逻辑与,操作符两边均为真,结果为真,否则为假。
-o 逻辑或,操作符两边一边为真,结果为真,否则为假。
! 逻辑否,条件为假,结果为真。

字符串测试是错误捕获很重要的一部分,特别在测试用户输入或比较变量时尤为重要。字符串测试有5种格式。
test "string"
test string_operator "string"
test "string" string_operator "string" [string_operator string] [string string_operator string]这里,string_operator可为:= 两个字符串相等。!= 两个字符串不等。
-z 空串。-n 非空串。
测试数值测试数值可以使用许多操作符,一般格式如下:"number"numeric_operator"number"或者["number"numeric_operator"number"]numeric_operator可为:
-eq 数值相等。
-ne 数值不相等。
-gt 第一个数大于第二个数。
-lt 第一个数小于第二个数。
-le 第一个数小于等于第二个数。
-ge 第一个数大于等于第二个数。

expr用法expr命令一般用于整数值,但也可用于字符串。
一般格式为:expr argument operator argumentexpr也是一个手工命令行计数器。
退出状态在书写正确脚本前,大概讲一下退出状态。任何命令进行时都将返回一个退出状态。如果要观察其退出状态,使用最后状态命令:$ echo $?要退出当前进程,shell提供命令exit,一般格式为:exit n
注一笔,脚本本身加入退出脚本值是一个好的编程习惯

流控制if、then、else语句提供条件测试。测试可以基于各种条件。例如文件的权限、长度、数值或字符串的比较。这些测试返回值或者为真(0),或者为假(1)。基于此结果,可以进行相关操作。在讲到条件测试时已经涉及了一些测试语法。case语句允许匹配模式、单词或值。一旦模式或值匹配,就可以基于这个匹配条件作其他声明。
for 循环 每次处理依次列表内信息,直至循环耗尽。
Until 循环 此循环语句不常使用,u n t i l循环直至条件为真。条件部分在循环末尾部分。
While 循环 w h i l e循环当条件为真时,循环执行,条件部分在循环头。

i f语句测试条件,测试条件返回真( 0)或假(1)后,可相应执行一系列语句。 i f语句结对错误检查非常有用。其格式为:if 条件1then 命令1elif 条件2then 命令2else 命令3if
if语句可用来测试传入脚本中参数的个数。使用特定变量 $ #,表示调用参数的个数。可以测试所需参数个数与调用参数个数是否相等。
有时需要知道脚本运行是交互模式(终端模式)还是非交互模式(cron或at)。脚本也许需要这个信息以决定从哪里取得输入以及输出到哪里,使用test命令并带有- t选项很容易确认这一点。如果t e s t返回值为1,则为交互模式。

2008年1月29日星期二

Oracle学习笔记20080128

表7-1 基本元字符集及其含义
^ 只匹配行首
$ 只匹配行尾
* 一个单字符后紧跟
*,匹配0个或多个此单字符
[ ] 匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用 - 表示[ ]内字符序列范围,如用[1-5]代替[12345]\ 只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有 特殊含义。\可以使其失去应有意义.
只匹配任意单字符pattern\{n\} 只用来匹配前面pattern出现次数。n为次数pattern\{n,\} m 只含义同上,但次数最少为npattern\{n,m\} 只含义同上,但pattern出现次数在n与m之间
实例:A\{2\}B出现的AAB,A\{4\}B出现的是AAAAB或AAAAAAAAB

表7-2经常使用的正则表达式举例
^ 对行首
$ 对行尾
^[the] 对以the开头行
[Ss]igna[lL] 对匹配单词signal、signaL、Signal、SignaL[Ss]igna[lL]\. 对同上,但加一句点[mayMAY] 对包含may大写或小写字母的行
^USER$ 对只包含USER的行[tty]$ 对以tty结尾的行\. 对带句点的行^d..x..x..x 对对用户、用户组及其他用户组成员有可执行权限的目录
^[^l] 对排除关联目录的目录列表
[.*0] 对0之前或之后加任意字符
[000*] 对000或更多个
[iI] 对大写或小写I[iI][nN] 对大写或小写i或n
[^$] 对空行[^.*$] 对匹配行中任意字符串
^......$ 对包括6个字符的行[a-zA-Z] 对任意单字符[a-z][a-z]* 对至少一个小写字母
[^0-9\$] 对非数字或美元标识
[^0-0A-Za-z] 对非数字或字母[123] 对1到3中一个数字
[Dd]evice 对单词device或DeviceDe..ce 对前两个字母为De,后跟两个任意字符,最后为ce\^q 对以^q开始行^.$ 对仅有一个字符的行^\.[0-9][0-9] 对以一个句点和两个数字开始的行'"Device"' 对单词deviceDe[Vv]ice\. 对单词Device或device[0-9]\{2\}-[0-9]\{2\}-[0-9]\{4\}对日期格式dd-mm-yyyy[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}\.[0-9]\{3\}对IP地址格式nnn.nnn.nnn.nnn[^.*$]对匹配任意行

tr用来从标准输入中通过替换或删除操作进行字符转换。
tr主要用于删除文件中控制字符或进行字符转换。
使用tr时要转换两个字符串:字符串1用于查询,字符串2用于处理各种转换。tr刚执行时,字符串1中的字符被映射到字符串2中的字符,然后转换操作开始。
带有最常用选项的t r命令格式为:
tr-c-d-s["string1_to_translate_from"]["string2_to_translate_to"] file
这里:-c 用字符串1中字符集的补集替换此字符集,要求字符集为 A S C I I。
-d 删除字符串1中所有输入字符。
-s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
Input-file是转换文件名。虽然可以使用其他格式输入,但这种格式最常用。
字符范围:[a-z] a-z内的字符组成的字符串。[A-Z] A-Z内的字符组成的字符串。[0-9] 数字串。/octal 一个三位的八进制数,对应有效的ASCII字符。[O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
例子,去除重复的字$tr -s "[a-z]" < oops.txt

表12-1 tr中特定控制字符的不同表达方式
速记符 含义 八进制方式
\a Ctrl-G 铃声 \007
\b Ctrl-H 退格符 \010
\f Ctrl-L 走行换页 \014
\n Ctrl-J 新行 \012
\r Ctrl-M 回车 \015
\t Ctrl-I tab键 \011
\v Ctrl-X \030

说实话tr没看懂多少- -

登录环境,在配置oracle的时候我们在oracle用户目录下配置了$oracle_home和$oracle_base当然字母都是大写,在.profile或者.bashrc下面都可以,其他的就也不多讲了stty一般格式为:stty name character
最常用的stty命令使用在下述设置上:
名称 键 含义
intr ^C 终止进程
echo 打开echo功能
-echo 关闭echo功能eof
^D 文件尾;注销kill
^Y 删除一行start
^Q 滚动屏幕文本stop
^S 停止滚动屏幕文本
stty的一个可用选项为:stty -g。此选项允许以可读格式保存stty现有设置,便于以后重置回stty。
环境和shell变量

2008年1月28日星期一

Oracle20080124

awk略过。。实在是看不下去。。下次补上具体的,但是从进程来看,似乎和上面的grep差不多,但是一个是查询一个是显示还是拥有域的概念,多用来显示sql的报表类。今天看的是echo,今天就看一章吧,手头上还有个设计稿。。汗。。为难我了
echo
echo string
echo命令有很多功能,其中最常用的是下面几个:
\c 不换行。
\f 进纸。
\t 跳格。
\n 换行。
你可以echo任何东西,linux系统用-n选项禁止echo输出换行,必须使用-e选项才能使转义符生效:如果想把一个字符串输出到文件中,使用重定向符号 >。或者可以追加到一个文件的末尾,使用重定向符号 >>这意味着不覆盖原有的内容.
echo命令输出这样的字符串:“/dev/rmt0”,那么我们只要在引号前面加上反斜杠\即可:
$ echo "\"/dev/rmt0"\"
可以使用read语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只指定了一个变量,那么read将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回车。
它的一般形式为:read varible1 varible2 ... 例如
$read name tu lei
$echo $name
tu lei

第一个单词将被赋给第一个变量,而由于变量数少于单词数,字符串后面的部分将被全部赋给第二个变量。可以使用多个变量名进行定义。
cat
$ cat myfile more或$ cat myfile pgcat命令的一般形式为:
cat [options] filename1 ... filename2 ...
cat命令最有用的选项就是:-v 显示控制字符
重定义文件至另一文件
$ cat myfile1 myfile2 myfile3 > bigfile
$cat > myfile最后按结束输入即可
管道可以通过管道把一个命令的输出传递给另一个命令作为输入。
管道用竖杠 表示。它的一般形式为:命令1 命令2

tee命令作用可以用字母T来形象地表示。它把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中。如果希望在看到输出的同时,也将其存入一个文件,那么这个命令再合适不过了。
它的一般形式为:tee -a files
其中,- a表示追加到文件末尾。如果不想把输出重定向到文件中,可以不这样做,而是把它定向到某个终端上。
在下面的例子中,一个警告被发送到系统控制台上,表明一个磁盘清理进程即将运行。
$ echo "stand-by disk cleanup starting in 1 minute" tee /dev/console可以让不同的命令使用同一个日志文件,不过不要忘记使用 - a选项。
标准输入标准输入是文件描述符0。它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。
标准输出标准输出是文件描述符1。它是命令的输出,缺省是屏幕,也可以是文件。
标准错误标准错误是文件描述符2。这是命令错误的输出,缺省是屏幕,同样也可以是文件。
command > filename 把把标准输出重定向到一个新文件中
command >> filename 把把标准输出重定向到一个文件中(追加)
command 1 > fielname 把把标准输出重定向到一个文件中
command > filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中
command 2 > filename 把把标准错误重定向到一个文件中
command 2 >> filename 把把标准输出重定向到一个文件中(追加)
command >> filename 2>&1 把把标准输出和标准错误一起重定向到一个文件中 (追加)
command <>filename2 把c o m m a n d命令以f i l e n a m e文件作为标准输入,以 f i l e n a m e 2文件作为标准输出
command < filename 把command命令以filename文件作为标准输入
command << delimiter 把从标准输入中读入,直至遇到delimiter分界符
command <&m 把把文件描述符m作为标准输入
command >&m 把把标准输出重定向到文件描述符m中
command <&- 把关闭标准输入
可以指定命令的标准输入。
在awk一章就会遇到这样的情况。
下面给出一个这样的例子:
$ sort < name.txt在上面的命令中,sort命令的输入是采用重定向的方式给出的,不过也可以直接把相应的文件作为该命令的参数:
$ sort name.txt
在上面的例子中,还可以更进一步地通过重定向为sort命令指定一个输出文件name.out。这样屏幕上将不会出现任何信息(除了错误信息以外):
$ sort name.out在发送邮件时,可以用重定向的方法发送一个文件中的内容。在下面的例子中,用户louise将收到一个邮件,其中含有文件contents.txt中的内容:
$ mail louise < contents.txt
定向操作符command <<>>filename<>123
>345
>MAYDAY
$vim filename123345
MAYDAY的作用就在于结束了该文章的结束
结合错误,上面提到了正确为1,错误为2,那么可以做个条件判断
$cat filename filename1 1>filename.out 2>error.out
exec命令可以用来替代当前shell;换句话说,并没有启动子shell。使用这一命令时任何现有环境都将会被清除,并重新启动一个shell。它的一般形式为:exec command其中的command通常是一个shell脚本。

2008年1月23日星期三

Oracle学习笔记20080122

sed。。没用过。。
先这么学者吧sed是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。标准输入可能是来自键盘、文件重定向、字符串或变量,或者是一个管道的文本。
sed可以做些什么呢?别忘了,Vi(Ubuntu下为vim)也是一个文本编辑器。sed可以随意编辑小或大的文件,有许多sed命令用来编辑、删除,并允许做这项工作时不在现场。sed一次性处理所有改变,因而变得很有效,对用户来讲,最重要的是节省了时间
调用sed有三种方式:
在命令行键入命令;
将sed命令插入脚本文件,然后调用sed;
将sed命令插入脚本文件,并使sed脚本可执行。

使用sed命令行格式为:sed [选项] sed命令 输入文件。
记住在命令行使用sed命令时,实际命令要加单引号。
sed也允许加双引号。使用sed脚本文件,格式为:
sed [选项] -f sed脚本文件
输入文件要使用第一行具有sed命令解释器的sed脚本文件,其格式为:
sed脚本文件 [选项] 输入文件不管是使用shell命令行方式或脚本文件方式,如果没有指定输入文件,sed从标准输入中接受输入,一般是键盘或重定向结果。
sed选项如下:
n 不打印;sed不写编辑行到标准输出,缺省为打印所有行(编辑和未编辑)。
p 命令可以用来打印编辑行。
c 下一命令是编辑命令。使用多项编辑时加入此选项。如果只用到一条sed命令,此选项无用,但指定它也没有关系。
f 如果正在调用sed脚本文件,使用此选项。此选项通知sed一个脚本文件支持所有的sed命令,例如:sed -f myscript.sed input_file,这里myscript.sed即为支持sed命令的文件。

使用sed在文件中查询文本的方式sed浏览输入文件时,缺省从第一行开始,有两种方式定位文本:
1) 使用行号,可以是一个简单数字,或是一个行号范围。
2) 使用正则表达式,怎样构建这些模式请参见第 7章。

x x为一行号,如1x,y 表示行号范围从x到y,如2,5表示从第2行到第5行/pattern/ 查询包含模式的行。例如/disk/或/[a-z]/ /pattern/pattern/ 查询包含两个模式的行。
例如/disk/disks/pattern/,x 在给定行号上查询包含模式的行。
如/ribbon/,3x,/pattern/ 通过行号和模式查询匹配行。3./vdu/x,y! 查询不包含指定行号x和y的行。1,2!

sed编辑命令
p 打印匹配行
= 显示文件行号
a\ 在定位行号后附加新文本信息
i\ 在定位行号后插入新文本信息
d 删除定位行
c\ 用新文本替换定位文本
s 使用替换模式替换相应模式
r 从另一个文件中读文本
w 写文本到一个文件
q 第一个模式匹配完成后推出或立即推出
l 显示与八进制A S C I I代码等价的控制字符
{ } 在定位行执行的命令组n 从另一个文件中读文本下一行,并附加在下一行g 将模式2粘贴到/pattern n/y 传送字符n 延续到下一输入行;允许跨行的模式匹配语句

print命令格式为[address [,address] P。显示文本行必须提供sed命令行号。
address表示行数,单个'2'p,多行则是'1,3p' 只打第二行则是sed -n '2'p ...打单个单词则需要
sed -n '/.../'p filename还可以使用sed -n '4,/.../'p filename 在4行查询一个字字符则需要
sed -n '/\$/'p filename这个字符要打印整个文件,只需将行范围设为第一行到最后一行1,$。
$意为最后一行。sed -n '1,$p' filename匹配任意字母,后跟任意字母的 0次或多次重复,并以ing结尾,模式为/.*ing /。可以使用这个模式查询以ing结尾的任意单词。
sed -n '/.*ing' filename要打印文件第一行,使用行号:sed -n '1p' filename和sed -n '1'p filename效果是一样的
要打印最后一行,使用$。$是代表最后一行的元字符。sed -n '$p' filename和sed -n '$'p filename貌似效果也是一样的
要打印行号,使用等号=。打印模式匹配的行号,使用格式/pattern/ =。如果只打印行号及匹配行,必须使用两个sed命令,并使用e选项。
第一个命令打印模式匹配行,第二个使用=选项打印行号,格式为sed -n -e /pattern/p -e /pattern/=。
要附加文本,使用符号a\,可以将指定文本一行或多行附加到指定行。(这个没有例子发觉比较难)
要创建脚本文件append.sed,输入下列命令:
$pg append.sed#!/bin/sed -f/compand/ a\Then suddenly it happend
推出保存,增加可执行
$chomd u+x append.sed
运行
$append.sed quote.txt
你会发觉第二行有上面then这句话现在查看其具体功能。
第一行是sed命令解释行。脚本在这一行查找sed以运行命令,这里定位在/bin。
第二行以/company /开始,这是附加操作起始位置。a\通知sed这是一个附加操作,首先应插入一个新行。第三行是附加操作要加入到拷贝的实际文本。输出显示附加结果。如果要保存输出,重定向到一个文件。
将sed结果写入其他文件
[address [,address]]w filename$sed '1,2 w filedt' quote.txt

处理文件时,sed允许从另一个文件中读文本,并将其文本附加在当前文件。此命令放在模式匹配行后,格式为:address r filename
有时需要在模式匹配首次出现后退出sed,以便执行其他处理脚本。
退出命令格式为:address q

sed格式为:[address,[address ] ] l‘l’意为列表。一般情况下要列出整个文件,而不是模式匹配行,因此使用 l要从第一到最后一行。模式范围1,$即为此意。
cat -v filename可查看文件有没控制字符,有的话是乱码然后可用sed查看

实例:
假设在一个文档中filename有许多的
12313##DISP##45.13^M
00323##DISP##23.11^M
01299##DISP##34.16^M
可采取以下动作:
1) 用一个空格替换所有的(##)符号。
2) 删除起始域中最前面的0(00)。
3) 删除行尾控制字符(^M)。
任务1。 删除所有的#字符很容易,可以使用全局替换命令。这里用一个空格替换两个或更多的#符号。$sed 's/##*//g' filename
任务2。删除所有行首的0。使用^符号表示模式从行首开始,^0*表示行首任意个0。模式s/^0*//g设置替换部分为空,即为删除模式,正是要求所在。$sed 's/^0*//g' filename
任务3。 最后去除行尾 ^ M符号,为此需做全局替换。设置替换部分为空。模式为:‘s/^m/ /g’,注意‘^M’,这是一个控制字符。要产生控制字符(^M),需遵从前面产生F 键同样的处理过程。步骤如下;键入 sed s/,然后按住键和v键,释放v键,再按住^键,并保持键不动,再释放两个键,最后按键。下面命令去除行尾^M字符。$sed 's/^M//g'filename

以上可以合并
$cat filename sed 's/^0*//g' sed 's/##*//g' sed 's/^M//g'
当从数据库中执行语句输出时,一旦有了输出结果,脚本即可做进一步处理。通常先做一些整理,下面是一个sql查询结果。
database size date created
-----------------------------
gosouth 2244 12/11/97
trisud 5632 8/9/99

为了使用上述输出信息做进一步自动处理,需要知道所存数据库名称,为此需执行以下操作:
1) 使用s/-*/ /g删除横线------。
2) 使用/^$/d删除空行。
3) 使用$d删除最后一行
4) 使用1d删除第一行。
5) 使用awk {print $1}打印第一列。
命令如下$cat filename sed 's/--*//g' sed '/^$/d' sed '$d' sed '1d' awk '{print $1}'
距离去除行首数字$sed 's/^[0-9]//g' filename数字后添加passwd$sde 's/[0-9][0-9]*/& Passwd/g' filename

要从命令行中向sed传值,值得注意的是用双引号,否则功能不执行。
快速命令集
's/\.$//g'删除以句点结尾行
'-e/abcd/d'删除包含abcd的行
's/[][][]*/[]/g'删除一个以上空格,用一个空格代替
's/^[][]*//g'删除行首空格
's/\.[][]*/[]/g'删除句点后跟两个或更多空格,代之以一个空格
'/^$/d'删除空行
's/^.//g'删除第一个字符
's/COL\(...\)//g'删除紧跟COL的后三个字母
's/^\///g'从路径中删除第一个\
's/[]/[]//g'删除所有空格并用tab键替代
'S/^[]//g'删除行首所有tab键
's/[]*//g'删除所有tab键

下一张文件的分割和合并

首先提上来的是sort,在ubuntu下sort了一下,发觉还真有sort命令的一般格式为:
sort -cmu -o output_file [other options] +pos1 +pos2 input_files

下面简要介绍一下sort的参数:
-c 测试文件是否已经分类。
-m 合并两个分类文件。
-u 删除所有复制行。
-o 存储sort结果的输出文件名。

其他选项有:
-b 使用域进行分类时,忽略第一个空格。
-n 指定分类是域上的数字分类。
-t 域分隔符;用非空格或t a b键分隔域。
-r 对分类次序或比较求逆。
+n n为域号。使用此域号开始分类。
n n为域号。在分类比较时忽略此域,一般与+n一起使用。
post1 传递到m,n。m为域号,n为开始分类字符数;

例如4,6意即以第5域分类,从第7个字符开始。

缺省情况下,sort认为一个空格或一系列空格为分隔符。要加入其他方式分隔,使用-t选项。
sort执行时,先查看是否为域分隔设置了- t选项,如果设置了,则使用它来将记录分隔成域0、域1等等;如果未设置,用空格代替。缺省时sort将整个行排序,指定域号的情况例外。
使用sort -c 查看sort文件是否按某种顺序分类基本的用
sort -t: filename
分类求逆sort -t: -r filename
按指定域分类sort -t: +1 filename 0
定义域从0开始算数值域分类sort -t:+3n filename
数值键的键位值唯一性分类sort -u filename去除重复的使用k
做分类键排序sort -t: -r -k4 -k1 filenamesort +0 -2 +3该命令以域0分类,忽略2,在用3分类可使用值得特定位数sort -t:+1.2 filename

排序后可使用head和tail进行罗列
合并sort -m sorted_file1 sorted_file2使用-m+o。将这个文件并入已存在的分类文件video.sort,要以名称域进行分类,实际上没有必要加入+o,但为了保险起见,还是加上的好。sort -t: -m +0 filename1 filename

系统sort$cat passwd sort -t: +0 awk -F":" '{print $1}'

uniq的用法
uniq用来从一个文本文件中去除或禁止重复行。一般uniq假定文件已分类,并且结果正确。
命令一般格式:uniq -u d c -f input-file output-file
其选项含义:
-u 只显示不重复行。
-d 只显示有重复数据行,每种重复行只显示其中一行
-c 打印每一重复行出现次数。
-f n为数字,前n个域被忽略。一些系统不识别-f选项,这时替代使用-n。

join的用法
join用来将来自两个分类文本文件的行连在一起。
join[options] input-file1 input-file2an n为一数字,用于连接时从文件 n中显示不匹配行。
例如,-a1显示第一个文件的不匹配行,-a2为从第二个文件中显示不匹配行。
o n.m n为文件号,m为域号。
1.3表示只显示文件1第三域,每个n,m必须用逗号分隔,如1.3,2.1。j n m n为文件号,m为域号。使用其他域做连接域。t 域分隔符。用来设置非空格或tab键的域分隔符。例如,指定冒号做域分隔符 - t:。

使用1.1显示第一个文件第一个域,2.2显示第二个文件第二个域,其间用逗号分隔。
$join -o 1.1,2.2 filename,filename2

使用-jn m进行其他域连接,例如用文件1域3和文件域2做连接键,命令为:
join -j1 3 -j2 2 file1 file2

cut用法cut
用来从标准输入或文本文件中剪切列或域。剪切文本可以将之粘贴到一个文本文件。
cut一般格式为:
cut[options]file1file2下面介绍其可用
选项:
-c list指定剪切字符数。
-f field指定剪切域数。
-d 指定与空格和tab键不同的域分隔符。
-c 用来指定剪切范围,如下所示:-c1,5-7剪切第1个字符,然后是第5到第7个字符。-c1-50剪切前50个字符。-f格式与-c相同。-f1,5剪切第1域,第5域。-f1,10-12剪切第1域,第10域到第12域。
使用域分隔符文件中使用冒号“:”为域分隔符,故可用- d选项指定冒号,如- d:。如果有意观察第3域,可以使用-f3。要抽取I D域。可使用命令如下:$cut -d: -f3 pers

paste格式为;
paste -d -s -file1 file2-d
类似于t选项后面制定分割标签,-s为横向粘帖选项含义如下:-d 指定不同于空格或t a b键的域分隔符。例如用@分隔域,使用- d @。-s 将每个文件合并成行而不是按行粘贴。- 使用标准输入。例如ls -l paste ,意即只在一列上显示输出。
paste命令还有一个很有用的选项(-)。意即对每一个(-),从标准输入中读一次数据。使用空格作域分隔符,以一个4列格式显示目录列表。方法如下:ls paste -d" " - - - -按一行四列ls paste -d" " -按一行一列

split用来将大文件分割成小文件。有时文件越来越大,传送这些文件时,首先将其分割可能更容易。使用vi或其他工具诸如sort时,如果文件对于工作缓冲区太大,也会存在一些问题。因此有时没有选择余地,必须将文件分割成小的碎片。
split命令一般格式:split -output_file-size input-filename output-filename

grep一般格式为:
grep [选项]基本正则表达式[文件]这里基本正则表达式可为字符串。

在grep命令中输入字符串参数时,最好将其用双引号括起来。在调用变量时,也应该使用双引号,在调用模式匹配时,应使用单引号
常用的grep选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信
-v 显示不包含匹配文本的所有行。

如果要在当前目录下所有.doc文件中查找字符串“sort”,方法如下:
$ grep "sort"*.doc或在所有文件中查询单词“sort it”$ grep "sort it" *

自己的例子
$grep -c "acl" squid.conf$137返回值
$grep "acl" squid.conf$grep -n "acl" squid.conf显示带的行数
$grep -v "acl" squid.conf显示非查询行数

在精确匹配下可以加入表示点击tab键使用grep抽取精确匹配的一种更有效方式是在抽取字符串后加 \>。
缺省情况下,grep是大小写敏感的,如要查询大小写不敏感字符串,必须使用 - i开关。
模式查找可以套用[],其非可以使用^记号,根据[]有很多种变化可以使用不一一详解
出现几率抽取包含数字4至少重复出现两次的所有行,方法如下$grep '4\{2,\}' filename

grep命令加-E参数,这一扩展允许使用扩展模式匹配。例如,要抽取城市代码为 219或216,方法如下:$grep -E '219216' filename
空行结合使用^和$可查询空行。使用-n参数显示实际行数:
$ grep '^$' squid.conf
$ grep -c '^$' squid.conf

特殊字符需要'\特殊字符'类名
类 等价的正则表达式 类 等价的正则表达式
[[:upper:]] [A-Z] [[:alnum:]] [0-9a-zA-Z]
[[:lower:]] [a-z] [[:space:]] 空格或tab键
[[:digit:]] [0-9] [[:alpha:]] [a-zA-Z]

如果要查询目录列表中的目录,方法如下
:$ls -l grep '^d'如果在一个目录中查询不包含目录的所有文件,方法如下:
$ls -l grep '^[^d]'要查询其他用户和其他用户组成员有可执行权限的目录集合,方法如下:
$ls -l grep '^d.....x..x'

后面继续awk...发觉D盘有这么个文章,但是似乎从来没看过。。
不知道是不是我放的有三种方式调用awk,
第一种是命令行方式,如:awk [-F field-separator] 'commands' input-file(s)上面例子中,[ - F域分隔符]是可选的,因为a w k使用空格作为缺省的域分隔符,因此如果要浏览域间有空格的文本,不必指定这个选项,但如果要浏览诸如 passwd文件,此文件各域以冒号作为分隔符,则必须指明-F选项(类似于前面所讲的-d:和-t:)
第二种方法是将所有awk命令插入一个文件,并使awk程序可执行,然后用awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。
第三种方式是将所有的awk命令插入一个单独文件,然后调用:awk -f awk-script-file input-file(s)