今天man vcl查看vcl的语法,提示No manual entry for vcl,意思是说找不到vcl的man文件,于是我们需要指定,下面提供两种方法。
第一种:编辑/etc/man.config文件,添加man的路径,如/usr/local/varnish/share/man/。
第二种:不修改man.config文件,直接man后面加上绝对路径,如:man /usr/local/varnish/share/man/man7/vcl.7
分类:FAQ
关于CentOS Linux常见的问题及解决方案
Linux网站压力测试工具webbench
在一个网站上线前, 通常我们应该做一些相关的压力测试, 以便了解当前Web服务器在高并发高负载情况下的响应状况和速度,方便对Web服务器进行优化和重构。
目前有很多免费的web压力测试工具可以帮助我们完成测试, 例如: 十个免费的Web压力测试工具http://coolshell.cn/articles/2589.html,
但在真实项目中, 我还是喜欢用Apache ab 和Webbench来完成压力测试, Apache的ab使用非常简单, 而且只要是安装了Apache了,就会自带其ab工具, 但有个问题就是不能模拟高并发状态下的测试, 好像最多可以模拟100-200次/秒的并发. 如果需要模拟更高负载的压力测试, 可能我们就需要请Webbench来帮忙了, webbench最多可以模拟3万个并发连接.但唯一的缺点就是测试的结果太简单了.
好了, 首先我们先来安装webbench吧, 为了测试准确,请将 webbench 安装在别的linux服务器上, 因为webbench 做压力测试时,自身也会消耗CPU和内存资源, 否则, 很可能把自己服务器搞挂掉:).
首先,我们先下载并安装webbench吧
- wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
- tar zxvf webbench-1.5.tar.gz
- cd webbench-1.5
- make && make install
如果出现下面错误提示:
- ctags *.c
- /bin/sh: ctags: command not found
可以使用yum安装ctags来解决这个问题
- yum install ctags
或者自己手动安装
- wget http://nchc.dl.sourceforge.net/project/ctags/ctags/5.8/ctags-5.8.tar.gz
- tar zxvf ctags-5.8.tar.gz
- ./configure
- make
- make install
如果安装了ctags, 仍然报错:
- install -s webbench /usr/local/bin
- install -m 644 webbench.1 /usr/local/man/man1
- install: cannot create regular file `/usr/local/man/man1′: No such file or directory
- make: *** [install] Error 1
我们可以通过自己创建文件夹来解决这个问题:
- mkdir -m 644 -p /usr/local/man/man1
最后终于安装成功! 我们也可以进行压力测试了
webbench -c 500 -t 30 http://www.example.com/phpinfo.php
参数说明:-c表示并发数,-t表示时间(秒)
- -bash-3.00$ webbench -c 3000 -t 30 http://www.example.com/phpinfo.php
- Webbench – Simple Web Benchmark 1.5
- Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
- Benchmarking: GET http://www.example.com/phpinfo.php
- 3000 clients, running 30 sec.
- Speed=8358 pages/min, 8791523 bytes/sec.
- Requests: 4179 susceed, 0 failed.
- -bash-3.00$
Linux 操作系统的时钟系统
时钟系统介绍
对于 Linux 操作系统,主要有两种时钟系统:
1、 硬件时钟系统:该时钟系统的运行独立于任何系统控制程序,在CPU 内部运行,既使系统断电,该时钟系统仍然保持运行。此时钟系统常常被称为实时时钟系统(RTC)、 BIOS 时钟系统或CMOS 时钟系统。
2 、系统时间:该时间为Linux 内核的时钟系统所维护,并且被定时中断程序所驱动,该时间仅当Linux 系统运行过程中有意义。该系统时间表示为以UTC(通用协调时间,Universal Time Coordinated) 计算,自1970 年1 月1 日0时0 分0 秒起至当前时刻所经过的秒数(该数字不是整数,以小数方式表示精度)。
在 Linux 系统中,真正起作用的是系统时间。硬件时钟系统的唯一作用是在Linux 系统没有运行时,保持时间的运行。当Linux 操作系统启动时,系统会自动将硬件时钟系统的时间同步到Linux 系统时间,并且在之后的整个Linux运行过程中,不再使用该硬件时钟系统(这与DOS 的实现方式完全不同在DOS 中只有硬件时间系统的概念)。而在Linux 操作系统关闭时,系统会自动将当前的Linux 系统时间同步到硬件时钟系统所维护的时间。
硬件时钟系统与系统时间的同步
/sbin/hwclock 用于同步硬件时钟系统的时间与Linux 操作系统时间。
查看当前硬件时钟系统时间的命令为
/sbin/hwclock –show
将硬件时钟系统时间同步到 Linux 操作系统时间的命令为:
/sbin/hwclock –hctosys
将 Linux 操作系统时间同步到硬件时钟系统时间的命令为:
/sbin/hwclock –systohc
如果观察系统启动/关闭时执行的初始化脚本”/etc/rc.d/rc.sysinit”, 我们不难发现系:统启动过程中,自动调用“/sbin/hwclock –hctosys” 将硬件时钟系统时间同步到操作系统时间;而在系统关闭过程中,自动调用“/sbin/hwclock
–systohc” 将操作系统时间同步到硬件时钟系统时间。
Linux下软件包的安装及卸载
在 Linux 操作系统下,几乎所有的软件均通过RPM 进行安装、卸载及管理等操作。RPM 的全称为Redhat Package Manager, 是由Redhat 公司提出的,用于管理Linux 下软件包的软件,Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装。RPM 有五种操作模式,分别为:安装、卸载、升级、查询和验证。
RPM 安装操作
命令:
rpm -i 需要安装的包文件名
举例如下:
rpm -i example.rpm 安装 example.rpm 包:
rpm -iv example.rpm 安装 example.rpm 包,并在安装过程中显示正在安装的文件信息;
rpm -ivh example.rpm 安装 example.rpm 包,并在安装过程中显示正在安装的文件信息及安装进度;
RPM 查询操作
命令:
rpm -q …
附加查询命令:
a 查询所有已经安装的包
以下两个附加命令用于查询安装包的信息:
i 显示安装包的信息;
l 显示安装包中的所有文件被安装到哪些目录下;
s 显示安装版中的所有文件状态及被安装到哪些目录下;
以下两个附加命令用于指定需要查询的是安装包还是已安装后的文件;
p 查询的是安装包的信息;
f 查询的是已安装的某文件信息;
举例如下:
rpm -qa | grep tomcat4 查看 tomcat4 是否被安装;
rpm -qip example.rpm 查看 example.rpm 安装包的信息;
rpm -qif /bin/df 查看/bin/df 文件所在安装包的信息;
rpm -qlf /bin/df 查看/bin/df 文件所在安装包中的各个文件分别被安装到哪个目录下;
RPM 卸载操作
命令:
rpm -e 需要卸载的安装包
在卸载之前, 通常需要使用rpm -q …命令查出需要卸载的安装包名称。
举例如下:
rpm -e tomcat4 卸载 tomcat4 软件包
RPM 升级操作
命令:
rpm -U 需要升级的包
举例如下:
rpm -Uvh example.rpm 升级 example.rpm 软件包
RPM 验证操作
命令:
rpm -V 需要验证的包
举例如下:
rpm -Vf /etc/tomcat4/tomcat4.conf
输出信息类似如下:
S.5….T c /etc/tomcat4/tomcat4.conf
其中 ,S 表示文件大小修改过,T 表示文件日期修改过,限于篇幅,更多的验证信息请您参考rpm 帮助文件man rpm
RPM 的其他附加命令
–force 强制操作 (如强制安装、删除等);
–requires 显示该包的依赖关系;
–nodeps 忽略依赖关系并继续操作;
Linux常用网络操作方法
Linux 提供了一组强有力的网络命令来为用户服务,这些工具能够帮助用户登录到远程计算机上、传输文件和执行远程命令等。本节介绍下列几个常用的有关网络操作的命令:
ftp 传输文件
telnet 登录到远程计算机上
r – 使用各种远程命令。
ftp 远程文件传输
ftp 命令是标准的文件传输协议的用户接口,ftp 是在TCP/IP 网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII 文件和二进制文件。在ftp 会话过程中,用户可以通过使用ftp 客户程序连接到另一台计算机上。从此,用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。需要注意的是,如果用户没有那个文件的存取权限,就不能从远程系统中获得文件或向远程系统传输文件为。了使用ftp 来传输文件,用户必须知道远程计算机上的合法用户名和口令,这个用户名/口令的组合用来确认ftp 会话,并用来确定用户对要传输的文件可以进行什么样的访问。
ftp 命令的一般格式如下:
$ ftp 主机名/IP
如果没有指定主机名, ftp 将给出提示符,等待用户输入命令:
$ ftp
ftp >
此时在 ftp>提示符后面输入open 命令加主机名或IP 地址,将试图连接指定的主机。不管使用哪一种方法,如果连接成功,需要在远程机上登录,用户如果在远程机上有帐号,就可以通过ftp 使用这一帐号并需要提供口令。在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。
一旦用户使用 ftp 在远程站点上登录成功,将得到“ftp>” 提示符。现在可以自由使用ftp 提供的命令,可以用 help 命令取得可供使用的命令清单,也可以在 help 命令后面指定具体的命令名称,获得这条命令的说明。
最常用的命令有:
ls 列出远程机的当前目录
cd 在远程机上改变工作目录
lcd 在本地机上改变工作目录
ascii 设置文件传输方式为 ASCII 模式,默认情况下 ,ftp 按ASCII模式传输文件, 用户也可以指定其他模式,ascii 和brinary 命令的功能是设置传输的模式,用ASCII 模式传输文件对纯文本是非常好的 ,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件。
binary 设置文件传输方式为二进制模式
close 终止当前的 ftp 会话
hash 每次传输完数据缓冲区中的数据后就显示一个#号
get mget 从远程机传送指定文件到本地机 get 命令的一般格式为
get 文件名
mget 命令一次获取多个远程文件mget 命令的一般格式为
mget 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。
put (mput) 从本地机传送指定文件到远程机, put 命令的一般格式为:
put 文件名
mput 命令一次发送多个本地文件mput 命令的一般格式为:
mput 文件名列表
使用用空格分隔的或带通配符的文件名列表来指定要发送的文件,对其中的每个文件都要求用户确认是否发送。
open 连接远程 ftp 站点
quit 断开与远程机的连接并退出 ftp
? 显示本地帮助信息
! 转到 Shell 中
示例:
使用 ftp 传输文件过程如下
[root@localhost root]# ftp 192.168.1.66
Connected to 192.168.1.66 (192.168.1.66).
220 localhost.localdomain FTP server (Version wu-2.6.2-5) ready.
Name (192.168.1.66:root): test
331 Password required for test.
Password:
230 User oracle logged in. Access restrictions apply
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192.168.1.66,228,168)
150 Opening ASCII mode data connection for directory listing.
total 312
-rw-r–r– 1 root root 1215 Feb 4 13:49 button1.jpg
-rw-r–r– 1 root root 1133 Feb 4 13:49 button2.jpg
-rw-r–r– 1 root root 1435 Feb 4 13:46 index.html
226 Transfer complete.
ftp> lcd
Local directory now /root
ftp> lcd tmp
Local directory now /root/tmp
ftp> bin
200 Type set to I.
ftp> mget *.jpg
mget button1.jpg? y
227 Entering Passive Mode (10,153,89,66,187,198)
150 Opening BINARY mode data connection for button1.jpg (1215 bytes).
226 Transfer complete.
1215 bytes received in 0.0119 secs (1e+02 Kbytes/sec)
mget button2.jpg? y
227 Entering Passive Mode (10,153,89,66,243,218)
150 Opening BINARY mode data connection for button2.jpg (1133 bytes).
226 Transfer complete.
1133 bytes received in 0.00223 secs (5e+02 Kbytes/sec)
ftp> quit
221-You have transferred 2348 bytes in 2 files.
221-Total traffic for this session was 3315 bytes in 3 transfers.
221-Thank you for using the FTP service on localhost.localdomain.
221 Goodbye.
telnet
用户使用 telnet 命令进行远程登录该。命令允许用户使用telnet 协议在远程计算机之间进行通信,用户可以通过网络在远程计算机上登录,就像登录到本地机上执行命令一样。为了通过telnet 登录到远程计算机上,必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑,要限制来宾的操作权限,因此,这种情况下能使用的功能是很少的,当允许远程用户登录时,系统通常把这些用户放在一个受限制的shell 中,以防系统被怀有恶意的或不小心的用户破坏。用户还可以使用telnet从远程站点登录到自己的计算机上,检查电子邮件、编辑文件和运行程序,就像在本地登录一样。但是,用户只能使用基于终端的环境而不是X Wndows环境,telnet 只为普通终端提供终端仿真,而不支持 X Wndow等图形环境。
telnet 命令的一般形式为:
telnet 主机名/IP
其中“主机名/IP” 是要连接的远程机的主机名或IP 地址。如果这一命令执行成功,将从远程机上得到login: 提示符。
使用 telnet 命令登录的过程如下:
$ telnet 主机名/IP
一旦 telnet 成功地连接到远程系统上,就显示登录信息并提示用户输人用户名和口令。如果用户名和口令输入正确,就能成功登录并在远程系统上工作。
在 telnet 提示符后面可以输入很多命令,用来控制telnet 会话过程,在telnet联机帮助手册中对这些命令有详细的说明。
示例:
# telnet 192.168.1.66
Trying 192.168.1.66…
Connected to 192.168.1.66.
Escape character is ‘^]’.
Red Hat Linux release 7.3 (Valhalla)
Kernel 2.4.18-3 on an i686
login: test
Password:
Last login: Mon Feb 9 15:03:56 from 10.153.21.166
[test@localhost test]$
r-系列命令
除 ftp 和telnet 以外,还可以使用r-系列命令访问远程计算机和在网络上交换文件。使用r-系列命令需要特别注意因为如果用户不小心,就会造成严重的安全漏洞。用户发出一个r-系列命令后,远程系统检查名为/etc/hosts.equiv的文件,以查看用户的主机是否列在这个文件中,如果它没有找到用户的主机,就检查远程机上同名用户的主目录中名为,rhosts 的文件,看是否包括该
用户的主机。如果该用户的主机包括在这两个文件中的任何一个之中,该用户执行r-系列命令就不用提供口令。
rlogin 命令
rlogin 是“remote login” (远程登录)的缩写。该命令与telnet 命令很相似,允许用户启动远程系统上的交互命令会话。rlogin 的一般格式是:
rlogin [ -8EKLdx ] [ -e char ] [-k realm ] [ – l username ] host
一般最常用的格式是:
rlogin host
rsh 命令
rsh 是“remote shell”( 远程 shell) 的缩写。该命令在指定的远程主机上启动一个shell 并执行用户在rsh 命令行中指定的命令。如果用户没有给出要执行的命令,rsh 就用rlogin 命令使用户登录到远程机上。rsh 命令的一般格式是:
rsh [-Kdnx] [-k realm] [-l username] host [command]
一般常用的格式是:
rsh host [command ]
command 可以是从shell 提示符下键人的任何Linux 命令。
Linux常用网络配置文件介绍
在 Linux 系统中,TCP/IP 网络是通过若干个文本文件进行配置的,需要编辑这些文件来完成联网工作。系统中重要的有关网络配置文件为:
/etc/sysconfig/network
/etc/hosts
/etc/services
/etc/host.conf
/etc/nsswitch.conf
/etc/resolv.conf
/etc/xinetd.conf
/etc/modules.conf
/etc/sysconfig/network-scripts/ifcfg-ethN
接下来我们将对这些文件逐一讲述, 这些文件都可以在系统运行时进行修改,不用启动或者停止任何守护程序,更改会立刻生效( 除了/etc/sysconfig/network)。 另外,这些文件都支持由”#”开头的注释,每一个文件都有在UNIX手册页中的第5 部分中有一项,可以用man 命令来获取它们。
/etc/sysconfig/network 网络设置
该文件用来指定服务器上的网络配置信息, 包含了控制和网络有关的文件和守护程序的行为的参数。下面是一个例子文件:
NETWORKING=yes
HOSTNAME=machine1
GATEWAY=210.34.6.2
FORWARD_IPV4=yes
GATEWAYDEV=
其中, NETWORK=yes/no 表示网络是否被配置;
HOSTNAME=hostname hostname 表示服务器的主机名;
GATEWAY=gw-ip gw-ip 表示网络网关的IP 地址;
FORWARD_IPV4=yes/no 是否开启IP 转发功能;
GAREWAYDEV=gw-dev gw-dw 表示网关的设备名,如:eth0 等;
/etc/hosts IP 地址和主机名的映射
/etc/hosts 中包含了IP 地址和主机名之间的映射还,包括主机名的别名IP,地址的设计使计算机容易识别,但对于人却很难记住它们,为了解决这个问题,创建了/etc/hosts 这个文件。下面是一个例子文件:
127.0.0.1 machine1 localhost.localdomain localhost
192.168.1.100 machine7
192.168.1.101 otherpc otheralias
在这个例子中 ,本机名是machine1, otherpc 还有别名otheralias ,它可以指向otheralias。 一旦配置完机器的网络配置文件,应该重新启动网络以使修改生效,使用下面的命令来重新启动网络:
service network restart
/etc/hosts 文件通常含有主机名、localhost 和系统管理员经常使用的系统别名,有时候telnet 到Linux 机器要等待很长时间,可以通过在”/etc/hosts”加入客户的机器的IP 地址和主机名的匹配项,就可以减少登录等待时间。在没有域名服务器情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的IP 地址,否则,其他的主机名通常使用DNS 来解决,DNS 客户部分的配置在文件/etc/resolv.conf 中。
/etc/services
/etc/services 中包含了服务名和端口号之间的映射,不少的系统程序要使用这个文件,下面是RedHat 安装时缺省的/etc/services 中的前几行:
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
最左边一列是主机服务名 ,中间一列是端口号,“/ ”后面是端口类型, 可以是TCP 也可以是UDP 。任何后面的列都是前面服务的别名。在这个文件中也存在着别名,它们出现在端口号后面,在上述例子中sink 和null 都是discard服务的别名。
/etc/host.conf 配置名字解析器
有两个文件声明系统到哪里寻找名字信息来配置 UNIX名字解析器的库。文件/etc/host.conf 由版本5 的libc 库所使用,而/etc/nsswitch.conf 由版本6 使用(glibc )。 问题在于一些程序使用其中一个,而一些使用另一个,所以将两个文件都配置正确是必要的。
/etc/host.conf 文件指定如何解析主机名,Linux 通过解析器库来获得主机名对应的IP。 地址下面是RedHat 安装后缺省的”/etc/host.conf”内容:
order hosts bind
multi on
“order ” 指定主机名查询顺序,其参数为用逗号隔开的查找方法,支持的查找方法为bind、 hosts 和nis ,分别代表DNS 、/etc/hosts 和NIS, 这里规定先查询”/etc/hosts”文件然后再使用DNS 来解析域名。
“trim” 表明当通过DNS 进行地址到主机名的转换时,域名将从主机名中被裁剪掉,trim 可以被多个域包含多次,对/etc/hosts 和NIS 查询方法不起作用,注意在/etc/hosts 和NIS 表中主机名是被适当地(有或没有全域名)列出的。
“multi” 指定是否”/etc/hosts”文件中指定的主机可以有多个地址,值为on 表示允许,拥有多个IP 地址的主机一般称为具有多个网络界面。
“nospoof ” 指是否允许对该服务器进行IP 地址欺骗,值为on 表示不允许。IP欺骗是一种攻击系统安全的手段,通过把IP 地址伪装成别的计算机,来取得其它计算机的信任。
“alert” 当nospoof 指令为on 时,alert 控制欺骗的企图是否用syslog 工具进行记录,值为on 表示使用,缺省值为off。
“rccorder” 如果被设置为on ,所有的查询将被重新排序,所以在同一子网中的主机将首选被返,回缺省值为off。
/etc/nsswitch.conf 配置名字解析器
/etc/nsswitch.conf 文件是由Sun 公司开发并用于管理系统中多个配置文件查找的顺序,它比/etc/host.conf 文件提供了更多的功能。/etc/nsswitch.conf 中的每一行或者是注释(以#号开头)或者是一个关键字后跟冒号和一系列要试用的有顺序的方法。每一个关键字是在/etc/目录可以被/etc/nsswitch.conf 控制的/etc 文件的名字。下面是可以被包含的关键字:
aliases 邮件别名;
passwd 系统用户;
group 用户组;
shadow 隐蔽口令;
hosts 主机名和I P 地址;
networks 网络名和号;
protocols 网络协议;
services 端口号和服务名称;
ethers 以太网号;
rpc 远程进程调用的名称和号;
netgroup 网内组;
/etc/resolv.conf 配置DNS 客户
文件/etc/resolv.conf 配置DNS 客户,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。
下面是一个例子文件:
nameserver 192.168.0.36
nameserver 192.168.0.37
search huawei-3com.com
合法的参数及其意义如下:
nameserver 表明DNS 服务器的IP 地址,可以有很多行的nameserver ,每一个带一个I P 地址。在查询时就按nameserver 在本文件中的顺序进行,且只有当第一个nameserver 没有反应时才查询下面的nameserver.
domain 声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行DNS 查询时,也要用到。如果没有域名,主机名将被使,用删除所有在第一个点( . )前面的内容。
search 它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search 声明的域中分别查找。domain 和search 不能共存;如果同时存在,后面出现的将会被使用。
sortlist 允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。Red Hat 中没有提供缺省的/ e t c / r e s o l v. c o n f 文件,它的内容是根据在安装时给出的选项动态创建的。
/etc/xinetd.conf
redhat 7.1 及以后版本计和以往的版本有一个明显的区别,就是用xinetd.conf代替原来的inetd.conf ,并且直接使用了firewall 服务.xinetd(eXtended InterNET services daemon)对inetd 功能进行了扩展,xinetd 的默认配置文件是/etc/xinetd.conf ,它看起来尽管和老版本的/etc/inetd.conf 完全不同,其实只是以一个脚本的形式将inetd 中每一行指定的服务扩展为一个/etc/xinetd.d/下的配置文件,其格式为:
service service-name
{
disabled = yes/no; //是否禁用
socket_type = xxx; //TCP/IP socket type,such as stream,dgram,raw,….
protocol = xxx; //服务使用的协议
server = xxx; //服务daemon 的完整路径
server_args = xxx; //服务的参数
port = xxx; //指定服务的端口号
wait = xxx; //是否阻塞服务即单线程或多线程
user = xxx; //服务进程的uid
group = xxx; //gid
REUSE = xxx; //可重用标志
……
}
示例:
1 )配置ftp 服务
在/etc/xinetd.d 目录下,编辑wu-ftpd
# default: on
# description: The wu-ftpd FTP server serves FTP connections. It uses
# normal, unencrypted usernames and passwords for authentication.
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l -a
log_on_success += DURATION
nice = 10
}
2 )配置telnet 服务
在/etc/xinetd.d 目录下,编辑telnet
# default: on
# description: The telnet server serves telnet sessions; it uses
# unencrypted username/password pairs for authentication.
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.telnetd
log_on_failure += USERID
}
配置完成后 重新启动服务
#/etc/rc.d/init.d/xinetd restart
/etc/modules.conf 文件
该配置文件定义了各种需要在启动时加载的模块的参数信息 ,文件格式如下:
alias eth0 tg3
alias eth1 3c905
/etc/sysconfig/network-scripts/ifcfg-ethN 文件
系统网络设备的配置文件保存在”/etc/sysconfig/network-scripts”目录下,ifcfg-eth0 包含第一块网卡的配置信息,ifcfg-eth1 包含第二块网卡的配置信息。
下面是“/etc/sysconfig/network-scripts/ifcfg-eth0”文件的示例:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.66
NETMASK=255.255.255.0
GATEWAY=192.168.0.65
若希望手工修改网络地址或在新的接口上增加新的网络界面,可以通过修改对应的文件(ifcfg-ethN) 或创建新的文件来实现。
Linux网络操作命令
Linux 系统常用的网络操作命令包括netstat、nslookup、 host finger 和ping。
netstat 命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。nslookup 命令的功能是查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务,如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP 地址对应的域名。host 命令可根据主机名查询主机的IP 地址或根据主机IP 地址查询主机名;finger 命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell 等信息。ping 命令用于查看网络上的主机是否在工作。
netstat
netstat 命令的语法为:
netstat [选项]
netstat的常用参数说明如下:
-a 显示所有 socket 包括正在监听的
-c 每隔 1 秒就重新显示一遍直到用户中断它
-i 显示所有网络接口的信息格式同 “ifconfig –e”
-n 以网络 IP 地址代替名称显示出网络连接情形
-r 显示核心路由表格式同 “route –e”
-t 显示 TCP 协议的连接情况
-u 显示 UDP 协议的连接情况
-v 显示正在进行的工作
示例:
1 )在本机使用 netstat 命令,其输出为如下
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 256 10.153.89.66:ssh 10.153.21.168:1054 ESTABLISHED
tcp 0 0 10.153.89.66:ssh 10.153.21.166:1222 ESTABLISHED
tcp 0 0 10.153.89.66:1521 10.153.21.166:2625 ESTABLISHED
tcp 0 0 10.153.89.66:1521 10.153.21.166:2623 ESTABLISHED
……
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 9 [ ] DGRAM 919 /dev/log
unix 2 [ ] STREAM CONNECTED 50246124
unix 3 [ ] STREAM CONNECTED 3914245
/tmp/.ICE-unix/dcop18694-1074144356
unix 3 [ ] STREAM CONNECTED 3914244
unix 3 [ ] STREAM CONNECTED 3914127 /tmp/.X11-unix/X0
…..
nslookup
nslookup 命令的功能是查询一台机器的IP 地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP 地址对应的域名。命令的语法为:
nslookup [IP 地址/域名]
示例:
在本机执行 nslookup 命令
Default Server: name.tlc.com.cn
Address: 192.168.1.99
>
在符号“ >” 后面输入要查询的IP 地址或域名并回车即可。如果要退出该命令,输入exit 并回车即可。
host命令
host 命令的功能基本与nslookup 相。同命令的语法为:
host [选项] [IP 地址/域名/主机名]
host 的常用参数如下:
-a 显示所查域名或IP 地址、域名或主机名的相关信息。
示例:
[root]# host huawei-3com.com
huawei-3com.com has address 172.19.1.228
finger
finger 命令的功能是查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell 等信息。如果要查询远程机上的用户信息,需要在用户名后面接“@主机名”采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger 守护进程。该命令的一般格式为:
finger [选项] [使用者] [用户@主机]
finger 的常用参数如下:
-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
-l 除了用-s 选项显示的信息外,还显示用户主目录、登录shell、 邮件状态等信息,以及用户主目录下的.plan 、project 和.forward 文件的内容
-p 除了不显示.plan 文件和.project 文件以外与-l 选项相同
示例:
1 )显示用户 orcale 的信息
finger oracle
其显示结果为
Login: oracle Name: (null)
Directory: /home/oracle Shell: /bin/bash
On since Fri Feb 6 16:26 (CST) on pts/1 from 10.153.21.166 33 seconds idle
On since Wed Feb 4 20:10 (CST) on pts/2 from 10.153.21.166 1 second idle
No mail.
No Plan.
Ping 命令
ping 命令用于查看网络上的主机是否在工作,它向该主机发送ICMPECHO_REQUEST 包。有时我们想从网络上的某台主机上下载文件,可是又不知道那台主机是否开着,就需要使用ping 命令查看。该命令的一般格式为:
ping [选项] [主机名/IP地址]
ping 的常用参数如下:
-c 数目 在发送指定数目的包后停止
-d 设定 SO_DEBUG 的选项
-f 大量且快速地送网络封包给一台机器看它的回应
-I 秒数 设定间隔几秒送一个网络封包给一台机器预设值是一秒送一次
-l 次数 在指定次数内以最快的方式送封包数据到指定机器 (只有超级用户可以使用此选项)
-q 不显示任何传送封包的信息只显示最后的结果
-r 不经由网关而直接送封包到一台机器通常是查看本机的网络接口是否有问题
-s 字节数 指定发送的数据字节数, 预设值是56, 加上8 字节的ICMP头,一共是64ICMP 数据字节
Linux网络配置命令
Linux 系统中最常用的网络配置命令包括ifconfig、 route ,其中ifconfig 用来查看和配置网络接口(通常是网卡)信息,包括网络接口设备的IP 地址、掩码等;route 用来管理Linux 系统内核中的路由表,它最大的用途就是用来设定静态的路由表项,通常是在系统用ifconfig 配置网络接口后,用它来设定主机或者一网段的IP 地址应该通过什么接口发送等。
ifconfig
ifconfig 的语法为:
ifconfig [-a] [-V] [-s] [[]
][[-]broadcast [
]][netmask
][up|down]
其中 interface 为网卡名,address 为IP 地址,broadcast 表示设置广播地址,其后的address 为广播地址的IP ,netmask 表示设置子网掩码,其后的address 为子网掩码的IP, up、 down 设置当前网卡的状态,up表示启用当前网卡,down 表示关闭当前网卡。
Ifconfig 的常用参数说明如下:
-a 查看所有网卡状态
-V 查看ifconfig 命令的版本信息
-s 查看统计信息
示例:
1) 将第一块网卡的 IP 地址设置为192.168.0.1:
ifconfig eth0 192.168.0.1 (格式: ifconfig 网络设备名 IP 地址)
2) 暂时关闭或启用网卡:
关闭第一块网卡: ifconfig eth0 down
启用第一块网卡 ifconfig eth0 up
3 )将第一块网卡的子网掩码设置为 255.255.255.0:
ifconfig eth0 netmask 255.255.255.0 (格式:ifconfig 网络设备名 netmask子网掩码)
我们也可以同时设置 IP 地址和子网掩码:
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
4) 查看第一块网卡的状态:
ifconfig eth0
如果要查看所有的网卡状态, 则直接使用不带参数的ifconfig 命令即可。
ifconfig 输出的状态信息是十分有用的,下面我们就简单说明一下:
有几个状态比较重要:
UP/DOWN :网卡是否启动了,如果是DOWN的话,那肯定无法用的;
RX packets 中的errors 包的数量如果过大说明网卡在接收时有问题;
TX packets 中的errors 包的数量如果过大说明网卡在发送时有问题;
route
route 命令的语法为:
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mod] [reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metricN] [[dev] If]
route [-V] [–version] [-h] [–help]
route 的常用参数说明如下:
-v 使用冗余输出模式。
-A family 指定特定的地址族 (例如”inet” “inet6″)。
-n 使用数字显示的地址 例如202.38.75.75 而不是去解释域名。
-e 使用与 netstat 相同的输出格式。
-ee 参数会产生很长的输出, 包括内核路由表的几乎所有信息。
-net 目标 (target) 是一个网段。
-host 目标 (target) 是一个单独的主机。
-F 显示内核 FIB 路由表结果可能被-e 和-ee 参数改变。
-C 显示内核中路由缓存信息。
del 删除一个路由表项。
add 增加一个路由表项。
Target 配置的目的网段或者主机 。可以是IP, 或者是网络或主机名。
netmask Nm 用来指明要添加的路由表项的网络掩码。
gw Gw 任何通往目的 (target) 的IP 分组都要通过这个网关。
metric M 设置路由表中该项的尺度域( metric field) 为M。
示例:
1) 添加一条路由表项,网段192.168.0.x 应该从接口”eth0″走
route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0
2 )添加一条缺省路由
route add 0.0.0.0 gw 网关地址
如果没有其他匹配的路由项, 就使用这个路由规则。
3) 删除缺省路由
route del 0.0.0.0 gw 网关地址
4) route 命令的输出结果示例说明
输出的格式有以下几栏:
Destination 目标网段或者主机
Gateway 网关地址, 如果没有设置,则是”*”表示
Genmask 网络掩码
Flags 一些可能的标记如下:
U (路由是活动的)
H (目标是一个主机)
G (使用网关 (gateway))
R (reinstate route 动态路由产生的表项)
D (dynamically installed by daemon or redirect)
M (modified from routing daemon or redirect)
! (reject route)
Metric 路由距离。
Ref 路由项引用次数。( linux 内核中没有使用)
Use 查找路由项的次数 。
Iface 该路由表项对应的输出接口。
Linux head 及tail 命令介绍
当需要查看一个文本文件的头部或尾部时,head 命令及tail 命令可以非常方便的完成该操作。head 命令用于查看一个文本文件的开头部分;而tail 命令则用于显示文本文件的末尾几行。这两个命令举例如下:
head example.txt 显示文件 example.txt 的前十行内容;
head -n 20 example.txt 显示文件 example.txt 的前二十行内容;
tail example.txt 显示文件 example.txt 的后十行内容;
tail -n 20 example.txt 显示文件 example.txt 的后二十行内容;
tail -f example.txt 显示文件 example.txt 的后十行内容并在文件内容增加后,自动显示新增的文件内容。
注意:
最后一条命令非常有用, 尤其在监控日志文件时可以在屏幕上一直显示新增的日志信息。
Linux文件查看/编辑方法介绍
cat 命令介绍
cat 命令的原含义为连接(concatenate), 用于连接多个文件内容并输出到标准输出流中(标准输出流默认为屏幕)。实际运用过程中,我们常使用它来显示文件内容。如果您熟悉MS-DOS 下的type 命令,相信不难掌握cat 命令。该命令的常用示例如下:
cat file1.txt 显示 file1.txt 文件的内容;
cat file1.txt file2.txt 显示 file1.txt 和file2.txt 文件的内容;
cat -n file1.txt 显示 file1.txt 文件的内容同时显示行号;
vi 命令介绍
vi 是”Visual Interface” 的简称,它在Linux 上的地位就仿佛Edit 程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的。
vi 不是一个排版程序,它不象Word 或WPS 那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。
vi 没有菜单,只有命令,且命令繁多。限于篇幅,本文只介绍常用的命令。
Vi 有三种基本工作模式:命令行模式,文本输入模式和末行模式。
命令行模式:
任何时候,不管用户处于何种模式,只要按一下“ESC” 键,即可使vi 进入命令行模式;当在shell 环境下输入vi 命令启动vi 编辑器时,也是处于该模式下。
在该模式下 ,用户可以输入各种合法的vi 命令,用于管理自己的文档。此时从键盘上输入的任何字符都被当作编辑命令来解释,若输入的字符是合法的vi 命令,则vi 在接受用户命令之后完成相应的动作(但需注意的是,所输入的命令并不在屏幕上显示出来)。若输入的字符不是vi 的合法命令,vi 会响铃报警。
文本输入模式:
在命令模式下输入插入命令 i、 附加命令a 、打开命令 o、 修改命令c 、取代命令r 或替换命令s 都可以进入文本输入模式。在该模式下,用户输入的任何字符都被vi 当做文件内容保存起来,并将其显示在屏幕上。在文本输入过程中,若想回到命令模式下,按“ESC” 键即可。
末行模式:
在命令模式下用户按“:” 键即可进入末行模式下,此时Vi 会在显示窗口的最后一行(通常也是屏幕的最后一行)显示一个“:” 作为末行模式的提示符,等待用户输入命令。多数文件管理命令都是在此模式下执行的(如把编辑缓冲区的内容写到文件中等)末行命令执行完后,vi 自动回到命令模式。
若在末行模式下输入命令过程中改变了主意, 可按“ESC” 键或用退格键将输入的命令全部删除之后,再按一下退格键,即可使vi 回到命令模式下。
vi 的进入与退出
在 shell 模式下,键入vi 及需要编辑的文件名,即可进入vi. 例如:
vi example.txt
即可编辑 example.txt 文件.如果该文件存在,则编辑界面中会显示该文件的内容,并将光标定位在文件的第一行;如果文件不存在,则编辑界面中无任何内容。如果需要在进入vi 编辑界面后,将光标置于文件的第n 行,则在vi命令后面加上“+n” 参数即可。例如需要从example.txt 文件的第5 行开始显示,则使用如下命令:
vi +5 example.txt
退出 vi 时,需要在末行模式中输入退出命令“q”。 如果在文本输入模式下,首先按“ESC” 键进入命令模式,然后输入“:” 进入末行模式在末行模式下,可使用如下退出命令:
:q 直接退出。 如果在文本输入模式下修改了文档内容,则不能退出。
:wq 保存后退出。
:x 同“ wq”。
:q! – 不保存内容, 强制退出。
vi 中显示行号
在末行模式下,输入如下命令。
set number
可使 vi 在编辑界面中显示行号。
此外 ,在末行模式下,可使用如下“nu” 命令(number 的简写)来显示光标所在行的行号及该行的内容。
光标移动操作
全屏幕文本编辑器中, 光标的移动操作无疑是最经常使用的操作了。用户只有熟练地使用移动光标的这些命令,才能迅速准确地到达所期望的位置处进行编辑。
vi 中的光标移动既可以在命令模式下,也可以在文本输入模式下,但操作的方法不尽相同。
在文本输入模式下, 可直接使用键盘上的四个方向键移动光标;在命令模式下,有很多移动光标的方法。不但可以使用四个方向键来移动光标,还可以用h 、j、 k、 l 这四个键代替四个方向键来移动光标,这样可以避免由于不同机器上的不同键盘定义所带来的矛盾,而且使用熟练后可以手不离开字母键盘位置就能完成所有操作,从而提高工作效率。
以下命令均在命令行模式下完成光标移动:
h 光标左移, 如果在按h 命令前输入数字n ,则光标左移n 个字符;
l 光标右移 ,如果在按l 命令前输入数字n, 则光标右移n 个字符;
j 光标上移, 如果在按j 命令前输入数字n, 则光标上移n 个字符;
k 光标下移, 如果在按k 命令前输入数字n ,则光标xia 移n 个字符;
0 (零) 光标移到行首;
$ 光标移到行尾;
H 光标移到屏幕上显示的第一行 (并不一定是文件头);
L 光标移到屏幕上显示的最后一行 (并不一定是文件尾);
M 光标移到屏幕的中间一行;
nG 光标移到第 n 行;
w或W 将光标右移至下一个单词的词首;
e 或E 如果光标起始位置处于单词内(即非单词尾处),则该命令将把光标移到本单词词尾;如果光标起始位置处于单词尾,则该命令将把光标移动到下一个单词的词尾。
b 或B 如果光标处于所在单词内(即非单词首),则该命令将把光标移至本单词词首;如果光标处于所在单词的词首,则该命令将把光标移到上一个单词的词首;
Ctrl+G 状态命令, 显示当前编辑文档的状态。包括正在编辑的文件名、是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比。
此外 ,也可以通过以下末行模式下的命令完成光标在整个文件中的移动操作:
:n 光标移到文件的第n 行;
:$ 光标移到文件的最后一行;
文本插入操作
在命令模式下 ,用户输入的任何字符都被vi 当作命令加以解释执行,如果用户要将输入的字符当作是文本内容时,则首先应将vi 的工作模式从命令模式切换到文本输入模式。切换的方式是使用下面的命令:
1. 插入(Insert) 命令
vi 提供了两个插入命令:i 和I。
(1) . i 命令插入文本从光标所在位置前开始, 并且插入过程中可以使用键删除错误的输入。此时vi 处于插入状态,屏幕最下行显示“–INSERT–” 插入字样。
(2) . I 命令 该命令是将光标移到当前行的行首, 然后在其前插入文本。
2. 附加(append) 命令
vi 提供了两个附加插入命令:a 和A。
(1) . a 命令该命令用于在光标当前所在位置之后追加新文本, 新输入的文本放在光标之后,在光标后的原文本将相应地向后移动,光标可在一行的任何位置。
(2) . A 命令 该命令与 a 命令不同的是,A 命令将把光标挪到所在行的行尾,从那里开始插入新文本,当输入A 命令后光,标自动移到该行的行尾。
a 和A 命令是把文本插入到行尾的唯一方法。
3. 打开open 命令
不论是 Insert 命令也好,还是append 命令也好,所插入的内容都是从当前行中的某个位置开始的。若我们希望在某行之前或某行之后插入一些新行,则应使用open 命令。
vi 提供了两个打开命令:o 和O。
(1) . o 命令该命令将在光标所在行的下面新开一行, 并将光标置于该行的行首,等待输入文本。要注意当使用删除字符时只能删除从插入模式开始的位置以后的字符,对于以前的字符不起作用。
(2) . O 命令和 o 命令相反,O 命令是在光标所在行的上面插入一行,并将光标置于该行的行首,等待输入文本。
文本修改操作
在命令模式下可以使用 vi 提供的各种有关命令对文本进行修改,包括对文本内容的删除、复制、取代和替换等。
1. 文本删除/移动
在编辑文本时 ,经常需要删除一些不需要的文本,我们可以用键将输错或不需要的文本删除,但此时有一个限制就是当删到行头之后,再想删上面那行的内容是不可能的。
在命令模式下, vi 提供了许多删除命令这些命令。大多是以d 开头的。常用的有:
(1) . 删除单个字符
x 删除光标处的字符。 若在x 之前加上一个数字n ,则删除从光标所在位置开始向右的n 个字符。
X 删除光标前面的那个字符,若在X之前加上一个数字n, 则删除从光标前面那个字符开始向左的n 个字符。
显然这两个命令是删除少量字符的快捷方法。
(2) . 删除多个字符
dd 删除光标所在的整行。 在dd 前可加上一个数字n ,表示删除当前行及其后n-1 行的内容。
D 或d$ 两命令功能一样, 都是删除从光标所在处开始到行尾的内容。
d0 删除从光标前一个字符开始到行首的内容。
dw 删除一个单词 。若光标处在某个词的中间,则从光标所在位置开始删至词尾。同dd 命令一样,可在dw之前加一个数字n 。表示删除n 个指定的单词。
如果用户不小心进行了误删除操作,也不要紧vi ,提供了恢复误操作的命令,并且可以将恢复的内容移动,放在文本的任何地方。恢复命令用“np”, 其中n 为需要恢复的次数。例如使用dd 命令删除了一行内容,然后使用“2p”命令,则被删除的内容会被重新插入两遍。
通过 dd 命令及p 命令的结合使用,可以很方便的实现文本行的移动操作。
2. 文本复制命令
yy 复制光标所在的整行。 在yy 前可加上一个数字n ,表示复制当前行及其后n-1 行的内容。
文本行复制后, 通过使用上面介绍的“p” 命令,可以将文本行粘贴到任何地方。
dd、 yy 及p 命令在vi 中的作用,类似于Windows 中图形编辑程序的“剪切”、“复制”及“粘贴”命令。
3. 取消上一命令(Undo)
取消上一命令 (Undo), 也称复原命令,是非常有用的命令,它可以取消前一次的误操作或不合适的操作对文件造成的影响,使之回复到这种误操作或不合适操作被执行之前的状态。
取消上一命令有两种形式, 在命令模式下键入字符u 和U 它们的功能都是取消刚才输入的命令,恢复到原来的情况。小写u 和大写U 在具体细节上有所不同,二者的区别在于,大写U命令的功能是恢复到误操作命令前的情况,即如果插入命令后使用U 命令,就删除刚刚插入的内容;如果删除命令后使用U 命令,就相当于在光标处又插入刚刚删除的内容。这里把所有修改文本的命令都视为插入命令,也就是说U 命令只能取消前一步操作,如果用U命令撤消了前一步操作,当再按U 键时,并不是撤消再前一步的操作,而是撤消了刚才U命令执行的操作,也就是又恢复到第一次使用U 命令之前的状态,结果是什么都没做。而小写u 命令的功能是把当前行恢复成被编辑前的状态,而不管此行被编辑了多少次。
4. 重复命令(Redo)
重复命令也是一个非常常用的命令。 在文本编辑中经常会碰到需要机械地重复一些操作,这时就需要用到重复命令。它可以让用户方便地再执行一次前面刚完成的某个复杂的命令。
重复命令只能在命令模式下工作, 在该模式下按“.” 键既可。执行一个重复命令时,其结果是依赖于光标当前位置的。
文本搜索与替换操作
在进行文本编辑的时候,,您可以需要搜索或定位特定的单词或单词的一部分。vi 编辑器有向前或向后搜索指定模式的功能。
“/” 是vi 编辑器的模式搜索命令。键入“/” 后,屏幕的底部会出现一行,同时一个斜扛会出现在底行的行首上,且光标被放置在斜扛之后。此时,您可以在光标位置键入你需要搜索的模式。输入完成并按下ENTER键后,编辑器将开始从光标所在的位置起向文件尾部搜索你键入的模式。如果输入的模式被找到,光标将停留在找到的模式上。在找到一个匹配的模式后,如果您还需要搜索下一个匹配的模式,使用命令“n” 即可;如果需要找到上一个匹配的模式,则使用“N” 命令即可。
此外,“ ?” 命令也是模式搜索命令。与“/” 的区别在于/ 是从光标当
前所在位置向文件尾部搜索,而“?” 命令则是由光标当前所在位置向文件头部搜索。
文本替换操作需要使用末行模式进行操作 即所有文本替换操作命令均以“:”开头。
文本替换命令的格式为:
:s/text1/text2 用于将光标所在段落搜索到的第一个 “text1” 替换为“text2”;
:s/text1/text2/g 用于将光标所在段落的所有 “text1 ”替换为“text2”;
:m,ns/text1/text2/g 用于将从 m行开始至n 行结束的所有搜索到的“text1”替换为text2。 其中可以使用$表示末行,即“1,$” 表示替换文档中的所有符合条件的字符。