星期二, 三月 31, 2009

飞信好友离线的根本解决方法

网上看到很多转帖的版本说是欠费,但是大多数情况并不是欠费。 有人用删除帐号和信息的方法,实在是很麻烦,而且没必要。 根本解决方法是: 在系统托盘里面右键单击飞信图标 我的状态->最下面选择“注销登陆后,通过短信接收消息”而不是“不接收短信”。

星期日, 三月 29, 2009

oracle中繁体字显示成靠靠乱码

之前用sqlldr上传UTF-8的文件到oracle,里面是一些繁体字的数据,在TOAD和PLSQL developer里面都是显示靠靠靠靠。。。我还以为是数据文件问题,google发现很多人都有相关问题。
解决方法是修改注册表中Local Machine->Software->Oracle下Home0(数字零)里nlslang的设置。
我原先是AMERICAN_AMERICA.WE8MSWIN1252,所以显示靠靠靠靠。。。
修改成论坛里建议的AMERICAN_AMERICA.UTF8后,出现的是很奇怪和中文相似的乱码。
最后找了个能正确显示的同事的注册码信息,改成SIMPLIFIED CHINESE_CHINA.ZHS16GBK,就可以显示出繁体字了。

UltraEdit中Tab标签窗口消失的解决方法

今天错误双击UltraEdit tab位置,不小心把标签方式浏览给关了,变成用左右箭头来切换标签了。非常不方便。配置里面搜Tab,窗口菜单,都没有。
小E帮忙找到了重新打开标签浏览的位置。
视图->视图列表->打开文件标签
英文版的是:
View->View/Tab->Open File Tab

星期五, 三月 27, 2009

谷歌拼音2.0和MSN9的冲突

在MSN9里用谷歌拼音,只有自己新发起的窗口可以输入中文,而别人发起的弹出窗口只能输入英文不管怎么切换。
解决方法:不把MSN主菜单最小化到托盘,而是保留在屏幕底部中间的任务栏。这样弹出窗口也可以用谷歌拼音2.0输入中文了。

星期四, 三月 26, 2009

archive log space

今天遇到这个问题:
SQL*Loader-128: unable to begin a session
ORA-00257: archiver error. Connect internal only, until freed.
结果是archive log空间不够了。找DBA clear一下就行了。

星期三, 三月 25, 2009

zz Sqlldr的使用

http://blog.oracle.com.cn/index.php/266780/viewspace-26695

Sqlldr也就是SQL*LOADER,它是oracle的高速批量数据加载工具,可以将外部文件的数据导入到oracle数据库中。可以用于从多种平面文件格式向oracle数据库中加载数据。

它有两种操作模式:传统路径(conventional path):利用sql插入为我们加载的数据。直接路径(direct path):不使用sql,而是直接格式化数据库块。利用直接路径加载,能从一个平面文件读取数据,并将其直接写至格式化的数据库块,而绕过整个sql引擎和undo生成,同时还可能避开redo生成,要在一个没有任何数据的数据库中充分加载数据,这是最好的方法。

SQLLDR包括五个文件:控制文件(*.ctl)、数据文件(*.dat)、日志文件(*.log)、错误文件(*.bad)、废弃文件(*.dsc)

   其中我们最常用的为前四中:导入方式为:

Sqlldr userid=user/password@SID controlpath\xx.ctl log=path\xx.log bad=path\ xx.bad

注意SID就是数据库名,path就是路径名,不要加’’,一般不用加数据文件,因为在control就包含了数据或者数据路径,log是需要的,它可以告诉你导入的详细信息,而bad则存放者错误的文件,discard(废弃文件)则存放者不满足导入条件的数据。

控制文件它的作用是告诉oracle如何的读取和加载信息,并提供数据的路径,加载的方式以及加载的规则的。具体格式如下“

Load data

Infile‘数据路径’

Into table table_name

Truncate

Fields terminated by‘’

column_name1column_name2,······)

具体含义:1Load data的意义就是说载入数据2Infile‘数据路径’就是指明了载入数据的位置,其中数据默认的扩展名是.dat,我们也可以更改比如.txt.csv(逗号分割值形式)都可以,还有这里不仅可以导入数据文件,也可以导入错误文件或者废弃文件,格式如:badfilepath\xx.bad’或者discardfilepath\xx.dsc3Into table table_name把数据导入到的什么表,这里可以插入多个表,用when condition条件分割就可以了4Truncate它的含义是当sqlldr执行这个控制文件是,表在开始加载前就给截断了。用Truncate是不能回退的一定要谨慎,除此之外,还可以使用append(用于在表中增加行)、insert(用于在空表中增加行,如果不为空,加载就会错误)、replace(用于清空表,然后在增加新行,但是用户必须有该表的delete权限),前提注意,执行加载的用户必须具有表的insert权限,如果没有该参数,系统默认的为insert5Fields terminated by‘’数据的分割符,首先先要明白sqlldr加载数据我们常用的有两种装载定长数据和装载变长数据。例子如下:

装载定长数据

load data
infile ‘xx.txt’

into table table_name append

(column_name1 position(01:10) character,

column_name2 position(11:12) character,

column_name3 position(13:14) character,

column_name4 position(15:16) character,)

它是装载了未知固定好的数据。

装载定长数据

load data
infile ‘x.dat’

into table table_name append

(column_name1 char terminated by ‘ ‘,

column_name2 char terminated by ‘ ‘,

column_name3 char enclosed by ‘ ‘,

column_name4 char terminated by whitespace)

或者

load data
infile ‘x.dat’

into table table_name append

Fields terminated by“”

(column_name1,column_name2,····)

这里注意一下Fields terminated by‘’,里面的‘’表示分割符号,比如说‘/’、‘;’,也可以FIELDS TERMINATED BY X‘09’(制表符), FIELDS TERMINATED whitespace(空格)等等,还可以在后面加上OPTIONALLY ENCLOSED BY“”,它的意思实说每个选定的字段是用“”表示的。LINES TERMINATED\t‘ 表示每行记录之间用什么分隔默认的为\n(可以不加的)6、(column_name1column_name2,······)就是把数据加入到表中的哪些字段。7、还可以加一个选项trailing nullcols指没有的数据用NULL填充。

我们在看一个有选择条件的加载多个表方式

Load data

infile 'x.txt'

replace into table table1

when column_name = 'condition1'

(column_name1column_name2,····)

when column_name =condition2’

into table table2

(column_name1column_name2,····)

导入EXCEL,可以把EXCEL文件另存为CSV(逗号分隔)(*.csv),控制文件就改为用逗号分隔

LOAD DATA

INFILE 'x.csv'

APPEND INTO TABLE table

FIELDS TERMINATED BY ","

(column_name1, column_name2,····)

使用filler跳过在导入数据文本中不想进行导入的列。在控制文件中还可以使用concatenate语句将多个物理行合成一个逻辑行插入到表中,在文件中加注释是用――后根语句来注释的。理想的情况下我们加载数据都希望不是完全的成功就是完全的失败这样便于第二次加载,但是实际上往往是部分成功和部分失败,一次要利用日志文件判断出失败的地方,日志文件会记录提交点和错误产生点。所有被拒绝的记录保存在坏文件和废弃文件中,因此我们必须活用sqlldr的选现来实现数据的加载。

如果加载的数据过多,我们可以作一个.bat的批处理文件把所有的sqlldr加载语句放入其中,最后直接执行批处理文件就可以。

最后一个就是并行并发操作:比如

sqlldr userid=/ control=result1.ctl direct=true parallel=true
   sqlldr userid=/ control=result2.ctl direct=true parallel=true
   sqlldr userid=/ control=result2.ctl direct=true parallel=true
   
当加载大量数据时(大约超过10GB),最好抑制日志的产生:

SQL>ALTER TABLE RESULTXT nologging;

这样不产生REDO LOG,可以提高效率。然后在CONTROL文件中load data上面加一行:unrecoverable(不可恢复)此选项必须要与DIRECT共同应用。

因为sqlldr在加载数据时会产生大量的insert语句,因此使用direct path先格式化数据快,在把数据块快数插入表中。提高性能。使用了direct path就可以使用unrecoverable关键字提高数据加载性能。可以不必生成重做日志项。同时可以使用parallel direct path加载选项将数据加载工作分为多个进程。因此并行的direct path加载操作比单个的direct path加载效率快很多。

Sqlldr选项参考工作图中的sqlldr.jpg

另外还要注意一个使TRAILING NULLCOLS,因为在引导数据中,比如说你向往5列中引入数据,但数据每行只有4个,而第5列之前前四行之和,但是在处理中sqlldr会告诉你,没有等处理完所有的列,记录中就没有数据了。因此我们就必须使用TRAILING NULLCOLS,这样一来,如果数据记录中不存在某列的数据,sqlldr就会先为该列绑定一个null值,因此我们执行第5列之前,实际上它的值就使null,而不会报错了。(注意,在加载数据时可以使用sql连接运算符)

加载有内嵌换行符的数据,一种方法可以用非换行符的其他字符来表示换行符比如说在文本中应该出现换行符的位置上放上一个\n,并在加载时使用一个SQL函数用以chr10)来替换该文本。二种是使用FIX属性,但是这种方法,输入数据必须出现在定长记录中,每个记录与输入数据集中所有其他记录的长度都相同,既有相同的字节数。使用FIX属性,必须使用一个INFILE子句,因为FIXINFILE一个选项,而且,数据必须在外部存储,而并非存储在控制文件本身,如:INFILE TEST.DAT “FIX 80”指定一个输入数据文件,这个文件每个记录都有80个字节,包括尾部的换行符。在这种情况下,输入文件中提供给sqlldr的记录设置就以非\n结束的。第三种情况,可以使用VAR属性,这种格式,每个记录必须以某个固定的字节数开始,这标识这个记录的总长度。可以加载包含内嵌换行符的变长记录,但是每个记录的开始处必须有一个记录长度的字段。如:infile test.dakvar 3”这里指出了每个输入记录的前3个字节是该输入记录的长度。还有一种情况是使用STR属性,这算是最灵活的一种,可以指定一个新的行结束字符(或字符序列)。这样就能创建一个输入数据文件,其中每一行的最后有某个特殊字符,换行符不再有特殊含义。STR属性是以16进制指定的,因此要得到所需的具体16进制串,最容易的办法是使用SQLUTL_RAW来生成16进制串,可以直接导入在unix平台下的数据。总结一下:要注意在windowsunix两个平台的不同,结束符是不同的unxi上是\n,而windows上是\r\n\r是记录的一部分,控制文件必须适应这一点,比如,如果取一个.dat文件只包含\n当传输到windows上是,要将各个\n转换为\r\n。那么原来unix种的控制文件就不能记载数据了。

ll tips

一、在当前文件夹ll结果仅有文件时,不会有total number的第一行

 

二、在当前文件夹ll结果含有文件夹时,会有如total 100的第一行,且包含文件夹中的文件数量

 

三、ll的结果中,时间不在当年的,会显示年份;但在当年的,会显示时刻,如:

-rw-------   1 ncrfmgr    ncrf             0 Oct  8 15:28 test1.txt

-rw-rw-r--   1 ncrfsftp   ncrf          1934 Sep  9  2008 Update_Amidmaster_20080908_TW.txt

可能的解决方法(待解决)

1.修改setLC_TIME=POSIX改成ISO或者ISO2 (时间的格式参见man ls

2.在非HP-UX的系统中,可以尝试ls -l --time-style=iso这样的做法,在man ls里有详细介绍。但是部分unix版本不支持。

3.强制结果把含有冒号:的改成当年年份,缺点是做法太麻烦。(顺便查一下如果查找if字符串中含有符号的做法)

 

四、ll 一个路径,结果文件名中只显示文件名;但是ll一个路径+文件名,结果的文件名会带上路径。如:

$ ll /var/opt/ncrf/mkt/inbound/bulkload/amidmaster

total 2

-rw-------   1 ncrfmgr    ncrf           104 Mar 25 09:54 amidmaster_list.txt

drwx------   2 ncrfmgr    ncrf            96 Mar 25 08:00 archive

-rw-------   1 ncrfmgr    ncrf             0 Mar 25 09:51 temp.txt

-rw-------   1 ncrfmgr    ncrf             0 Mar 25 09:18 testfile

$ ll /var/opt/ncrf/mkt/inbound/bulkload/amidmaster/amidmaster_list.txt

-rw-------   1 ncrfmgr    ncrf           104 Mar 25 09:54 /var/opt/ncrf/mkt/inbound/bulkload/amidmaster/amidmaster_list.txt

 

五、ll文件找不到时,会有一行"*** not found"的结果 ***为文件名。

Blogger误删日志的解决

上周在整理Label的时候,本想用滚轮向下滚选择Label,却apply了三个错误Label。而我想delete这三个label,我选择了Label Manipulate然后点了delete。
结果,这两篇日志被删掉了!直接显示2 Posts have been deleted而没有任何预警和询问。发生在blogger这样知名的blog提供商(而且还属于Google)真是不应该。
事实上,在编辑日志的界面如果点右方的delete按钮是有提示的,但是在Label Manipulate的这个delete不仅没有提示,而且很容易让人误以为是delete label。
我把问题发在google支持论坛:

When I drop down the "label manipulate (I don't know the actual name 
since my language is not English)", I used the roll on the mouse so 3 
wrong labels were applied to 2 posts, so I decide to delete the labels 
for these 2 posts -- I drop down "label manipulate" again and found 
"delete" in the list, and then click "delete". 
What happened! Blogger said "2 Posts have been deleted". Oh my! It's 
not supposted to happen. What's more, even if I click "delete", 
Blogger should have asked me whether I'm sure to delete it -- as I 
click on the "delete" on the right side of some post. Why not? And I 
can't find the "deleted post" button. 
得到如下回复:
Is your blog open to the public and indexed on the search engines? You 
might be able to find a copy on the cached pages from the search 
engines. 

Mishka 
Blogger Help Group Blog*Star 
http://mishkatestrun.blogspot.com 

参见:

http://groups.google.com/group/blogger-help-troubleshoot/browse_thread/thread/67d9a212fe3d1b23/10d72cffc8315d53#10d72cffc8315d53

主意是不错,但不是根本解决方案。不管怎么说还是得感谢他,至少我最后用手动的google “site:wangyuanbo.blogspot.com” 然后逐一点开,终于找到了这两篇点不开的日志,然后从网页快照里面找到了他们的内容。

以后还是不能太信赖网络日志,笔记在本地还是得备份。。。

Eclipse的java环境配置 When Eclipse cannot be started, only shows a startup picture

When open Eclipse, it shows a picture without enabling the program.
Type java -version in command window, which shows 1.3.1

We tried to change the environment variable, didn't work.

We tried to add a -vm “C:\jre1.6.0_1\bin\javaw.exe” to Eclipse's short cut, but a dialogue window prompt out.
But it works when change the short cut path to J2SDK:

C:\…\eclipse\eclipse.exe -vm “C:\j2sdk1.4.2_14\bin\javaw.exe”

 

上次写过一篇JAVA Runtime Environment 出错的解决 ,结果今天装了Eclipse又跟JRE扛上了。这次java版本升级到1.6,结果在cmd里面打java -version结果又是1.3.1。把环境变量里的所有1.5.0改成1.6.0还不行。

后来某牛人帮偶给Eclipse.exe做了一个快捷方式,在地址后面加了一个-vm "java路径",即

C:\...\eclipse\eclipse.exe -vm "C:\j2sdk1.4.2_14\bin\javaw.exe"

但是加jre路径是不行的,会有一个对话框出来,报了一堆参数。然后我改成J2SDK的路径就可以了。

How to search Special character that cannot be typed into search column

Special character summary:

Symbol

Function

^^

searches for a "^" character

^s

searches for selected (highlighted) text when a macro is running

^c

searches for the contents of the clipboard when a macro is running

^b

matches a page break

^p

matches a newline (CR/LF) (paragraph) (DOS Files)

^r

matches a newline (CR Only) (paragraph) (MAC Files)

^n

matches a newline (LF Only) (paragraph) (UNIX Files)

^t

matches a tab character

Note - ^ refers to the character '^' NOT Control Key + value.

 

For more details, please refer to UltraEdit help -> Contents -> Menu command -> Search Menu -> Find command

星期二, 三月 24, 2009

zz BASH中的字符串处理

到长度
 
%x="abcd"
#方法一
%expr length $x
4
# 方法二
%echo ${#x}
4
# 方法三
%expr "$x" : ".*"
4
# expr 的帮助
# STRING : REGEXP   anchored pattern match of REGEXP in STRING
查找子串
 
%expr index  $x "b"
2
%expr index  $x "a"
1
%expr index  $x "b"
2
%expr index  $x "c"
3
%expr index  $x "d"
4
得到子字符串
 
# 方法一
# expr startpos length
%expr substr "$x" 1 3
abc
%expr substr "$x" 1 5
abcd
%expr substr "$x" 2 5
bcd
# 方法二
# ${x:pos:lenght}
%echo ${x:1}
bcd
%echo ${x:2}
cd
%echo ${x:0}
abcd
%echo ${x:0:2}
ab
%pos=1
%len=2
%echo ${x:$pos:$len}
bc
匹配正则表达式
 
# 打印匹配长度
%expr match $x "."
1
%expr match $x "abc"
3
%expr match $x "bc"
0
字符串的掐头去尾
 
%x=aabbaarealwwvvww
%echo "${x%w*w}"
aabbaarealwwvv
%echo "${x%%w*w}"
aabbaareal
%echo "${x##a*a}"
lwwvvww
%echo "${x#a*a}"
bbaarealwwvvww
其中 , # 表示掐头, 因为键盘上 # 在 $ 的左面。
其中 , % 表示%,  因为键盘上 % 在 $ 的右面。
单个的表示最小匹配,双个表示最大匹配。
也就是说,当匹配的有多种方案的时候,选择匹配的最大长度还是最小长度。

字符串的替换
 
%x=abcdabcd
%echo ${x/a/b} # 只替换一个
bbcdabcd
%echo ${x//a/b} # 替换所有
bbcdbbcd
不可以使用 regexp , 只能用 * ? 的文件扩展方式。

星期一, 三月 23, 2009

zz Unix Shell中引号的用法

shell可以识别4种不同类型的引字符号: 单引号字符' 双引号字符" 反斜杠字符\ 反引号字符`

1. 单引号 ( ' ' )


howard@0[script]$ grep Susan phonebook
Susan Goldberg 403-212-4921
Susan Topple    212-234-2343
如果我们想查找的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep会把Goldberg和phonebook当作需要搜索的文件
howard@0[script]$ grep 'Susan Gold' phonebook
Susan Goldberg 403-212-4921
当shell碰到第一个单引号时,它忽略掉其后直到右引号的所有特殊字符

2. 双引号 ( " " )


双引号作用与单引号类似,区别在于它没有那么严格。单引号告诉shell忽略所有特殊字符,而双引号只要求忽略大多数,具体说,括在双引号中的三种特殊字符不被忽略:$,\,` ,即双引号会解释字符串的特别意思,而单引号直接使用字符串.
如果使用双引号将字符串赋给变量并反馈它,实际上与直接反馈变量并无差别。如果要查询包含空格的字符串,经常会用到双引号。
howard@0[script]$ x=*
howard@0[script]$ echo $x
hello.sh menus.sh misc.sh phonebook tshift.sh
howard@0[script]$ echo '$x'
$x
howard@0[script]$ echo "$x"
*
这个例子可以看出无引号、单引号和双引号之间的区别。在最后一种情况中,双引号告诉shell在引号内照样进行变量名替换,所以shell把$x替换为*,因为双引号中不做文件名替换,所以就把*作为要显示的值传递给echo。

对于第一种情况需要进一步说明,shell在给变量赋值时不进行文件名替换(这从第三种情况中也能看出来),各步骤发生的精确次序如下:
shell扫描命令行,把x的值设为星号*;
shell再次扫描命令行,碰到星号*,把它替换成当前目录下的文件清单;
shell启动执行echo命令,把文件清单作为参数传递给echo.
这个赋值的先后次序非常重要:shell先作变量替换,然后作文件名替换,最后把这行处理为参数

3. 反引号(``)


命令替换是指shell能够将一个命令的标准输出插在一个命令行中任何位置。shell中有两种方法作命令替换:把shell命令用反引号或者$(...)结构括起来,其中,$(...)格式受到POSIX标准支持,也利于嵌套。
howard@0[script]$ echo The date and time is `date`
The date and time is 三 6月 15 06:10:35 CST 2005
howard@0[script]$ echo Your current working directory is $(pwd)
Your current working directory is /home/howard/script.

4. 反斜杠 backslash-escaped( \ )


反斜杠一般用作转义字符,或称逃脱字符,linux如果echo要让转义字符发生作用,就要使用-e选项

星期日, 三月 22, 2009

LS用法

LS

Section: User Commands (1)
Updated: November 1998

 

NAME

ls, dir, vdir - 列目錄內容  

提要

ls [選項] [文件名...]

POSIX 標準選項: [-CFRacdilqrtu1]  

GNU 選項 (短格式):

[-1abcdfgiklmnopqrstuxABCDFGLNQRSUX] [-w cols] [-T cols] [-I pattern] [--full-time][--format={long,verbose,commas,across,vertical,single-column}] [--sort={none,time,size,extension}] [--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]] [--help] [--version] [--]  

描述( DESCRIPTION )


程序ls先列出非目錄的文件項,然是每一個目錄中的 
“可顯示”文件。如果沒有選項之外的參數【譯注:即 
文件名部分為空】出現,缺省為 "." (當前目錄)。選 
項“ -d ”使得目錄與非目錄項同樣對待。除非“ -a ” 
選項出現,文件名以“.”開始的文件不屬“可顯示”文 
件。 
以當前目錄為準,每一組文件(包括非目錄文件項,以及 
每一內含文件的目錄)分別按文件名比較順序排序。如果 
“ -l ”選項存在,每組文件前顯示一摘要行給出該 
組文件長度之和(以 512 字節為單位)。 
輸出是到標準輸出( stdout )。除非以“ -C ”選項要 
求按多列輸出,輸出將是一行一個。然而,輸出到終端時, 
單列輸出或多列輸出是不確定的。可以分別用選項“ -1 ” 
或“ -C ”來強制按單列或多列輸出。

-C
多列輸出,縱向排序。
-F
每個目錄名加“ / ”綴,每個 FIFO 名加“ | ”綴, 每個可運行名加“ * ”綴。
-R
遞歸列出遇到的子目錄。
-a
列出所有文件,包括以 "." 開頭的隱含文件。
-c
使用“狀態改變時間”代替“文件修改時間”為依據來排序 (使用“ -t ”選項時)或列出(使用“ -l ”選項時)。
-d
將目錄名象其它文件一樣列出,而不是列出它們的內容。
-i
輸出文件前先輸出文件系列號(即 i 節點號 i-node number)。 -l 列出(以單列格式)文件模式( file mode ),文件的鏈 接數,所有者名,組名,文件大小(以字節為單位),時間信 息,及文件名。缺省時,時間信息顯示最近修改時間;可以以 選項“ -c ”和“ -u ”選擇顯示其它兩種時間信息。對設 備文件,原先顯示文件大小的區域通常顯示的是主要和次要的 號(majorand minor device numbers)。
-q
將文件名中的非打印字符輸出為問號。(對到終端的輸出這是缺省的。)
-r
逆序排列。
-t
按時間信息排序。
-u
使用最近訪問時間代替最近修改時間為依據來排序(使用 “ -t ”選項時)或列出(使用“ -l ”選項時)。
-1 單列輸出。
 

GNU 細節

如果標準輸出是終端,將多列輸出(縱向排序)。
dir ( 也被安裝為命令 d ) 等同“ ls -C ”;即,文件
缺省是多列輸出,縱向排序。vdir ( 也被安裝為命令 v ) 等同“ ls -l ”; 即,文件缺省是按長格式輸出。
 

GNU 選項

-1, --format=single-column 一行輸出一個文件(單列輸出)。如標準輸出不是到終端, 此選項就是缺省選項。
-a, --all
列出目錄中所有文件,包括以“.”開頭的文件。
-b, --escape
把文件名中不可輸出的字符用反斜槓加字符編號(就象在 C 語言裡一樣)的形式列出。
-c, --time=ctime, --time=status
按文件狀態改變時間(i節點中的ctime)排序並輸出目錄內 容。如採用長格式輸出(選項“-l”),使用文件的狀態改 變時間取代文件修改時間。【譯注:所謂文件狀態改變(i節 點中以ctime標志),既包括文件被修改,又包括文件屬性( 如所有者、組、鏈接數等等)的變化】
-d, --directory
將目錄名象其它文件一樣列出,而不是列出它們的內容。
-f
不排序目錄內容;按它們在磁盤上存儲的順序列出。同時啟 動“ -a ”選項,如果在“ -f ”之前存在“ -l ”、“ - -color ”或“ -s ”,則禁止它們。
-g 忽略,為兼容UNIX用。
-i, --inode
在每個文件左邊打印 i 節點號(也叫文件序列號和索引號 file serial number and index number)。i節點號在每 個特定的文件系統中是唯一的。
-k, --kilobytes
如列出文件大小,則以千字節KB為單位。
-l, --format=long, --format=verbose
除每個文件名外,增加顯示文件類型、權限、硬鏈接數、所 有者名、組名、大小( byte )、及時間信息(如未指明是 其它時間即指修改時間)。對6個月以上的文件或超出未來 1 小時的文件,時間信息中的時分將被年代取代。 每個目錄列出前,有一行“總塊數”顯示目錄下全部文件所 佔的磁盤空間。塊默認是 1024 字節;如果設置了 POSIXLY_CORRECT 的環境變量,除非用“ -k ”選項,則默認塊大小是 512 字 節。每一個硬鏈接都計入總塊數(因此可能重復計數),這無 疑是個缺點。
列出的權限類似以符號表示(文件)模式的規范。但是 ls
在每套權限的第三個字符中結合了多位( multiple bits ) 的信息,如下: s 如果設置了 setuid 位或 setgid 位,而且也設置了相應的可執行位。 S 如果設置了 setuid 位或 setgid 位,但是沒有設置相應的可執行位。 t 如果設置了 sticky 位,而且也設置了相應的可執行位。 T 如果設置了 sticky 位,但是沒有設置相應的可執行位。 x 如果僅僅設置了可執行位而非以上四種情況。 - 其它情況(即可執行位未設置)。
-m, --format=commas
水平列出文件,每行盡可能多,相互用逗號和一個空格分隔。
-n, --numeric-uid-gid
列出數字化的 UID 和 GID 而不是用戶名和組名。
-o
以長格式列出目錄內容,但是不顯示組信息。等使用“ --format=long --no-group ”選項。提供此選項是為了與其它版本的 ls 兼容。
-p
在每個文件名附上一個字符以說明該文件的類型。類似“ -F ”選項但是不 標示可執行文件。
-q, --hide-control-chars
用問號代替文件名中非打印的字符。這是缺省選項。
-r, --reverse
逆序排列目錄內容。
-s, --size
在每個文件名左側輸出該文件的大小,以 1024 字節的塊為單位。如果設置了 POSIXLY_CORRECT 的環境變量,除非用“ -k ”選項,塊大小是 512 字節。
-t, --sort=time
按文件最近修改時間( i 節點中的 mtime )而不是按文件名字典序排序,新文件 靠前。
-u, --time=atime, --time=access, --time=use
類似選項“ -t ”,但是用文件最近訪問時間( i 節點中的 atime )取代文件修 改時間。如果使用長格式列出,打印的時間是最近訪問時間。
-w, --width cols
假定屏幕寬度是 cols ( cols 以實際數字取代)列。如未用此選項,缺省值是這 樣獲得的:如可能先嘗試取自終端驅動,否則嘗試取自環境變量 COLUMNS (如果設 置了的話),都不行則取 80 。
-x, --format=across, --format=horizontal
多列輸出,橫向排序。
-A, --almost-all
顯示除 "." 和 ".." 外的所有文件。
-B, --ignore-backups
不輸出以“ ~ ”結尾的備份文件,除非已經在命令行中給出。
-C, --format=vertical
多列輸出,縱向排序。當標準輸出是終端時這是缺省項。使用命令名 dir 和 d 時, 則總是缺省的。
-D, --dired
當採用長格式(“ -l ”選項)輸出時,在主要輸出,額外打印一行: //DIRED// BEG1 END1 BEG2 END2 ...
BEGn 和 ENDn 是無符號整數,記錄每個文件名的起始、結束位置在輸出中的位置(
字節偏移量)。這使得 Emacs 易找到文件名,即使文件名包含空格或換行等非正 常字符也無需特異的搜索。
如果目錄是遞歸列出的(“ -R ”選項),每個子目錄列出類似一行:
//SUBDIRED// BEG1 END1 ... 【譯注:我測試了 TurboLinux4.0 和 RedHat6.1 ,發現它們都是在 “ //DIRED// BEG1... ”之列出“ //SUBDIRED// BEG1 ... ”,也即只有一個 而不是在每個子目錄都有。而且“ //SUBDIRED// BEG1 ... ”列出的是各個子目 錄名的偏移。】
-F, --classify, --file-type
在每個文件名附上一個字符以說明該文件的類型。“ * ”表示普通的可執行文件; “ / ”表示目錄;“ @ ”表示符號鏈接;“ | ”表示FIFOs;“ = ”表示套接字 (sockets) ;什也沒有則表示普通文件。
-G, --no-group
以長格式列目錄時不顯示組信息。
-I, --ignorepattern
除非在命令行中給定,不要列出匹配 shell 文件名匹配式( pattern ,不是指一般 表達式)的文件。在 shell 中,文件名以 "." 起始的不與在文件名匹配式 (pattern) 開頭的通配符匹配。
-L, --dereference
列出符號鏈接指向的文件的信息,而不是符號鏈接本身。
-N, --literal
不要用引號引起文件名。
-Q, --quote-name
用雙引號引起文件名,非打印字符以 C 語言的方法表示。
-R, --recursive
遞歸列出全部目錄的內容。
-S, --sort=size
按文件大小而不是字典序排序目錄內容,大文件靠前。
-T, --tabsize cols
假定每個制表符寬度是 cols 。缺省為 8。為求效率, ls 可能在輸出中使用制表符。 若 cols 為 0,則不使用制表符。
-U, --sort=none
不排序目錄內容;按它們在磁盤上存儲的順序列出。(選項“ -U ”和“ -f ”的不 同是前者不啟動或禁止相關的選項。)這在列很大的目錄時特別有用,因為不加排序 能顯的加快速度。
-X, --sort=extension
按文件擴展名(由最的 "." 之的字符組成)的字典序排序。沒有擴展名的先列 出。
--color[=when]
指定是否使用顏色區別文件類別。環境變量 LS_COLORS 指定使用的顏色。如何設置 這個變量見 dircolors(1) 。 when 可以被省略,或是以下幾項之一:
none 不使用顏色,這是缺省項。
auto 僅當標準輸出是終端時使用。 always 總是使用顏色。指定 --color 而且省略 when 時就等同 --color=always 。
--full-time
列出完整的時間,而不是使用標準的縮寫。格式如同 date(1) 的缺省格式;此格式 是不能改變的,但是你可以用 cut(1) 取出其中的日期字串並將結果送至命令 “ date -d ”。
輸出的時間包括秒是非常有用的。( Unix 文件系統儲存文件的時間信息精確到秒,
因此這個選項已經給出了系統所知的全部信息。)例如,當你有一個 Makefile 文件 不能恰當的生成文件時,這個選項會提供幫助。
 

GNU 標準選項

--help
打印用法信息到標準輸出並順利退出。
--version
打印版本信息到標準輸出並順利退出。
--
結束選項表。
 

環境

變量 POSIXLY_CORRECT 可以決定一組選擇。如果沒有設置此變量,每個制表符的字 符數由變量 TABSIZE 決定。變量 COLUMNS (當它由一個十進制整數表示時)決定輸 出的列寬度(同“ -C ”選項一起用時)。文件名不得為適應多列輸出而被截斷。變 量 LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES 及 LC_TIME 仍保持原義。 變量 TZ 給出時區供 ls 輸出相應的時間字串。變量 LS_COLORS 用以決定是否使用 顏色。  

已知錯誤

在 BSD 系統上,對從 HP-UX 系統上通過 NFS mount 而來的文件,“ -s ”選項報 告的大小只有正確值的一半;在 HP-UX 系統上,對從 BSD 系統上通過 NFS mount 而來的文件, ls 報告的大小則有正確值的兩倍。這是 HP-UX 的一個缺陷造成的,它 也影響 HP-UX 上的 ls 程序。  

適合到

POSIX 1003.2  

參見

dircolors(1)  

注意

本頁描述的是 fileutils-3.16 文件包中的 ls ,其它版本的可能略有不同。糾錯或添 加(功能)請 mailto: aeb@cwi.nl 和 aw@mail1.bet1.puv.fi 及 ragnar@lightside.ddns.org 。本程序的錯誤報告請 mailto: fileutils-bugs@gnu.ai.mit.edu 。  

[譯者]:

wangdong@163.net  

[版權協議]:

GNU's GPL 2.0 or higher

日期: Oct. 7th, 2000

(http://www.fanqiang.com    進入【UNIX論壇


相關文章
ls 命令選項詳解 (2001-04-15 19:37:13)

星期五, 三月 13, 2009

zz case语句两个常用用法

http://blog.csdn.net/zshengli/archive/2008/10/28/3166002.aspx
用法1:
case 字段 when '值1' then '结果1'
when '值2 'then '结果2'
else '结果3'
end
说明:这种用法跟C#的switch语句的功能有点相似,通过判断‘字段’不同值返回对应的‘结果’。
它在select语句中用得比较多,如:

select x,y,case z when '1' then '假' when '0' then '真' from table_v

这语句查询出来第三列会是无名列,可以这样为它取名:

select x,y,case z when '1' then '假' when '0' then '真' as 'new_z' from table_v


用法2:
case when 表达式1 then '结果1'
when 表达式2 then '结果2'
else '结果3'
end
说明:这也是很常用的用法,如:

select x, y , case when z>0 and z<60>60 and z<80>80 and z<100 then '优秀' else '成绩无效' from table_v

同样第三列也是无名列,可以用用法一中的办法为其取名。



总结:case的这两种用法都很实用,了解了它的用法后可以用它去处理一些比较复杂的逻辑。要记住的是,这两种case用法最终都返回了一个值,就像一个有返回值的方法一样,所以它不能单独执行。
发表

星期日, 三月 08, 2009

Indian Holidays this Year

Month Date Weekday Holiday Name
Mar 11-Mar-09 Wednesday Holi
Mar 27-Mar-09 Friday Ugadi/Gudi Padva
Apr 10-Apr-09 Friday Good Friday
May 1-May-09 Friday May Day
Aug 14-Aug-09 Friday Janmashtami
Sep 21-Sep-09 Monday Ramzan
Sep 28-Sep-09 Monday Vijayadasami
Oct 2-Oct-09 Friday Gandhi Jayanti
Dec 25-Dec-09 Friday Christmas