05 2007

sc.exe命令功能列表

Posted by Yangybcy in Microsoft

:  注:以下命令中。=号后面都有一个空格,=号前面没有空格!

 1.更改服务的启动状态(这是比较有用的一个功能)   

  2.删除服务(除非对自己电脑的软、硬件所需的服务比较清楚,否则不建议删除任何系统服务,特别是基础服务)  

  3.停止或启动服务(功能上类似于net stop/start,但速度更快且能停止的服务更多)

  具体的命令格式如下:  

  修改服务启动类型的命令行格式为(特别注意start=后面有一个空格)  

  sc config 服务名称 start= demand(设置服务为手动启动)   

  sc config 服务名称 start= disabled(设置服务为禁用)   

  停止/启动服务的命令行格式为   

  sc stop/start 服务名称   

  注意:平时常接触的都是服务的显示名称,而以上所指是服务名称,都可以在控制面板->管理工具->服务里面,双击对应的服务来查询。  

  先举例说明一下具体的设置方法:   

  如设置远程注册表服务为手动其格式为   

  sc config RemoteRegistry start= demand   

  设为禁用的格式为:

  sc config RemoteRegistry start= disabled   

  停止服务则格式为:   

  sc stop RemoteRegistry   

  首先把自己所需设置的服务名称查到之后,按照上面的格式做成批处理文件,重装系统之后只要运行批处理文件即可。  

  以下是我的设置,以XpSp2为蓝本,可比对所用的系统进行增删和修改。注:未加入XpSp2的自动更新、安全中心、防火墙。 

  sc config Alerter start= demand   

  sc config TrkWks start= demand   

  sc config helpsvc start= demand   

  sc config policyAgent start= demand   

  sc config dmserver start= demand   

  sc config WmdmpmSn start= demand   

  sc config Spooler start= demand   

  sc config RemoteRegistry start= demand   

  sc config NtmsSvc start= demand   

  sc config seclogon start= demand   

  sc config Schedule start= demand   

  sc config WebClient start= demand   

  sc config W32Time start= demand   

  sc config WZCSVC start= demand

  sc config ERSvc start= demand   

  sc config Themes start= demand   

  sc config FastUserSwitchingCompatibility start= disabled   

  sc config Messenger start= disabled   

  sc config protectedStorage start= disabled

  sc config SSDpSRV start= disabled   

  sc config TermService start= disabled   

  sc config ShellHWDetection start= disabled   

  如果需要立即关闭服务也可把以下代码跟在上面的代码之后

  sc stop W32Time   

  sc stop ShellHWDetection   

  sc stop TrkWks

  sc stop helpsvc

  sc stop dmserver

  sc stop policyAgent   

  sc stop Spooler   

  sc stop RemoteRegistry   

  sc stop seclogon   

  sc stop Schedule   

  sc stop WZCSVC

  sc stop ERSvc   

  sc stop Themes   

  sc stop FastUserSwitchingCompatibility   

  sc stop protectedStorage   

  sc stop SSDpSRV   

  sc stop WebClient   

  最后把修改好之后的代码存为services.cmd,在以后进行服务设置时,直接运行事先保存好的批处理文件就可以做到事半功倍了。  

  看到这里,使用Win2000的朋友也不必失望,sc.exe这个命令行工具对Win2000同样适用,可从装有WinXp或者Win2003的机器里面拷贝sc.exe文件,与保存好的批处理文件放在一起,然后执行批处理文件即可。  

  对注册表比较熟悉的朋友可能会想到用注册表来设置服务的启动类型,这也是一种可行的方法,本身却有着内在不足。原因是服务启动类型在注册表中对应的键值较长且分散,进行整理不方便直观且易错漏,所以这种方法比较适用于无人值守的安装时使用。

附常用服务操作:

@echo off
echo "正在配置Computer browser服务"
sc config Browser start= demand
sc stop Browser

echo "正在配置DHCP服务"
sc config Dhcp start= demand
sc stop Dhcp

echo "正在配置Error Reporting Service服务"
sc config ERSvc start= demand
sc stop ERSvc

echo "正在配置Help and Support服务"
sc config helpsvc start= demand
sc stop helpsvc

echo "正在配置Print spooler服务"
sc config Spooler start= demand
sc stop Spooler

echo "正在配置Remote Registry服务"
sc config RemoteRegistry start= demand
sc stop RemoteRegistry

echo "正在配置 Server 服务"
sc config lanmanserver start= demand
sc stop lanmanserver

echo "正在配置Task Scheduler服务"
sc config Schedule start= demand
sc stop Schedule

echo "正在配置 TCP/IP NetBIOS Helper 服务"
sc config LmHosts start= demand
sc stop LmHosts

echo "正在配置Wireless Configureation 服务"
sc config WZCSVC start= demand
sc stop WZCSVC

收藏与分享
01 2007

使用两个简单命令来匹配进程和TCP连接

Posted by Yangybcy in 电脑网络

      在许多情况下,我下面所介绍的这种方法有助于识别TCP连接和一台计算机上哪个进程相关联。根据这些关联信息,你可以决定一个TCP连接是有效的还是未被授权的,也可以决定是否应该断开一个已经被激活了很长时间的TCP连接,或者可以用来解决其他类型的问题。
      你可以使用两个简单的命令来快速地将TCP连接和进程相匹配。首先,使用下面的Netstat命令:
                   netstat –aenos –p tcp
      在输出中,你需要查找处于活动的TCP连接的部分。如图1所示,这个部分包括了“Foreign Address”,“State”和“PID”列。“”列包含了和本地计算机建立TCP连接的IP地址和端口(出现在冒号后面)。“State”列说明了当Netstat命令执行时的连接状态。“PID”列显示了和TCP连接相关的进程标识符(PID)。

图1:Netstat命令输出的活动连接部分样本
PID是你想要寻找的信息,但是很少有人能通过标识符来识别一个进程。为了知道进程的名字,你可以运行下面的Tasklist命令:
Tasklist /v /fo List /fi ”pid eq xxx”
Xxx指的是PID。如图2所示,输出包括了进程的图像名(例如:iexplore.exe)和窗口标题(例如:Microsoft Internet Explorer)。
图2:Tasklist命令输出的样本

……

收藏与分享
09 2007

思科华为V10-2

Posted by Yangybcy in CISCO

No.2
An administrator is configuring a Catalyst switch with VLAN information that
must be automatically distributed to other Catalyst switches in the network.
What  conditions  must be met in order for the VLANs configured on this
switch to be automatically  configured on the other switches?(Choose-three.)
A.The Switch that will share its VLAN configuration must be in VTP server
mode.
B.The switches must be in the same VTP domain.
C. The switch that will share the VLAN information  must  be configured as
root bridge.
D.The   switches must be connected over VLAN trunks
E. The switches must be configured  to use   the same STP version·
F.The switches must have VTP pruning activated.

答案:
ABD
考题分析:
本题目考察对 VTP协议的掌握,以及 VLAN之间互连时应该注意的事项,ABD
三个选项是必须记住的细节。

 

 

3.Refer to the topology and configuration  information shown in the graphic. The
router has been configured to provide communication beteween the
VLANs.which IOS commands are required to configure switch port fa0/1 to
estabilsh a link with router R1 using   the IEEE standard protocol (Choose
three)

A.Switch(config)#interface fastethernet 0/1
B.Switch(config-if}#switchport mode access
C.Switchf(config-if)#switchport mode trunk
D.Switch(config-if)#switchpart access vfan 1
E.Switch(config-if)#switchport trunk encapsulation Isl
F.Switch(config-if)#switchport trunk encapsulation dot1q

 

 

答案:
ACF
考题分析:
本题目考察的是中继端口配置时的细节和相关步骤, 以及封装的协议。

 

 

 

No.4
Why would a network administrator configure port security on a switch?
A. to prevent unauthorized Telnet access    to a switch port
B. to limit the number of layer 2 broadcasts on a particular switch port
C. to prevent unauthorized hosts from accessing the LAN
D,to  protect the IP and MAC address of the switch and associated ports
E. to block  unauthorized access to  the switch management interfaces over
common TCP ports

答案:
C
考题分析:
我们可以将交换机的端口设置成一种认证的模式,也就是说,只能接经过认证
的主机。这么做的目的就是提高安全性。

 

 

 

No.5
How can an administrator determine If a router has been configured when It Is
first powered up?
A.A configured router prompts for a password.
B.A configured router goes to the privlleged mode prompt
C. An unconfigured router goes into the setup dialog
D. An unconfigured route r goes to the enable mode prompt
 
 
 
 
 
 
 
 
答案:
C
答案解析:
当一个路由器第一次开机的时候,因为没有配置文件,所以会进入设置模式,
进行初次设置。

 

No.6
What value is primarily used to determine which port becomes the root port on
each nonroot switch in a spanning 一 tree topology?
A. path cost
B. lowest port MAC address
C. VTP revision number
D. highest port priority number
E. port priority number and MAC address

答案:
A
答案解析:
这道题目问的是对交换机设置根端口的时候优先使用的值是什么?路径的度量
值是必须优先考虑的。

 

 

No.7
Refer to the exhibit. Haw can a network administrator ensure that the STP
election process would result in    Switch B being elected as root  switch?
 
A. Clear the Switch B STP revision number.
B. Assign Switch B a low priority number
C. Increase the Switch B priority number.
D. Change the MAC address of Switch B.

答案:
B
答案解析:
在一个交换网络中,交换机的优先级数字越小,越容易成为根交换机。

收藏与分享
04 2007

CCNA 神州TEST 640-801V10

Posted by Yangybcy in CISCO

No.1
Refer to the exhibit. Which ports could safely be configured with PortFast?
(Choose two)
 
A. Switch1-port Fa1/2
B. Switch2-port Fa1/2
C. Switch1-port Fa1/3
D.Switch2-port Fa1/3
E. Switch1-port Fa1/1
F.Switch2-post Fa1/1

答案:
CD
考题分析:
在交换机上只有连接电脑的端口是可以被看成是 SAFELY 的,所以只有 CD。
这是一个新的考点,SAFELY 其实指的是端口的一种状态,及树端口,树端口
是不能接交换机的,只能接主机,这样做的目的是防止在交换机中产生环路。
因为树端口可以使 STP协议无效。

收藏与分享
29 2007

如何制作大容量U盘PE多功能启动盘教程(方法简单、实用)

Posted by Yangybcy in 电脑网络

[size=2]如何制作大容量U盘PE多功能启动盘教程(方法简单、实用)
(wwx169)
本大容量U盘启动盘是在先制作DOS启动盘的基础上,将微型WinPE(by老毛桃)、Win故障恢复控制台、矮人dos工具箱、DM9.75、PQ分区魔术师DOS版、KV2006 DOS杀毒伴侣、效率源硬盘修复、GDISK单硬盘快速分区、系统测试等集成到U盘中。U盘采用USB-zip方式启动。启动后的菜单如下(图片不完全准确):
1、启动矮人dos工具箱V5.0
2、启动PQ分区魔术师双语版
3、启动DM9.75
4、启动HWINFO系统测试
5、启动硬盘再生器
6、启动微型WIN-PE(by老毛桃)
7、启动故障恢复控制台
8、清除2000/XP密码
9、启动KV2006 DOS杀毒伴侣(2006-12-31)
10、效率源硬盘修复
11、GDISK单硬盘快速分区
12、清除CMOS密码
[

一、微型WinPE内置的工具列表。
1.ERDCMD2003汉化版(开锁工、注册表编辑器、计算机管理、系统还原);
2.诺顿克隆(GHOST32.EXE、GHOSTEXP.EXE)均为8.3版;
3.文件工具(WINRAR V3.5、WINMD5 V1.2);
4.磁盘工具(WinPM、Virtual Drive Manager);
5.中文输入法(极点中文,拼音加加);
6.Windows附件保留(计算器、画图、记事本)。
1、微型WinPE启动后见下图:

2、矮人dos工具箱启动后的菜单如下:



本启动盘使用的U盘为2GB的金士顿闪存U盘。在本人的华硕笔记本(A3AC型)上测试通过。
二、U盘启动盘的制作:
1、制作DOS启动U盘:
采用FshB00t软件,通常可制作两种模式(USB-HDD和USB-ZIP)的DOS启动盘,具体如下:
打开FlashB00t(软件见附件1)如图:
选择“创建带迷你的DOS系统的可启动闪存盘”


如果没有现成的DOS软盘镜像,就选择“使用内置的FreeDOS”,
用软件自带的DOS镜像 文件来制作启动U盘。



选择USB-ZIP启动模式:(也可选择USB-HDD模式,以电脑确认为主)


2、U盘启动盘的制作:
按照以上步骤完成DOS启动盘制作后,并选择USB-ZIP模式,只要能从电脑引导启动后。
然后,再下载“USB-ZIP-WinPE.rar压缩包”(见附件2),把里面的文件释放到U盘的根目录下即可,注意一定是U盘的根目录!哇哇!够简单了吧!
3、U盘启动盘的使用:
将U盘插入USB口(最好将其他的USB设备暂时拔掉),重启电脑,在系统自检的界面上按Del键进入BIOS设置,
进入BIOS FEATURES SETUP中,将Boot Sequence(启动顺序)设定为USB-ZIP第一。设定好后按ESC一下,退回BIOS主界面,选择Save and Exit回车确认退出BIOS设置。电脑重启后就会出现主菜单。这样你就可以随心所欲地使用主菜单提供的各种程序了,就是不懂DOS也不怕,PE会让你用起来更方便。OK,这就是到目前为止,制作大容量、多功能U盘启动盘的最实用、最简单的方法啦!
此外,有少数主板不认USB-ZIP模式,只认USB-HDD模式,但是仍然启动不了,只需下载安装USB-HDD补丁即可啦。
软件容量太大,到我的网络U盘:http://my.mofile.com/wwx169

"WWX169共享文档–共享天地"下提取吧!
1、附件一flashboot.rar
2、附件二USB-ZIP-WinPE.rar
3、USB-HDD补丁.rar

收藏与分享
11 2007

在redhat,fedora3,fedora4和centOS4.x上安装vhcs2

Posted by Yangybcy in Linux

好多朋友在问我,怎么在redhat9,fedora3,fedora4以及centOS上安装vhcs2。
就写了这篇文章,希望对大家有用,感谢支持我的朋友们!


在redhat,fedora3,fedora4和centOS4.x上安装vhcs2的步骤:

1.装redhat系统时,对于新手来说,建议在装系统时选择everything,把所有的rpm包都装上。并且不要用启用SElinux
如果你是老鸟,那就另当别论了~ ~。

2.我建议用redhat的apt来安装,这样对于以后装其他的都容易点。
wget http://ftp.freshrpms.net/pub/fre … 1.1.fc3.fr.i386.rpm
rpm -Uvh apt-0.5.15cnc6-1.1.fc3.fr.i386.rpm
apt-get update
apt-get dist-upgrade

3.运行:apt-get install  php-pear php-imap php-gd ncftp \
                         bind libmcrypt libmcrypt-devel \
                         libmcrypt libmcrypt-devel \
                         libxslt-devel libjpeg-devel libpng-devel \
                         freetype-devel libc-client-devel php-imap \
                         php-snmp net-snmp-devel



4.修改/etc/fstab系统支持quota
例如:把LABEL=/   /   ext3    defaults    1 1修改成:
        LABEL=/   /   ext3    defaults,usrquota     1 1
# touch /aquota.user
# chmod 600 /aquota.user
# mount -o remount /
# quotacheck -avugm


5.安装ftp服务proftpd:

wget ftp://ftp.ibiblio.org/pub/mirror … oftpd-1.2.10.tar.gz
tar zxvf proftpd-1.2.10.tar.gz
mv proftpd-1.2.10 proftpd
cd /usr/local/proftpd
./configure \
–sysconfdir=/etc \
–localstatedir=/var \
–prefix=/usr \
–with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql \
–with-includes=/usr/include/mysql \
–with-libraries=/usr/lib/mysql
make
make install

6.redhat安装vhcs2时,一般都必须安装perl的一些模块:

# perl -MCPAN -e shell
After configuring CPAN ( multiple prompts ), install the following modules:
cpan> install MIME::Entity MIME:arser MIME::Base64 Crypt::CBC Crypt::Blowfish Term::ReadPassword

7.安装openssl-perl:
apt-get install openssl-perl*    #不安装的话,将会在安装courier时出现错误。


8.如果要自己重新编译安装php的话,使用下面命令:
cd /usr/local/
wget http://us2.php.net/distributions/php-4.3.10.tar.bz2
tar xjvf php-4.3.10.tar.bz2
mv php-4.3.10 php
cd php
./configure \
–with-mysel –with-pgsql –with-mcrypt=/usr/lib \
–build=i386-redhat-linux –target=i386-redhat-linux-gnu \
–with-jpeg –with-openssl –with-png \
–with-pear –with-calendar –with-xml \
–with-ftp –with-freetype –with-bz2 –with-iconv \
–sysconfdir=/etc –mandir=/usr/share/man \
–enable-sockets –enable-calendar –enable-bcmath \
–enable-ctype –enable-exif –enable-filepro \
–enable-ftp –enable-memory-limit \
–enable-sigchild –enable-magic-quotes \
–enable-yp –enable-track-vars \
–with-apxs2=/usr/sbin/apxs
make  
make instal

也可以使用系统自己安装配置的php。


9.安装cyrus-sasl:

# cd /usr/local/
# wget ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/cyrus-sasl-2.1.20.tar.gz
# tar xvfz cyrus-sasl-2.1.20.tar.gz
# mv cyrus-sasl-2.1.20 cyrus-sasl
# cd cyrus-sasl
#./configure
# make                
# make install
# ln -s /usr/local/lib/sasl2 /usr/lib/sasl2
# perl -pi.bak -e "s/saslauthd/auxprop/g" /usr/local/lib/sasl2/smtpd.conf

10.安装postfix服务:

# wget http://postfix.energybeam.com/so … ostfix-2.2.1.tar.gz
# tar xvfz postfix-2.2.1.tar.gz
# mv postfix-2.2.1 /usr/local/postfix
# cd /usr/local/postfix
# make makefiles CCARGS="-DUSE_SASL_AUTH -I/usr/local/include/sasl" \
# AUXLIBS="-L/usr/local/lib -lsasl2"
# make
# make install

10.安装Courier-pop3d,imapd和authd:
# cd /usr/local/
# wget http://internap.dl.sourceforge.n … uthlib-0.55.tar.bz2
# tar xjvf courier-authlib-0.55.tar.bz2
# mv courier-authlib-0.55 courier-authlib
# cd /usr/local/courier-authlib
# ./configure –with-redhat –disable-root-check \
–with-mailuser=courier –with-mailgroup=courier
# make
# make install
# make install-configure
# groupadd courier

11.安装courier:

# useradd -c 'Courier Mail Server' -d /dev/null -g courier -s /bin/false courier
# cd /usr/local
# wget http://unc.dl.sourceforge.net/so … rier-0.49.0.tar.bz2
# tar xjvf courier-0.49.0.tar.bz2
# mv courier-0.49.0 courier
# cd /usr/local/courier
# ./configure –with-redhat –disable-root-check \
–with-mailuser=courier –with-mailgroup=courier \
–with-db=gdbm
# make
# make install
# make install-configure

12.做一些脚本的连接工作:

# echo 'su -c "/usr/lib/courier/share/sqwebmail/cleancache.pl" bin' >> /etc/cron.hourly/courier.cron
# touch /usr/local/etc/authlib/userdb
# chown daemon /usr/local/etc/authlib/userdb
# chgrp daemon /usr/local/etc/authlib/userdb
# chhmod 600 /usr/local/etc/authlib/userdb
# ln -s /usr/lib/courier/sbin/webmaild /etc/init.d
# echo '/usr/local/sbin/authdaemond start' >> /etc/rc.local
# echo '/usr/lib/courier/sbin/courier start' >> /etc/rc.local
# echo '/usr/lib/courier/sbin/pop3d start' >> /etc/rc.local
# echo '/usr/lib/courier/sbin/imapd start' >> /etc/rc.local

# ln -s /usr/libexec/postfix /usr/lib/postfix
# ln -s /usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE/libperl.so /lib/
# cp -p /usr/local/courier/rfc822/rfc822.h /usr/local/include/

# service named start    #把bind启动起来
# ln -s /etc/httpd /etc/apache2
# adduser www-data   新建网站用户


13.修改$home/engine/vhcs2.conf文件:

SERVER_HOSTNAME = <YOUR HOST NAME>
BASE_SERVER_IP = <YOUR IP ADDDRESS>
DATABASE_PASSWORD = <YOUR MYSQL PASSWORD>
BIND_CONF_FILE = /usr/sbin/apachectl
BIND_DB_DIR = /var/named/
BIND_DB_DIR = /var/named/
APACHE_CMD = /etc/rc.d/init.d/httpd
APACHE_NAME = httpd
APACHE_LOG_DIR = /var/log/httpd
APACHE_USERS_LOG_DIR = /var/log/httpd/users
APACHE_BACKUP_LOG_DIR = /var/log/httpd/backup
APACHE_CONF_FILE = /etc/httpd/sites-available/vhcs2.conf
APACHE_USER = apache
APACHE_GROUP = apache
MTA_SASLDB_FILE = /etc/sasldb2
MTA_SA
SLDB_PASSWD2 = /usr/sbin/saslpasswd2
CMD_MAKEUSERDB = /usr/local/sbin/makeuserdb
CMD_NAMED = /etc/init.d/named
CMD_HTTPD = /etc/init.d/httpd
MAIL_TRAFF_LOG = maillog


14.tar xvjf vhcs2.4.tar.bz2 cd ./vhcs-2.4 make install


15.因为刚才将所有的文件生成到 /tmp/vhcs2下面了
cp -R /tmp/vhcs2/etc/* /etc/
cp -R /tmp/vhcs2/var/* /var/
cp -R /tmp/vhcs2/usr/* /usr/

改变MySQL的数据库管理员密码
mysqladmin -u root -p password "new password here"然后运行配置脚本
/var/www/vhcs2/engine/setup/vhcs2-setup会问你几个问题,如密码,IP等


16.编辑apache2的配置文件,将vhcs2.conf的配置包含进去
pico /etc/apache2/httpd.conf加到最后一行

Include /etc/apache2/sites-available/vhcs2.conf重新启动apache

/etc/init.d/apache2 restart9.将vhcs的服务加到启动脚本
update-rc.d vhcs2_daemon defaults update-rc.d vhcs2_network defaults

17.运行下面的命令:

echo 'include /etc/httpd/sites-available/vhcs2.conf' >> /etc/httpd/conf/httpd.conf
cd /etc/vhcs2/bind/parts/
cp -p cfg_entry.tpl cfg_entry.tpl.bak
perl -pi.bak -e "s/\{DB_DIR\}\/\{DMN_NAME\}\.db/\{DMN_NAME\}\.db/g" cfg_entry.tpl
perl -pi.bak -e "s/0700/0755/g" /var/www/vhcs2/engine/vhcs2-*

18.需要建立下面的脚本:/etc/init.d/vhcs2内容如下:

<——————- CUT HERE———————->
#!/bin/bash
# description: Start or stop the vhcs2 daemon
#
### BEGIN INIT INFO
# Provides: vhcs2
# Required-Start: $network $syslog
# Required-Stop: $network
# Default-Start: 2 3 5
# Default-Stop: 0 1 6
# Description: Start or stop the vhcs2 daemon
### END INIT INFO

# Source function library.
. /etc/rc.d/init.d/functions

name='vhcs2'
lockfile=/var/lock/subsys/vhcs2
conffile=/etc/vhcs2/vhcs2.conf
pidfile=/var/run/vhcs2.pid
daemon=/var/www/vhcs2/daemon/vhcs2_daemon
name=vhcs2_daemon
RETVAL=0
start() {
        echo -n $"Starting $prog: "
        daemon "$daemon -p $pidfile"
        RETVAL=$?
        if ?"$RETVAL" = "0"; then
                touch $lockfile
        fi
        echo
}
stop() {
        echo -n $"Stopping $prog: "
        killproc $daemon -TERM
        RETVAL=$?
        if ?"$RETVAL" = "0"; then
                rm -f $lockfile
        fi
        echo
}

case "$1" in
'start')
        start
        ;;
'stop')
        stop
        ;;
'status')
        status $daemon
        ;;
'restart')
        stop
        start
        ;;
*)
        echo "Usage: $0 { start | stop | restart }"
        RETVAL=1
        ;;
esac

exit $RETVAL
<——————- CUT HERE———————->


其实在redhat9,fedora3,fedora4和centOS4.x上安装都是很相似的,都可以按照上面的方法来做。

本人已经成功的在redhat9,fedora3,fedora4和centOS4.x成功的配置vhcs2这个开源的系统。

收藏与分享
11 2007

Linux 进程管理

Posted by Yangybcy in 电脑网络

作者:北南南北
来自:LinuxSir.Org
摘要:本文讲述的时进程管理的基本概念和进程管理工具介绍;文中的重点对进程管理工具的分类介绍及应用举例,包括 ps、pgrep、top 、kill、pkill、killall、nice和renice 等工具。

目录


++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++


1、程序和进程;

程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。

一个运行着的程序,可能有多个进程。 比如 LinuxSir.Org 所用的WWW服务器是apache服务器,当管理员启动服务后,可能会有好多人来访问,也就是说许多用户来同时请求httpd服务,apache服务器将会创建有多个httpd进程来对其进行服务。


1.1 进程分类;

进程一般分为交互进程、批处理进程和守护进程三类。

值得一提的是守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动。比如在Fedora或Redhat中,我们可以定义httpd 服务器的启动脚本的运行级别,此文件位于/etc/init.d目录下,文件名是httpd,/etc/init.d/httpd 就是httpd服务器的守护程序,当把它的运行级别设置为3和5时,当系统启动时,它会跟着启动。

 

[root@localhost ~]# chkconfig --level 35 httpd on

 

由于守护进程是一直运行着的,所以它所处的状态是等待请求处理任务。比如,我们是不是访问 LinuxSir.Org ,LinuxSir.Org 的httpd服务器都在运行,等待着用户来访问,也就是等待着任务处理。


1.2 进程的属性;

进程ID(PID):是唯一的数值,用来区分进程;
父进程和父进程的ID(PPID);
启动进程的用户ID(UID)和所归属的组(GID);
进程状态:状态分为运行R、休眠S、僵尸Z;
进程执行的优先级;
进程所连接的终端名;
进程资源占用:比如占用资源大小(内存、CPU占用量);


1.3 父进程和子进程;

他们的关系是管理和被管理的关系,当父进程终止时,子进程也随之而终止。但子进程终止,父进程并不一定终止。比如httpd服务器运行时,我们可以杀掉其子进程,父进程并不会因为子进程的终止而终止。

在进程管理中,当我们发现占用资源过多,或无法控制的进程时,应该杀死它,以保护系统的稳定安全运行;


2、进程管理;

对于Linux进程的管理,是通过进程管理工具实现的,比如ps、kill、pgrep等工具;


2.1 ps 监视进程工具;

ps 为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用top工具;


2.1.1 ps 的参数说明;

ps 提供了很多的选项参数,常用的有以下几个;

l  长格式输出;
u  按用户名和启动时间的顺序来显示进程;
j  用任务格式来显示进程;
f  用树形格式来显示进程;
a  显示所有用户的所有进程(包括其它用户);
x  显示无控制终端的进程;
r  显示运行中的进程;
ww 避免详细参数被截断;

我们常用的选项是组合是aux 或lax,还有参数f的应用;

ps aux 或lax输出的解释;

USER	进程的属主;
PID	进程的ID;
PPID  父进程;
%CPU	进程占用的CPU百分比;
%MEM	占用内存的百分比;
NI	   进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 进程虚拟大小;
RSS  驻留中页的数量;
WCHAN
TTY  终端ID
STAT 进程状态
    D Uninterruptible sleep (usually IO) R 正在运行可中在队列中可过行的; S 处于休眠状态; T 停止或被追踪; W 进入内存交换(从内核2.6开始无效); X 死掉的进程(从来没见过); Z 僵尸进程; < 优先级高的进程 N 优先级较低的进程 L 有些页被锁进内存; s 进程的领导者(在它之下有子进程); l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) + 位于后台的进程组;
WCHAN 正在等待的进程资源; START 启动进程的时间; TIME 进程消耗CPU的时间; COMMAND 命令的名称和参数;


2.1.2 ps 应用举例;

实例一:ps aux 最常用

 

[root@localhost ~]# ps -aux |more

 

可以用 | 管道和 more 连接起来分页查看;

 

[root@localhost ~]# ps -aux > ps001.txt
[root@localhost ~]# more ps001.txt

 

这里是把所有进程显示出来,并输出到ps001.txt文件,然后再通过more 来分页查看;

实例二:和grep 结合,提取指定程序的进程;

 

[root@localhost ~]# ps aux |grep httpd
root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd
apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 /usr/sbin/httpd
apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 /usr/sbin/httpd
root 4480 0.0 0.0 5160 708 pts/3 R+ 12:20 0:00 grep httpd

 

实例二:父进和子进程的关系友好判断的例子

 

[root@localhost ~]# ps auxf |grep httpd
root 4484 0.0 0.0 5160 704 pts/3 S+ 12:21 0:00 \_ grep httpd
root 4187 0.0 1.3 24236 10272 ? Ss 11:55 0:00 /usr/sbin/httpd
apache 4189 0.0 0.6 24368 4940 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4190 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4191 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4192 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4193 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4194 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4195 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd
apache 4196 0.0 0.6 24368 4932 ? S 11:55 0:00 \_ /usr/sbin/httpd

 

这里用到了f参数;父与子关系一目了然;


2.2 pgrep

pgrep 是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。在服务器的配置和管理中,这个工具常被应用,简单明了;

用法:

 

#ps 参数选项 程序名

 

常用参数

 

-l 列出程序名和进程ID;
-o 进程起始的ID;
-n 进程终止的ID;

 

举例:

 

[root@localhost ~]# pgrep -lo httpd
4557 httpd
[root@localhost ~]# pgrep -ln httpd
4566 httpd
[root@localhost ~]# pgrep -l httpd
4557 httpd
4560 httpd
4561 httpd
4562 httpd
4563 httpd
4564 httpd
4565 httpd
4566 httpd
[root@localhost ~]# pgrep httpd
4557
4560
4561
4562
4563
4564
4565
4566

 


3、终止进程的工具 kill 、killall、pkill、xkill;

终止一个进程或终止一个正在运行的程序,一般是通过 kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。

另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。比如mysql服务器最好是按其正常的程序关闭,而不是用pkill mysqld 或killall mysqld 这样危险的动作;当然对于占用资源过多的数据库子进程,我们应该用kill 来杀掉。


3.1 kill

kill的应用是和ps 或pgrep 命令结合在一起使用的;

kill 的用法:

kill [信号代码]   进程ID

注:信号代码可以省略;我们常用的信号代码是 -9 ,表示强制终止;

举例:

 

[root@localhost ~]# ps auxf |grep httpd
root 4939 0.0 0.0 5160 708 pts/3 S+ 13:10 0:00 \_ grep httpd
root 4830 0.1 1.3 24232 10272 ? Ss 13:02 0:00 /usr/sbin/httpd
apache 4833 0.0 0.6 24364 4932 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4834 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4835 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4836 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4837 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4838 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4839 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd
apache 4840 0.0 0.6 24364 4928 ? S 13:02 0:00 \_ /usr/sbin/httpd

 

我们查看httpd 服务器的进程;您也可以用pgrep -l httpd 来查看;

我们看上面例子中的第二列,就是进程PID的列,其中4830是httpd服务器的父进程,从4833-4840的进程都是它4830的子进程;如果我们杀掉父进程4830的话,其下的子进程也会跟着死掉;

 

[root@localhost ~]# kill 4840 注:杀掉4840这个进程;
[root@localhost ~]# ps -auxf |grep httpd 注:查看一下会有什么结果?是不是httpd服务器仍在运行?
[root@localhost ~]# kill 4830 注:杀掉httpd的父进程;
[root@localhost ~]# ps -aux |grep httpd 注:查看httpd的其它子进程是否存在,httpd服务器是否仍在运行?

 

对于僵尸进程,可以用kill -9 来强制终止退出;

比如一个程序已经彻底死掉,如果kill 不加信号强度是没有办法退出,最好的办法就是加信号强度 -9 ,后面要接杀父进程;比如;

 

[root@localhost ~]# ps aux |grep gaim
beinan 5031 9.0 2.3 104996 17484 ? S 13:23 0:01 gaim
root 5036 0.0 0.0 5160 724 pts/3 S+ 13:24 0:00 grep gaim

[root@localhost ~]# pgrep -l gaim
5031 gaim
[root@localhost ~]# kill -9 5031

 


3.2 killall

killall 通过程序的名字,直接杀死所有进程,咱们简单说一下就行了。


用法:killall 正在运行的程序名

killall 也和ps或pgrep 结合使用,比较方便;通过ps或pgrep 来查看哪些程序在运行;

举例:

 

[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# killall gaim

 


3.3 pkill

pkill 和killall 应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill 来杀掉。

应用方法:

 

#pkill 正在运行的程序名

 

举例:

 

[root@localhost beinan]# pgrep -l gaim
2979 gaim
[root@localhost beinan]# pkill gaim

 


3.4 xkill

xkill 是在桌面用的杀死图形界面的程序。比如当firefox 出现崩溃不能退出时,点鼠标就能杀死firefox 。当xkill运行时出来和个人脑骨的图标,哪个图形程序崩溃一点就OK了。如果您想终止xkill ,就按右键取消;

xkill 调用方法:

 

[root@localhost ~]# xkill

 


4、top 监视系统任务的工具;

和ps 相比,top是动态监视系统任务的工具,top 输出的结果是连续的;


4.1 top 命令用法及参数;

top 调用方法:

 

top 选择参数

 

参数:

 

-b 以批量模式运行,但不能接受命令行输入;
-c 显示命令行,而不仅仅是命令名;
-d N 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;
-i 禁止显示空闲进程或僵尸进程;
-n NUM 显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出;
-p PID 仅监视指定进程的ID;PID是一个数值;
-q 不经任何延时就刷新;
-s 安全模式运行,禁用一些效互指令;
-S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程;

 


交互式命令键位:

 

space 立即更新;
c 切换到命令名显示,或显示整个命令(包括参数);
f,F 增加显示字段,或删除显示字段;
h,? 显示有关安全模式及累积模式的帮助信息;
k 提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15)
i 禁止空闲进程和僵尸进程;
l 切换到显法负载平均值和正常运行的时间等信息;
m 切换到内存信息,并以内存占用大小排序;
n 提示显示的进程数,比如输入3,就在整屏上显示3个进程;
o,O 改变显示字段的顺序;
r 把renice 应用到一个进程,提示输入PID和renice的值;
s 改变两次刷新时间间隔,以秒为单位;
t 切换到显示进程和CPU状态的信息;
A 按进程生命大小进行排序,最新进程显示在最前;
M 按内存占用大小排序,由大到小;
N 以进程ID大小排序,由大到小;
P 按CPU占用情况排序,由大到小
S 切换到累积时间模式;
T 按时间/累积时间对任务排序;
W 把当前的配置写到~/.toprc中;

 


4.2 top 应用举例;

 

[root@localhost ~]# top

 

然后根据前面所说交互命令按个尝试一下就明白了,比如按M,就按内存占用大小排序;这个例子举不举都没有必要了。呵。。。。。。

当然您可以把top的输出传到一个文件中;

 

[root@localhost ~]# top > mytop.txt

 

然后我们就可以查看mytop文件,以慢慢的分析系统进程状态;


5、进程的优先级:nice和renice;

在Linux 操作系统中,进程之间是竟争资源(比如CPU和内存的占用)关系。这个竟争优劣是通过一个数值来实现的,也就是谦让度。高谦让度表示进程优化级别最低。负值或0表示对高优点级,对其它进程不谦让,也就是拥有优先占用系统资源的权利。谦让度的值从 -20到19。

目前硬件技术发展极速,在大多情况下,不必设置进程的优先级,除非在进程失控而疯狂占用资源的情况下,我们有可能来设置一下优先级,但我个人感觉没有太大的必要,在迫不得已的情况下,我们可以杀掉失控进程。

nice 可以在创建进程时,为进程指定谦让度的值,进程的优先级的值是父进程SHELL的优先级的值与我们所指定谦让度的相加和。所以我们在用nice设置程序的优先级时,所指定数值是一个增量,并不是优先级的绝对值;

nice 的应用举例:

 

[root@localhost ~]# nice -n 5 gaim & 注:运行gaim程序,并为它指定谦让度增量为5;

 

所以nice的最常用的应用就是:

 

nice -n 谦让度的增量值 程序

 

renice 是通过进程ID(PID)来改变谦让度,进而达到更改进程的优先级。

 

renice 谦让度 PID

 

renice 所设置的谦让度就是进程的绝对值;看下面的例子;

[root@localhost ~]# ps lax   |grep gaim
4     0  4437  3419  10  -5 120924 20492 -      S<   pts/0      0:01 gaim
0     0  4530  3419  10  -5   5160   708 -      R<+  pts/0      0:00 grep gaim
[root@localhost ~]# renice -6  4437
4437: old priority -5, new priority -6
[root@localhost ~]# ps lax   |grep gaim
4     0  4437  3419  14  -6 120924 20492 -      S<   pts/0      0:01 gaim
0     0  4534  3419  11  -5   5160   708 -      R<+  pts/0      0:00 grep gaim


6、关于本文;

进程管理还是需要的,虽然在桌面应用上,我们点鼠标就能完成大多的工作,但在服务器管理中,进程管理还是十分重要的。

有的弟兄会说,为什么您不说说在桌面环境中的图形管理的进程工具。我感觉没有太大的必要,如果您会点鼠标就应该能找到有关进程管理的工具。

还有的弟兄会说:Windows的进程管理真的很方便,按一下CTRL+ALT+DEL就可以调出来,随便你怎么杀和砍。我感觉Windows的进程管理并不怎么样,如果有的程序真的需要CTRL+ALT+DEL的话,呵,那肯定会出现系统假死现象。或者程序错误之类的提示。弄不好就得重启,这是事实吧。

Windows 的进程管理并不优秀,只是一个友好的界面而已,我想我说的没错吧;


7、后记;

近些天一直在为网络基础文档做计划,当然也随手写一写自己能写的文档, 比如本篇就是; 也想把论坛中的一些弟兄优秀的教程整理出来,但后来一想,如果提交到 LinuxSir.Org 首页上,肯定得做一些修改,如果我来修改倒不如让作者自己来修改,自己写的东西自己最明白,对不对???

在准备网络文档计划的过程中,向etony兄请教了一些基本的网络基础知识。我对网络基础理论基本不懂。听tony兄解说的同时,我也做了笔记。同时也和tony兄讨论了网络基础篇的布局和谋篇的事,这关系到初学者入手的问题,好象是小事,其实事情比较大。如果写的文档,新手读不懂,老鸟又认为没有价值,我看倒不如不写。。


8、参考文档;


9、相关文档;

收藏与分享
11 2007

转贴: vi的使用之汇总(By 张微波 )

Posted by Yangybcy in 电脑网络

功能最强在的编辑器——vi

vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、游刃有余,因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装joe或pico,如果您不会vi,那您可能就没辄了。


vi的基本概念
基本上vi可分为三种操作状态,分别是命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode),各模式的功能区分如下:
1. Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode。
2. Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode。
3. Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。
不过可以把vi简化成两个模式,即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode。


vi的基本操作
进入vi
在系统提示符号输入vi及文件名称后,即可进入vi全屏幕编辑画面:
$ vi testfile
有一点要特别注意,就是您进入vi之后是处于“Command mode”下,您要切换到Insert mode才能输入文字。初次用vi的用户都会想先用上下左右键移动光标,结果电脑一直叫,把自己气个半死,所以进入vi后,先不要乱动,转换入Insert后再说。
•切换至Insert mode编辑文件
在Command mode下按‘i’、‘a’或‘o’三键就可进入Insert mode。这时候您就可以开始输入文字了。
i: 插入,从目前光标所在之处插入所输入的文字。
a: 增加,目前光标所在的下一个字开始输入文字。
o: 插入新的一行,从行首开始输入文字。
•Insert的切换→Command mode,按Esc键
您目前处于Insert mode,您就只能一直打字。假如您发现打错字了,想用光标键往回移动,将该字删除,就要按ESC键转换回Command mode,再删除文字。
•离开vi及存文件
在Command mode下,可按冒号“:”键入入Last line mode,例如:
:w filename (输入“w filename”,将文章存入指定的文件名filename)
:wq (输入“wq”,因为进入之时已经指定文件名testfile,所以会写入testfile并离开vi)
:q! (输入“q!”,强制离开并放弃编辑的文件)


Command mode功能键列表
在介绍command mode指令的时后,指令后面加上“常用”字眼的功能键,表示比较常用的vi指令,请读者您一定要学会、记住。
(1)I、a、o切换进入Insert mode。[超级常用]
(2)移动光标
vi可以直接用键盘上的光标键来上下左右移动,但正规的vi是用小写英文字母
h、j、k、l,分别控制光标左、下、上、右移一格。
按Ctrl+B:屏幕往后移动一页。[常用]
按Ctrl+F:屏幕往前移动一页。[常用]
按Ctrl+U:屏幕往后移动半页。
按Ctrl+D:屏幕往前移动半页。
按 0 (数字零):移动文章的开头。[常用]
按 G:移动到文章的最后。[常用]
按 w:光标跳到下个word的开头。[常用]
按 e:光标跳到下个word的字尾。
按 b:光标回到上个word的开头。
按 $:移到光标所在行的行尾。[常用]
按 ^:移到该行第一个非空白的字符。
按 0:移到该行的开头位置。[常用]
按 #:移到该行的第#个位置,例:51、121。[常用]
(3)删除文字
x:每按一次删除光标所在位置的后面一个字符。[超常用]
#x:例如,6x 表删除光标所在位置的后面6个字符。[常用]
X:大字的X,每按一次删除光标所在位置的前面一个字符。
#X:例如,20X 表删除光标所在位置的前面20个字符。
dd:删除光标所在行。[超常用]
#dd:例如,6dd表删除从光标所在的该行往下数6行之文字。[常用]
(4)复制
yw:将光标所在处到字尾的字符复制到缓冲区中。
(想在和#x、#X的功能相反)
p:将缓冲区内的字符粘贴到光标所在位置(指令‘yw’与‘p必须搭配使用)。
yy:复制光标所在行。[超常用]
p:复制单行到您想粘贴之处。(指令‘yy’与‘p’必须搭配使用)
#yy:如:6yy表示拷贝从光标所在的该行往下数6行之文字。[常用]
p:复制多行到您想粘贴之处。(指令‘#yy’与‘p’必须搭配使用)
“ayy:将复制行放入buffer a, vi提供buffer功能,可将常用的数据存在buffer
“ap:将放在buffer a的数据粘贴。
“b3yy:将三行数据存入buffer b。
“b3p:将存在buffer b的资料粘贴
(5)取代
r: 取代光标所在处的字符:[常用]
R:取代字符直到按Esc为止。
(6)复原(undo)上一个指令
u:假如您误操作一个指令,可以马上按u,回复到上一个操作。[超常用]
.: .可以重复执行上一次的指令。
(7)更改
cw:更改光标所在处的字到字尾$处。
c#w:例如,c3w代表更改3个字。
(8)跳至指定行
Ctrl+G:列出光标所在行的行号。
#G:例如,15G,表示移动光标至文章的第15行行首。[常用]
Last line mode下指令简介
读者您要使用Last line mode之前,请记得先按Esc键确定您已经处于Command mode下后,再按冒号“:”或“/”或“?”三键的其中一键进入Last line mode。
1.列出行号
set nu: 输入“set nu”后,会在文章的每一行前面列出行号。
2.跳到文章的某一行
#:井号代表一个数字,在Last line mode提示符号“:”前输入数字,再按Enter就会跳到该行了,如:15[Enter]就会跳到文章的第15行。[常用]
3.寻找字符串
/关键字:先按/,再输入您想寻找的字,如果第一次找的关键字不是您相尽可能的,可以一直按n会往下寻找到您要的关键字为止。
?关键字:先按?,再输入您想寻找的字,如果第一次找的关键字不是您想要的,可以按n会往前寻找到您要的关键字为止。
4.取代字符串
1,$s/string/replae/g:在last line mode输入“1,$s/string/replace/g”会将全文的string字符串取代为replace字符串,其中1,$s就是指搜寻区间为文章从头至尾的意思,g则是表示全部取代不必确认。
%s/string/replace/c:同样会将全文的string字符串取代为replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,c则是表示要替代之前必须再次确认是否取代。
1,20s/string/replace/g:将1至20行间的string替代为relpace字符串。
5.存文件
w:在last line mode提示符号“:”前按w即可将文件存起来。[超常用]
#,# w filename:如果您想摘取文章的某一段,存成另一个文件,可用这个指令#代表行号,例如30,50 w nice,将您正在编辑文章的第30~50行存成nice这个文件。
6.离开
q:按q就离开,有时如果无法离开vi,可搭配“!:强置离开vi,如“q!”
qw:一般建议离开时,搭配w一起使用,如此离开时还可存文件。[常用]

收藏与分享
10 2007

Mysql 安装简版

Posted by Yangybcy in 电脑网络

vi config.h
打开gbk 和gb2312等语言

./configure –prefix=/usr/………..
make
make install

安装初始表
mysql_install_db  –user=mysql
chown mysql目录为root
chown mysql 下的var目录  为Mysql
chgrp   mysql 为mysql

初始用户帐号
bin/mysqld_safe


shell> mysql -u root
mysql> Update mysql.user SET Password = PASSWORD('newpwd') Where User= '';
mysql> FLUSH PRIVILEGES;  重新读取授权表

show character set;  显示数据库编码
show charset;  显示数据库编码

收藏与分享
10 2007

Linux下解压和压缩文件

Posted by Yangybcy in 电脑网络

tar命令

tar 可以为文件和目录创建档案。利用tar,用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案,如软盘。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。Linux上的tar是GNU版本的。
语法:tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。
辅助选项:
b 该选项是为磁带机设定的。其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
f 使用档案文件或设备,这个选项通常是必选的。
k 保存已经存在的文件。例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
w 每一步都要求确认。
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。


Linux下的压缩文件剖析

对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了。本文就来对这些常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕。

  在具体总结各类压缩文件之前呢,首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?其实这源于Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。
  Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法:
  tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下:

  # tar -cf all.tar *.jpg
  这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
  # tar -rf all.tar *.gif
  这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
    # tar -uf all.tar logo.gif
  这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

  # tar -tf all.tar
  这条命令是列出all.tar包中所有文件,-t是列出文件的意思
  # tar -xf all.tar
  这条命令是解出all.tar包中所有文件,-t是解开的意思

  以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2等。

  1) tar调用gzip

  gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下:

  # tar -czf all.tar.gz *.jpg
  这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz
  # tar -xzf all.tar.gz
  这条命令是将上面产生的包解开。

  2) tar调用bzip2

  bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例说明一下:
  # tar -cjf all.tar.bz2 *.jpg
  这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2
  # tar -xjf all.tar.bz2
  这条命令是将上面产生的包解开。
    3)tar调用compress

  compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人多。.Z结尾的文件就是bzip2压缩的结果。与 compress相对的解压程序是uncompress。tar中使用-Z这个参数来调用gzip。下面来举例说明一下:

  # tar -cZf all.tar.Z *.jpg
  这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成一个uncompress压缩过的包,包名为all.tar.Z

  # tar -xZf all.tar.Z

  这条命令是将上面产生的包解开

  有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:

  1)对于.tar结尾的文件
  tar -xf all.tar
  2)对于.gz结尾的文件
  gzip -d all.gz
  gunzip all.gz
  3)对于.tgz或.tar.gz结尾的文件
  tar -xzf all.tar.gz
  tar -xzf all.tgz
  4)对于.bz2结尾的文件
  bzip2 -d all.bz2
  bunzip2 all.bz2
  5)对于tar.bz2结尾的文件
  tar -xjf all.tar.bz2
  6)对于.Z结尾的文件
  uncompress all.Z
  7)对于.tar.Z结尾的文件
  tar -xZf all.tar.z

  另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们:

  1)对于.zip
  linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
  # zip all.zip *.jpg
  这条命令是将所有.jpg的文件压缩成一个zip包

    # unzip all.zip
  这条命令是将all.zip中的所有文件解压出来

  2)对于.rar
  要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux
不是免费的;然后安装:
  # tar -xzpvf rarlinux-3.2.0.tar.gz
  # cd rar
  # make
  这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序
。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:
  # rar a all *.jpg
  这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar 扩展名将自动附加到包名后。
  # unrar e all.rar
  这条命令是将all.rar中的所有文件解压出来
  到此为至,我们已经介绍过linux下的tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、 zip、unzip、rar、unrar等程式,你应该已经能够使用它们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、. Z、.tar.Z、.zip、.rar这10种压缩文件进行解压了,以后应该不需要为下载了一个软件而不知道如何在Linux下解开而烦恼了。而且以上方法对于Unix也基本有效。
  本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、 compress、uncompress、zip、unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz、.tar.gz、. tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar这10种压缩文件进行操作。  

收藏与分享
Pages: 上一页 1 2 3 ...35 36 37 ...40 41 42 下一页