在服务配置程序中可以看到它的存在,默认是停止的,可以点击“开始”来启动它。但是我现在不知道它的默认管理员账号是什么,所以没法登录postgreSQL了。
年份:2006年
数据库的导出与导入。
这里介绍的是数据库的导入与导出,
其实,单个数据表的导入与导出也是这些命令,
只是携带的”参数“不同而已。
具体的方法,可以在Shell中运行 “命令 --help” 来查看。
下面只是介绍常用的对数据库的导入与导出方法。
------------------------------
导出数据库。
命令:$pg_dump testdb > testdump.dmp
解释:将数据库testdb备份成文件testdump.dmp。包括表的建立与表中的数据。
------------------------------
导入数据库。
命令:
$create -E UTF8 testdb1
$psql testdb1 < testdump.dmp
解释:
1、先创建一个数据库testdb1,为了将dump文件导入这个数据库,
-E选项是为了指定这个数据库的字符集。取决于导出数据库的字符集。
2、psql 命令使用重定向符”<“将dump文件导入指定的数据库。
3、导入数据库以前除了要指定数据库端的字符集,又是还要设置客户端的字符集,
由于psql是在shell下执行的命令,不能使用\encoding指令,
所以要使用pgclientencoding环境变量,
所以要在导入数据库以前要执行命令:
export pgclientencoding='UTF8'
设置客户端正确的字符集,这里设置的UTF8是一个例子而已。
对于windows用户,可能是需要执行:
SET pgclientencoding='UTF8'
我也没有试过,应该是这句。
添加和删除用户。
添加用户。
createuser 是 SQL 命令 CREATE USER的封装。
命令:createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主机名] [-p port] 用户名
说明:
[-a]:允许创建其他用户,相当于创建一个超级用户;
[-A]:不允许此用户创建其他用户;
[-d]:允许此用户创建数据库;
[-D]:不允许此用户创建数据库;
[-e]:将执行过程显示到Shell上;
[-P]:创建用户时,同时设置密码;
[-h 主机名]:为某个主机上的Postgres创建用户;
[-p port]:与-h参数一同使用,指定主机的端口。
例子:
1、不带参数的创建用户。
$ createuser testuser
Shall the new user be allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n
CREATE USER
不带参数创建用户时,Postgres会询问此用户的权限。
2、为指定的主机和端口上创建用户。
$ createuser -h 172.28.18.51 -p 5000 -D -A -e testuser
CREATE USER joe NOCREATEDB NOCREATEUSER;
CREATE USER
这个命令为主机172.28.18.51的5000端口创建用户testuser,
此用户不可以创建数据库和其他用户。
3、创建超级用户。
$ createuser -P -d -a -e testuser
Enter password for new user: testuser
Enter it again: testuser
CREATE USER joe PASSWORD 'testuser' CREATEDB CREATEUSER;
CREATE USER
这个命令在本地创建一个超级用户(-a),可以创建数据库(-d),
同时要求设置密码。
由于带了创建数据库和创建用户的参数,
所以Postgres不会像例子1中那样再次询问。
--------------------------------
删除用户。
命令:dropuser [-i] [-h] [-p] [-e] 用户名
解释:
[ -i]:删除用户前,要求确认;
[-h 主机名]:删除某个主机上的Postgres用户;
[-p port]:与-h参数一同使用,指定主机的端口;
[-e]:将执行过程显示到Shell上。
例子:
1、删除本地的Postgres用户。
$ dropuser testuser
DROP USER
2、删除远程Postgres服务器上的用户。
$ dropuser -p 5000 -h 172.28.18.51 -i -e testuser
User "testuser" and any owned databases will be permanently deleted.
Are you sure? (y/n) y
DROP USER "testuser"
DROP USER
此命令删除主机172.28.18.51(-h)的5000端口(-p)的用户testuser,
并且需要确认(-i)。
psql的常用命令。
^_^
终于可以切入正体了。
-------------------------------
连接Postgres服务器后,
可能第一件事,就是连接到一个数据库进行实际的操作了,
如果您没有在运行 psql 命令时指定连接的数据库,
那么现在可以发出指令来连接一个数据库,
当然,在运行 psql 命令时指定连接的数据库的话,
也可以使用下面这个指令来改变连接的数据库。
命令:\c 数据库名
例子:
testdb=>\c tesdb1
这条命令将当前连接的testdb数据库改变成 testdb1 。
------------------------------
下面就来看看如何断开与Postgres服务器的连接,
命令:\q
这个命令很简单,执行这个指令后,
就回到了shell提示符下了。
------------------------------
------------------------------
将数据库 导出到 文件标识符
命令:\copy 表名 to 文件名|标准输出 [delimiter as '分隔符'] [null as 'null表示的字符串' ]
[csv quote as '引号的类型']
解释:
可以将表中的数据输出到 文件或标准输出。
delimiter as '分隔符' :说明输出设备的文本中表的每个字段用什么字符分割,默认是tab;
null as 'null表示的字符串':说明输出设备的文本中表的NULL值的表示方法,默认为“\N”;
csv quote as '引号类型' :说明导出的csv文件中的引号类型是什么,
对于Postgres7.4以前的版本,不支持csv的导入与导出,这时不要使用这个可选项。
例子:
testdb=>\copy testtable to data.csv delimiter as ',' csv quote as '"'
这条命令将testtable表中的内容作为SQL语句,导出data.csv文件中。
delimiter as ',' :说明data.txt文本中表的每个字段用“逗号”分割;
csv quote as '"' :说明csv中的引号类型是“双引号”。
像前面说的:这个例子不适用在Postgres7.4以前的版本。
------------------------------
从 文件标识符 导入数据到数据库
命令:\copy 表名 form 文件名|标准输入 [delimiter as '分隔符'] [null as 'null表示的字符串' ]
[csv quote as '引号的类型']
解释:
可以从 文件名|标准输入 两个文件设备导入到指定的表中
delimiter as '分隔符' :说明输入设备的文本中表的每个字段用什么字符分割,
通常是tab,取决于copy出去的文件是什么参数;
null as 'null表示的字符串':说明输入设备的文本中表的NULL值的表示方法,通常为“\N”;
csv quote as '引号类型' :说明导入的csv文件中的引号类型是什么,
取决于copy出去的文件是什么参数。
例子:
testdb=>\copy testtable from data.csv delimiter as ',' csv quote as '"'
这条命令将data.csv文件中的文本,作为sql语句导入到testtable表,
delimiter as ',' :说明data.txt文本中表的每个字段用“逗号”分割;
csv quote as '"' :说明csv中的引号类型是“双引号”。
------------------------------
显示和设置客户端字符集。
命令:\encoding [ encoding ]
解释:
在数据库领域,存在字符集的转换问题,
一般地,服务器端字符集是在建立数据库时指定的,
为了能够在不同的客户终端显示正确的数据,
需要认为的为客户终端设置客户端字符集。
如果服务器端的字符集是EUC_JP(日语字符集),
而客户终端的字符集是GBK,
捡索出来的汉字数据很可能就出现乱码,
所以要统一两边的字符集。
例子:
1、显示客户端字符集
testdb=>\encoding
这条命令没有带可选参数,
所以显示当前的客户终端字符集。
2、设置客户端字符集
testdb=>\encoding 'EUC_JP'
这条命令设置当前的客户终端字符集为“EUC_JP”,
如果服务器端的字符集也是“EUC_JP”,就可以正常显示数据了。
------------------------------
除了上面这些介绍,在这个客户终端可以使用所有标准SQL语句,
对数据库进行操作。
使用psql连接Postgres数据库。
前面已经介绍了Postgres的安装,
和远程连接Postgres服务器的方式,
这次就说一下如何使用Postgres。
命令:psql 【选项】 <数据库名称>
举例:
1、连接本地的Postgres服务器
psql
然后输入密码即可连接testdb。
注意:这种方式使用的很少,
因为没有带任何“选项”,
所以使用的都是默认值。
它将以当前操作系统的登陆名登陆,
并且请求连接Postgres服务器中以当前操作系统的登陆名同名的数据库。
2、连接本地的一个数据库testdb
psql testdb
然后输入密码即可连接testdb。
注意:此时连接Postgres的用户是操作系统的登陆用户。
3、指定一个用户testuser、连接本地的一个数据库testdb
psql -U testuser testdb
然后输入密码即可使用户testuser连接testdb。
注意:此时使用了“-U”选项指定一个Postgres已存在的用户。
至于如何向Postgres添加用户,后面再说。
4、指定一个用户testuser、连接远程的Postgres(172.28.18.51)的一个数据库testdb
psql -U testuser -h 172.28.18.51 testdb
然后输入密码即可使用户testuser连接到主机为172.28.18.51上的testdb。
注意:此时使用了“-h”选项指定一个远程Postgres主机的IP(或主机名)。
要想实现远程连接Postgres主机,请参看【远程连接PostgreSQL服务器。】
至此,就连接上了Postgres服务器,
提示符将变成:
数据库名=>
可以使用SQL语句进行数据库的操作了。
关于man命令的转帖2篇
在Linux下自我学习获得各类需要的知识(http://www.linuxdiyf.com/viewarticle.php?id=4056)
作者: 恒善喜 发布日期: 2005-12-04 查看数: 324 出自: http://www.linuxdiyf.com
转贴:
安装好了Unix/Linux类操作系统,却不知道拿它做点什么、也不知道它能做些什么……这是大多数初这朋友的疑惑。
我认为首先要做的是学会如何在Unix/Linux下获得知识,掌握学习方法。如何真有一天你要用Linux来做点什么时觉得孤立无助,你一定要学会用man命令。
man是什么?
首先在命令行输入man man回车看一下吧。把NAME和DESCRIPTION那两段英文看完了你就明白了。man是显示Unix/Linux的在线手册的命令。
典型情况下,man是用来查看一些命令、函数或文件的帮助手册的,另外它还可以显示一些gzip压缩格式的文件。
Unix/Linux的在线手册是什么?
一般情况下Linux下所有资源都会随操作系统一起发行,包括内核源代码。而在线手册是操作系统所有资源的一本很好的使用手册。你有不懂的命令时可以man一下这个命令,写程序时有不会用的函数时可以man一下该函数,甚至你不懂某个文件时都可以man一下这个文件(当然,这个文件一般来说是系统用到的一个配置文件或某个系统服务用到的配置文件)。
man手册资源的位置
一般情况下man的资源主要位于/usr/share/man目录下面。但如果你仔细看了man man的结果,并且对man.config也感兴趣并且man man.config过后,你就会明白其位置是由MANPATH变量决定的,你可以more /etc/man.config来看有哪些地方有man内容的位置。
单个man资源内容的组成
一般来说,man内容会分为NAME、SYNOPSIS、DESCRIPTION、OPTIONS、SEE ALSO、BUGS等部分。NAME是该内容的一个简单说明(一般是一句话给个定义似的);SYNOPSIS是大致说明,对于命令来说是命令的语法,对于函数来说是函数的定义;DESCRIPTION是该内容的一个简明介绍,让你对你查的内容大致有个印象;OPTIONS是在查询命令时的命令参数的详细解释;SEE ALSO是给你一些提示,相当于介绍你一些参考内容;BUGS是指明该命令或函数存在什么BUG,提醒你防止出现。
man资源的组成
有很多朋友说man资源分为8章,我觉得这只是说了主要部分,你ls /usr/share/man看一下就知道了,有man1、man2……man7、man8这样8个目录存在呢,但除了这之外还有其它的目录啊,何况还有其它的MANPATH规定的目录呢。所以具体多少章不是固定的,但Linux下大致相同内容的会归在同一个目录下,比如man1和man2目录所在的大致是一些系统命令,而man3是编程时的一些函数的用法,man5是些配置文件手册所在的目录……同样在/usr/X11R*/man目录下也有一些目录。具体是按什么来分目录的呢?各人具体根据各目录的内容理解不同了。
man资源的使用技巧
1、如果你在MANPATH变量所设定的目录(比如/usr/share/man/man1目录)里看到一个ln.1.gz的文件,那么你就可以man ln来查看fileame到底是个什么命令了。
2、man的一般用法是man SECTION name,即在指定的章节(SECTION)里查看name命令或函数的用法。但如果你不知道某个命令或函数在哪一章,你可以man -a name这样在所有MANPATH设定的地方查看name的手册。默认情况下man是显示完第一个手册页后就会退出,如果有-a参数就会搜索所有的资源了。
3、如果你觉得在Linux下看太困难或者你英文不太好想要借助“XX词霸”或“XX快译”来帮忙,那么你可以先把man手册存成文本文件然后ftp或samba共享到windows下打开来看吧。使用这么个命令就行了:
man man | col -bfp > man.txt
把man手册生成了一个man.txt文件了,借助翻译工具来看吧
4、编写自己的man资源,如果你自己写了一个非常好的函数或命令加到系统了,比如你写了一个MyDate命令来显示你需要的格式日期,那你也可以为你的MyDate命令来写个手册。很简单,你编辑(用vi或其它任何文本编辑工具都可以)一个MyDate文件,里面是你的命令使用方法说明,然后用gzip MyDate命令把这手册压缩一下生成一个MyDate.gz,然后把这个文件copy到某个MANPATH指定的目录,比如cp MyDate.gz /usr/share/man/man2,以后你就可以man MyDate来查看你的命令使用方法了。
5、安装好一个Linux操作系统后能做什么呢?你要学系统管理?就把/usr/share/man1和/usr/share/man2目录里的所有命令都man一下吧,都掌握了你绝对是系统管理专家了!想要学C编程?man一下gcc、g++、gdb等命令。或者你ls一下各个bin目录,比如/usr/bin、/bin、/sbin等,然后依次man一下你所看到的吧。
学习Linux最大的资源在你电脑上,如果你没安装,在你的光盘上一定有。想要学内核吗?赶快去看看/usr/src/linux*目录下面的所有东西吧。
如果你有任何疑问,讨论问题等请点击这到红联论坛中来! 网址:http://www.linux110.com/bbs
【论坛浏览】 【我来说两句】 【打印】 字体 【大】 【中】 【小】
××××××××××××××××××××××××××××××××××××××××××××××
(转自:http://www.linuxforum.net/books/smth/Unix.AIX/00000006/00000014.htm)
BBS水木清华站∶精华区
发信人: NightOwl (Owlet), 信区: Unix
标 题: Man Pages的一些秘密 (转载)
发信站: BBS 水木清华站 (Tue Apr 18 02:44:43 2000)
【 以下文字转载自 Linux 讨论区 】
【 原文由 NightOwl 所发表 】
发信人: NightOwl (Demon&Daemon), 信区: Linux
标 题: Man Pages的一些秘密
发信站: 紫 丁 香 (Mon Apr 17 13:52:30 2000), 转信
Man Pages的一些秘密
--version1.0
===================
NightOwl
2000.4.16
NightOwl2000@263.net
===================
这个题目也不知道过不过时。最近刚好看到又一本书上提了一下Unix下Man的格
式和用法,然后根据"man man"的结果和平时在BBS上看到的大虾高招,就自己总结
了一下。希望能对那些和我以前一样对Man Pages不大明白的朋友有些启发。;-)
Unix/Linux里最好的说明和帮助文档我认为就是那些在线帮助Manual Pages了,
很多时候,碰到不大明白的命令或者是一些函数的用法的时候,我就会开个man来看
看究竟。不过以前没有细究Man Pages里的名堂,现在才算是略知一二.下面就把我所
知的写下来,请各位补充未完尽或错误之处。(如有建议和意见,烦用EMail告知我一
声,谢谢!)
1。Unix/Linux下Man Pages的节(section)的含义说明:
Header : 标题;
NAME : 对你所Man的命令/函数的功能概述;
SYNOPSIS : 对你所Man的命令/函数用法的简单描述;
AVAILABILITY : 可用性说明;
DESCRIPTION : 对你所Man的命令/函数的详细描述;
OPTIONS : 该命令的所有可选项的详细说明;
RETURN VALUE : 如果是函数,则列出函数返回值;
ERRORS : 如果函数调用出错.则列出所有出错的值和可能引起错误的
原因;
FILES : 该命令/函数所用到的相关系统文件;
ENVIRONMENT : 和该命令/函数相关的环境变量;
NOTES : 表示不常用的用法或者是实现的细节;
BUGS : 已知的错误和警告(可能附有解决办法);
HISTORY : 该命令/函数的历史发展;
SEE ALSO : 可以参照的其他的相关命令/函数
Others.... : 和一些具体命名/函数有关的特殊节
比如在"man"自身的Man Pages里就有一个"CAT PAGES"节用来
描述如何保存Man Pages当前的格式.
举例如下:(请在你的系统中试验以获得感性了解;-)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
$man apropos
apropos(1) apropos(1)
NAME
apropos - search the whatis database for strings
SYNOPSIS
apropos keyword ...
DESCRIPTION
apropos searches a set of database files containing short
descriptions of system commands for keywords and displays
the result on the standard output.
SEE ALSO
whatis(1), man(1).
Jan 15, 1991
废话:上面大写的词就是那些"节(section)"了.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2.Unix/Linux下的Man Pages的分类:
你想要通过man来得到在线帮助的主题可能会在Unix/Linux里扮演很多角色。比如
"write"既是一个命令同时它又是一个系统调用。那么怎么样才能得到你想要得到的�
个角色的帮助呢?原来,在Unix/Linux里,Man Pages已经按功能分好了8个类别了,
如下表所示:
------------------------------
| 类: | 内容: |
------------------------------
| 1 : | 用户命令 |
| 2 : | 系统调用 |
| 3 : | C库函数 |
| 4 : | 设备与网络的接口 |
| 5 : | 文件格式 |
| 6 : | 游戏和演示 |
| 7 : | 环境、表、Troff宏 |
| 8 : | 系统维护 |
------------------------------
<注:本表摘自本文末所注明的参考资料一>
在Unix/Linux里,可以用"man n command/fuction"来得到相关的功能说明;这
里"n"表示你所得到的功能的类号,比如,你想得到"write"作为命令时的man page,
就用"man 1 write"这个格式,如果你想得到的是"write"作为系统调用的man page时�
就要用"man 2 write"了。
将结果对比如下:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
WRITE(1) Linux Programmer's Manual WRITE(1)
NAME ↑
write - send a message to another user ← 看看这里
SYNOPSIS
write user [ttyname]
++++++++++++++++++++++++++++++++++++++++++++++++++
WRITE(2) Linux Programmer's Manual WRITE(2)
NAME ↑
write - write to a file descriptor ← 再看看这里
SYNOPSIS
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3. 和Man有关的部分常用环境变量
(与Man有关的环境变量可以在/etc/man.confl里设置,也可以通过命令行参数来
设置.)
MANPATH : 如果设置了该变量,则表示man根据MANPATH指定的路径来搜索
man pages;
MANSECT : 如果设置了该变量,则表示指定要搜索那些节(section);
MANWIDTH : 如果设置了该变量,则表示显示的宽度;
MANPAGER : 该变量是用来设置显示man page的程序.如果没有设该变量,则用
PAGER变量的值,如果PAGER变量也没有定义,则用默认的"/usr/bin/
less -is"程序来显示;
4.和Man Pages有关的一些技巧
Question1.如何把man显示在屏幕的内容输出到文件里以便打印出来?
Answer1 :大家可能都试过"man n foo >foo.txt"了,也发现了用编辑器看fo.txt
时会有很多的"N^HNA^HAM^HME^HE"之类的符号,这样的结果当然不能让人满意.那么怎
么做呢?下面的方法来自哈工大的baggio大虾:
"man n foo | col -b > foo.txt"。
这样一来,输出的结果就是你希望的了。原来,man为了能按照它的显示规则显示文
本的内容,在文本里加了一些控制字符。而col命令刚好可以用来消除控制字符的。通
过管道把man出来的结果送到col里处理一下就可以去掉那些讨厌的控制字符了。是不是
很方便?(感谢baggio的高招!;-)
Question2.怎么样才能知道某个主体有几种类别呢?
Answer2 : 这个问题也得靠一个和man相关的命令来解决--"whatis",比如你可
以用"whatis bar" 来得到bar的所有类别。"whatis bar"可以显示与bar有关的所有
的man page的名称和类别号。你快试试看。;-)
Question3....(我就知道这么多,其他的等你来补充;-)
Answer3....
5.后话:
本来还想把man的命令行参数也写出来,想想好像用的人的不是很多就罢了(因为
我不用)关于man的详细的介绍当然要看man的man pages了.我想通过上面的简单的描
述 ,你应该可以很顺手的用man来看"man"的manual page了.(呵呵,一大堆"man"),我
就不废话了.;-).
另外, 如果你有别的有关于man的操作技巧,拜托请你告诉我呀.
6.参考资料:
(1). <<Pratical Unix Programming, A Guide to Concurrency,Communication,
and Mutilthreading>> Kay A. Robbins & Steven Robbins
中译本:<<实用Unix编程>> 机械工业出版社1999.10第一版
(2). Manual Pages' "Man" page ,ie. "man man" 😉
--
� @@@@ @@@@
@@@@@ @@ N @@ @@@@@ 得失随缘
\ @@@@ @ @@ i @@ @ @@@@ / 心无增减
@@@ @@ g @@ @@@
@@@ h @@@
\ t /
--
※ 来源:·BBS 水木清华站 smth.org·[FROM: 202.118.179.51]
BBS水木清华站∶精华区
Linux必学的重要命令(转帖)
(转自:http://www.linuxdiyf.com/viewarticle.php?id=1916)
Linux必学的重要命令 - 红联门户-您身边的Linux学习社区-本站新域名:www.linux110.com-Linux技术文章-Linux教程下载-电脑技术-红旗Linux - 信息资讯 - Linux技术专区 - Linux Shell
首页 信息资讯 相册影集 资源下载 信息搜索 红联Linux论坛
XML RSS 2.0 WAP
Linux安装 Linux Shell Linux软件下载 基础Linux技能 Linux问题解疑 Linux管理及应用 红旗Linux5.0 RedHat教程 Linux资料下载
服务器应用 数据库应用 Linux编程开发 Linux内核研究 UniX技术文章 Linux认证 Linux业界新闻 黑客与安全 电脑硬件
电脑设计在线 Windows软件 Windows维护 发展创业 网文共享 分享天地 影音在线 Linux壁纸与桌面 红联工作室
您的位置: 首页 >> 信息资讯 >> Linux技术专区 >> Linux Shell >> 查看内容
Linux必学的重要命令
作者: ccs 发布日期: 2005-8-10 查看数: 1297 出自: http://www.linuxdiyf.com
tar
1. 作用
tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。
2. 格式
tar [主选项+辅选项] 文件或目录
3.主要参数
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
-c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
-r 把要存档的文件追加到档案文件的未尾。例如用户已经做好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
-t 列出档案文件的内容,查看已经备份了哪些文件。
-u 更新文件。就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
-x 从档案文件中释放文件。
辅助选项:
-b 该选项是为磁带机设定的,其后跟一数字,用来说明区块的大小,系统预设值为20(20×512 bytes)。
-f 使用档案文件或设备,这个选项通常是必选的。
-k 保存已经存在的文件。例如把某个文件还原,在还原的过程中遇到相同的文件,不会进行覆盖。
-m 在还原文件时,把所有文件的修改时间设定为现在。
-M 创建多卷的档案文件,以便在几个磁盘中存放。
-v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
-w 每一步都要求确认。
-z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。
3. 应用说明
tar是Tape Archive(磁带归档)的缩写,最初设计用于将文件打包到磁带上。如果下载过Linux的源代码,或许已经碰到过tar文件。tar是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。使用tar可以打包整个目录树,这使得它特别适合用于备份。归档文件可以全部还原,或者从中展开单独的文件和目录。备份可以保存到基于文件的设备或磁带设备上。文件可以在还原时重定向,以便将它们重新放到一个与最初保存它们的目录(或系统)不同的目录(或系统)。tar与文件系统无关,可以使用在ext2、ext3、JFS、Reiser和其它文件系统上。它支持各种备份介质,包括软盘、光盘写入器、可重写的光盘、JazZip、磁带、高端磁带等。Linux中以.tar结尾的文件都是用tar创建的。它的使用超出了单纯的备份,可用来把许多不同文件放到一起组成一个易于分开的文件。如果使用Linux源代码安装程序,一定使用过tar文件。这是一个基于文件的命令,它本质上是连续地、首尾相连地堆放文件。tar官方网址是http://www.gnu. org/software/tar/tar.html。
请注意,不要忘了Linux是区分大小写的。例如,tar命令应该总是以小写的形式执行。命令行开关可以是大写、小写或大小写的混合。例如,-t和-T执行不同的功能。文件或目录名称可以混合使用大小写,而且就像命令和命令行开关一样是区分大小写的。
4.应用实例
tar是一个命令行的工具,没有图形界面。使用Konsole打开一个终端窗口,接下来是一个简单的备份命令(在/temp目录中创建一个back.tar的文件,/usr目录中所有内容都包含在其中。):
$tar cvf - /usr > /temp/back.tar
另外,tar命令支持前面第三讲中讲过的crontab命令,可以用crontab工具设置成基于时间的有规律地运行。例如,每晚6点把/usr目录备份到hda—第一个IDE接口的主驱动器 (总是位于第一个硬盘)中,只要将下面语句添加到root的crontab中即可:
$00 06 * * * tar cvf /dev/hda1/usrfiles.tar - /usr
一般情况下,以下这些目录是需要备份的:
◆ /etc 包含所有核心配置文件,其中包括网络配置、系统名称、防火墙规则、用户、组,以及其它全局系统项。
◆ /var 包含系统守护进程(服务)所使用的信息,包括DNS配置、DHCP租期、邮件缓冲文件、HTTP服务器文件、dB2实例配置等。
◆ /home 包含所有默认用户的主目录,包括个人设置、已下载的文件和用户不希望失去的其它信息。
◆ /root 根(root)用户的主目录。
◆ /opt 是安装许多非系统文件的地方。IBM软件就安装在这里。OpenOffice、JDK和其它软件在默认情况下也安装在这里。
有些目录是可以不备份的:
◆ /proc 应该永远不要备份这个目录。它不是一个真实的文件系统,而是运行内核和环境的虚拟化视图,包括诸如/proc/kcore这样的文件,这个文件是整个运行内存的虚拟视图。备份这些文件只是在浪费资源。
◆ /dev 包含硬件设备的文件表示。如果计划还原到一个空白的系统,就可以备份/dev。然而,如果计划还原到一个已安装的Linux 系统,那么备份/dev是没有必要的。
unzip
1. 作用
unzip命令位于/usr/bin目录中,它们和MS DOS下的pkzip、pkunzip及MS Windows中的Winzip软件功能一样,将文件压缩成.zip文件,以节省硬盘空间,当需要的时候再将压缩文件用unzip命令解开。该命令使用权限是所有用户。
2. 格式
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>]
3. 主要参数
-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f:更新现有的文件。
-l:显示压缩文件内所包含的文件。
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t:检查压缩文件是否正确。
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其它文件解压缩到目录中。
-v:执行是时显示详细的信息。
-z:仅显示压缩文件的备注文字。
-a:对文本文件进行必要的字符转换。
b:不要对文本文件进行字符转换。
-C:压缩文件中的文件名称区分大小写。
-j:不处理压缩文件中原有的目录路径。
-L:将压缩文件中的全部文件名改为小写。
-M:将输出结果送到more程序处理。
-n:解压缩时不要覆盖原有的文件。
-o:不必先询问用户,unzip执行后覆盖原有文件。
-P<密码>:使用zip的密码选项。
-q:执行时不显示任何信息。
-s:将文件名中的空白字符转换为底线字符。
-V:保留VMS的文件版本信息。
-X:解压缩时同时回存文件原来的UID/GID。
[.zip文件]:指定.zip压缩文件。
[文件]:指定要处理.zip压缩文件中的哪些文件。
-d<目录>:指定文件解压缩后所要存储的目录。
-x<文件>:指定不要处理.zip压缩文件中的哪些文件。
-Z unzip:-Z等于执行zipinfo指令。在Linux中,还提供了一个叫zipinfo的工具,能够察看zip压缩文件的详细信息。unzip最新版本是5.50。
gunzip
1.作用
gunzip命令作用是解压文件,使用权限是所有用户。
2.格式
gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][文件...]
或者gunzip [-acfhlLnNqrtvV][-s <压缩字尾字符串>][目录]
3.主要参数
-a或--ascii:使用ASCII文字模式。
-c或--stdout或--to-stdout:把解压后的文件输出到标准输出设备。
-f或-force:强行解开压缩文件,不理会文件名称或硬连接是否存在,以及该文件是否为符号连接。
-h或--help:在线帮助。
-l或--list:列出压缩文件的相关信息。
-L或--license:显示版本与版权信息。
-n或--no-name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其忽略不予处理。
-N或--name:解压缩时,若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上。
-q或--quiet:不显示警告信息。
-r或--recursive:递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串>或--suffix<压缩字尾字符串>:更改压缩字尾字符串。
-t或--test:测试压缩文件是否正确无误。
-v或--verbose:显示指令执行过程。
-V或--version:显示版本信息。
4.说明
gunzip是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为“.gz”。事实上,gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip指令单独完成。gunzip最新版本是1.3.3 。
unarj
1.作用
unarj解压缩格式为.arj格式的文件,使用权限是所有用户。
2.格式
unarj [eltx][.arj压缩文件]
3.主要参数
e:解压缩.arj文件。
l:显示压缩文件内所包含的文件。
t:检查压缩文件是否正确。
x:解压缩时保留原有的路径。
4.说明
带有.arj扩展名的文件是由用于MS DOS和Windows的ARJ实用程序创建的。因为ARJ是一种不能免费获得源代码的共享件程序,所以在Linux平台上几乎不存在与其功能匹配的工具,要解压缩.arj文件,就要使用unarj实用程序。unarj比ARJ慢,能力也不如ARJ,但至少能够顺利地抽取大多数.arj文件。unarj只能将文件抽取到当前的工作目录、列出档案内容,或者测试档案。从ARJ Software的站点或携带所需Linux发行版的FTP服务器上可以下载unarj源码。另外,unarj通常是基本Linux发行版的一部分,因此可以在主要发行版本的CD-ROM上找到它。如果需要可到所有Linux发行版链接的列表下载,ARJ软件网址为http://www.arjsoft.com,ARJ的下载页面为http://www.arjsoft.com/files.htm。unarj最新版本是2.65,注意unarj选项不是以减号(-)开头的。
mtools
1.作用
mtools实际上是一个命令集合,是DOS文件系统的工具程序,它可以模拟许多DOS命令,使用起来非常方便。使用权限是所有用户。Linux系统提供了一组称为mtools的可移植工具,可以让用户轻松地从标准的DOS软盘上读、写文件和目录。它们对DOS和Linux环境之间交换文件非常有用。mtools的使用非常简单,如果想把软盘里所有的文件都拷贝到硬盘上,那么就可以执行以下命令:
mcopy a:*.*
也就是说,只需要在相应的DOS命令之前加上一个字母“m”,就可以完成对应的功能了。一般Linux发行版本中都有这个软件,可以使用下面命令检查一下。
rpm -qa|grep mtools
如果没有安装,也没有关系,可以从网上下载(http://mtools.linux.lu/)一个最新版本来安装。目前可供下载的最新mtools版本是3.9.9,下载链接为http://mtools.linux.lu/mtools-3.9.9-3.i386.rpm。下载后安装一下即可。
2.包括的命令
mcd 目录名:改变MS DOS下的目录。
mcopy 源文件 目标文件:在MS DOS和Unix之间复制文件。
mdel 文件名:删除MS DOS下的文件。
mdir 目录名:显示MS DOS下的目录。
mformat 驱动器号:在低级格式化的软盘上创建MS DOS文件系统。
rnlabel 驱动器号:产生MS DOS下的卷标
mmd 目录名:建立MS DOS下的目录。
mrd 目录名:删除MS DOS下的目录。
mren 源文件 目标文件:重新命名已存在的MS DOS文件。
mtype 文件名:显示MS DOS文件的内容。
请注意,这些命令和对应的MS DOS命令非常相似。在mtools命令中,“/”和“\”是可以混用的。因为文件列表的是DOS系统下的文档,对大小写并不敏感,所以“CDE”和“cde”在这里是一样的。
3.应用实例
(1)如果把软盘进行快速格式化,可以使用命令mformat:
mformat A:
mtools当初发展的目的是用来处理DOS文件系统的,所以只能用在FAT文件格式的分区上。需要注意的是,如果用mount命令来挂载了FAT16/32分区,那么就不能使用mtools的指令来处理这些分区上的文件。这是因为一旦FAT16/32分区挂到了Linux文件目录下,Linux就会将其视为文件系统本身的一部分,这时如果要对其操作就必须使用Linux本身所附带的指令集。
(2)将DOS盘上的文件htca.c复制到当前目录下,并用ls命令进行验证。
$ mcopy a:\htca.c
$ ls -l htca.c
-rw-r- -r- - 1 xxq xxq 27136 Jan 1 01:80 htca.c
man
1.作用
man命令用来提供在线帮助,使用权限是所有用户。在Linux系统中存储着一部联机使用的手册,以供用户在终端上查找。使用man命令可以调阅其中的帮助信息,非常方便和实用。
2.格式
man 命令名称
man [-acdfhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name ...
1. 参数
-C config_file:指定设定文件man.conf,缺省值是/etc/man.conf。
-M path:指定了联机手册的搜寻路径, 如果没有指定则使用环境变数MANPATH的设定;如果没有使用MANPATH, 则会使用/usr/lib/man.conf内的设定;如果MANPATH是空字串,则表示使用缺省值。
-P pager:指定使用何种pager.man会优先使用此选项设定,然后是依环境变数MANPAGER设定,然后是环境变数PAGER;man缺省使用/usr/bin/less -is。
-S section_list man:所搜寻的章节列表(以冒号分隔),此选项会覆盖环境变数MANSECT的设定。
-a man:缺省情况是在显示第一个找到的手册之后,就会停止搜寻,使用此选项会强迫man继续显示所有符合name的联机手册。
-c:即使有最新的cat page,也继续对联机手册重新作排版,本选项在屏幕的行列数改变时或已排版的联机手册损坏时特别有意义。
-d:不要真的显示联机手册,只显示除错讯息。
-D:同时显示联机手册与除错讯息。
-h:显示求助讯息然后结束程式 。
-K:对所有的联机手册搜寻所指定的字串。请注意,本功能回应速度可能很慢,如果指定section(区域)会对速度有帮助。
-m system:依所指定的system名称而指定另一组的联机手册。
man:是manual(手册)的缩写。在输入命令有困难时,可以立刻得到这个文档。例如, 如果使用ps命令时遇到困难,可以输入man ps得到帮助信息,此时会显示出ps的手册页(man page)。
由于手册页man page是用less程序来看的(可以方便地使屏幕上翻和下翻), 所以在man page里可以使用less的所有选项。
less中比较重要的功能键有:
[q] 退出;
[Enter] 一行行地下翻;
[Space] 一页页地下翻;
上翻一页;
[/] 后跟一个字符串和[Enter]来查找字符串;
[n] 发现上一次查找的下一个匹配。
unencode
1.作用
unencode命令可以把一个二进制文件表编码为一个文本文件,使用权限是所有用户。
2.格式
uuencode [-hv] [源文件] 目标文件
3.主要参数
-h:列出指令使用格式(help) 。
-v:列出版本信息。
4.应用说明
uuencode指令可以将二进制文件转化成可使用电子邮件发送的ASCII编码形式。uuencode编码后的资料都以 begin开始,以end作为结束,且通常其中的每一行的开始均为“M”,中间部分是编码过的文件,编码后的文件比源文件要大一些。
uudecode
1.作用
uudecode命令用来将uuencode编码后的档案还原,uudecode只会将begin与end标记之间的编码资料还原,程序会跳过标记以外的资料。它的使用权限为所有用户。
2.格式
uuencode [-hv] [file1 ...]
3.主要参数
-h:列出指令使用格式(help)。
-v:列出版本信息。
如果你有任何疑问,讨论问题等请点击这到红联论坛中来! 网址:http://www.linux110.com/bbs
【论坛浏览】 【我来说两句】 【打印】 字体 【大】 【中】 【小】 【关闭】
相关评论
作者: ABC 发布日期: 2005-8-13
不错,顶
作者: aiwuxian23 发布日期: 2006-4-06
好东西!
共有评论数 2 / 每页显示数 10
我来说两句
请遵守国家法律和互联网法规。
您要为您所发的言论的后果负责,故请各位遵纪守法并注意语言文明。
热点主题
从零开始:Linux基础教程之命令的使用
shell 编程的最好理解
一切从基础开始Linux入门命令篇
在Linux世界驰骋系列——Shell编程
两个很详细的shell 实例
Linux Shell命令集锦
shell 脚本初步,启动可执行 jar 文件
VI高级命令集锦
利用shell编程实现DOS风格的Linux命令行
Linux的命令组成
最新主题
用这个命令能够看到主机中的网络设备
创建(进入)带空格的目录名
三种主要的 Shell 与其分支,Shell 的功用
让Linux命令加速
菜鸟学习SHELL第一课---地址本的脚本
命令行CALL程序时传递数字参数总结
shell下十二种读文件的方法
shell历险之——引用的迷途
awk用法小结
Shell Script简介
网络资源推荐
OPEN-LAB IT教育Linux技术中心 前往红联论坛讨论
广告业务 站务联系: lz@linuxdiyf.com 关于红联论坛 与本站交流! 红联论坛致力站暨站点交流
版权所有 2006 红联门户-您身边的Linux学习社区-本站新域名:www.linux110.com-Linux技术文章-Linux教程下载-电脑技术-红旗Linux 最佳分辨率 1024 X 768
Copyright © http://www.linuxdiyf.com All rights reserved. Powered by supstie™ V4.0
今天,在家里把学习日记的开发环境安上了
第二次安,有点门路了,大部分安装离开参考资料能搞定了。发现我还不会很好的使用进入linux殿堂的man命令。
这次的安装共享了windows2000下的mysql数据目录,需要新加一个用户:dbuser@localhost.localdomain才能使学习日记运行起来。而且还需要把新安装的linux版本的数据目录里的一个localhost.localdomain.pid文件拷入原来的windows下的mysql数据目录才行。
本来想共享windows2000下的eclipse中的学习日记工程,可是把它导入后发现WEB-INF目录名变成了小写。在操作系统文件目录窗口中看windows2000下的目录名还是大写,搞不懂了(也许是在linux中装载windows文件系统时在eclipse2.1中的形成的一个bug?这有待以后进一步验证)。只得从cvs库中重新导入才解决问题。
mysql4.0.17的两个rpm包是不能改变安装目录的,也就是说是:not relocateable。并不能像帖子(mysql的rpm包默认安装路径问题;RPM命令手册(转帖两篇)http://www.123go.org.cn/disDiaryContentAction.do?searchDiaryID=1767&goalID=1767&naviStr=a10ac0ad0)中说的那样可以改变安装目录。
另外,在linux下的eclipse2.1中安装那个EclipseColorer-take5_0.6.0(net.sf.colorer_0.6.0)语法高亮的插件,必须把其中的colorer目录拷入/usr/local/share才能正常使用(只拷入其中的catalog.xml文件不行),否则会报找不到catalog.xml文件的错(Error in initialization of native part of the Colorer library. This can be caused by absent net_sf_colorer.dll (libnet_sf_colorer.so) in paths of java machine. Or, colorer can't find catalog.xml file, which must be placed in '%PLUGIN_DIR%/colorer/catalog.xml' ParserFactoryException: Can't find suitable catalog.xml file. Check your program settings.)。
colorer的readme文件:(文件名:readme)
This archive contains Java Edition of the Colorer-take5 library.
It includes Java interfaces to the Library and an experimental
plugin for the Eclipse platform
http://www.eclipse.org
To install plugin into Eclipse you have to copy content
of this directory into %ECLIPSE_HOME%/plugins directory.
This package contains plugin's native library, compiled for
win32 ant Linux platforms. For Linux issues, read LINUX file.
To compile Colorer-take5 library to use with MacOSX systems,
read MACOS file.
If you are using Colorer with other tools/applications (and have
your own HRC base), you can specify path to the 'catalog.xml' file
with one of the standard locations:
- %HOME%/.colorer5catalog (or %HOMEPATH%, %SYSTEMROOT%)
- %COLORER5CATALOG%
- /usr/share/colorer/catalog.xml
In this case you can delete 'colorer' folder of the EclipseColorer
package, and it will start to read configuration data from the global source.
All files in this package are subject to the Mozilla Public License 1.1
You can find detailed description and license agreement on
http://colorer.sf.net/
For more information see 'index.html' in the 'doc' folder of
the Colorer Library package distribution or visit
http://colorer.sf.net/
Thanks for using Colorer,
Igor Russkih <cail@nm.ru>
其中的linux说明文件:(文件名:linux)
Colorer Library is not yet fully tested on Linux systems,
and there can be some problems.
This version of Colorer Library comes with the native part, compilied
with GNU GCC 3.2 c++ compiler under Mandrake Linux 9.0.
I've tested it with Eclipse 2.1 (gtk) under jdk1.4.1 and it works fine.
However, you can encounter some problems with library dependencies.
从下面这个文件来看,也许把eclipse安在目录:/usr/share下面就会正常也说不一定?(文件名:ColorDemo.sh)
#!/bin/bash
# Self runnable version of Colorer library JNI interface
# Uses SWT API.
# To use it, please provide full path to colorer/catalog.xml file
# in %HOME%/.colorer5catalog file.
ECLIPSE_HOME=/usr/share/eclipse
ECLIPSE_VERSION=2.1.0
# Requires inclusion of additional jars:
ECLIPSE_TOOLKIT=gtk
#ECLIPSE_TOOLKIT=motif
OS=linux
ARCH=x86
SWT_JAR=${ECLIPSE_HOME}/plugins/org.eclipse.swt.${ECLIPSE_TOOLKIT}_${ECLIPSE_VERSION}/ws/${ECLIPSE_TOOLKIT}/swt.jar:${ECLIPSE_HOME}/plugins/org.eclipse.swt.${ECLIPSE_TOOLKIT}_${ECLIPSE_VERSION}/ws/${ECLIPSE_TOOLKIT}/swt-pi.jar
SWT_LIB=${ECLIPSE_HOME}/plugins/org.eclipse.swt.${ECLIPSE_TOOLKIT}_${ECLIPSE_VERSION}/os/${OS}/${ARCH}
env LD_LIBRARY_PATH=os/${OS}/${ARCH}:${SWT_LIB}:${LD_LIBRARY_PATH} java -classpath colorer.jar:${SWT_JAR} net.sf.colorer.swt.ColorerDemo
MySQL 存取權限系統(转帖)
MySQL中文參考手冊-權限(转自:http://sy3es.tnc.edu.tw/teaching/php_mysql/mysql.htm)
1 權限系統做什麼
MySQL權限系統的主要功能是証實連接到一台給定主機的一個用戶,並且賦予該用戶在一個資料庫上select、 insert、update和delete的權限。
附加的功能包括有一個匿名的用戶和對於MySQL特定的功能例如LOAD DATA INFILE進行授權及管理操作的能力。
2 MySQL 用戶名和密碼
由MySQL使用用戶名和密碼的方法與Unix或Windows使用的方式有很多不同之處:
* MySQL使用於認証目的的用戶名,與Unix用戶名(登錄名字)或Windows用戶名無關。
* MySQL用戶名最長可以是16各字符﹔典型地,Unix用戶名限制為8個字符。
* MySQL密碼與Unix密碼沒關系。在你使用登錄到一台Unix機器密碼和你使用在那台機器上存取一個資料庫的密碼之間沒有必要有關聯。
* MySQL加密密碼使用了一個Unix登錄期間所用的不同算法,使用PASSWORD()和ENCRYPT()函數部分。
3 使你的密碼安全
以一種暴露的可被其他用戶發現的方式指定你的密碼是不妥當的。當你運行客戶程式時,你可以使用下列方法指定你的密碼,還有每個方法的風險評估:
* 使用一個在命令行上-pyour_pass或--password=your_pass的選項。這很方便但是不安全,因為你的密碼對系統狀態程式(例如ps)變得可見,它可以被其他的用戶調用來顯示命令行。(一般MySQL客戶在他們的初始化順序期間用零覆蓋命令行參數,但是仍然有一個短暫間隔時間內參數值可見的。)
* 使用一個-p或--password選項(沒有指定your_pass值)。在這種情況下,客戶程式請求來自終端的密碼:
shell>mysql - u user_name - p
Enter password: ********
客戶回應“*”字符到作為輸入你的密碼的終端使得旁觀者不能看見它。因為它對其他用戶不可見,與在命令行上指定它相比,這樣進入你的密碼更安全。然而,這個輸入一個密碼的方法僅僅為你交互式運行程式是合適的。如果你想要從非交互式運行的一個腳本調用一個客戶,就沒有從終端輸入入密碼的機會。
4 MySQL提供的權限
權限資訊用user、db、host、tables_priv和columns_priv表被儲存在mysql資料庫中(即在名為mysql的資料庫中)。在MySQL啟動時和在6.9 權限修改何時生效所說的情況時,伺服器讀入這些資料庫表內容。
5 權限系統工作原理
MySQL權限系統保証所有的用戶可以嚴格地做他們假定被允許做的事情。當你連接一個MySQL伺服器時, 你的身份由你從那連接的主機和你指定的用戶名來決定,系統根據你的身份和你想做什麼來授予權限。
MySQL在認定身份中考慮你的主機名和用戶名字,是因為有很小的原因假定一個給定的用戶在網際網路上屬於同一個人。例如,用戶從whitehouse.gov連接的bill不必和從mosoft.com連接bill是同一個人。 MySQL通過允許你區分在不同的主機上碰巧有同樣名字用戶來處理它:你可以對從whitehouse.gov連接授與bill一個權限集,而為從microsoft.com的連接授予一個不同的權限集。
MySQL存取控制包含2個階段:
* 階段1:伺服器檢查你是否允許連接。
* 階段2:假定你能連接,伺服器檢查你發出的每個請求。看你是否有足夠的權限實施它。例如,如果你從資料庫中一個表選取(select)行或從資料庫拋棄一個表,伺服器確定你對表有select權限或對資料庫有drop權限。
6存取控制, 階段1:連接証實
當你試圖聯接一個MySQL伺服器時,伺服器基於你的身份和你是否能通過供應正確的密碼驗証身份來接受或拒絕連接。如果不是,伺服器完全具結你的存取,否則,伺服器接受連接,然後進入階段2並且等待請求。
你的身份基於2個資訊:
* 你從那個主機連接
* 你的MySQL用戶名
身份檢查使用3個user表(Host, User和Password)範圍字段執行。伺服器只有在一個user表條目匹配你的主機名和用戶名並且你提供了正確的密碼時才接受連接。
在user表範圍字段可以如下被指定:
* 一個Host值可以是主機名或一個IP數字,或'localhost'指出本地主機。
* 你可以在Host字段裡使用通配符字符“%”和“_”。
* 一個Host值'%'匹配任何主機名,一個空白Host值等價於'%'。注意這些值匹配能創建一個連接到你的伺服器的任何主機!
* 通配符字符在User字段中不允許,但是你能指定空白的值,它匹配任何名字。如果user表匹配到來的連接的條目有一個空白的用戶名,用戶被認為是匿名用戶(沒有名字的用戶),而非客戶實際指定的名字。這意味著一個空白的用戶名被用於在連接期間的進一步的存取檢查(即,在階段2期間)。
* Password字段可以是空白的。這不意味著匹配任何密碼,它意味著用戶必須不指定一個密碼進行連接。
非
7 存取控制,階段2:請求証實
一旦你建立了一個連接,伺服器進入階段2。對在此連接上進來的每個請求,伺服器檢查你是否有足夠的權限來執行它,它基於你希望執行的操作類型。這正是在授權表中的權限字段發揮作用的地方。這些權限可以來子user、db、host、tables_priv或columns_priv表的任何一個。授權表用GRANT和REVOKE命令操作。見7.26 GRANT和REVOKE 句法。(你可以發覺參考6.6 權限系統怎樣工作很有幫助,它列出了在每個權限表中呈現的字段。)
user表在一個全局基礎上授予賦予你的權限,該權限不管當前的資料庫是什麼均適用。例如,如果user表授予你delete權限, 你可以刪除在伺服器主機上從任何資料庫刪除行!換句話說,user表權限是超級用戶權限。只把user表的權限授予超級用戶如伺服器或資料庫主管是明智的。對其他用戶,你應該把在user表中的權限設成'N'並且僅在一個特定資料庫的基礎上授權, 使用db和host表。
db和host表授予資料庫特定的權限。在範圍字段的值可以如下被指定:
* 通配符字符“%”和“_”可被用於兩個表的Host和Db字段。
* 在db表的'%'Host值意味著“任何主機”,在db表中一個空白Host值意味著“對進一步的資訊咨詢host表”。
* 在host表的一個'%'或空白Host值意味著“任何主機”。
* 在兩個表中的一個'%'或空白Db值意味著“任何資料庫”。
* 在兩個表中的一個空白User值匹配匿名用戶。
db和host表在伺服器啟動時被讀取和排序(同時它讀user表)。db表在Host、Db和User範圍字段上排序,並且host表在Host和Db範圍字段上排序。對於user表,排序首先放置最特定的值然後最後最不特定的值,並且當伺服器尋找匹配入條目時,它使用它找到的第一個匹配。
tables_priv和columns_priv表授予表和列特定的權限。在範圍字段的值可以如下被指定:
* 通配符“%”和“_”可用在使用在兩個表的Host字段。
* 在兩個表中的一個'%'或空白Host意味著“任何主機”。
* 在兩個表中的Db、Table_name和Column_name字段不能包含通配符或空白。
tables_priv和columns_priv表在Host、Db和User字段上被排序。這類似於db表的排序,盡管因為只有Host字段可以包含通配符,但排序更簡單。
8 權限更改何時生效
當mysqld啟動時,所有的授權表內容被讀進儲存器並且從那點生效。
用GRANT、REVOKE或SET PASSWORD對授權表施行的修改會立即被伺服器注意到。
如果你手工地修改授權表(使用INSERT、UPDATE等等),你應該執行一個FLUSH PRIVILEGES語句或運行mysqladmin flush-privileges告訴伺服器再裝載授權表,否則你的改變將不生效,除非你重啟伺服器。
當伺服器注意到授權表被改變了時,現存的客戶連接有如下影響:
* 表和列權限在客戶的下一次請求時生效。
* 資料庫權限改變在下一個USE db_name命令生效。
全局權限的改變和密碼改變在下一次客戶連接時生效。
9 建立初始的MySQL權限
你的安裝初始時廣開大門,你首先應該做的事情之一是為MySQL root用戶指定一個密碼。你可以做如下(注意,你使用PASSWORD()函數指定密碼):
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('new_password')
WHERE user='root';
mysql> FLUSH PRIVILEGES;
在MySQL 3.22和以上版本中,你可以使用SET PASSWORD語句:
shell> mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD('new_password');
設置密碼的另一種方法是使用mysqladmin命令:
shell> mysqladmin -u root password new_password
注意:如果你使用第一種方法在user表裡直接更新密碼,你必須告訴伺服器再次讀入授權表(用FLUSH PRIVILEGES),因為否則改變將不被注意到。
一旦root密碼被設置,此後當你作為root與伺服器連接時,你必須供應那個密碼。
10 向MySQL增加新用戶權限
你可以有2個不同的方法增加用戶:通過使用GRANT語句或通過直接操作MySQL授權表。比較好的方法是使用GRANT語句,因為他們是更簡明並且好像錯誤少些。
下面的例子顯示出如何使用mysql客戶安裝新用戶。這些例子假定權限根據以前的章節描述的內定被安裝。這意味著為了改變,你必須在mysqld正在運行同一台機器上,你必須作為MySQL root用戶連接,並且root用戶必須對mysql資料庫有insert權限和reload管理權限。另外,如果你改變了root用戶密碼,你必須如下的mysql命令指定它。
你可以通過發出GRANT語句增加新用戶:
shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;
這些GRANT語句安裝3個新用戶:
monty
可以從任何地方連接伺服器的一個完全的超級用戶,但是必須使用一個密碼('something'做這個。注意,我們必須對monty@localhost和monty@"%"發出GRANT語句。如果我們增加localhost條目,對localhost的匿名用戶條目在我們從本地主機連接接時由mysql_install_db創建的條目將優先考慮,因為它有更特定的Host字段值,所以以user表排列順序看更早到來。
admin
可以從localhost沒有一個密碼進行連接並且被授予reload和process管理權限的用戶。這允許用戶執行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,還有mysqladmin processlist。沒有授予資料庫有關的權限。他們能在以後通過發出另一個GRANT語句授權。
dummy
可以不用一個密碼連接的一個用戶,但是只能從本地主機。全局權限被設置為'N'--USAGE權限類型允許你無需權限就可設置一個用戶。它假定你將在以後授予資料庫相關的權限。
你也可以直接通過發出INSERT語句增加同樣的用戶存取資訊,然後告訴伺服器再次裝入授權表:
shell> mysql --user=root mysql
mysql> INSERT INTO user VALUES('localhost','monty',PASSWORD('something'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user VALUES('%','monty',PASSWORD('something'),
'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y')
mysql> INSERT INTO user SET Host='localhost',User='admin',
Reload_priv='Y', Process_priv='Y';
mysql> INSERT INTO user (Host,User,Password)
VALUES('localhost','dummy','');
mysql> FLUSH PRIVILEGES;
取決於你的MySQL版本,對上述,你可能必須使用一個不同數目'Y'值(在3.22.11以前的版本有更少的權限列)。對admin用戶,只用在3.22.11開始的版本具有的更加可讀的INSERT擴充的語法。
注意,為了設置一個超級用戶,你只需創造一個user表條目,其權限字段設為'Y'。不需要db或host表的條目。
在user表中的權限列不是由最後一個INSERT語句明確設置的(對dummy用戶),因此那些列被賦予內定值'N'。這是GRANT USAGE做的同樣的事情。
下列例子增加一個用戶custom,他能從主機localhost、server.domain和whitehouse.gov連接。他只想要從localhost存取bankaccount資料庫,從whitehouse.gov存取expenses資料庫和從所有3台主機存取customer資料庫。他想要從所有3台主機上使用密碼stupid。
為了使用GRANT語句設置個用戶的權限,運行這些命令:
shell> mysql --user=root mysql
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON bankaccount.*
TO custom@localhost
IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON expenses.*
TO custom@whitehouse.gov
IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON customer.*
TO custom@'%'
IDENTIFIED BY 'stupid';
通過直接修改授權表設置用戶權限,運行這些命令(注意,在結束時FLUSH PRIVILEGES):
shell> mysql --user=root mysql
mysql> INSERT INTO user (Host,User,Password)
VALUES('localhost','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
VALUES('server.domain','custom',PASSWORD('stupid'));
mysql> INSERT INTO user (Host,User,Password)
VALUES('whitehouse.gov','custom',PASSWORD('stupid'));
mysql> INSERT INTO db
(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
VALUES
('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
VALUES
('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO db
(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,
Create_priv,Drop_priv)
VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y');
mysql> FLUSH PRIVILEGES;
頭3個INSERT語句增加user表條目,允許用戶custom用給定密碼從不同的主機進行連接,但是沒有授予任何許可(所有權限被設置為內定值'N')。後3個INSERT語句增加db表條目,授予custom以bankaccount、expenses和customer資料庫權限,但是只能在從正確的主機存取時。通常,在授權表直接被修改時,伺服器必須被告知再次裝入他們(用FLUSH PRIVILEGES)以便使權限修改生效。
如果你想要給特定的用戶從一個給定的域上的任何機器上存取權限,你可以發出一個如下的GRANT語句:
mysql> GRANT ...
ON *.*
TO myusername@"%.mydomainname.com"
IDENTIFIED BY 'mypassword';
為了通過直接修改授權表做同樣的事情,這樣做:
mysql> INSERT INTO user VALUES ('%.mydomainname.com', 'myusername',
PASSWORD('mypassword'),...);
mysql> FLUSH PRIVILEGES;
11 怎樣設置密碼
在前面小節的例子裡說明了一個重要的原則:當你使用INSERT或UPDATE語句儲存一個非空的密碼時,你必須使用PASSWORD()函數加密它。這是因為在user表刈脛加密形式儲存密碼,而不是作為純文本。如果你忘記這個事實,你可能像這樣試圖設置密碼:
shell> mysql -u root mysql
mysql> INSERT INTO user (Host,User,Password) VALUES('%','jeffrey','biscuit');
mysql> FLUSH PRIVILEGES
結果是純文本值'biscuit'作為密碼被儲存在user表中。在用戶jeffrey試圖用這個密碼連接伺服器時,mysql客戶用PASSWORD()加密它並且將結果送給伺服器,伺服器比較在user表中的值(它是純文本值'biscuit')和加密的密碼(而不是 'biscuit'),比較失敗並且伺服器拒絕連接:
shell> mysql -u jeffrey -pbiscuit test
Access denied
因為當他們被插入user表時,密碼必須被加密,相反,INSERT語句應該像這樣被指定:
mysql> INSERT INTO user (Host,User,Password)
VALUES('%','jeffrey',PASSWORD('biscuit'));
當你使用SET PASSWORD語句時,你也必須使用PASSWORD()函數:
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');
如果你使用GRANT ... IDENTIFIED BY語句或mysqladmin password命令設置密碼,PASSWORD()函數是不必要的。他們都考慮到為你加密密碼,多以你可像這樣指定一個密碼'biscuit':
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';
或
shell> mysqladmin -u jeffrey password biscuit
注意: PASSWORD()不是以在Unix密碼加密的同樣方法施行密碼加密。你不應該假定如果你的Unix密碼和你的MySQL密碼是一樣的,PASSWORD()將導致與在Unix密碼文件被儲存的同樣的加密值。
realplay for linux的下载地址(转)
用google搜了一下,出来这个页面,下了一个,速度还可以:https://helixcommunity.org/download.php/1589/RealPlayer-10.0.6.776-20050915.i586.rpm
http://lists.helixcommunity.org/pipermail/community-allwww-cvs/2006-March/001596.html
[Community-allwww-cvs] www/2005/downloads index.html,1.12,1.13
bobclark at helixcommunity.org bobclark at helixcommunity.org
Wed Mar 22 12:38:55 PST 2006
* Previous message: [Community-allwww-cvs] www/2005/releases/hx1gold HX1_0_7ReleaseNotes.html, 1.1, 1.2
* Next message: [Community-allwww-cvs] www index.html,1.75,1.76
* Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /cvsroot/player/www/2005/downloads
In directory cvs02.internal.helixcommunity.org:/tmp/cvs-serv26243
Modified Files:
index.html
Log Message:
updated for release of 10.0.7 and 1.0.7
Index: index.html
===================================================================
RCS file: /cvsroot/player/www/2005/downloads/index.html,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- index.html 10 Oct 2005 21:45:57 -0000 1.12
+++ index.html 22 Mar 2006 20:38:53 -0000 1.13
@@ -37,7 +37,7 @@
<tr style="font-weight: bold;">
<td colspan="4" rowspan="1"
style="vertical-align: top; width: 181px;">Helix
-Player 1.0.6 Gold</td>
+Player 1.0.7 Gold</td>
<td style="vertical-align: top; width: 288px;"><br>
</td>
</tr>
@@ -45,23 +45,23 @@
<td style="vertical-align: top;"> Linux/x86<br>
</td>
<td style="vertical-align: top; text-align: center;"><a
- href="https://player.helixcommunity.org/2005/releases/hx1gold/HX1_0_6ReleaseNotes.html">View</a><br>
+ href="https://player.helixcommunity.org/2005/releases/hx1gold/HX1_0_7ReleaseNotes.html">View</a><br>
</td>
<td style="vertical-align: top;"><a
- href="https://helixcommunity.org/download.php/1587/HelixPlayer-1.0.6.778-20050916.i586.rpm">RPM</a><br>
+ href="https://helixcommunity.org/download.php/1914/HelixPlayer-1.0.7.784-20060201.i586.rpm">RPM</a><br>
</td>
<td style="vertical-align: top; width: 181px;"><a
- href="https://helixcommunity.org/download.php/1586/hxplay-1.0.6.778-linux-2.2-libc6-gcc32-i586.bin">Installer</a><br>
+ href="https://helixcommunity.org/download.php/1913/hxplay-1.0.7.784-linux-2.2-libc6-gcc32-i586.bin">Installer</a><br>
</td>
<td style="vertical-align: top; text-align: center; width: 288px;"><a
- href="https://helixcommunity.org/download.php/1585/hxplay-1.0.6-source.tar.bz2">bz2
+ href="https://helixcommunity.org/download.php/1915/hxplay-1.0.7-source.tar.bz2">bz2
</a><br>
</td>
</tr>
<tr>
<td colspan="4" rowspan="1"
style="vertical-align: top; width: 181px;"><span
- style="font-weight: bold;">RealPlayer 10.0.6 Gold</span><br>
+ style="font-weight: bold;">RealPlayer 10.0.7 Gold</span><br>
</td>
<td style="vertical-align: top; width: 288px;"><br>
</td>
@@ -70,16 +70,16 @@
<td style="vertical-align: top;"> Linux/x86<br>
</td>
<td style="vertical-align: top; text-align: center;"><a
- href="https://player.helixcommunity.org/2005/releases/rp10gold/RP10_0_6ReleaseNotes.html">View</a><br>
+ href="https://player.helixcommunity.org/2005/releases/rp10gold/RP10_0_7ReleaseNotes.html">View</a><br>
</td>
<td style="vertical-align: top;"><a
- href="https://helixcommunity.org/download.php/1589/RealPlayer-10.0.6.776-20050915.i586.rpm">RPM</a><br>
+ href="https://helixcommunity.org/download.php/1917/RealPlayer-10.0.7.785-20060201.i586.rpm">RPM</a><br>
</td>
<td style="vertical-align: top; width: 181px;"><a
- href="https://helixcommunity.org/download.php/1590/realplay-10.0.6.776-linux-2.2-libc6-gcc32-i586.bin">Installer</a><br>
+ href="https://helixcommunity.org/download.php/1916/realplay-10.0.7.785-linux-2.2-libc6-gcc32-i586.bin">Installer</a><br>
</td>
- <td style="vertical-align: top; text-align: center; width: 288px;"><a
- href="https://helixcommunity.org/download.php/1591/realplay-10.0.6-source.tar.bz2">bz2</a><br>
+ <td style="vertical-align: top; text-align: center; width: 288px;"><!--<a
+ href="https://helixcommunity.org/download.php/????/realplay-10.0.7-source.tar.bz2">bz2</a>--><br>
</td>
</tr>
<tr>
@@ -229,6 +229,30 @@
</td>
</tr>
<tr>
+ <td>RealPlayer 10.0.6 Gold</td>
+ <td>9/29/2005</td>
+ <td><a href="https://player.helixcommunity.org/2005/releases/rp10gold/RP10_0_6ReleaseNotes.html">View</a></td>
+ <td></td>
+ <td><a href="https://helixcommunity.org/download.php/1589/RealPlayer-10.0.6.776-20050915.i586.rpm">RPM</a><br>
+ <a href="https://helixcommunity.org/download.php/1590/realplay-10.0.6.776-linux-2.2-libc6-gcc32-i586.bin">Installer</a></td>
+ <td><a href="https://helixcommunity.org/download.php/1604/realplay-10.0.6.1205-sunos-5.8-sparc-studio10.bin">Installer</a><br>
+ <small>(experimental)</small></td>
+ <td></td>
+ <td><a href="https://helixcommunity.org/download.php/1591/realplay-10.0.6-source.tar.bz2">bz2</a></td>
+ </tr>
+ <tr>
+ <td>Helix Player 1.0.6 Gold</td>
+ <td>9/29/2005</td>
+ <td><a href="https://player.helixcommunity.org/2005/releases/hx1gold/HX1_0_6ReleaseNotes.html">View</a></td>
+ <td></td>
+ <td><a href="https://helixcommunity.org/download.php/1587/HelixPlayer-1.0.6.778-20050916.i586.rpm">RPM</a> <br>
+ <a href="https://helixcommunity.org/download.php/1586/hxplay-1.0.6.778-linux-2.2-libc6-gcc32-i586.bin">Installer</a></td>
+ <td></td>
+ <td></td>
+ <td><a href="https://helixcommunity.org/download.php/1585/hxplay-1.0.6-source.tar.bz2">bz2
+ </a></td>
+ </tr>
+ <tr>
<td>RealPlayer 10.0.5 Gold</td>
<td>06/24/2005</td>
<td><a
* Previous message: [Community-allwww-cvs] www/2005/releases/hx1gold HX1_0_7ReleaseNotes.html, 1.1, 1.2
* Next message: [Community-allwww-cvs] www index.html,1.75,1.76
* Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Community-allwww-cvs mailing list