第一页 上页 22 23 24 25 26 27 28 29 30 下页 最后页 [ 显示模式: 摘要 | 列表 ]

在MySQL安装程序的解压包/usr/local/mysql/support-files有一个叫myslq.server的启动脚本程序。把它复制到/etc/rc.d/init.d目录里面:

# cd /etc/rc.d/init.d
# cp /usr/local/mysql/support-files/mysql.server mysql

接着把它的属性改为“x”(executable,可执行)

# chmod +x mysql

最后,运行chkconfig把MySQL添加到你系统的启动服务组里面去。

执行chkconfig --add mysql


############################################################################################

                                   在Linux下安装和使用MySQL

 

一、引言

  想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux

下的MySQL。本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在

真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux和Windows本身就有很大区别。为了让和我一

样的初学者在学习的过程中少走弯路,尽快入门,写了此文,希望对您有所帮助。本文的Linux环境是Red Hat

9.0,MySQL是4.0.16。

  二、安装Mysql

  1、下载MySQL的安装文件
安装MySQL需要下面两个文件:
MySQL-server-4.0.16-0.i386.rpm   
MySQL-client-4.0.16-0.i386.rpm
下载地址为:http://www.mysql.com/downloads/mysql-4.0.html, 打开此网页,下拉网页找到“Linux

x86 RPM downloads”项,找到“Server”和“Client programs”项,下载需要的上述两个rpm文件。

  2、安装MySQL
rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在

安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间

出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。
1)安装服务器端
在有两个rmp文件的目录下运行如下命令:
[root@test1 local]# rpm -ivh MySQL-server-4.0.16-0.i386.rpm
显示如下信息。
warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing...       ########################################### [100%]
1:MySQL-server     ########################################### [100%]
。。。。。。(省略显示)
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h test1 password 'new-password'
。。。。。。(省略显示)
Starting mysqld daemon with databases from /var/lib/mysql
如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务

已经启动,安装成功。Mysql默认的端口是3306。
[root@test1 local]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address      Foreign Address     State   
tcp  0  0 0.0.0.0:3306     0.0.0.0:*      LISTEN   
上面显示可以看出MySQL服务已经启动。
2)安装客户端
运行如下命令:
[root@test1 local]# rpm -ivh MySQL-client-4.0.16-0.i386.rpm
warning: MySQL-client-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing...    ########################################### [100%]
1:MySQL-client  ########################################### [100%]
显示安装完毕。
用下面的命令连接mysql,测试是否成功。
三、登录MySQL

  登录MySQL的命令是mysql, mysql 的使用语法如下:
mysql [-u username] [-h host] [-p[password]] [dbname]
username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:

这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即

可。
[root@test1 local]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.16-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
出现了“mysql>”提示符,恭喜你,安装成功!
增加了密码后的登录格式如下:
mysql -u root -p
Enter password: (输入密码)
其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。

  注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。

  四、MySQL的几个重要目录

  MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同

的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为Linux本身的目录结构就比较复杂,如果搞不

清楚MySQL的安装目录那就无从谈起深入学习。

  下面就介绍一下这几个目录。

  1、数据库目录
/var/lib/mysql/

  2、配置文件
/usr/share/mysql(mysql.server命令及配置文件)

  3、相关命令
/usr/bin(mysqladmin mysqldump等命令)

  4、启动脚本
/etc/rc.d/init.d/(启动脚本文件mysql的目录)

 五、修改登录密码

  MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。

  1、命令
usr/bin/mysqladmin -u root password 'new-password'
格式:mysqladmin -u用户名 -p旧密码 password 新密码

  2、例子
例1:给root加个密码123456。
键入以下命令 :
[root@test1 local]# /usr/bin/mysqladmin -u root password 123456
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

  3、测试是否修改成功
1)不用密码登录
[root@test1 local]# mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
显示错误,说明密码已经修改。
2)用修改后的密码登录
[root@test1 local]# mysql -u root -p
Enter password: (输入修改后的密码123456)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.16-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
成功!
这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。

  六、启动与停止

  1、启动
MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。
[root@test1 init.d]# /etc/init.d/mysql start

  2、停止
/usr/bin/mysqladmin -u root -p shutdown

  3、自动启动
1)察看mysql是否在自动启动列表中
[root@test1 local]# /sbin/chkconfig –list
2)把MySQL添加到你系统的启动服务组里面去
[root@test1 local]# /sbin/chkconfig – add mysql
3)把MySQL从启动服务组里面删除。
[root@test1 local]# /sbin/chkconfig – del mysql
七、更改MySQL目录

  MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:

  1、home目录下建立data目录
cd /home
mkdir data

  2、把MySQL服务进程停掉:
mysqladmin -u root -p shutdown

  3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下

  4、找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/

并改名为my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

  5、编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改

socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
vi  my.cnf    (用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server
[mysqld]
port   = 3306
#socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket  = /home/data/mysql/mysql.sock   (加上此行)

  6、修改MySQL启动脚本/etc/rc.d/init.d/mysql
最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右

边的路径改成你现在的实际存放路径:home/data/mysql。
[root@test1 etc]# vi /etc/rc.d/init.d/mysql
#datadir=/var/lib/mysql    (注释此行)
datadir=/home/data/mysql   (加上此行)

  7、重新启动MySQL服务
/etc/rc.d/init.d/mysql start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。

  八、MySQL的常用操作

  注意:MySQL中每个命令后都要以分号;结尾。

  1、显示数据库
mysql> show databases;
+----------+
| Database |
+----------+
| mysql  |
| test   |
+----------+
2 rows in set (0.04 sec)
Mysql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码

和新增用户,实际上就是用这个库中的相关表进行操作。

  2、显示数据库中的表
mysql> use mysql; (打开库,对每个库进行操作就要打开此库,类似于foxpro )
Database changed

  mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv  |
| db       |
| func      |
| host      |
| tables_priv   |
| user      |
+-----------------+
6 rows in set (0.01 sec)

  3、显示数据表的结构:
describe 表名;

  4、显示表中的记录:
select * from 表名;
例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。
Select * from user;

  5、建库:
create database 库名;
例如:创建一个名字位aaa的库
mysql> create databases aaa;
6、建表:
use 库名;
create table 表名 (字段设定列表);
例如:在刚创建的aaa库中建立表name,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身

年月)四个字段
use aaa;
mysql> create table 111 (id int(3) auto_increment not null primary key, xm char(8),xb char

(2),csny date);
可以用describe命令察看刚建立的表结构。
mysql> describe name;

  +-------+---------+------+-----+---------+----------------+
| Field | Type  | Null | Key | Default | Extra     |
+-------+---------+------+-----+---------+----------------+
| id  | int(3) |   | PRI | NULL  | auto_increment |
| xm  | char(8) | YES |   | NULL  |        |
| xb  | char(2) | YES |   | NULL  |        |
| csny | date  | YES |   | NULL  |        |
+-------+---------+------+-----+---------+----------------+

  7、增加记录
例如:增加几条相关纪录。
mysql> insert into name values('','张三','男','1971-10-01');
mysql> insert into name values('','白云','女','1972-05-20');
可用select命令来验证结果。
mysql> select * from name;
+----+------+------+------------+
| id | xm  | xb  | csny    |
+----+------+------+------------+
| 1 | 张三 | 男  | 1971-10-01 |
| 2 | 白云 | 女  | 1972-05-20 |
+----+------+------+------------+

  8、修改纪录
例如:将张三的出生年月改为1971-01-10
mysql> update name set csny='1971-01-10' where xm='张三';

  9、删除纪录
例如:删除张三的纪录。
mysql> delete from name where xm='张三';

  10、删库和删表
drop database 库名;
drop table 表名;

  九、增加MySQL用户

  格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删

除的权限。首先用以root用户连入MySQL,然后键入以下命令:

  mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123";
例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的

MySQL数据库并对你的数据为所欲为了,解决办法见例2。

  例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、

插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道

user_2的密码,他也无法从网上直接访问数据库,只能通过MYSQL主机来操作aaa库。

  mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";

  用新增的用户如果登录不了MySQL,在登录时用如下命令:

  mysql -u user_1 -p -h 192.168.113.50 (-h后跟的是要登录主机的ip地址)

  十、备份与恢复

  1、备份

  例如:将上例创建的aaa库备份到文件back_aaa中

  [root@test1 root]# cd /home/data/mysql (进入到库目录,本例库已由val/lib/mysql转

到/home/data/mysql,见上述第七部分内容)
[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa

  2、恢复

  [root@test mysql]# mysql -u root -p ccc < back_aaa

 

############################################################################################


                                      彻底卸载Mysql


rpm -qa|grep -i mysql
把出来的东西都用rpm -e删除掉就好了!

一、总结一下:
1.Linux系统下启动MySQL的命令:
mysqladmin start
/ect/init.d/mysql start (前面为mysql的安装路径)
2.linux下重启mysql的命令:
mysqladmin restart
/ect/init.d/mysql restart (前面为mysql的安装路径)
3.linux下关闭mysql的命令:
mysqladmin shutdown
/ect/init.d/mysql   shutdown (前面为mysql的安装路径)
4.连接本机上的mysql:
进入目录mysql\bin,再键入命令mysql -uroot -p, 回车后提示输入密码。
退出mysql命令:exit(回车)
5.修改mysql密码:
mysqladmin -u用户名 -p旧密码 password 新密码
或进入mysql命令行SET PASSWORD FOR root=PASSWORD("root");
6.增加新用户。(注意:mysql环境中的命令后面都带一个分号作为命令结束符)
grant select on 数据库.* to 用户名@登录主机 identified by "密码"
如增加一个用户test密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to " Identified by "123";
二、有关MySQL数据库方面的操作
必须首先登录到mysql中,有关操作都是在mysql的提示符下进行,而且每个命令以分号结束
1、显示数据库列表。
show databases;
2、显示库中的数据表:
use mysql; //打开库
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名(字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;
9、编码的修改
如果要改变整个mysql的编码格式:
启动mysql的时候,mysqld_safe命令行加入
--default-character-set=gbk
如果要改变某个库的编码格式:在mysql提示符后输入命令
alter database db_name default character set gbk;
三、数据的导入导出
1、文本数据转到数据库中
文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:
1 name duty 2006-11-23
数据传入命令 load data local infile "文件名" into table 表名;
2、导出数据库和表
mysqldump --opt news > news.sql(将数据库news中的所有表备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
mysqldump --opt news author article > author.article.sql(将数据库news中的author表和article表备份到author.article.sql文件, author.article.sql是一个文本文件,文件名任取。)
mysqldump --databases db1 db2 > news.sql(将数据库dbl和db2备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
mysqldump -h host -u user -p pass --databases dbname > file.dump
就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中
mysqldump --all-databases > all-databases.sql(将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。)
3、导入数据
mysql source news.sql;(在mysql命令下执行,可导入表)
一、连接MySQL
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>。
2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令: exit (回车)。
二、修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令:
mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为djg345。
mysqladmin -uroot -pab12 password djg345
三、增加新用户。(注意:和上面不同,下面的因为是MySQL环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:
grant select,insert,update,
delete on *.* to test1@\"%\" Identified by \"abc\";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的MySQL数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作 (localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据 库,只能通过MySQL主机上的web页来访问。
grant select,insert,update,
delete on mydb.* to test2@localhost identified by \"abc\";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb
.* to test2@localhost identified by \"\";
在上面讲了登录、增加用户、密码更改等问题。下面我们来看看MySQL中有关数据库方面的操作。注意:你必须首先登录到MySQL中,以下操作都是在MySQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就完成。
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MySQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。
二、显示命令
1、显示数据库列表:
show databases;
刚开始时才两个数据库:mysql和test。MySQL库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql; //打开库,学过FOXBASE的一定不会陌生吧
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ’深圳’,
year date
); //建表结束
//以下为插入字段
insert into teacher values(’’,’glchengang’,’深圳一中’,’1976-10-10’);
insert into teacher values(’’,’jack’,’深圳一中’,’1975-12-23’);
注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别 呢,只有等以后的文章再说了。(4)将YEAR设为日期字段。
如果你在MySQL提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:\\下,并在DOS状态进入目录\\mysql\\bin,然后键入以下命令:
mysql -uroot -p密码 school.bbb
mysqldump --opt school>school.bbb
(命令在DOS的\\mysql\\bin目录下执行)
注释:将数据库school备份到school.bbb文件,school.bbb是一个文本文件,文件名任取,打开看看你会有新发现。
后记:其实MySQL的对数据库的操作与其它的SQL类数据库大同小异,您最好找本将SQL的书看看。我在这里只介绍一些基本的,其实我也就只懂这 些了,呵呵。最好的MYSQL教程还是“晏子“译的“MYSQL中文参考手册“不仅免费每个相关网站都有下载,而且它是最权威的。可惜不是象\"PHP4 中文手册\"那样是chm的格式,在查找函数命令的时候不太方便。
2、修改登录密码
1) mysqladmin -u用户名 -p旧密码 password 新密码:
例:mysqladmin -u root password 21century
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2)直接修改user表的root用户口令:
mysql> user mysql;
mysql> update user set pasword=password(''21century'') where user=''root'';
mysql> flush privileges;
注:flush privileges的意思是强制刷新内存授权表,否则用的还是缓冲中的口令。
3、测试密码是否修改成功:
1)不用密码登录:
[root@test1 local]# mysql
ERROR 1045: Access denied for user: ''root@localhost'' (Using password: NO)
显示错误,说明密码已经修改。
2)用修改后的密码登录:
[root@test1 local]# mysql -u root -p
Enter password: (输入修改后的密码21century)
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 177 to server version: 3.23.48
Type ''help;'' or ''\h'' for help. Type ''\c'' to clear the buffer.
mysql>
成功!
这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。
4、启动和停止:
启动:Mysql从3.23.15版本开始作了改动,默认安装后服务要用MySQL用户来启动,不允许root用户启动。
如果非要用root用户来启动,必须加上--user=root参数(./safe_mysqld --user=root &)停止:mysqladmin -u root -p shutdown。
5、导出meeting数据库:
mysqldump -uroot -p21century meeting > db_meeting.sql
导人dbname数据库:
mysqldump -uroot -p21century dbname
 

linux关机重启注销令

[不指定 2010/09/13 01:00 | by 刘新修 ]

1关机命令 shutdown

好像ubuntu的终端中默认的是当前用户的命令,只是普通用户,因此在终端器中可以使用sudo -sh 转换到管理员root用户下执行命令。

1)shutdown –help

可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。

2) shutdown -h now 现在立即关机

3)shutdown -r now 现在立即重启

4)shutdown -r +3 三分钟后重启

5)shutdown -h +3 “The System will shutdown after 3 minutes” 提示使用者将在三分钟后关机

6)shutdown -r 20:23 在20:23时将重启计算机

7)shutdown -r 20:23 & 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端

reboot命令

  顾名思义,reboot命令是用来重新启动系统的。常用的参数如下:

   -f 参数:不依正常的程序运行关机,直接关闭系统并重新启动计算机。

   -I 参数:在在重新启动之前关闭所有网络接口。

  虽然reboot命令有个参数可以使用,但是一般只需要单独运行reboot命令就可以了


2中断命令

1)执行完命令后(若没有转到后台),可以使用CTRL+C来中止命令

2)kill 程序编码

当命令在后台执行时系统会返回一个程序编码,例如:在使用 shutdown -r 20:23 & 系统返回系统编码:4905

我们可以使用kill 4905来中止重启命令

3ps aux | grep 程序编号

我们如果知道程序的编号,我们可以使用ps aux |grep 程序编号来查询该程序编号对应的命令是什么。

例如上面的程序编号为4905 ,我们可以使用ps aux | grep 4905 就可以查到 shutdown -r 20:23 & 的命令

halt—-最简单的关机命令

其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。

参数说明:

[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。

[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。

[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。

[-f] 没有调用shutdown而强制关机或重启。

[-i] 关机〔或重启〕前﹐关掉所有的网络接口。

[-p] 该选项为缺省选项。就是关机时调用poweroff。

init

init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。

注销系统的logout命令

Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:

[root@localhost root]#logout

Red Hat Linuxrelease 9(Shike)

Kernel 2.4.20.8 on an i686

Login: ← 回到登陆的画面

【编辑推荐】

 

熟悉Windows2000/XP的用户一定很熟悉shutdown这一关机命令,特别是在中了冲击波病毒,系统提示要重启时,用shutdown -a命令可以救一时之急。

  其实在Linux下也有一个shutdown命令,功能不比Windows的差。让我们看一下shutdown命令的具体应用吧。

  Linux下shutdown命令的语法规则如下:

  shutdown [-cfFhknr(参数名称)] [-t秒数]时间[警告信息]

  具体各参数功能:

  -c取消前一个shutdown命令。值得注意的是,当执行一个如“shutdown -h 11:10”的命令时,只要按“Ctrl+C”键就可以中断关机的命令。若是执行如“shutdown -h 11:10 & ” 的命 令将 shutdown转到后台时,则需要使用shutdown -c将前一个shutdown命令取消。

  -f重新启动时不执行fsck(注:fsck是Linux下的一个检查和修复文件系统的程序)。

  -F重新启动时执行fsck。

  -h将系统关机,在某种程度上功能与halt命令相当。

  -k只是送出信息给所有用户,但并不会真正关机。

  -n不调用init程序关机,而是由shutdown自己进行(一般关机程序是由shutdown调用init来实现关机动作),使用此参数将加快关机速度,但是不建议用户使用此种关机方式。

  -r shutdown之后重新启动系统。

  -f<秒数>送出警告信息和关机信号之间要延迟多少秒。警告信息将提醒用户保存当前进行的工作。

  [时间]设置多久时间后执行shutdown命令。时间参数有hh:mm或+m两种模式。hh:mm格式表示在几点几分执行shutdown命令。例如“shutdown 10:45”表示将在10:45执行shutdown。+m表示m分钟后执行shutdown。比较特别的用法是以now表示立即执行shutdown。值得注意的是这部分参数不能省略。

  [警告信息]要传送给所有登入用户的信息。

  应用举例:

  指定现在立即关机: # shutdown -h now

  指定5分钟后关机,同时送出警告信息给登入用户:# shutdown +5 “System will shutdown after 5 minutes”

 

CentOS 5.5硬盘分区方案

[不指定 2010/09/12 01:26 | by 刘新修 ]

硬盘分区方案

在计算机上安装Linux系统,对硬盘进行分区是一个非常重要的步骤,下面介绍几个分区方案。

1)方案1
/
:建议大小在5GB以上。
swap
:即交换分区,建议大小是物理内存的1~2倍。

2)方案2
/boot
:用来存放与Linux系统启动有关的程序,比如启动引导装载程序等,建议大小为100MB
/
Linux系统的根目录,所有的目录都挂在这个目录下面,建议大小为5GB以上。
/home
:存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间。
swap
:实现虚拟内存,建议大小是物理内存的1~2倍。

3)方案3
/boot
:用来存放与Linux系统启动有关的程序,比如启动引导装载程序等,建议大小为100MB
/usr
:用来存放Linux系统中的应用程序,其相关数据较多,建议大于3GB以上。
/var
:用来存放Linux系统中经常变化的数据以及日志文件,建议大于1GB以上。
/home
:存放普通用户的数据,是普通用户的宿主目录,建议大小为剩下的空间。
/
Linux系统的根目录,所有的目录都挂在这个目录下面,建议大小为5GB以上。
/tmp
:将临时盘在独立的分区,可避免在文件系统被塞满时影响到系统的稳定性。建议大小为500MB以上。
swap
:实现虚拟内存,建议大小是物理内存的1~2倍。

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

磁盘分区配置

如果是全新硬盘,可能会发生如下错误信息,这个信息仅提示你,安装程序找不到分区表,不需要担心。此时,直接按下“Yes”按钮就可以了,如下图所示。

1)分区模式

如同前面谈到的,磁盘分区是整个安装过程里面最重要的部分了。CentOS预设给了我们四种分区模式,分别为:

<1>在选定磁盘上删除所有分区并创建默认分区结构:
如果选择这种模式,你硬盘会整个被Linux拿去使用,并且硬盘里面的分区全部被删除后, 以安装程式的预设方式重新建立分区结构,使用上要特别注意!

<2>在选定驱动上删除Linux分区并创建默认的分区结构:
在这个硬盘内,只有Linux的分区被删除,然后再以安装程式的预设方式重新建立分区。

<3>使用选定驱动器中的空余空间并创建默认的分区结构:
如果你的这颗硬盘内还有未被分割的磁盘空间(注意,是未被分割,而不是该分区内没有资料的意思!) 那么使用这个项目后,他不会更动原有的分区,只会就剩余的未分割区块进行预设分区的建置。

<4>建立自定义的分区结构:
就是我们要使用的啦!不要使用安装程式的预设分割方式,使用我们需要的分割方式来处理。

2)默认分区模式

如下图所示为磁盘分区设置对话框,选择默认(在选定驱动上删除Linux分区并创建默认的分区结构)即可。单击下一步按钮,出现如下图所示的提示,单击按钮,下一步出现如下图所示的系统默认磁盘设置,单击下一步按钮。

3)自定义分区模式

如下图所示为磁盘分区设置对话框,选择建立自定义的分区结构即可。建立四个分区,分别是/, /boot, /homeswap四个。

按下下一步后就会出现如下的分区视窗。这个画面主要分为三大区块:
最上方为硬盘的分区示意图, 目前因为硬盘并未分区,所以呈现的就是一整块而且为Free的字样。中间则是指令区,下方则是每个分区的装置档名、 挂载点目录、档案系统类型、是否需要格式化、分区容量大小、开始与结束的磁柱号码等。

至于指令区,总共有六大区块,其中RAIDLVM是硬盘特殊的应用,这部份我们会在单独介绍。至于其他指令的作用如下:

新建:是增加新分区,亦即进行分区动作,以建立新的磁盘分区;

编辑:则是编辑已经存在的磁盘分区, 你可以在实际状态显示区点选想要修改的分区,然后再点选编辑即可进行该分区的编辑动作。

删除:则是删除一个磁盘分区,同样的, 你得要在实际状态显示区点选想要删除的分区。

重设:则是恢复最原始的磁盘分区状态。

Tips:需要注意的是,你的系统与作者的系统当然不可能完全一样,所以你屏幕上的硬盘资讯应该不会与作者的相同的喔! 所以看到不同,不要太紧张啊,那是正常的。

接下来建立根目录(/)的分区。按下新建后,就会出现如下的画面。由于我们需要的根目录是使用Linux的文件系统,因此预设就是ext3这个文件系统。 至于在挂载点的地方,你可以手动输入也可以用鼠标来挑选。 最后在大小(MB)的地方输入你所需要的磁盘容量即可。不过由于作者这个系统当中只有一颗硬盘,所以在允许的驱动器里面就不能够自由挑选。

 

最终建立/boot分区的结果如下所示,他会主动的将/boot这个特殊目录移到硬盘最前面,所以你会看到/boot所在的硬盘分区为/dev/hda1,而起始磁柱则为1号。情况如下图所示:

Tips:某些安装程序在你没有指定swap为内存的1~2倍时会有警告讯息的告知,此时只要将警告讯息忽略,按下一步即可。

让我们继续完成最后一个分区/home,继续按下上图的新建”,依序填入正确的信息,包括挂载点、文件系统类型、大小等。

 

分区的最终结果如下图所示。你会发现到系统自动的将/dev/hda4变成扩展分区。然后将所有容量都给/dev/hda4 并且将swap分配到/dev/hda5去了。

在上图中继续按下新建来交换空间(swap)。如同上面谈到的, 因为swap是交换空间,因此不需要有挂载点。所以,请如同下图所示,在文件系统类型处挑选为“swap”

文件系统类型分别是:

ext2/ext3:是Linux适用的文件系统类型。由于ext3文件系统多了日志的记录, 对于系统的复原比较快速,因此建议你务必要选择新的ext3不要用ext2了。

physical volume (LVM):这是用来弹性调整档案系统容量的一种机制,可以让你的文件系统容量变大或变小而不改变原有的文件资料内容。

software RAID:利用Linux作业系统的特性,用软件模拟出磁盘阵列的功能。

swap:就是交换空间!由于swap并不会使用到目录树的挂载, 所以用swap就不需要指定挂载点。

vfat:同时被LinuxWindows所支持的文件系统类型。如果你的主机硬盘内同时存在WindowsLinux作业系统,为了资料的交换,确实可以建置一个vfat的文件系统。

我们继续按下新建来建立/boot这个分区。依序填入正确的信息,包括挂载点、文件系统类型、大小等。务必让该分区在整个硬盘的最前面部分。因此,我们针对/boot就选择强制为主分区。如下图所示:

如果你想要知道Linux还支援什么文件系统类型,点一下上图中的ext3那个按钮,就会出现如下的画面。

网易域名邮箱(ym.163.com):

小提示:完成验证需要您自己在域名管理网站进行,我们在此仅提供截图示意,如果您在设置时遇到困难,则需要联系域名提供商来解决。

例如example.com是您的域名:

步骤1:使用您的域名及密码登录域名管理网站(例如您的域名是在新网注册,可登录新网域名管理网站 http://dcp.xinnet.com/),并转到DNS记录维护页

步骤2:输入以下 MX 记录:域名:example.com 、优先级:10 、指向/IP地址/主机名:mx.ym.163.com

步骤3:(可选)将TXT设置修改为:v=spf1 include:spf.163.com ~all

步骤4:保存更改,完成DNS参数设置。

新网域名服务提供商(范例):

万网域名服务提供商(范例):

Godaddy域名服务提供商(范例):

ename.com域名服务提供商(范例):

怎样使用类似mail.abc.com这种地址来访问域名邮箱登录页面呢?

请在您的域名设置页面中加入一条别名(CNAME)记录。
这样您就可以使用"mail.您的域名"这种形式来访问您的登录页面了。
别名:mail
主机名:mail.qq.com
如图所示(新网设置页面):

GODADDY域名相关设置方法:

第一步:验证域名(以下两种方法任选其一)

方法一:上传验证文件

1         下载专用的验证文件:qqmail_domain_verify.txt

2         将该文件上传至您的域名指向的Web服务器(或虚拟主机)的根目录;

3         确保可以通过 http://您的域名/qqmail_domain_verify.txt 这样的方式访问到该文件。

方法二:给您的域名设置一个CNAME记录

登录您的域名管理页面,选择域名管理,点击后面的“Advanced Details”,如图:

在随后打开的页面中,找到Total DNS,点击下方的“Total DNS Control”,就能进入域名设置页面了。

然后,在图示的页面中,增加一个CNAME别名。具体信息如下:
名称:qqmail3fd0f520
IP
mail.qq.com

(CNAME解析一般在2-24小时后生效。如果您无法直接设置您的域名,请联系您的域名服务商)

完成后会出现如下图所示的一条CNAME记录

第二步:设置MX记录

MX记录用来指定由我们来对您的域名提供邮件服务。MX的设置入口跟CNAME在相同页面,请参考上文找到MX设置页面。然后将您的MX记录设置为mxdomain.qq.com ,优先级为10

设置方法如下:

请注意:godaddy的MX记录设置,“Host”一栏不允许为空,请填写“@”

修改SSH的默认端口号

[不指定 2010/09/11 18:16 | by 刘新修 ]

修改SSH的默认端口号

vi /etc/ssh/sshd_config
找到#Port 22,标识默认使用22端口,
修改为:Port 22XX
然后重启服务进程
/etc/init.d/sshd restart

Linux下常有的一些命令

[不指定 2010/09/11 18:12 | by 刘新修 ]

1、man <要查的命令名字> 4
2、ls 相当于DOS的dir 4
3、clear 相当于DOS的cls,清除屏幕上的内容 5
4、mkdir <目录名> 相当于DOS的md,新建一个目录 5
5、cd <目录名> 5
6、rm <文件名> 5
7、cp <源文件> <目的文件> 5
8、mv <源文件> <目的文件> 6
9、pwd 列出当前所在的目录位置 6
10、more <文件名> 查看文件的内容 6
11、chmod 改变文件或目录的读、写、执行的允许权限 7
12、chown 改变文件或目录的所有权 7
13、chgrp 改变文件或目录的工作组所有权 8
14、date 相当于DOS的date 8
15、su <用户名> 9
16、passwd 更改用户口令 9
17、exit 退出终端操作 9
18、shutdown 超级用户root才有权执行,关闭Solaris操作系统 9
19、find 搜索指定目录下要找的文件,找到后给出文件的路径 9
20、vi 10
21、echo 显示环境变量用 20
22、ping 测试网络通断情况。 20
23、ftp 本地工作站与远端工作站之间文件传输 21
24、telnet ip_address 远程登录命令,在工作站和PC机中都有 22
25、ps 查看系统的进程 22
26、kill 杀掉操作系统中的进程 23
27、tar 把多个文件或目录打包成一个文件,或者把已经打包的文件展开 23
28、compress 把文件压缩成后缀为.Z的压缩文件 23
29、uncompress 把后缀为.Z的压缩文件解压缩 23
30、df -k 查看各文件系统剩余的空间,-k说明单位是千字节(kb) 23

SOLARIS操作系统常用命令
SOLARIS操作系统中区分大小写字母,要注意输入系统的字符的大小写是正确的.在图形界面的CDE环境下,用鼠标的左键可以选定终端中的一个单词或一行字符,用鼠标的中键可以把选定的内容复制到光标当前的位置,十分方便.
1、man <要查的命令名字>
给出要查命令所有选项的含义,以及命令的详细说明.
2、ls 相当于DOS的dir
它的常用选项有-l(显示文件的详细信息),-a(显示包括隐含文件在内),-R(recursive,显示子目录中所有的文件和子目录),-t(依照文件最后修改时间的顺序列出文件名).例如:ls 列出目前目录下的文件名。
ls -a 列出包含以.起始的隐藏文件在内的所有文件名。
ls -t 依照文件最后修改时间的顺序,依序列出文件名。
ls -l 列出目录下所有文件的许可权、拥有者、文件大小、修改时间及名称。
ls -R 显示出目录下,以及其所有子目录的文件名。
内容很多一屏显示不完时,可用管道符连接more命令,每显示一屏暂停,按空格键继续.如: ls -altR | more
注意:
ls rms*.* 将列出rms.ini这类中间带"."的文件,而不会列出rms这类不带"."的文件,用ls rms* 可以把带"."和不带"."的文件都列出
3、clear 相当于DOS的cls,清除屏幕上的内容
4、mkdir <目录名> 相当于DOS的md,新建一个目录
5、cd <目录名>
相当于DOS的cd,和DOS的cd不一样的是,只输入cd将回到HOME目录.
6、rm <文件名>
相当于DOS的del,支持通配符*和?,例如rm file*, 为了不误删除想要的文件,在用通配符删除之前,先用ls file* 看看是否列出的文件都需要删除.要注意,用命令行删除的文件是无法恢复的,Unix操作系统因为多用户的原因,无法提供DOS下的undelete命令.如果在Solaris的CDE环境下,扔到垃圾箱里的文件是可以恢复的,因为扔到垃圾箱里的文件并没有被真正删除.
rm -r <目录名>
相当于DOS的deltree,小心使用.例如:rm file1 删除文件名为 file1 的文件。
rm file? 删除文件名中有五个字符,前四个字符为file 的所有文件。
rm f* 删除文件名中以 f 开头的所有文件。
7、cp <源文件> <目的文件>
相当于DOS的copy,和DOS的copy不一样的是,必须指定源文件名和目的文件名.cp -r <源文件> <目的文件> 相当于DOS的xcopy,带子目录的拷贝.例如:cp file1 file2 将文件 file1 复制成 file2
cp file1 dir1 将文件 file1 复制到目录 dir1 下,文件名仍为 file1.
cp /tmp/file1 . 将目录 /tmp 下的文件 file1 复制到当前目录下,文件名仍为 file1。
cp /tmp/file1 file2 将目录 /tmp 下的文件 file1 复制到现行目录下,文件名为 file2
cp -r dir1 dir2 复制整个目录。若目录 dir2 已经存在,则将目录 dir1,及其所有文件和子目录,复制到目录 dir2 下,新目录名称为 dir1,即dir2/dir1。若目录 dir2 不存在,则将dir1,及其所有文件和子目录,复制为目录 dir2。
8、mv <源文件> <目的文件>
相当于DOS的move,常用来给文件换名.例如:mv file1 file2 将文件 file1,更改文件名为 file2。
mv file1 dir1 将文件 file1,移到目录 dir1 下,文件名仍为 file1。
mv dir1 dir2 若目录 dir2 已经存在,则将目录 dir1,及其所有文件和子目录,移到目录 dir2 下,新目录名称为 dir1,即dir2/dir1。若目录 dir2 不存在,则将dir1更改为目录 dir2。
9、pwd 列出当前所在的目录位置
10、more <文件名> 查看文件的内容
显示满一屏就暂停,按空格键翻到下一页,按回车键看下一行。其它命令的输出太多来不及细看时,常通过管道操作符"|"输出到more来分屏显示输出内容。
例如:
more file1  以分页方式,查看文件名 file1 的内容。
ls -l | more 把ls -l的输出通过管道符输出到more来分屏显示输出内容。
11、chmod 改变文件或目录的读、写、执行的允许权限
格式:chmod [-R] mode name
name 可为文件名或目录名;mode可为 3 个 0-7 的数字,或利用ls -l 命令,列出
文件或目录的读、写、执行允许权的文字缩写。)
mode : rwx rwx rwx r:read w:write x:execute
user group other
缩写 : (u) (g) (o)
例如:
%chmod 755 dir1 把目录dir1设定成任何使用者,都能读取和执行,但只有所有者可做修改。
%chmod 700 file1 把文件file1设定只有所有者可以读、写和执行。
%chmod u+x file2 把文件file2增加所有者可以执行的权利。
%chmod g+x file3 把文件file3增加工作组使用者可执行的权利。
%chmod o-r file4 把文件file4除去其它使用者可读取的权利。
12、chown 改变文件或目录的所有权
格式:chown [-R] username name
name 可以是文件名或目录名。
例如:
%chown user file1
将文件 file1 的所有权,改为使用者 user 所有。
%chown -R user dir1
将目录 dir1,及其下所有文件和子目录的所有权,改为使用者 user 所有。
13、chgrp 改变文件或目录的工作组所有权
格式:chgrp [-R] groupname name
name 可为文件名或目录名
例如:
%chgrp sbsrms file1
将文件 file1 的工作组所有权,改为 sbsrms 工作组。
%chgrp -R bin dir1
将目录dir1,及其下所有文件和子目录,改为 bin 工作组。

14、date 相当于DOS的date
只输入date就显示当前的工作站时间,如果有root超级用户权限,加上参数可以修改 工作站的时间。
格式:date mmddHHMM[cc]yy
mm--月份,dd--日期,HH--小时,MM--分钟,cc--世纪(可选),yy--年份
例如:
#date 1023153098 将把工作站系统时间改为1998年10月23日15点30分
15、su <用户名>
改变自己的用户名进入其他使用者的帐号,拥有其使用权利。不指明用户名,就进入root超级用户。
例如:
%su user 进入使用者 user 的帐号
passwrod: 输入使用者 user 的密码
16、passwd 更改用户口令
例如:
%passwd rms 更改用户rms的口令
17、exit 退出终端操作
18、shutdown 超级用户root才有权执行,关闭Solaris操作系统
例如:
#/usr/sbin/shutdown -y -g0 -i0 输入绝对路径,以保证是执行关闭系统的shutdown程序
19、find 搜索指定目录下要找的文件,找到后给出文件的路径
格式:find search-path -name filename -print
例如:
%find / -name file1 -print ( 从根目录开始寻找 file1文件,并给出它的路径。)
20、vi
vi是在工作站上广泛使用的编辑软件。对初学者而言,
常因其特殊的使用方法,而不得其门而入;对已经在使用 vi 的使用者来说,也
常见因对 vi 的不熟悉或不够了解,而无法发挥出 vi 强大的编辑能力,以下将
简单介绍 vi 的使用方法。不必死记硬背,多实际操作几次就能记住常用的命令。
进入vi
直接执行 vi编辑程序即可:
%vi test
此刻屏幕上会出现 vi 的编辑屏幕,同时 vi 会将文件复制一份至内存中的缓冲区 (buffer) 。 vi会保留在硬盘中的文件不变,而先对缓冲区的文件作编辑,编辑完成后,使用者可决定是否要取代原来旧有的文件。
离开vi
若在输入模式下,则先利用《ESC》进入指令模式,而后即可选用下列指令
离开vi。
:q! 离开vi,并放弃刚在缓冲区内编辑的内容。
:wq 将缓冲区内的资料写入硬盘中,并离开vi。
:ZZ 同wq。
:x 同wq。
:w 将缓冲区内的资料写入硬盘中,但并不离开vi。
:q 离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容。
此指令可与:w 配合使用。

vi 的操作模式

vi 提供两种操作模式:输入模式(insert mode)和指令模式(command mode)
。当使用者进入 vi 后,即处在指令模式下,此刻键入的任何字符都被视为
指令。在此模式下可进行删除、修改等动作。若要输入资料,则需进入输入
模式。

输入模式

如何进入输入模式
a (append) 由光标之后加入资料。
A 由该行之末加入资料。
i (insert) 由光标之前加入资料。
I 由该行之首加入资料。
o (open) 新增一行于该行之下以供输入资料。
O 新增一行于该行之上以供输入资料。

如何离开输入模式
《ESC》 结束输入模式。

指令模式

光标的移动
h 向左移一个字符。
j 向上移一个字符。
k 向下移一个字符。
l 向右移一个字符。
0 移至该行之首
 $ 移至该行之末。
^ 移至该行的第一个字符处。
H 移至屏幕的第一列。
M 移至屏幕的中间那列。
L 移至屏幕的最后一列。
G 移至该文件的最后一列。
+ 移至下一列的第一个字符处。
- 移至上一列的第一个字符处。
( 移至该句之首。 (注一)
) 移至该句之末。
{ 移至该段落之首。 (注二)
} 移至该段落之末。
nG 移至该文件的第 n 列。
n+ 移至光标所在位置之后的第 n 列。
n- 移至光标所在位置之前的第 n 列。
<Ctrl><g> 会显示该行的行号、文件名称、文件中最末行的行号、光标
所在行号占总行号的百分比。

注一:句子(sentence)在vi中是指以『!』、『.』或『?』结束的一串字。
注二:段落(paragraph)在vi中是指以空白行隔开的文字。

屏幕的移动

<Ctrl><f> 屏幕往下卷一页。
<Ctrl> 屏幕往上卷一页。
<Ctrl><d> 屏幕往下卷半页。
<Ctrl> 屏幕往上卷半页。
<Ctrl><e> 屏幕往下卷一行。
<Ctrl><y> 屏幕往上卷一行。

删除、复制及修改指令介绍 (此单元较少使用)

d(delete)、c(change)和y(yank)这一类的指令在 vi 中的指令格式为:
Operator + Scope = command
(运算子) (范围)
运算子:
d 删除指令。删除资料,但会将删除资料复制到内存缓冲区。
y 将资料(字组、行列、句子或段落)复制到缓冲区。
p 放置(put)指令,与 d 和 y 配和使用。可将最后delete或yank的资
料放置于光标所在位置的行列下。
c 修改(change)指令,类似delete与insert的组合。删除一个词组、句
子等的资料,并插入新输入的资料。

范围:
e 由光标所在位置至该字符串的最后一个字符。
w 由光标所在位置至下一个字符串的第一个字符。
b 由光标所在位置至前一个字符串的第一个字符。
 $ 由光标所在位置至该行的最后一个字符。
0 由光标所在位置至该行的第一个字符。
) 由光标所在位置至下一个句子的第一个字符。
( 由光标所在位置至该句子的第一个字符。
{ 由光标所在位置至该段落的最后一个字符。
} 由光标所在位置至该段落的第一个字符。

整行动作
dd 删除整行。
D 以行为单位,删除光标后的所有字符。
cc 修改整行的内容。
yy yank整行,使光标所在该行复制到内存缓冲区。

删除与修改

x 删除光标所在该字符。
X 删除光标所在之前一字符。
dd 删除光标所在该行。
r 用接于此指令之后的字符取代(replace)光标所在字符。
如: ra 将光标所在字符以 a 取代之。
R 进入取代状态,直到《ESC》为止。
s 删除光标所在的字符,并进入输入模式直到《ESC》。
S 删除光标所在的该行资料,并进入输入模式直到《ESC》。

移动与复制

利用 delete 及 put 指令可完成资料移动的目的。
利用 yank 及 put 指令可完成资料复制的目的。
yank 和 delete 可将指定的资料复制到内存缓冲区,而通过 put 指令
可将缓冲区内的资料复制到屏幕上。
例:
移动一行 .在该行执行 dd
.光标移至目的地
.执行 p
复制一行 .在该行执行 yy
.光标移至目的地
.执行 p

指令重复

在指令模式中,可在指令前面加入一数字 n,则此指令动作会重复执行 n
次。
例:
删除10行 .10dd
复制10行 .10yy
.光标移至目的地
.p
指标往下移10行 .10j

取消前一动作(Undo)

即复原执行上一指令前的内容。

u 恢复最后一个指令之前的结果。
U 恢复光标该行的所有改变。

查找

在vi中可查找某一字符串,使光标移至该处。

/字符串 往光标之后寻找该字符串。
?字符串 往光标之前寻找该字符串。
n 往下继续寻找下一个相同的字符串。
N 往上继续寻找下一个相同的字符串。

资料的连接

J 句子的连接。将光标所在的下一行连接至光标该行的后面。

若某行资料太长亦可将其分成两行,只要将光标移至分开点,进入输入模式
(可利用 a、i等指令)再按《Enter》即可。

环境的设定

:set nu 设定资料的行号。
:set nonu 取消行号设定。
:set ai 自动内缩。
:set noai 取消自动内缩。

自动内缩(automatic indentation)
在编辑文件或程序时,有时会遇到需要内缩的状况,『:set ai』即提供自
动内缩的功能,用下例解释:
.vi test
.(进入编辑屏幕后)
this is the test for auto indent
《Tab》start indent ← :set ai (设自动内缩)
《Tab》data
《Tab》data
《Tab》data ← :set noai (取消自动内缩)
the end of auto indent.
.注:<Ctrl><d> 可删除《Tab》字符。

ex指令

读写资料
:w 将缓冲区的资料写入硬盘中。
:10,20w test 将第10行至第20行的资料写入test文件。
:10,20w>>test 将第10行至第20行的资料加在test文件之后。
:r test 将test文件的资料读入编辑缓冲区的最后。

删除、复制及移动
:10,20d 删除第10行至第20行的资料。
:10d 删除第10行的资料。
:%d 删除整个编辑缓冲区。
:10,20co30 将第10行至第20行的资料复制至第30行之后。
:10,20mo30 将第10行至第20行的资料移动至第30行之后。

字符串搜寻与取代
s(substitute)指令可查找某行列范围。
g(global)指令则可查找整个编辑缓冲区的资料。
s指令以第一个满足该条件的字符串为其取代的对象,若该行有数个满足该条
件的字符串,也仅能取代第一个,若想取代所有的字符串则需加上g参数。
:1, $s/old/new/g 将文件中所有的『old』改成『new』。
:10,20s/^/ / 将第10行至第20行资料的最前面插入5个空白。
:%s/old/new/g 将编辑缓冲区中所有的『old』改成『new』。

恢复编辑时被中断的文件

在编辑过程中,若系统当掉或连线中断,而缓冲区的资料并还未
被写回硬盘时,当再次回到系统,执行下列指令即可回复中断前
的文件内容。
%vi -r filename

编辑多个文件

vi还提供同时编辑多个文件的功能,方法如下:
%vi file1 file2 ..

当第一个文件编辑完成后,可利用『:w』将该缓冲区存档,而后
再利用 『:n』载入下一个文件。
21、echo 显示环境变量用
例如:
%echo  $RMSROOT 显示环境变量RMSROOT的值
22、ping 测试网络通断情况。
格式:ping ip_address
例如:ping 129.9.123.45
23、ftp 本地工作站与远端工作站之间文件传输
必须拥有远端工作站的帐号及密码,才可进行传输工作 。
格式: ftp hostname or ftp ip_address
例如 :
ftp 129.9.123.45 与远端工作站 129.9.123.45 ,进行文件传输
Name (129.9.123.45:user-name) : 输入帐号
Password (129.9.123.45:user-name): 输入密码

!为执行外部操作系统的命令。
ftp> help 列出 ftp 文件传输,可使用的任何命令。
ftp> !ls 列出本地工作站,目前目录下的所有文件名。
ftp> !pwd 列出本地工作站,目前所在的工作目录位置。
ftp> ls 列出远端工作站目前目录下的所有文件名。
ftp> dir 列出远端工作站目前目录下的所有文件名(略同于 UNIX 的 ls -l 指令).
ftp> pwd 列出远端工作站目前所在的目录位置。
ftp> cd dir1 更改远端工作站的工作目录位置至 dir1 下。
ftp> get file1 将远端工作站的文件 file1 ,拷贝到本地工作站中。
ftp> put file2 将本地工作站的文件 file2 ,拷贝到远端工作站中。
ftp> mget *.c 将远端工作站中,文件名后缀为 c 的所有文件,拷贝到本地工作站中。
ftp> mput *.txt 将本地工作站中,文件名后缀为 txt 的所有文件,拷贝到远端工作站中。
ftp> bin 以二进制方式传输文件,切记在传送可执行文件时要先执行此命令。
可以将ASCII文件按二进制方式传输,但决不能将二进制文件按ASCII方式传输,否则二进制文件的内容会遭到破坏而无法使用。
ftp> asc 以ASCII方式传输文件,只在传输ASCII文件时用,特别是在DOS和Solaris之间传输时用。
ftp> prompt 使用 mput/mget 时不用每个文件皆询问yes/no
ftp> quit 结束 ftp 工作。
ftp> bye 结束 ftp 工作,和quit一样。
注: 从PC到工作站间的文件传输也可在 PC端WIN95下的 FTP命令进行文件传输,用法与
上所述大致相同。
24、telnet ip_address 远程登录命令,在工作站和PC机中都有
例如:
%telnet 129.9.123.45
25、ps 查看系统的进程
格式:ps [-euf...]
例如:
%ps -u rms   (查看系统中,用户rms的 process。)
%ps -ef   (查看系统中,包含系统内部,及所有用户的进程。)
26、kill 杀掉操作系统中的进程
一般先用ps命令先查看进程的ID号,再用kill。如果kill杀不掉,可再加参数-9,说明为强制杀掉。
例如:
%kill -9 1234 这里1234是假设的进程号。
27、tar 把多个文件或目录打包成一个文件,或者把已经打包的文件展开
例如:
%tar cvf RMS RMStar 把目录打包成一个文件
%tar xvf RMStar 把打包的文件展开。
28、compress 把文件压缩成后缀为.Z的压缩文件
例如:
%compress RMStar
29、uncompress 把后缀为.Z的压缩文件解压缩
例如:
%uncompress RMStar.Z
30、df -k 查看各文件系统剩余的空间,-k说明单位是千字节(kb)

显示目录文件用linux中ls命令

ls 命令可以说是linux下最常用的命令之一。

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。
-c 输出文件的 i 节点的修改时间,并以此排序。
-d 将目录象文件一样显示,而不是显示其下的文件。
-e 输出时间的全部信息,而不是输出简略信息。
-f -U 对输出的文件不排序。
-g 无用。
-i 输出文件的 i 节点的索引信息。
-k 以 k 字节的形式表示文件的大小。
-l 列出文件的详细信息。
-m 横向输出文件名,并以“,”作分格符。
-n 用数字的 UID,GID 代替名称。
-o 显示文件的除组信息外的详细信息。
-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通
文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可输出的字符。
-r 对目录反向排序。
-s 在每个文件名后输出该文件的大小。
-t 以时间排序。
-u 以文件上次被访问的时间排序。
-x 按列输出,横向排序。
-A 显示除 “.”和“..”外的所有文件。
-B 不输出以 “~”结尾的备份文件。
-C 按列输出,纵向排序。
-G 输出文件的组的信息。
-L 列出链接文件名而不是链接到的文件。
-N 不限制文件长度。
-Q 把输出的文件名用双引号括起来。
-R 列出所有子目录下的文件。
-S 以文件大小排序。
-X 以文件的扩展名(最后一个 . 后的字符)排序。
-1 一行只输出一个文件。

--color=no 不显示彩色文件名
--help 在标准输出上显示帮助信息。
--version 在标准输出上输出版本信息并退出。

只列出子目录
1. ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)
2. ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)

计算当前目录下的文件数和目录数
下面命令可以分别计算当前目录下的文件和目录个数:
# ls -l * |grep "^-"|wc -l ---- to count files
# ls -l * |grep "^d"|wc -l -- to count dir

显示彩色目录列表
打开/etc/bashrc, 加入如下一行:
alias ls="ls --color"
下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:
1. 蓝色-->目录
2. 绿色-->可执行文件
3. 红色-->压缩文件
4. 浅蓝色-->链接文件
5. 灰色-->其他文件

ls -tl --time-style=full-iso sshd
ls -ctl --time-style=long-iso
这些都是非常基本的命令,希望这篇小短文对Linux新手有帮助:
查看某目录占用空间命令:
# du -sh DirPath
比如: du -sh /home/snail
查看某目录下有多少个文件命令:
# find DirPath -type f | wc -l
比如: find /home/snail -type f | wc -l
如果想查看 src 目录下有多少 C 文件,如下:
# find ./src -type f -name "*.c" | wc -l

检查文件系统的磁盘空间占用情况: (df -h)

df命令用来检查linux文件系统的磁盘空间占用情况,所有用户均有使用df命令的权限。

linux文件与目录操作

[不指定 2010/09/11 17:30 | by 刘新修 ]

与其它操作系统一样,在Linux系统下用户的数据和程序也是以文件的形式保存的。所以在使用Linux的过程中,是经常要对文件与目录进行操作的。现在我们就以一个Window用户的立场来学习一下Linux下的文件与目录操作方法。 

1. 文件名与文件类型 
文件名是一个文件的标识。从这个角度来说,文件名的规则与Windows 9x下的是基本上相同的。它同样是由字母、数字、下划线、圆点组成,最大的长度是255个字符。 
与Windows 9x一样,Linux系统中也有普通文件和目录文件,不过目录文件在Window中被简称为目录就是了。而在Linux系统中有一种特殊的文件,那就是设备文件。在Linux系统中,把每一个I/O设置都映射成为一个文件,可以象普通文件一样处理,这就使得文件与设备的操作尽可能统一。从用户的用户来说,对I/O设备的使用和一般文件的使用几乎一样,这样就可以不必了解I/O设备的细节。 

2. 目录结构 
与Windows下一样,在Linux中也是通过目录来组织文件的。但不同的是,在Linux下只有一个根目录,而不象Windows那样一个分区一个根目录。如果有多个分区的话,就需要将其它分区mount到根目录上来用。 
大家回忆一下当时为Linux分区时,有一个选项要填,那就是Mount Point,我们将其中一个写成了“/”,也就是根目录(这点与Windows相反,一个是“\”,一个是“/”,真是天生冤家)。其它的则可能是/home、/usr。 
安装完系统后,你会发现/home、/usr就是根目录下面的home、usr目录!对了,整个分区就用于该目录了。 
安装完Linux后,有许许多多的目录,下面我们就说明一些重要的目录: 
/bin:存放着一百多个Linux下常用的命令、工具 
/dev:存放着Linux下所有的设备文件! 
/home:用户主目录,每建一个用户,就会在这里新建一个与用户同名的目录,给该用户一个自己的空间 
/lost+found:顾名思义,一些丢失的文件可能可以在这里找到 
/mnt:外部设备的挂接点,通常用cdrom与floppy两个子目录!它的存在简化了光盘与软盘的使用。你只需在塞入光盘后,运行:mount /mnt/cdrom,就可以将光盘上的内容Mount到/mnt/cdrom上,你就可以访问了。不过你使用完成后,应该离开该目录,并执行umount /mnt/cdrom。同样的,软盘就是mount /mnt/floppy和umount /mnt/floppy了。 
/proc:这其实是一个假的目录,通过这里你可以访问到内存里的内容。 
/sbin:这里存放着系统级的命令与工具 
/usr:通常用来安装各种软件的地方 
/usr/X11R6 X Window目录 
/usr/bin与/usr/sbin 一些后安装的命令与工具 
/usr/include、/usr/lib及/usr/share 则是存放一些共享链接库 
/usr/local 常用来安装新软件 
/usr/src Linux源程序 
/boot:Linux就是从这里启动的 
/etc:这里存放在Linux大部分的配置文件 
/lib:静态链接库 
/root:root用户的主目录,这就是特权之一! 
/var:通常用来存放一些变化中的东西! 
/var/log:存放系统日志 
/var/spool:存放一些邮件、新闻、打印队列等 
另外,要说明的是,在Linux下“当前目录”、“路径”等概念与Windows下是一样的。
3. 显示文件内容 
使用过DOS命令的人都应该知道,我们可以使用type命令来查看一个文件的内容。在Linux下有五个相关的命令,功能各有千秋,不过它们都象type命令一样,只能用来查看文本文件。 
1) cat命令 
cat命令是最象type命令的,使用的方法很简单:“cat 文件名”。不过比type命令更强大的是,它可以同时查看多个文件:“cat 文件名一 文件名二”。 
2) more命令 
如果文本文件比较长,一屏无法显示完,那么使用cat命令就可能无法看清。这里我们可以简单地使用more来代替cat命令即可。其效果与type 文件名/p类似。使用more命令将一次显示一屏文本,显示满后,停下来,并提示出已显示全部内容的百分比,按空格键就可以看到下一屏。 
3) less命令 
less命令的功能几乎和more命令一样,也是按页显示文件,不同之处在于less命令在显示文件时允许用户既可以向前又可以向后翻阅文件。 
Ø 向前翻:按b键; 
Ø 向后翻:按p键; 
Ø 指定位置:输入百分比 
Ø 退出:q 
我经常使用more和less,几乎不使用cat查看文件。 
4) head命令 
通过head命令可以仅查看某文件的前几行,格式为: 
head 行数 文件名 
如果未指定行数,则使用默认值10。 
5) tail命令 
与head命令相对应的,我们可以使用tail命令来查看文件尾部的内容。通常用来实时监测某个文件是否被修改,通常用来观察日志。如: 
tail -f maillog 

4. 编辑文件 
在Red Hat Linux 7中有许多文字编辑工具,其中最常用的应该是vi,这是一个广泛应用于所有UNIX系统的编辑器。它的使用有些特别: 
首先,可以使用命令“vi 文件名”打开一个文件。 
刚启动的时候,vi处于命令状态,不能够输入任何字符。在这个状态下,可以使用方向键进行移动,而需要输入内容时,你需要输入“i”或“a”命令进入编辑状态。编辑完成后,你需要按下“ESC”键回到命令状态。 
在命令状态下,你可以输入“:q!”不存盘退出,输入“:wq”存盘退出。 

5. 文件的复制、删除与移动 
大家都早已熟知在DOS下我们可以使用copy、del、move命令来实现文件的复制、删除与移动。下面我们说说如何在Linux系统中做以上操作。 
1) cp命令:文件/目录复制命令 
它的语法格式为:cp [选项] 源文件或目录 目标文件或目录 
常用的选项有: 
Ø a 该选项常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,就象DOS中的xcopy /s一样 
Ø f 如果目标文件或目录已存在,就覆盖它,并且不做提示 
Ø i 与f选项正好相反,它在覆盖时,会让用户回答“Y”来确认 
Ø p 使用该选项,复制文件时将保留修改时间和访问权限 
Ø r 若给出的源是一个目录,那么cp将递归复制该目录下所有的子目录和文件,不过这要求目标也是一个目录名 
另外,大家要注意的是,如果源是文件名,目标是目录名的话,那么使用cp命令可以指定多个源文件名。如: 
$ cp a.txt b.txt /home/user1 
该命令将把a.txt和b.txt文件复制到/home/usr1目录中。 
2) rm命令:文件/目录删除命令 
它的语法格式为:rm [选项] 文件 … 
常用的选项有: 
Ø f 在删除过程中不给任何指示,直接删除 
Ø r 指示rm将参数中列出的全部目录和子目录都递归地删除 
Ø i 交互式的删除,每个文件在删除时都给出提示 
使用rm命令时一定要小心,特别是以root用户登录时,我就看到过一个朋友在使用rm命令删除/home/tmp目录时将命令“rm -rf /home/tmp”误输成了 “rm -rf / home/tmp”,结果等他走回电脑面前,整个系统都被删除了! 
3) mv命令:文件/目录移动命令 
它的语法格式为:mv [选项] 源文件或目录 目标文件或目录 
常用的选项有: 
Ø f 如果操作要覆盖某已有的目标文件时不给任何指示 
Ø i 交互式的操作,如果操作要覆盖某已有的目标文件时会询问用户是否覆盖 
mv命令的执行效果与参数类型的不同而不同! 
第一参数(源) 第二个参数(目标) 结果 
文件名 文件名 将源文件名改为目标文件名 
文件名 目录名 将文件移动到目标目录 
目录名 目录名 目标目录已存在:源目录移动到目标目录 
目标目录不存在:改名 
目录名 文件名 出错 

6. 目录相关操作 
1) 创建新目录:mkdir,它的使用与DOS下的md相同:mkdir 目录名; 
2) 删除空目录:rmdir,它的使用与DOS下的rd相同:rmdir 目录名; 
3) 改变目录:cd,它的使用与DOS下的cd命令基本相同,唯一一个不同的是,不管目录名是什么,cd与目录名之间必须有空格,也就是:“cd/”、“cd..”、“cd.”都是非法的,而应该输入:“cd /”、“cd ..”、“cd .”,如果直接输入命令“cd”,而不加任何参数,将回到这个用户的主目录。 
4) 显示当前目录:pwd 
5) 列目录命令:ls,相当于DOS下的dir 
它的语法为:ls [选项] [目录或文件] 
常用的选项有: 
Ø a 显示指定目录下所有的子目录与文件,包括隐藏文件; 
Ø c 按文件的修改时间排序 
Ø l 采用长格式来显示文件的详细信息,每个文件一行信息,其内容为:文件类型与权限 链接数 文件属主 文件属组 文件大小 最近修改时间 文件名 

7. 文件与目录的权限操作 
在Linux系统中,每一个文件和目录都有相应的访问许可权限,我们可以用它来确定谁可以通过何种方式对文件和目录进行访问和操作。文件或目录的访问权限分为可读、可写和可执行三种,分别以r,w,x表示,其含义为: 
r w x 
文件 可读 可写 可执行 
目录 可列出目录 可在目录中做写操作 可以访问该目录 
在文件被创建时,文件所有者可以对该文件的权限进行设置。 
对于一个文件来说,可以将用户分成三种,并对其分别赋予不同的权限: 
1) 文件所有者 
2) 与文件所有者同组用户 
3) 其它用户 
每一个文件或目录的访问权限都有三组,每组用三位表示,如: 
d rwx r-x r-- 
第一部分:这里的d代表目录,其它的有:- 代表普通文件 c 代表字符设备文件; 
第二部分:文件所有者的权限字,这里为r w x表示可读、可写、可执行 (目录的可执行指的可以进入目录); 
第三部分:与文件所有者同组的用户的权限字,这里为r - x表示可读、不可写、可执行。由于同组用户之间交流较多,让他看看文件,别乱改就行了嘛。 
第四部分:其它用户的权限字,这里为- - -,当然给我无关的人嘛,我的文件当然不但不给你写,也不让你读。 
1) 文件/目录权限设置命令:chmod 
这是Linux系统管理员最常用到的命令之一,它用于改变文件或目录的访问权限。该命令有两种用法: 
Ø 用包含字母和操作符表达式的文字设定法 
其语法格式为:chmod [who] [opt] [mode] 文件/目录名 
其中who表示对象,是以下字母中的一个或组合: 
u:表示文件所有者 
g:表示同组用户 
o:表示其它用户 
a:表示所有用户 
opt则是代表操作,可以为: 
+:添加某个权限 
-:取消某个权限 
=:赋予给定的权限,并取消原有的权限 
而mode则代表权限: 
r:可读 
w:可写 
x:可执行 
例如:为同组用户增加对文件a.txt的读写权限: 
chmod g+rw a.txt 
Ø 用数字设定法 
而数字设定法则更为简单:chmod [mode] 文件名 
关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r--则可以表示成为: 
111 101 100 
再将其每三位转换成为一个十进制数,就是754。 
例如,我们想让a.txt这个文件的权限为: 
自己 同组用户 其他用户 
可读 是 是 是 
可写 是 是 
可执行 
那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我们执行命令: 
chmod 664 a.txt 
2) 改变文件的属主命令:chown 
语法格式很简单:chown [选项] 用户名 文件/目录名 
其中最常用的选项是“R”,加上这个参数,可以将整个目录里的所有子目录和文件的属主都改变成指定用户。 
3) 改变文件属组命令:chgrp 
该命令也很简单:chgrp 组名 文件名
3.3 用户管理 

用户管理,主要的工作就是建立一个合法的用户帐户、设置和管理用户的密码、修改用户帐户的属性以及在必要时删除已经废弃的用户帐号。 

1. 增加一个新用户 
在Linux系统中,只有root用户才能够创建一个新用户,如下的命令将新建一个登录名user1的用户。 
# useradd user1 
但是,这个用户还不能够登录,因为还没给它设置初始密码,而没有密码的用户是不能够登录系统的。在默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。如果需要另外指定用户主目录的话,那么可以使用如下命令: 
# useradd -d /home/xf user1 
同时,该用户登录时将获得一个Shell程序:/bin/bash,而假如你不想让这个用户登录,也就可以指定该用户的Shell程序为:/bin/false,这样该用户即使登录,也不能够执行Linux下的命令: 
# useradd -s /bin/false user1 
在Linux中,新增一个用户的同时会创建一个新组,这个组与该用户同名,而这个用户就是该组的成员。如果你想让新的用户归属于一个已经存在的组,则可以使用如下命令: 
# useradd -g user user1 
这样该用户就属于user组的一员了。而如果只是想让其再属于一个组,那么应该使用: 
# useradd -G user user1 
完成了这一操作后,你还应该使用passwd命令为其设置一个初始密码。 

2. 删除一个用户 
删除用户,只需使用一个简单的命令“userdel 用户名”即可。不过最好将它留在系统上的文件也删除掉,你可以使用“userdel -r 用户名”来实现这一目的。 

3. 修改用户属性 
在前面我们看到了在新建一个用户的时候如何指定它的用户主目录,如何指定它的Shell,如何设置它所属的组…等等。在Linux中提供了一个命令来实现: 
usermod -g组名 -G 组名 -d 用户主目录 -s 用户Shell 
还有一种直接的方法,那就是修改/etc/passwd文件,在这个文件中每个用户占用一行,它的内容为: 
用户名:密码:用户ID:组ID:用户全名:用户主目录:用户Shell 
不过值得注意的是,密码这一项通常是用一个*号代替的,你是看不到的。 

4. 增加一个组 
还记得Linux的文件可以为同组的人、非同组的人设置不同的访问权限吗?我们可以根据自己的需要创建用户组: 
groupadd 组名 

5. 删除一个组 
同样的,我们有时会需要删除一个组,它的命令就是groupdel 组名。 

6. 修改组成员 
如果我们需要将一个用户加入一个组,只需编辑/etc/group文件,将用户名写到组名的后面。例如将newuser用户加入到softdevelop组,只需找到softdevelop这一行: 
softdevelop:x:506:user1,user2 
然后在后面加上newuser,形成: 
softdevelop:x:506:user1,user2,newuser 
另外,在Red Hat Linux中还提供一个图形化的用户管理工具:userconf,通过它可以更直接地进行用户管理。
3.4 进程管理 

Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。 
在Linux系统上所有运行的东西都可以称之为一个进程。每个用户任务、每个系统管理守护进程,都可以称之为进程。Linux用分时管理方法使用所有的任务共同分享系统资源。下面我们就看一下如何控制这些进程。 

1. 启动进程 
在Linux系统中有两种启动进程的方法: 
1) 直接输入命令,就将直接启动一个进程 
Ø 在普通情况下,进程将在前台执行,这时我们无法再执行新的命令 
Ø 如果我们在命令之后加上一个“&”,那行进程将会放在后台执行,我们仍然可以执行新的命令 
2) 通过at、cron、crontab命令可以像Windows中的计划任务一样定时启动某个进程,具体的使用方法大家可以使用man 命令名来查询。 

2. 查看进程 
在Linux系统中,我们可以使用ps命令来查看正在运行的进程例如: 
列出属于当前用户的进程: 
# ps 
PID TTY TIME CMD 
16767 pts/1 0:00 ps 
18029 pts/1 0:00 bash 
其中PID代表进程ID,TTY是该进程是由哪个控制台启动的,CMD则是命令。 
如果你想列出更详细的信息,则可使用命令:“ps -auxw”。 

3. 终止进程 
一个进程在任务完成之后,将会自动完成。如果要中途中止该进程的话,有两种方法: 
1) 对于在前台运行的程序,直接通过组合键CTRL+C就可以中止进程; 
2) 而对于在后台运行的程序,则需要通过前面介绍的ps命令找到它的进程号,然后使用“kill 进程号”来终止该进程。 


3.5 磁盘管理 

系统软件和应用软件,都要以文件的形式存储在计算机的磁盘空间中,做为系统管理员应随时监视磁盘空间的使用情况。我们可以使用下面两个命令来实现: 

1. df命令 
df,就是Disk Free,顾名思义就是检查磁盘上还剩下多少空间等信息。下面是一个使用实例: 
# df 
FileSystem 1k-blocks Used Available Use% Mounted on 
/dev/hda5 4134900 1749728 2175124 45% / 
/dev/hda6 6048320 5741092 0 100% /home 
共显示了6列信息: 
1) FileSystem:硬盘分区 
2) 1k-blocks:按K计算的分区大小 
3) Used:已经使用的分区大小(按K计算) 
4) Available:还要用的分区大小 
5) Use%:已使用的空间所占百分比 
6) Mounted on:挂接点 
可以看到/home是另一个分区,现在空间已经用完了!这都时当时没有规划好! 
如果对与以K为计算单位表示硬盘空间,那么你可以使用df -m,这样就会以M为计算单位。 

2. du命令 
du,就是disk usage,就是看一下磁盘使用了多少。下面就是一个使用实例: 
# pwd 
/var/log 
# du 
4 ./uucp 
776 . 
在这里,我们使用du命令列出了/var/log目录所占用的磁盘空间。它统计出了该目录有一个子目录:uucp,占用了4K,而/var/log目录下的文件则共有776K。 
该命令还有一些常用的选项,用来完成更多的功能: 
Ø -a 将列出当前目录下所有的文件、子目录、子目录下的文件、子目录下的子目录…的磁盘占用情况 
Ø -b 以字节为单位表示占用的磁盘空间 
Ø -c 在最后显示出一个统计值
3.6 软件安装 

在Red Hat Linux下,应用软件的安装包通常有两种格式: 
1) rpm包,如software-1.2.3-1.i386.rpm。它是Redhat Linux创造的一种包封装格式。 
2) tar包,如software-1.2.3-1.tar.gz。它是使用UNIX系统的打包工具tar打包的。 
而且,大多数Linux应用软件包的命名也有一定的规律,它遵循: 
名称-版本-修正版-类型 
例如: 
sfotware-1.2.3-1.i386.rpm 
软件名称:software 
版本号:1.2.3 
修正版本:1 
可用平台:i386,适用于Intel 80x86平台。 
类型:rpm,说明是一个rpm包。 
根据Linux应用程序软件安装包中的内容不同可以分为:: 
1) 是可执行文件,也就是解开包后就可以直接运行的。在Windows中所有的软件包都是这种类型。安装完这个程序后,你就可以使用。不过下载时要注意这个软件是否是你所使用的平台,否则将无法正常安装。 
2) 另一种则是源程序,也就解开包后,你还需要使用编译器将其编译成为可执行文件。这在Windows系统中是几乎没有的,因为Windows的思想是不开放源程序的。 
通常,用tar打包的,都是源程序;而用rpm打包的则常是可执行程序。 

1.搞定使用rpm打包的应用软件 
rpm可谓是Redhat公司的一大贡献,它使Linux的软件安装工作变得更加简单容易。 
1) 安装: 
我只需简单的一句话,就可以说完。执行: 
rpm -ivh rpm软件包名 
更高级的,请见下表: 
rpm参数 参数说明 
-i 安装软件 
-t 测试安装,不是真的安装 
-p 显示安装进度 
-f 不管任何错误 
-U 升级安装 
-v 检测套件是否正确安装 
这些参数可以同时采用。更多的内容可以参考RPM的命令帮助。 
2) 卸载: 
我同样只需简单的一句话,就可以说完。执行: 
rpm -e 软件名 
不过要注意的是,后面使用的是软件名,而不是软件包名。例如,要安装software-1.2.3-1.i386.rpm这个包时,应执行: 
rpm -ivh software-1.2.3-1.i386.rpm 
而当卸载时,则应执行: 
rpm -e software。 

2. 搞定使用tar打包的应用软件 
1) 安装: 
整个安装过程可以分为以下几步: 
Ø 取得应用软件:通过下载、购买光盘的方法获得; 
Ø 解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式,则可以执行:“tar -xvzf 软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件,再执行“tar -xvf 解压后的tar包”进行解包; 
Ø 阅读附带的INSTALL文件、README文件; 
Ø 执行“./configure”命令为编译做好准备; 
Ø 执行“make”命令进行软件编译; 
Ø 执行“make install”完成安装; 
Ø 执行“make clean”删除安装时产生的临时文件。 
好了,到此大功告成。我们就可以运行应用程序了。但这时,有的读者就会问,我怎么执行呢?这也是一个Linux特色的问题。其实,一般来说,Linux的应用软件的可执行文件会存放在/usr/local/bin目录下!不过这并不是“放四海皆准”的真理,最可靠的还是看这个软件的INSTALL和README文件,一般都会有说明。 
2) 卸载: 
通常软件的开发者很少考虑到如何卸载自己的软件,而tar又仅是完成打包的工作,所以并没有提供良好的卸载方法。一般都提供 make uninstall 来卸载软件的。


要想成为一套优秀的操作系统,除了性能稳定、功能齐全之外,还应该拥有一个友好的操作系统,否则只会呆在研究室里,难以普及。 
在UNIX系统下,大多都是采用X Window做为图形界面的。1984年,麻省理工学院与DEC制定了Athena计划,这就是X Window 第一个版本。1988年1月成立了一个非盈利性的X联盟,负责制定X Window的标准。在Linux出现后,Xfree86 Project Inc.基于Linux实现了一个开源的X Window系统:XFree86。 
X Window与其他的图形界面系统相比,有几个特点: 
Ø 良好的网络支持:X Window采用了C/S网络结构,程序间可以通过网络来通信,而且有良好的网络透明性,也就是说用户不需知道程序在使用远端主机资源。 
Ø 个性化的窗口界面:X Window并未对窗口界面作统一性的规范,程序员可以根据需求自行设计,其中最有名的就是后面要介绍的GNOME与KDE。 
Ø 不内嵌于操作系统:X Window只定义了一个标准,而不属于某个操作系统,因此可在不同的操作系统上运行相同的X Window软件。 
整个X Window由三个部分组成: 
Ø X Server:主要是控制输出及输入设备的程序,并维护相关资源,它接收输入设备的信息,并将其传给X Client,而将X Client传来的信息输出到屏幕上。所以不同的显卡就需要选择不同的X Server,在配置X Window时最主要的就是配置X Server 
Ø X Client:它才是应用程序的核心部分,它是与硬件无关的,每个应用程序就是一个X Client 
Ø X protocol:X Client与X Server之间的通信语言就是X protocol 
为了使得X Window更加易于使用,各个不同的公司与组织都针对其做了许多集成桌面环境。如AIX上的CDE,SUN的OpenServer,而在Linux下则主要是GNOME与KDE的双雄会。下面我们就一起来了解一下它们。 

4.2 GNOME简介 
GNOME最初是由墨西哥的程序设计师Miguel De Icazq发起的,它受到了Red Hat公司的大力支持。它现在属于GNU(GNU is Not UNIX)计划的一部分,主要目的是希望能够为用户提供一个完整、易学易用的桌面环境,并为程序设计师提供强大的应用程序开发环境。 
1997年8 月,为了克服KDE所遇到的QT许可协议和单一C++依赖的困难,以墨西哥的Miguel de Icaza为首的250程序员就开始了一个新项目,完全从头开始,这就是GNOME。经过14个月的共同努力,终于完成了这个工程。现在GNOME已得到了占Linux 市场份额最大发行商Red Hat 的支持,拥有了大量应用软件,包括文字处理软件Go,电子表格软件Gnumeric,日历程序GNOMEcal,堪与PhotoShop 媲美的图形图像处理软件Gimp 等。 
现在GNOME与KDE成为了两大竞争阵营,必将使得Linux更加易于使用。 
GNOME中还提供了大量的应用软件,它们都放在GNOME的“开始”(一个小脚丫)à Programs中,包括了许许多多的应用软件,下面就是其中的一些: 
1. Applications:应用软件 
1) Dia:一个工程图编辑器,适用于绘制电路图; 
2) Calendar:一个集日历与日程表于一身的好工具; 
3) Address Book:一个通讯录 
4) GEdit:一个功能类似于Windows下的记事本的文本编辑器; 
5) Gnumeric:Linux下的一个类似于EXCEL的电子表格软件; 
6) Time tracking tools:一个用于提醒时间的小工具; 

2. Games:游戏软件 
1) Gnome Milnes:GNOME下的扫雷; 
2) Gnibbles:贪吃蛇游戏; 
3) Freecell:Windows下的空当接龙游戏; 

3. Graphics:图形处理软件 
1) Electric Eyes:一个十分优秀的图形处理软件,可谓GNOME下的AcdSee呀! 
2) XPDF:一个在Linux阅读PDF文档的工具; 
3) The Gimp:一个十分优秀的绘图软件,与Photoshop很象! 

4. Internet:Internet应用软件 
1) Dialup Configuration Tool:一个界面十分友好的拔号上网设置工具; 
2) gFTP:一个FTP客户端 
3) pine:一个E-Mail客户端软件 
4) Netscape :大名鼎鼎的浏览器软件,被微软从Windows平台挤下来的 
5) RH Network monitor:网络流量显示 

5. Multimedia:多媒体软件 
1) Audio Mixer:声音控制器 
2) CD Player:CD播放器 
3) XMMS:与Winamp是一个模子里出来的 


4.3 KDE简介 
KDE项目在1996年10月发起的,其目的是在X-Window上建立一个完整易用的桌面环境。KDE现在除了拥有KFM(类似于IE4.0)、KPresenter(类似PowerPoint)、KIllustrator(类似CorelDraw或 Illustrator)等重量级软件,还有体贴用户的GUI配置软件可以帮助用户配置Unix/Linux,使其深受使用者欢迎。 
但由于KDE是基于由TrollTech公司开发的Qt程序库的,所以也受到了许多批评。虽然Qt本身作为一基于C++的跨平台开发工具是非常优秀,但可惜的是它不是自由软件。Qt的License允许任何人使用Qt编写免费软件及免费拷贝给其他用户使用,但如果利用Qt编写非免费软件则需要购买他们的License。更重要的是任何人都不可以随意修改Qt源代码。如果TrollTech公司更改Qt License、公司倒闭或给人收购等都会令KDE前功尽弃。 
在KDE中,也有许许多的应用软件,它们被分组放在“开始”(一个K字)菜单中,说实在的,我感觉KDE的软件应用比GNOME更多,图形界面也更好。 
1. Office:办公软件 
这就是大名鼎鼎的Koffice套件。 
1) Kword:字处理软件 
2) Kspread:象Excel的电子表格处理软件 
3) Kpresenter:一个类似于PowerPoint的演示软件 
4) Kchart:一个电子图表软件 
5) Kiiiustrator:一个电子出版软件 

2. Develop:开发工具 
1) Kdevelop:一个KDE下的集成开发环境 

3. Applications:应用软件 
1) Advanced Editor:一个增强型的文本编辑软件 
2) Emacs:这是一个功能强大的编辑软件,在GNOME中也有,它的原形是字符终端下的Emacs 
3) Organizer:一个日程安排软件 

4. Internet:Internet软件 
1) Kppp:一个十分友好的拔号上网配置工具 
2) Kmail:一个十分漂亮的Email 客户端,有点象Outlook! 
3) Chat Client:一个IRC客户端 
4) KPPPLoad:一个网络流量工具 
5) Netscape:大名鼎鼎的WEB浏览器,在GNOME中也有集成 

4.4 使用窗口管理器 
Red Hat Linux 7.1默认安装后,X Window将使用GNOME做为窗口管理器,除非你在安装时将GNOME去掉,而选择了KDE包。通常我们可以将这两个包都安装上,到使用的时候再选择。 
1) 在字符终端下执行以下命令,则以后X Window的窗口管理器都成了KDE: 
#tchdesk KDE 
2) 如果你又不想使用KDE了,则可以使用以下命令转回GNOME: 
#tchdesk GNOME
4.5 汉化Red Hat Linux 7.1 
1.安装 TrueType 字体 
要在系统里使用中文TrueType字体,最好先禁用xfs字体服务器, xfs在启动时会自动更新字体目录下的fonts.dir文件,这样会影响到我们所作的修改。 
以root身份登陆,然后执行setup工具,在Service中关闭xfs。 
1)修改XF86Config-4 配置文件 
进入/etc/X11目录,用vi编辑XF86Config-4文件,如下进行相应的修改: 

Section "Files" 
# FontPath "unix/:7100" 注释掉这一行,加入下面的几行 
FontPath "/usr/X11R6/lib/X11/fonts/misc:unscaled" 
FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled" 
FontPath "/usr/X11R6/lib/X11/fonts/100dpi:unscaled" 
FontPath "/usr/X11R6/lib/X11/fonts/misc" 
FontPath "/usr/X11R6/lib/X11/fonts/Type1" 
FontPath "/usr/X11R6/lib/X11/fonts/Speedo" 
FontPath "/usr/X11R6/lib/X11/fonts/75dpi" 
FontPath "/usr/X11R6/lib/X11/fonts/100dpi" 
FontPath "/usr/X11r6/lib/X11/fonts/TrueType" 
EndSection 

Section "Module" 
Load "dbe" # Double-buffering 
Load "GLcore" # OpenGL support 
Load "dri" # Direct rendering infrastructure 
Load "glx" # OpenGL X protocol interface 
Load "extmod" # Misc. required extensions 
Load "v4l" # Video4Linux 
Load "xtt" 加入这一行 
EndSection 
2)获取字体文件simsun.ttf 
新建一个目录:/usr/X11R6/lib/X11/fonts/TrueType ,然后将Windows所在的分区mount上来,然后将simsum.ttf复制到该目录。 
3)生成字体列表 
cd /usr/X11R6/lib/X11/fonts/TrueType 
# ttmkfdir>fonts.dir 
# vi fonts.dir 修改字体列表文件,使其与下面类似 
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-ascii-0 
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-fcd8859-15 
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-iso8859-1 
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-gb2312.1980-0 
simsun.ttf -misc-SimSun-medium-r-normal--0-0-0-0-p-0-koi8-r 
#cp fonts.dir fonts.scale 
4)修改 gtk 的字体定义 
# vi /etc/gtk/gtkrc.zh_CN 
修改后的内容如下: 
style "gtk-default-zh-cn" { 
fontset = "-misc-SimSun-medium-r-normal--14-*-*-*-*-*-*-*" 

class "GtkWidget" style "gtk-default-zh-cn" 

2.安装中文输入法Chinput 3.0.1 
1)首先下载以下几个软件包: 
Chinput-3.0.1-1.i386.rpm 
pth-1.3.7-3.i386.rpm 
unicon2-im.tar.gz 
2)然后安装: 
# rpm -ivh pth-1.3.7-3.i386.rpm 
# rpm -ivh Chinput-3.0.1-1.i386.rpm --nodeps 
# cp unicon2-im.tar.gz /usr/lib 
# cd /usr/lib 
# tar vfxz unicon2-im.tar.gz 
# rm unicon2-im.tar.gz 
# ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++-libc6.1-2.so.3 
3)修改Chinput的一些配置 
# cd /usr/lib/ZWinPro 
# vi Chinput.ad 修改以下几个地方 
... 
chinput.gblocale=zh_CN.gb2312 
chinput.big5locale=zh_CN.gb2312 
... 
chinput.gbfont=-misc-SimSun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0 
chinput.big5font=-misc-SimSun-medium-r-normal--14-*-*-*-*-*-gb2312.1980-0 
... 
(注意:在这个文件里不能出现空格,只能用 Tab 代替) 
4)修改~/.bashrc文件,新增以下几行: 
export LC_ALL=zh_CN.GB2312 
export LANG=zh_CN.GB2312 
export XMODIFIERS=@im=Chinput 

3.汉化 GNOME 
重启后,执行startx时,你在GNOME中就可以显示中文了。紧接着,你可以通过在Program->设定->Session->Startup Programs里面把chinput加入启动运行程序里面就完成了 GNOME的中文环境和输入法的安装了。 

4.汉化 KDE 
如果是KDE系统,则打开 Preferences->Personalization->Country & Language,选择中文,再打开 Look & Feel->Fonts,选择相应的字体,并把字符集改成gb2312.1980-0。最后再打开桌面上的 Autostart 目录,新建一个应用程序( Chinput )的连接,以后每次启动后就可以使用中文输入法了.
第5章:网络应用 

5.1 常用网络命令 
在Red Hat Linux 7.1系统提供了与网络相关的工具,掌握好这些工具是十分必要的: 
第一类:设置工具 
1.netconf: 
netconf是Red Hat Linux提供的Linuxconf的一部分,主要用于设置与网络相关的参数。它可以在consle下运行(文本菜单),也可以在X-Window中运行(图形界面)。在前面,我们介绍过了netconf的一些应用,它的使用比较简单,只要认识上面的英文就可以了,所以在此就不再多说。BTW,如果你设置好了X-Window的话,用用图形界面的netconf,会更漂亮的哟。 
2.ifconfig 
ifconfig是Linux系统中最常用的一个用来显示和设置网络设备的工具。其中“if”是“interface”的缩写。它可以用来设备网卡的状态,或是显示当前的设置。 
下面我们简单地说明常用的命令组合: 
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) 将第一块网卡的广播地址设置为192.168.0.255: 
ifconfig eth0 -broadcast 192.168.0.255 
5) 将第一块网卡设置为不接收多播数据包: 
ifconifg eth0 allmulti 
如果要让其接收,则使用命令:ifconfig eth0 -allmulti 
6) 查看第一块网卡的状态: 
ifconfig eth0 
如果要查看所有的网卡状态,则直接使用不带参数的ifconfig命令即可。 
ifconfig输出的状态信息是十分有用的,下面,我们就简单说明一下: 
有几个状态比较重要: 
Ø UP/DOWN:网卡是否启动了,如果是DOWN的话,那肯定无法用的; 
Ø RX packets中的errors包的数量如果过大说明网卡在接收时有问题; 
Ø TX packets中的errors包的数量如果过大说明网卡在发送时有问题; 
3.route 
route命令是用来查看和设置Linux系统的路由信息,以实现与其它网络的通讯。要实现两个不同的子网之间的网络通讯,需要一台连接两个网络路由器或者同时位于两个网络的网关来实现。 
在Linux系统中,我们通常设置路由是为了解决以下问题:该Linux机器在一个局域网中,局域网中有一个网关,能够让你的机器访问Internet,那么我们就需要将这台机器的IP地址设置为Linux机器的默认路由。 
1) 增加一个默认路由: 
route add 0.0.0.0 gw 网关地址 
2) 删除一个默认路由: 
route del 0.0.0.0 gw 网关地址 
3) 显示出当前路由表 
route
第二类:诊断工具 
1.ping 
ping是一个最常用的检测是否能够与远端机器建立网络通讯连接。它是通过Internet控制报文协议ICMP来实现的。而现在有些主机对ICMP进行过滤,在这种特殊的情况下,有可能使得一些主机Ping不通,但能够建立网络连接。这是一种特例,在此事先说明。 
同样的,在此不罗列ping命令的所有可选参数,而是通过实例来说明一些常用的组合,需要更详细地了解的,可以通过www.linuxaid.com.cn网站在线培训的命令查询工具获得。 
1) 检测与某机器的连接是否正常: 
ping 192.168.0.1 
pingwww.linuxaid.com.cn 
也就是说,我们可以用IP地址或域名来指定机器。 
2) 指定ping回应次数为4: 
在Linux下,如果你不指定回应次数,ping命令将一直不断地向远方机器发送ICMP信息。我们可以通过-c参数来限定:ping -c 4 192.168.0.1 
3) 通过特定的网卡进行ping: 
有时,我们需要检测某块网卡(系统中有多块)能否ping通远方机器。我们需要在执行ping命令时指出: 
ping -I eth0 192.168.0.1 
2.traceroute 
如果你ping不通远方的机器,想知道是在什么地方出的问题;或者你想知道你的信息到远方机器都经过了哪些路由器,可以使用traceroute命令。顾名思义:trace是跟踪,route是路由,也就是跟踪路由。 
使用这个命令很简单: 
traceroute 远程主机IP地址或域名 
这个命令的输出类似: 
1 路由器(网关)的IP地址 访问所需时间1 访问所需时间2 访问所需时间3 
2 路由器(网关)的IP地址 访问所需时间1 访问所需时间2 访问所需时间3 
……… 
1) 最前面的数字代表“经过第几站”; 
2) 路由器(网关)的IP地址就是“该站”的IP地址; 
3) 访问所需时间1、2、3是指访问到这个路由器(网关)需要的时间。 

3.netstat 
在Linux系统中,提供了一个功能十分强大的查看网络状态的工具:netstat。它可以让您得知整个Linux系统的网络情况。 
1)统计出各网络设备传送、接收数据包的情况: 
使用命令:netstat -i 
这个命令将输出一张表,其中包括: 
Iface:网络接口名 MTU:最大传输单元 
RX-OK:共成功接收多少个包 RX-ERR:接收的包中共有多少个错误包 
RX-DRP:接收时共丢失多少个包 RX-OVR:共接收了多少个碰撞包 
TX-OK:共成功发送多少个包 TX-ERR:发送的包中共有多少个错误包 
TX-DRP:发磅时共丢失多少个包 TX-OVR:共接收了多少个碰撞包 
2)显示网络的统计信息 
使用命令:netstat -s 
使用这个命令,将会以摘要的形式统计出IP、ICMP、TCP、UDP、TCPEXT形式的通信信息。 
3)显示出TCP传输协议的网络连接情况: 
使用命令:netstat -t 
这个命令的输出也是一张表,其中包括: 
Local Address:本地地址,格式是IP地址:端口号 
Foreign Address:远程地址,格式也是IP地址:端口号 
State:连接状态,包括LISTEN、ESTABLISHED、TIME_WAIT等。 
4)只显示出使用UDP的网络连接情况: 
使用命令:netstat -t 
输出格式也是一样的。 
5)显示路由表: 
使用命令:netstat -r 
这个命令的输出与route命令的输出相同。 

5.2 网络配置文件 
在Red Hat Linux 7.1中有一些用于存放网络配置的文件: 
1./etc/hosts 
在该文件中存放的是一组IP地址与主机名的列表,如果在该列表中指出某台主机的IP地址,那么访问该主机时将无需进行DNS解析。 
2./etc/host.conf 
该文件用来指定域名解析方法的顺序,如: 
order hosts,bind 
它说明,首先通过/etc/hosts文件解析,如果在该文件中没有相应的主机名与IP地址的对应关系,再通过域名服务器bind进行解析。 
3./etc/resolv.conf 
在该文件中存放域名服务器的IP地址。 
4./etc/protocols 
Red Hat Linux 7.1系统使用该文件辨别本主机使用的,并通过它完成协议和协议号之间的映射,用户不应修改该文件。 
5./etc/services 
该用户用于定义现有的网络服务,用户无需修改它,它通常由安装网络服务的程序来维护。该文件包括网络服务名、网络端口号和使用的协议类型,其中网络端口号和使用的协议类型之间有一个斜杠分开,在设置行的最后还可以添加一些服务的别名。 
5./etc/xinetd.d目录 
在Linux系统中有一个超级服务程序inetd,大部分的网络服务都是由它启动的,如chargen、echo、finger、talk、telnet、wu-ftpd等…,在7.0之间的版本它的设置是在/etc/inetd.conf中配置的,在Red Hat 7.0后,它就改成了一个xinetd.d目录。 
在xinetd.d目录中,每一个服务都有一个相应的配置文件,我们以telnet为例,说明一下各个配置行的含义: 
service telnet 

socket_type=stream 
wait=no 
user=root 
server=/usr/sbin/in.telnetd 
log_on_failure+=USERID 
disable=yes 

第一行,说明该配置用来设置telnet服务。 
第二行,说明Socket连接类型是stream,也就是TCP 
第三行,是指不等待到启动完成 
第四行,是指以root用户启动服务进程 
第五行,是指服务进程是/usr/sbin/in.telnetd 
第六行,是用于做一些出错日志 
第七行,是指禁止远方telnet,如果需要开放则将该配置改为:disable=no 
修改了xinetd的配置,需要重启xinetd才能够生效,有两种方法可以实现: 
1) 执行如下命令: 
/etc/rc.d/init.d/xinetd restart 
2) 执行如下命令: 
killall -HUP xinetd 

5.3 网络服务访问限制 
在Red Hat Linux 7.1中加强了网络安全的防范,如果你安装时安全等级不是在最低一级的话,那么本机之外的所有访问都可能被拒绝。这是因为在Red Hat 7.1中做了一些默认的ipchains设置,这是Linux内置的防火墙机制,它可以使用一些规则来允许或禁止某种访问。 
它的规则存放在/etc/sysconfig/ipchains文件中,如果你想让它暂时不生效,那你可以运行/etc/rc.d/init.d/ipchains stop,那么所有的规则都被取消,所有的网络访问都将被允许。 
你可以运行/etc/rc.d/init.d/ipchains status来获知现在对网络访问的限制。关于这方面的知识,本文限于篇幅无法详细介绍,有兴趣的读者可参考《Linux防火墙》一书。 

5.4 WEB服务器 
在Linux系统中最适合于做服务器的当数Apache,Red Hat Linux 7.1中集成了Apache 1.3.19版,你只要在安装时选中WEB服务器,那么系统将自动完成Apache服务器的安装,在默认情况,WWW服务就已经启动了。 
如果你在安装时没有选择WEB服务器包,那也没有关系,你只需执行以下命令即可: 
1) 将Red Hat Linux 7.1安装光盘的第一张放入光驱,然后执行如下命令: 
# mount /mnt/cdrom 
2) 转到apache安装文件所在目录: 
# cd /mnt/cdrom/RedHat/RPMS 
3) 使用RPM完成安装: 
# rpm -ivh apache-1.3.19-5.i386.rpm 
现在,你就已经拥有一个基于Linux的WEB服务器了,它的配置文件位于/etc/httpd/conf目录下,你可根据需要进行相应的修改,修改完后执行:/etc/rc.d/init.d/httpd restart即可。而WEB服务的主目录则在/var/www/html目录下,你可以将你的WEB页传到这里就可以更新了。 
而如果每一个用户都想要拥有一个自己的主页的话,则: 
1) 首先在自己的用户主目录下建一个public_html目录: 
# cd 
# mkdir public_html 
2) 然后将自己的用户主目录的权限改为大家可读 
# chmod 755 用户主目录 
3) 这样你就可以使用“localhost/~用户名/”访问到每个用户的主页了。
5.5 FTP服务器 
在Red Hat Linux 7.1中集成了Wu-FTP 2.6.1做为FTP服务器,在你安装时只要选择了FTP包的话,那么你的Linux服务器就是一台FTP服务器了,如果当时没有安装的话,也没有关系,跟安装apache一样: 
1) 将Red Hat Linux 7.1安装光盘的第一张放入光驱,然后执行如下命令: 
# mount /mnt/cdrom 
2)转到wu-ftp安装文件所在目录: 
# cd /mnt/cdrom/RedHat/RPMS 
3)使用RPM完成安装: 
# rpm -ivh wu-ftp-2.6.1-16.i386.rpm 
由于FTP服务是由xinetd超级服务器创建的,所以关于FTP服务器的配置在/etc/xinetd.d目录下的wu-ftpd文件中: 
service ftp 

socket_type=stream 
wait=no 
user=root 
server=/usr/sbin/in.ftpd 
server_args=-l -a 
log_on_success+=DURATION USERID 
log_on_failure+=USERID 
nice=10 
disable=no 

下面,我们介绍一些关于FTP服务器的管理方法: 
1、 暂时关闭FTP服务 
有两种方法可以使FTP服务暂停: 
1) 以root用户身份执行: 
# ftpshut now 
这样就会在/etc目录下生成一个shutmsg的文件,这时FTP服务器将无法使用,直到你删掉这个文件。 
2) 修改配置文件/etc/xinetd.d/wu-ftpd,将disable=no改为disable=yes,然后重启xinetd。 
2、 禁止某用户使用FTP服务 
有两种方法可以禁止某用户使用FTP服务器: 
1) 在/etc/ftpuser中写入该用户帐号名 
2) 在/etc/ftpaccess中写入一行配置: 
deny-uid 用户名 
用这种方法还可以禁止一个组的用户使用 
deny-gid 组名 
3、 禁止匿名用户(anonymous)登录FTP服务器 
有许多种方法可以实现,但我觉得最简单有效的方法就是将anonymous写入配置文件:/etc/ftpuser中,就可了。 

5.6 文件服务器 
我们还可以使用Red Hat Linux 7.1内置的Samba为局域网内的Windows主机做文件服务器。如果在安装系统时选择了SMB服务器软件包的话,那么安装完以后,Samba服务就已经Ready了。 
不过为了方便配置,建议安装一下swat,它提供了一个WEB界面的配置工具。它的安装包是第二张光盘的/RedHat/RPMS/samba-swat-2.0.7-36.i386.rpm。 
安装完以后,它会在xinetd.d目录中新建一个swat文件,其内容为: 
service swat 

port=901 
socket_type=stream 
wait=no 
only_from=127.0.0.1 
server=/usr/sbin/swat 
log_on_failure+=USERID 
disable=yes 

我们看到disable的值是yes,也就是说,现在swat还没有启用,因此,我们需要将其改为disable=no,然后重启xinted。另外,由于这里有一句: 
only_from=127.0.0.1 
说明只能在本机使用swat,而如果你想在Windows中用IE来配置的话,请将这句注释掉或删掉。 
下面,我们以设置一个大家都可以访问的homes目录为例,说明SWAT的设置方法: 
1) 打开IE浏览器,在地址栏上输入Linux的主机名或IP以及“:901”,例如: 
2) 如果连接正常,将出一个登录提示窗,要求输入用户名与密码,在此以root为用户名,并输入root用户的密码,再单击确定; 
3) 如果输入无误,将出现Samba的配置界面:Swat的首页; 
我们可以看到在Swat界面中,最上面有7个图标,分别是:HOME(首页)、GLOBALS(全局设置)、SHARES(共享设置)、PRINTERS(打印机)、STATUS(状态)、VIEW(查看)、PASSWORD(密码) 
4) 首先,我们单击GLOBALS图标,将出现GLOBALS设置页面,其中我们对以下几项进行设置: 
Ø BaseOption à Workgroup:在些输入工作组名(如NetBIOS中的工作组名) 
Ø BaseOption à Netbios name:主机名 
Ø SecurityOption à Security:选择安全等级,在些选择“SHARE” 
Ø SecurityOption à hosts allow:允许的主机,通常写入你的网络号,如192.168.0. 
Ø SecurityOption à hosts deny:如果你不让某台机器使用,则写入它的IP地址 
修改完后,点击“Commit Changes”按钮(在7个图标的下边一些),保存设置。 
5) 然后,单击SHARES图标,进行共享设置: 
第一步:在Create Share按钮的右边文本框中输入要设置的共享名 
第二步:单击“Create Share”按钮; 
第三步:确认“BaseOptions à Path的值为你想共享的目录,例如/home/smb/test(注意这必须是已经存在的目录); 
第四步:将“SecurityOptions à writeable”的值设置为Yes,使该目录共享为可写; 
第五步:将“SecurityOptions à guest ok”的值设置为Yes,使该目录无需密码访问; 
第六步:在“SecurityOptionsàhosts allow、hosts deny”中设置相应的主机IP; 
第七步:将“BrowseOptionsàbrowseable”设置为Yes,使其便于使用 
最后,点击“Commit Changes”按钮,保存设置。 
现在,我们就可以在Windows 9x上通过网络邻居访问到这台Samba服务器,并且有一个可读、可写的共享目录。 
在平时使用的时间,系统管理员可以点击“STATUS”按钮,切换到状态页面对其进行监测,在这个页面上,你可以: 
1) 启动(Start smbd按钮)、停止Samba(Stop Smbd按钮)服务,以及重启服务(Restart smbd按钮); 
2) 另外,你可以看到当前与Samba服务器建立的连接(Active Connections),并且可以按下“X”按钮,中止它的访问; 
3) 同时你还可以检测到正在访问的文件夹(Active Shares),正打开的文件(Open Files)。 

第一页 上页 22 23 24 25 26 27 28 29 30 下页 最后页 [ 显示模式: 摘要 | 列表 ]