搬砖头

Knocking on Heaven's Door
posts - 34, comments - 6, trackbacks - 0, articles - 0

 

Oracle的数据库对象分为五种:表,视图,序列,索引和同义词。

     视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。

     视图是存储在数据字典里的一条select语句。 通过创建视图可以提取数据的逻辑上的集合或组合。

视图的优点:

       1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。

       2.用户通过简单的查询可以从复杂查询中得到结果。

       3.维护数据的独立性,试图可从多个表检索数据。

       4.对于相同的数据可产生不同的视图。

视图分为简单视图和复杂视图:

       简单视图只从单表里获取数据
       复杂视图从多表

       简单视图不包含函数和数据组
       复杂视图包含

      简单视图可以实现DML操作
      复杂视图不可以.

视图的创建:

    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name

  [(alias[, alias]...)]

   AS subquery
   [WITH CHECK OPTION [CONSTRAINT constraint]]
   [WITH READ ONLY]
FORCE               :不管基表是否存在ORACLE都会自动创建该视图;
NOFORCE          :只有基表都存在ORACLE才会创建该视图:
alias                    :为视图产生的列定义的别名;
subquery            :一条完整的SELECT语句,可以在该语句中定义别名;
WITH CHECK   OPTION :
                             插入或修改的数据行必须满足视图定义的约束;
WITH READ ONLY :
                            该视图上不能进行任何DML操作。
例如:
        CREATE   OR   REPLACE   VIEW   dept_sum_vw
                (name,minsal,maxsal,avgsal)
        AS   SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)
        FROM     emp e,dept d
        WHERE   e.deptno=d.deptno
        GROUP   BY   d.dname;
视图的定义原则:
        1.视图的查询可以使用复杂的SELECT语法,包括连接/分组查询和子查询;
        2.在没有WITH CHECK OPTION和 READ ONLY 的情况下,查询中不能使用
           ORDER BY 子句;
        3.如果没有为CHECK OPTION约束命名,系统会自动为之命名,形式为SYS_Cn;
        4.OR REPLACE选项可以不删除原视图便可更改其定义并重建,或重新授予对象
           权限。
视图的查询:
           视图创建成功后,可以从视图中检索数据,这点和从表中检索数据一样。
           还可以查询视图的全部信息和指定的数据行和列。
    如:
          检索数据:
           SQL>SELECT * FROM   dept_sum_vw;
          查询视图定义:
          SELECT view_name,text   from user_views;
             其中text显示的内容为视图定义的SELECT语句,可通过DESC USER_VIEWS
             得到相关信息。
修改视图:
         通过OR REPLACE 重新创建同名视图即可。
视图上的DML 操作:
         DML操作应遵循的原则:
         1.简单视图可以执行DML操作;
         2.在视图包含GROUP 函数,GROUP BY子句,DISTINCT关键字时不能
            删除数据行;
         3.在视图不出现下列情况时可通过视图修改基表数据或插入数据:
             a.视图中包含GROUP 函数,GROUP BY子句,DISTINCT关键字;
             b.使用表达式定义的列;
             c.ROWNUM伪列。
             d.基表中未在视图中选择的其他列定义为非空且无默认值。
视图可用于保持数据库的完整性,但作用有限。
通过视图执行引用完整性约束可在数据库级执行约束。
WITH CHECK OPTION 子句限定:
          通过视图执行的INSERTS和UPDATES操作不能创建该视图检索不到的数据行,
          因为它会对插入或修改的数据行执行完整性约束和数据有效性检查。
   例如:
            CREATE OR REPLACE VIEW   vw_emp20
            AS   SELECT *   FROM   emp
            WHERE   deptno=20
            WITH CHECK OPTION constraint   vw_emp20_ck;
           视图 已建立。
             查询结果:
            SELECT empno,ename,job FROM vw_emp20;
           
           EMPNO                 ENAME                 JOB
---------------------            --------------           -------------
               7369                  SMITH                 CLERK
               7566                  JONES                MANAGER
               7902                  FORD                 ANALYST
           修改:
                 UPDATE vw_emp20
                 SET         deptno=20
                 WHERE    empno=7902;
            将产生错误:
                UPDATE vw_emp20
                               *
                ERROR 位于第一行:
                ORA-01402:视图WITH CHECK OPTION 违反WHERE 子句
视图的删除:
             DROP VIEW   VIEW_NAME语句删除视图。
             删除视图的定义不影响基表中的数据。
             只有视图所有者和具备DROP VIEW权限的用户可以删除视图。
             视图被删除后,基于被删除视图的其他视图或应用将无效。
OR REPLACE     :若所创建的试图已经存在,ORACLE自动重建该视图;

posted @ 2007-10-09 10:05 生活在别处 阅读(698) | 评论 (0)编辑 收藏

 

Ruby中常会用到正则表达式。正则表达式是用来表达字符串的模式(pattern)的。也可以这么理解:我们使用正则表达式来表示某种搜索规则,然后使用该正则表达式来完成字符串的搜索工作。举个例子,假定有这样的搜索规则:“字符串以’FOO’开始,以’R’结束”,那么就可以使用以下正则表达式来表示该规则。

/^FOO.*R$/

Ruby用//将正则表达式括起来。^表示开头,$表示结尾,.*表示0个以上的任意字符。

现在就讲讲正则表达式的规则的写法。正则表达式中有很多上述的具有特别意义的字符。首先是下列字符。
[ ]
范围描述符。[a-z]表示从a到z之间的任意一个。
\w
英文字母和数字。即[0-9 A-Z a-z]。
\W
非英文字母和数字
\s
空字符,即[\t\n\r\f]。
\S
非空字符。
\d
数字,即[0-9]。
\D
非数字。
\b
词边界字符(在范围描述符外部时)
\B
非词边界字符
\b
退格符(0x08)(在范围描述符内部时)
*
前面元素出现0次以上
+
前面元素出现1次以上
{m,n}
前面元素最少出现m次,最多出现n次
?
前面元素出现0次或1次
|
选择
( )
群组
其他字符
该字符本身

例如,“^f[a-z]+”表示“第一个字符是f,后面是若干个从a到z之间的字符”,可以是“fobar”或“fool”等等。这种表达法就是正则表达式(regular expression)。在搜索字符串时正则表达式非常有用,因此在UNIX的世界里,正则表达式得到了广泛的应用。grep程序就是个代表。许多人是不是经常会用到它呢?

为了学会使用正则表达式,先来试试下面这个程序。请用文件名regx.rb将程序保存下来以后再运行它。

st = "\033[7m"
en = "\033[m"
 
while TRUE
   print "str> "
   STDOUT.flush
   str = gets
   break if not str
   str.chop!
   print "pat> "
   STDOUT.flush
   re = gets
   break if not re
   re.chop!
   str.gsub! /#{re}/, "#{st}\\&#{en}"
   print str, "\n"
end
print "\n"

该程序会在第一次输入的字符串中按照第二次输入的正则表达式的要求寻找合适的字符串,并将其以反色显示出来。下面是运行结果。

str> foobar
pat> ^fo+
foobar
^^^

# 实际上foo的部分被反色显示了。

再试一试。

str> abc012dbcd555
pat> \\d
abc012dbcd555
   ~~~    ~~~

从上例可以看出,该程序可以检测出多处符合条件的字符串。

str> foozboozer
pat> f.*z
foozboozer
~~~~~~~~

在这个例子中,正则表达式“f.*z”并非只是对应到fooz,而是一直对应到foozbooz这里。这是因为,正则表达式总是在符合条件的结果中选择较长的一个。

正则表达式甚至可以写出让人一眼看不透的模式,这可能会像谜语一样有趣。但若过分凝炼的话,以后就很难搞懂当初的想法了。

str> Wed Feb  7 08:58:04 JST 1996
pat> [0-9]+:[0-9]+(:[0-9]+)?
Wed Feb  7 08:58:04 JST 1996
           ~~~~~~~~

Ruby用’/’将正则表达式括起来。另外还有一些方法会自动将字符串变为正则表达式。

% ruby -le 'print "abcdef" =~ /d/'
3
% ruby -le 'print "aaaaaa" =~ /d/'
nil

‘=~’是使用正则表达式进行匹配的操作符,它返回匹配成功时的位置。

到底哪些方法可以处理正则表达式呢?关于这个问题,请查阅参考手册。 

posted @ 2007-09-18 16:10 生活在别处 阅读(1111) | 评论 (0)编辑 收藏

定义:escape关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原

来的字符的意义,被定义的转义字符通常使用'\',但是也可以使用其他的符号。

实例:

SQL> select * from t11 where name like '%_%';

NAME
----------
aa_a
aaa
SQL> select * from t11 where name like '%\_%' escape '\';

NAME
----------
aa_a

注意:如果是 '/' 作为检索字符, 必须 用 '/' 作为转义符, 正斜扛也一样.
select * from wan_test where psid like '%//%' escape '/'


posted @ 2007-07-25 00:13 生活在别处 阅读(3661) | 评论 (0)编辑 收藏

通常情况下,我们使用SPOOL方法,将数据库中的表导出为文本文件的时候会采用两种方法,如下述:
方法一:采用以下格式脚本 
set colsep '' ------设置列分隔符
  set trimspool on
  set linesize 120
  set pagesize 2000
  set newpage 1
  set heading off
     set term off
  spool 路径+文件名
  select * from tablename;
  spool off
方法二:采用以下脚本
set trimspool on
  set linesize 120
  set pagesize 2000
  set newpage 1
  set heading off
  set term off
  spool 路径+文件名
  select col1||','||col2||','||col3||','||col4||'..' from tablename;
  spool off
比较以上方法,即方法一采用设定分隔符然后由sqlplus自己使用设定的分隔符对字段进行分割,方法二将分隔符拼接在SELECT语句中,即手工控制输出格式。
在实践中,我发现通过方法一导出来的数据具有很大的不确定性,这种方法导出来的数据再由sql ldr导入的时候出错的可能性在95%以上,尤其对大批量的数据表,如100万条记录的表更是如此,而且导出的数据文件狂大。
而方法二导出的数据文件格式很规整,数据文件的大小可能是方法一的1/4左右。经这种方法导出来的数据文件再由sqlldr导入时,出错的可能性很小,基本都可以导入成功。
因此,实践中我建议大家使用方法二手工去控制spool文件的格式,这样可以减小出错的可能性,避免走很多弯路。
本文原创,如有引用,请加链接,谢谢!

原帖地址 

posted @ 2007-07-25 00:01 生活在别处 阅读(1605) | 评论 (0)编辑 收藏

TFTP是用来下载远程文件的最简单网络协议,它基于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是嵌入式linux宿主机的 tftp-server支持,二是嵌入式linux目标机的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标机就不用配置了。下面就详细介绍一下linux宿主机tftp-server的安装配置。

在FC6光盘的ISO镜像中,有tftp-server的rpm安装包。
(1)安装
#mount -o loop <FC6光盘ISO镜像.iso> /mnt/CD //挂载光盘
#rpm -ivh tftp-0.42-3.1.i386.rpm //安装tftp-client
#rpm -ivh tftp-server-0.42-3.1.i386.rpm //安装tftp-server
#umount /mnt/CD //卸载光盘

(2)修改文件
在linux 下,不管使用的是哪一种super-server,inetd或者xinetd,默认情况下TFTP服务是禁用的,所以要修改文件来开启服务。根据(1)的安装方法,可以修改文件/etc/xinetd.d/tftp。主要是设置TFTP服务器的根目录,开启服务。修改后的文件如下:

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}

说明:修改项server_args= -s <path> -c,其中<path>处可以改为你的tftp-server的根目录,参数-s指定chroot。

(3)创建tftp根目录,启动tftp-server。
#mkdir /tftpboot
#chmod o+w /tftpboot
#service xinetd restart
这样,tftp-server就启动了。

(4)配置防火墙
TFTP (Trivial File Transfer Protocol),中译简单文件传输协议或小型文件传输协议. 大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个攻击传播线程,不断地随机生成攻击地址,进行入侵。另外tftp被认为是一种不安全的协议而将其关闭,同时也是防火墙打击的对象,这也是有道理的。tftp 在嵌入式linux还是有用武之地的。
打开防火墙,允许tftp访问网络。
[root@localhost /]# setup
Firewall configuration--> Customize--other port 处:69:udp,保存就可以了。

你可以登陆本机测试以下,命令如下:
#tftp your-ip-address
tftp>get <download file>
tftp>put <upload file>
tftp>q
#
 

================整理====================

########################################################
安装过程中出现的问题及原因
现象一:
    tftp> get test.log
    Transfer timed out.
原因:
    tftpd服务没有启动


现象二:
    tftp> get test.log
    Error code 2: Only absolute filenames allowed
原因:
    在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
    cat /etc/default/tftpd-hpa
    #Defaults for tftpd-hpa
    RUN_DAEMON="no"
    OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"
ps:实际根本就不用/etc/default/tftpd-hpa文件,它应该是用在standalone模式下的


现象三:
    tftp> put ex070416.log
    Error code 1: File not found
原因:
    指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件

########################################################
其它常用选项如下:
-l        使用standalone模式运行,此模式下,将会忽略-t选项
-a address:port    在standalone模式下服务所在的IP与端口,如果不指定,则在本机所有IP,/etc/service中指定的port上侦听连接
-c         允许在服务器上新建文件,否则只允许更新现有的文件。如果未指定-U或-p选项,则允许任何人上传文件
-s directory    服务器端默认的目录,默认为/var/lib/tftpdboot
-u username    tftpd服务以什么身份运行,默认是nobody,一般可以新建一个tftpd的账号来运行
-U umask    上传的文件的掩码,如果未指定-p则为000,如果指定了-p,则采用指定的umask
-p        对于通过-u指定的用户执行的动作,不做额外的权限检查

更多权限请见man tftpd。

posted @ 2007-07-24 23:57 生活在别处 阅读(9991) | 评论 (0)编辑 收藏

TFTP (普通文件传输协议或一般文件传输协议) 大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个攻击传播线程,不断地随机生成攻击地址,进行入侵。另外tftp被认为是一种不安全的协议而将其关闭,同时也是防火墙打击的对象,这也是有道理的。不过 tftp还是有用武之地的,下面讲的文件传输和备份router配置文件都时实际应用,它也只时一种手段而已。

一、用TFTP实现文件传输
环境:服务器A :rhas11
客户机B: rhas101
首先用rpm –qa | grep tftp看一下tftp有没安装,没有的话安 装一下。
A:在服务器端设置
#vi /etc/xinetd.d/tftp
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /test
per_source = 11
cps = 100 2
flags = IPv4
}

或用chkconfig tftp on 也可以打开xinetd代理的tftp服

#mkdir /test
#service xinetd restart 从启xinetd服务,因为TFTP服务受控与xinetd, xinetd是管服务的服务,它是不开端口的。
验证一下TFTP是否起来了:
[root@rhas11 tftp]# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:32768 0.0.0.0:* LISTEN 3122/rpc.statd
tcp 0 0 127.0.0.1:32781 0.0.0.0:* LISTEN 4035/xinetd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 3103/portmap
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 3324/httpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3255/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 3213/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3295/sendmail: acce
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 3415/0
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 3324/httpd
udp 0 0 0.0.0.0:32768 0.0.0.0:* 3122/rpc.statd
udp 0 0 0.0.0.0:69 0.0.0.0:* 4035/xinetd
udp 0 0 0.0.0.0:69 0.0.0.0:* 4012/in.tftpd
udp 0 0 0.0.0.0:111 0.0.0.0:* 3103/portmap
udp 0 0 0.0.0.0:754 0.0.0.0:* 3122/rpc.statd
udp 0 0 0.0.0.0:631 0.0.0.0:* 3213/cupsd

A:服务器端 新建一文件file
#cd /test
[root@rhas11 test]# ls -l
总用量 4
-rw-r--r-- 1 root root 19 5月 15 18:26 file

B客户端:

下载:
[root@rhas101 tmp]# tftp 172.31.0.11
tftp> get 1
Received 72 bytes in 0.0 seconds
tftp>

上传当前目录下文件”aaa”
[root@rhas101 client]# ls -l
总用量 4
-rw-r--r-- 1 root root 15 5月 20 21:49 aaa

[root@rhas101 client]# tftp 172.31.0.11
tftp> put aaa
Error code 1: File not found
tftp>

奇怪当前目录却是有aaa文件???让我想一下
哦,原来服务器/test目录下没有文件aaa,那就touch一个吧
[root@rhas11 test]# touch aaa
[root@rhas11 test]# ls -l
总用量 4
-rw-r--r-- 1 root root 0 5月 15 18:46 aaa
-rw-r--r-- 1 root root 19 5月 15 18:26 file

好了再试一试
[root@rhas101 client]# tftp 172.31.0.11
tftp> put aaa
Error code 1: File not found
tftp> put aaa
Error code 2: Access denied
tftp>
细心的读者一定想到这是权限问题
再到服务器上设置
(===========================================================================
小插曲:#chown -R nobody.nobody /test
#vi /etc/xinetd.d/tftp
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = -u nobody -s /test
per_source = 11
cps = 100 2
flags = IPv4
}
chmod 777 -R /test
===========================================================================
)

#service xinetd restart

)

[root@rhas11 test]# chmod 007 aaa 其实只要有可写的权限就行了
[root@rhas11 test]# ls -l
总用量 4
-------rwx 1 root root 0 5月 15 18:46 aaa
-rw-r--r-- 1 root root 19 5月 15 18:26 file

[root@rhas101 client]# tftp 172.31.0.11
tftp> put aaa
Error code 1: File not found
tftp> put aaa
Error code 2: Access denied
tftp> put aaa
Sent 16 bytes in 0.0 seconds
tftp>

二、 特殊应用:上传和下载路由器(或交换机)配置文件

配使用Linux的tftp功能配置cisco route
在局域网环境中,如果有Cisco 路由器和Linux服务器。也许你需要利用Linux的
TFTP服务去下载Cisco router配置文件 startup-config,在服务器上编辑后再上载
到路由器,在实现中有一些特别注意的地方。
所用软、硬件:Redhat Linux AS 3.0 ,Cisco 2611 路由器

BEIJING#copy run tftp
Address or name of remote host []? 172.31.0.11
Destination filename [beijing-confg]? beijing-route
!!
1968 bytes copied in 0.581 secs (3387 bytes/sec)

别忘了在tftp server 上创建beijing-route权限为777
BEIJING#copy tftp flash
Address or name of remote host []? 172.31.0.11
Source filename []? beijing-route
Destination filename [beijing-route]?
Accessing tftp://172.31.0.11/beijing-route...
Erase flash: before copying? [confirm]
Erasing the flash filesystem will remove all files! Continue? [confirm]
Erasing device... eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ...erased
Erase of flash: complete
Loading beijing-route from 172.31.0.11 (via FastEthernet0/0): !
[OK - 1968 bytes]

Verifying checksum... OK (0x5248)
1968 bytes copied in 0.285 secs (6905 bytes/sec)
BEIJING#  

用tftp传输大文件时的带宽显示情宽

posted @ 2007-07-24 23:46 生活在别处 阅读(372) | 评论 (0)编辑 收藏

 1、pwd  查看自己当前所在位置

2、cat  列出、合并、创建文件

cat test.txt  (列出test.txt)
cat test1.txt test2.txt > test3.txt (1、2合并生成3)
cat test1.txt  >> test2.txt  (1合并到2中)
cat > myfile.txt  (创建myfile.txt)
3、mv file1 file2 (将file1改名为file2,如果file2已经存在,为避免改名时覆盖file2,加上-b参数会生成file2的备份,备份有个波浪号后缀)

4、cp  拷贝命令

cp file1 file2 覆盖掉file2的内容
cp -i file1 file2  会出现提示信息
cp -bi file1 file2 会备份file2
cp -r tempdir1 tempdir2 把子目录tempdir1及其中文件拷贝到tempdir2
cp -p tempdir2/tempdir1/temp1file1 tempdir3 把文件连同子目录结构一起拷贝到tempdir3
5、ln  建立硬链接和符号链接

ln file1 file2 (硬链接,file2和file1完全相同,修改其中任何一个都会影响另外一个,删除了file1后,file2仍存在)
ln -s file1 file2  (符号链接,file2只是一个指向file1的假名,如果删除了file2,不影响file1,如果删除了file1,file2就没用了)
ln -s /usr/local/games play  (建立一个子目录的硬链接必须用符号链接,建立完符号链接后,就不用cd /usr/local/games了,只要用cd play)
6、chowd 改变文件权限

chmod  600 file1
chmod ugo-wx file(拥有者-组-其他用户直接增减权限)
7、chown 改变文件所有权

chown :users file1(把所有权分配给users用户组)
chown lucy:users file1(把存取权限分配给lucy用户)
8、groups 用户名  (查看用户名属于哪个组)

9、groupadd 组名  (创建新组)

10、usermod -G/-g 组名 用户名(把一个用户加入一个组/把一个用户改为属于另一个组)

11、userdel 用户名/groupdel 组名   (删除用户/删除组)

12、scp root@202.198.31.66:/usr/local/file1 /home/  (远程拷贝)

13、history 3 (查看历史命令列表,此命令是查看刚才用过的3个命令)

14、find / -name http.conf -print (从根目录开始查找文件并列出属性)

15、grep -c word /file1 (grep查找文件内容,此命令找出file1中word串出现次数)

16、修改主机名  vi /etc/sysconfig/network,修改HOSTNAME一行为"HOSTNAME=主机名",然后运行命令" hostname 主机名"。一般还要修改/etc/hosts文件中的主机名。

17、修改IP地址和修改网关(gateway选项)
vi /etc/sysconfig/network-scripts/ifcfg-eth0
 
18、查看机器域名(host IP)
host 202.198.31.62
 
19、查看CPU
dmesg|grep CPU
 
20、查看机器配置
dmesg|grep hd

posted @ 2007-06-26 09:51 生活在别处 阅读(478) | 评论 (0)编辑 收藏

编辑
作用域
功能
快捷键
全局
查找并替换
Ctrl+F
文本编辑器
查找上一个
Ctrl+Shift+K
文本编辑器
查找下一个
Ctrl+K
全局
撤销
Ctrl+Z
全局
复制
Ctrl+C
全局
恢复上一个选择
Alt+Shift+↓
全局
剪切
Ctrl+X
全局
快速修正
Ctrl1+1
全局
内容辅助
Alt+/
全局
全部选中
Ctrl+A
全局
删除
Delete
全局
上下文信息
Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java编辑器
显示工具提示描述
F2
Java编辑器
选择封装元素
Alt+Shift+↑
Java编辑器
选择上一个元素
Alt+Shift+←
Java编辑器
选择下一个元素
Alt+Shift+→
文本编辑器
增量查找
Ctrl+J
文本编辑器
增量逆向查找
Ctrl+Shift+J
全局
粘贴
Ctrl+V
全局
重做
Ctrl+Y
 
查看
作用域
功能
快捷键
全局
放大
Ctrl+=
全局
缩小
Ctrl+-
 
窗口
作用域
功能
快捷键
全局
激活编辑器
F12
全局
切换编辑器
Ctrl+Shift+W
全局
上一个编辑器
Ctrl+Shift+F6
全局
上一个视图
Ctrl+Shift+F7
全局
上一个透视图
Ctrl+Shift+F8
全局
下一个编辑器
Ctrl+F6
全局
下一个视图
Ctrl+F7
全局
下一个透视图
Ctrl+F8
文本编辑器
显示标尺上下文菜单
Ctrl+W
全局
显示视图菜单
Ctrl+F10
全局
显示系统菜单
Alt+-
 
导航
作用域
功能
快捷键
Java编辑器
打开结构
Ctrl+F3
全局
打开类型
Ctrl+Shift+T
全局
打开类型层次结构
F4
全局
打开声明
F3
全局
打开外部javadoc
Shift+F2
全局
打开资源
Ctrl+Shift+R
全局
后退历史记录
Alt+←
全局
前进历史记录
Alt+→
全局
上一个
Ctrl+,
全局
下一个
Ctrl+.
Java编辑器
显示大纲
Ctrl+O
全局
在层次结构中打开类型
Ctrl+Shift+H
全局
转至匹配的括号
Ctrl+Shift+P
全局
转至上一个编辑位置
Ctrl+Q
Java编辑器
转至上一个成员
Ctrl+Shift+↑
Java编辑器
转至下一个成员
Ctrl+Shift+↓
文本编辑器
转至行
Ctrl+L
 
搜索
作用域
功能
快捷键
全局
出现在文件中
Ctrl+Shift+U
全局
打开搜索对话框
Ctrl+H
全局
工作区中的声明
Ctrl+G
全局
工作区中的引用
Ctrl+Shift+G
 
文本编辑
作用域
功能
快捷键
文本编辑器
改写切换
Insert
文本编辑器
上滚行
Ctrl+↑
文本编辑器
下滚行
Ctrl+↓
 
文件
作用域
功能
快捷键
全局
保存
Ctrl+X
Ctrl+S
全局
打印
Ctrl+P
全局
关闭
Ctrl+F4
全局
全部保存
Ctrl+Shift+S
全局
全部关闭
Ctrl+Shift+F4
全局
属性
Alt+Enter
全局
新建
Ctrl+N
 
项目
作用域
功能
快捷键
全局
全部构建
Ctrl+B
 
源代码
作用域
功能
快捷键
Java编辑器
格式化
Ctrl+Shift+F
Java编辑器
取消注释
Ctrl+\
Java编辑器
注释
Ctrl+/
Java编辑器
添加导入
Ctrl+Shift+M
Java编辑器
组织导入
Ctrl+Shift+O
Java编辑器
使用try/catch块来包围
未设置,太常用了,所以在这里列出,建议自己设置。
也可以使用Ctrl+1自动修正。
 
运行
作用域
功能
快捷键
全局
单步返回
F7
全局
单步跳过
F6
全局
单步跳入
F5
全局
单步跳入选择
Ctrl+F5
全局
调试上次启动
F11
全局
继续
F8
全局
使用过滤器单步执行
Shift+F5
全局
添加/去除断点
Ctrl+Shift+B
全局
显示
Ctrl+D
全局
运行上次启动
Ctrl+F11
全局
运行至行
Ctrl+R
全局
执行
Ctrl+U
 
重构
作用域
功能
快捷键
全局
撤销重构
Alt+Shift+Z
全局
抽取方法
Alt+Shift+M
全局
抽取局部变量
Alt+Shift+L
全局
内联
Alt+Shift+I
全局
移动
Alt+Shift+V
全局
重命名
Alt+Shift+R
全局
重做
Alt+Shift+Y

posted @ 2007-03-21 10:56 生活在别处 阅读(245) | 评论 (0)编辑 收藏

在linux下用rm删除大量文件时会出现这个错误:

   rm -rf 'wz-a1.2007-02*'
rm -rf * -bash: /bin/rm: 参数列表过长

经过google, 发现这个方法, 特记下来, 以防以后忘记

find . -name "wz-a1.2007-02*" | xargs rm -rf 'wz-a1.2007-02*'



原帖地址:http://www.blogjava.net/kelefa/archive/2007/02/02/97528.html

posted @ 2007-03-20 11:00 生活在别处 阅读(3560) | 评论 (2)编辑 收藏

     摘要: 原文出处:http://www.blogjava.net/chords/archive/2006/12/14/87591.html------------------------Five Habits of Highly Profitable Software Developersby Robert J. Miller08/24/2006原文地址:http://today.java.net/pub...  阅读全文

posted @ 2007-03-05 23:11 生活在别处 阅读(211) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4 下一页