Python3 发送SMTP邮件

Posted on 2012年2月19日 20:33
#!/usr/bin/env python3

import smtplib
import time
from email.mime.text import MIMEText

msg = MIMEText("Hello!")
msg['Subject'] = "Hi!"
msg['From'] = 'sisl@mail.yht.com'
msg['To'] = 'sisl@mail.yht.com'

smtp = smtplib.SMTP('192.168.1.125', 25)
smtp.ehlo()
smtp.login(msg['From'], '382588')
smtp.send_message(msg)
smtp.quit()










 

IDLE快捷键

Posted on 2012年2月08日 14:51

Ctrl + [ 、Ctrl + ] 缩进代码
Alt+3 Alt+4 注释、取消注释代码行
Alt+5 Alt+6 切换缩进方式 空格<=>Tab
Alt+/ 单词完成,只要文中出现过,就可以帮你自动补齐。多按几次可以循环选择
Alt+M 打开模块代码,先选中模块,然后按下此快捷键,会帮你打开改模块的py源码供浏览
Alt+C 打开类浏览器,方便在源码文件中的各个方法体之间切换
Alt+FP 打开路径浏览器,方便选择导入包进行查看浏览
F1 打开Python文档,比Editplus 方便吧,不用设置了,呵呵。

值得注意的是 Ctrl+Space这个快捷键和Windows的输入法切换热键冲突,不要紧,当你实在需要提示的时候停下来,仍然会有代码提示的。其他常用快捷键就按习惯来好了。

在编辑过程中,按F5进入shell调试。shell中也有快捷键,都还方便
Alt+DG 先定位到错误行,按此快捷键可以快速定位到出错位置
Alt+DS 直接显示出错历史,找到根源,方便啊
Alt+DA 如果每次都要按,还不够方便,按这个,以后出错都出历史
Alt+DD 打开调试窗口,进入单步调试,方便。
Ctrl+F6 为了清空前面的导入记录等,重新启动shell
另外值得注意的是

Alt+N Alt+P 可以查找以前输入的命令用于补全当前命令
Ctrl+方向键 能够得到增强功能,试试就灵(4490)。

linux分卷压缩与解压缩

Posted on 2011年11月27日 16:23

1.rar

rar a -m5 -v12m myarchive myfiles # 最大限制为 12M

rar e myarchive.part1.rar #解压

分卷压缩

ubuntu下没有默认安装rar,可以通过 sudo apt-get install rar,sudo apt-get install unrar 来安装rar.

安装过后,使用以下命令进行分卷压缩:

rar a -vSIZE  压缩后的文件名 被压缩的文件或者文件夹

例如:rar a -v50000k eclipse.rar eclipse

此命令即为对eclipse文件夹进行分卷压缩,每卷的大小为50000k,压缩后的文件名为eclipse.rar


2.tar

举例说明:
要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令:
 

tar cjf - logs/ |split -b 1m - logs.tar.bz2.
完成后会产生下列文件:
 logs.tar.bz2.aa, logs.tar.bz2.ab, logs.tar.bz2.ac
要解压的时候只要执行下面的命令就可以了:
cat logs.tar.bz2.a* | tar xj

再举例:
要将文件test.pdf分包压缩成500 bytes的文件:
tar czf - test.pdf | split -b 500 - test.tar.gz
最后要提醒但是那两个"-"不要漏了,那是tar的ouput和split的input的参数。

3、用7z

同样用以上例子

在film上层目录操作,保留film目录名
压缩:    7z a film.7z film -v80m
解压到当前目录:  7z x film.7z.001 
解压到目录a:    mkdir a && cd a && 7z x ../film.7z.001
或者   7z -oa x film.7z.001

不保留film目录名
压缩   cd film && find . | xargs 7z a film.7z -v80m
解压   7z -oa x film.7z.001

单纯采用7z的话,文件的权限(拥有者)属性会丢失, 采用如下办法则可以保留:   
压缩:
tar cf - film | 7z a -si film.tar.7z -v80m
解压缩:
7z x -so film.tar.7z.001 | tar xf -

 

Python读取命令行选项

Posted on 2011年11月22日 15:27
#!/usr/bin/env python3.2
import optparse

p = optparse.OptionParser()

p.add_option("-o", action="store", dest="outfile")
p.add_option("--output", action="store", dest="outfile")

p.add_option("-d", action="store_true", dest="debug")
p.add_option("--debug", action="store_true", dest="debug")

p.set_defaults(debug=False)

opts, args = p.parse_args()    # args为剩余未解析的参数

outfile = opts.outfile
debugmode = opts.debug

print("outfile : {0}   debug-mode : {1}".format(outfile, debugmode))

Linux文件查找字符串

Posted on 2011年11月21日 23:33

linux下查找某目录下所有文件包含某字符串的命令:
从文件内容查找匹配指定字符串的行:
$ grep "被查找的字符串" 文件名
从文件内容查找与正则表达式匹配的行:
$ grep –e “正则表达式” 文件名
查找时不区分大小写:
$ grep –i "被查找的字符串" 文件名
查找匹配的行数:
$ grep -c "被查找的字符串" 文件名
从文件内容查找不匹配指定字符串的行:
$ grep –v "被查找的字符串" 文件名
从根目录开始查找所有扩展名为.txt的文本文件,并找出包含"phpzixue.cn"的行
find . -type f -name "*.txt" | xargs grep "Hello"

迭代器示例

Posted on 2011年11月14日 14:36

#/usr/bin/env python3.2

class MyIterator():
    
    def __init__(self, step):
        self.step = step
        
    def __next__(self):
        """Returns the next element."""
        if self.step == 0:
            raise StopIteration
        self.step -= 1
        return self.step
    
    def __iter__(self):
        """Returns the iterator itself."""
        return self
    
for el in MyIterator(5):
    print(el, end=" ")  

console:

4 3 2 1 0

命令行Subversion入门

Posted on 2011年11月14日 00:26

如果您参与的项目正在使用 Subversion 进行版本控制,您将需要使用 Subversion 访问和更改项目源文件。您可以点击项目的左侧导航窗格上的“Subversion”链接,在线浏览源代码以查看该项目的目录结构和文件。

“Subversion”页面显示三个子目录:branches/、tags/、trunk/ 和一个自述文件。自述文件可以使您对 Subversion 存储库有一个整体了解。您可以点击“访问选项”,查看 Subversion 客户端安装说明。您的本地计算机上必须安装有 Subversion 客户端。

获取项目的本地工作副本svn checkout

若要获取最新源文件的“工作副本”,您必须首先签出这些源文件,这一过程会将文件从存储库复制到您的系统中。在您的外壳程序或终端客户端,请键入:

svn checkout https://(项目名称).(域)/svn/(项目名称)/(DIR) (项目名称) --username [在此处输入用户名]

当系统提示您时输入您的用户密码。此密码应与您在本站点中的用户帐号的密码相同。不指定目录将签出整个项目源代码。您可能希望签出“trunk/”目录,因为此目录具有工作“www/”文件夹。

转换:--revision (-r) REV, --quiet (-q), --non-recursive (-N), --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

请参见基本工作周期初始签出工作副本

注意:如果站点未启用 SSL(安全套接字层),则在执行 Subversion 操作时,请使用 http 而不是 https。例如,若要从项目的存储库中签出最新的源代码,请使用以下命令:

svn checkout https://(项目名称).(域)/svn/(项目名称)/(DIR) (项目名称) --username [在此处输入用户名]

处理 Subversion 存储库中的文件

从项目存储库中签出本地副本后,您可以在本地计算机上编辑现有文件、创建新文件和目录、以及删除文件。在您将所做的任何更改提交回 Subversion 存储库之前,这些更改只对项目文件的本地副本起作用。

将工作副本中的文件/目录添加到存储库中svn add

在您第一次在工作目录中创建并编辑新文件后,可以将此文件添加到存储库中,或添加一个目录,目录中有无内容均可。

svn add FILENAME/DIR

这样就会在您的工作副本中添加文件/目录,并安排它们以添加到存储库中。您下次提交时,会上载这些文件/目录,并将它们添加到存储库中。如果您了添加内容,但在提交前又改变了主意,则可以使用 svn revert 取消添加内容的安排。

转换:--targets FILENAME, --non-recursive (-N), --quiet (-q), --config-dir arg, --auto-props, --no-auto-props

请参见添加文件/目录示例

查看带有修订和作者信息的特定文件的内容svn blame

若要在线查看指定文件的作者和修订信息,请键入:

svn blame FILENAME

每行文本的开始处都以上次更改该行的作者(用户名)和修订版本号作为批注。

转换:--revision (-r) REV, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

查看特定文件的内容svn cat

有时,与存储库相比较,您的工作副本可能已过时;或者您可能已修改了本地工作副本。在这些情况下,在提交更改或决定编辑您的工作副本之前,您会希望查看指定文件的内容差异。运行 svn cat FILENAME 将自动从存储库中取出 HEAD 修订版本。这条子命令主要用于检索具有较旧修订版本号的文件,并将其显示在屏幕上。通过在此站点上浏览项目源代码,也可以执行相同的操作。

转换:--revision (-r) REV, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

清理工作副本svn cleanup

有时可能会出现“工作副本已锁定”错误。若要删除锁定,并递归清理工作副本,请使用 svn update

转换:--diff3-cmd CMD, --config-dir DIR

请参见 svn cleanup

复制工作副本或存储库中的文件或目录svn copy

在项目中,您可能需要用到过去的旧文档。例如,您可能想要使用一个已存在的 HTML 文件,使用其代码作为参考以在创建新内容时保持产品外观和感觉。创建文件时,您无需从头开始,只需使用 svn copy 复制此文件,然后将其另存为其它名称并更改其内容。您可以从存储库将文件复制为本地工作副本,也可以将本地工作副本复制回存储库文件。您还可以在本地工作副本内部复制文件。Subversion 不支持在存储库之间进行复制。可使用 svn copy SRC DST 完成此操作。

转换:--message (-m) TEXT, --file (-F) FILE, --revision (-r) REV, --quiet (-q), --username USER, --password PASS, --no-auth-cache, --non-interactive, --force-log, --editor-cmd EDITOR, --encoding ENC, --config-dir DIR

请参见 svn copy

从本地工作副本中删除文件或目录svn delete

您可能希望从本地工作副本中删除不需要的文件。使用 svn delete FILENAME 可安排删除文件。仅当您提交时,才会在存储库中将该文件实际删除。

转换:--force, --force-log, --message (-m) TEXT, --file (-F) FILE, --quiet (-q), --targets FILENAME, --username USER, --password PASS, --no-auth-cache, --non-interactive, --editor-cmd EDITOR, --encoding ENC, --config-dir DIR

查看文件之间的差异svn diff

可以使用 svn diff 显示工作副本中的指定文件相对于存储库中相应文件所做的本地修改。在命令提示符处,请键入:

svn diff (文件的路径) (项目存储库的 URL)

例如,若要将本地修改后的文件“index.html”与项目存储库中的相应文件进行比较,请键入:

svn diff $SRC/...../index.html https://(项目名称).(域)/svn/(项目名称)/trunk (项目名称) --username [在此处输入用户名]

除此之外,您也可以转到该文件所属的目录,并键入:

svn diff (FILENAME)

该命令将显示差异,并且带有修订版本号。

转换:--revision (-r) REV, --old OLD-TARGET, --new NEW-TARGET, --extensions (-x) "ARGS", --non-recursive (-N), --diff-cmd CMD, --notice-ancestry, --username USER, --password PASS, --no-auth-cache, --non-interactive, --no-diff-deleted, --config-dir DIR

请参见检查历史svn diff

在本地计算机上导出空目录树svn export

在您的本地计算机上,可以从项目存储库或本地工作副本内部提取一个无版本的副本,也称为空目录树。若要从存储库中获得较旧修订版本的空目录,请键入:

svn export [-r REV] [PATH]

该命令将从 URL 指定的存储库中的修订版本 REV 位置(如果指定,否则从 HEAD 位置)将空目录树导出到 PATH。如省略 PATH,则该 URL 的最后一部分将用作本地目录名称。除此之外,您也可以在本地计算机内部,从一个工作副本(由 PATH1 指定)向另一工作副本(由 PATH2 指定)导出空目录树。这将保留所有的本地更改,但不会复制版本控制中的文件。若要执行此操作,请键入:

svn export PATH1 PATH2

转换:--revision (-r) REV, --quiet (-q), --force, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

获取有关 Subversion 的帮助svn help

Subversion 可以在命令行界面为您提供帮助。若要获得有关特定子命令的帮助,请键入:

svn help [SUBCOMMAND...]

转换:--version, --quiet (-q)

将您的更改提供给 SVN 存储库

对文件和/或目录进行本地更改后,您必须向 SVN 存储库提交这些更改。

提交您的更改svn commit

若要向共享存储库提交您的更改,请键入:

svn commit -m "请在此处键入您的理由"

如果您不包括对该文件更改的描述,系统将提示您调用文件编辑器添加描述,然后 svn 才能完成提交操作;否则将会出现“提交失败”错误。所有的提交都会被自动记录,并发布到项目的提交讨论中。

转换:--message (-m) TEXT, --file (-F) FILE, --quiet (-q), --non-recursive (-N), --targets FILENAME, --force-log, --username USER, --password PASS, --no-auth-cache, --non-interactive, --encoding ENC, --config-dir DIR

请参见提交您的更改editor-cmd

将无版本的文件或树导入到项目存储库中svn import

您可以使用 svn import 将无版本的文件或树递归提交到项目存储库中。将根据需要在存储库中创建父目录。使用下面的命令可以从 PATH 向 URL 递归提交副本。如果省略 PATH,将认为其为“.”。

svn import [PATH] URL

示例:若要在您的本地计算机上创建带有一个文件的无版本目录 (D)。请点击项目左侧导航窗格中的“Subversion”链接,找到 Subversion 页面。请注意,“浏览源代码”下未列出 NEWDIR。若要将 D 导入项目存储库,请键入:

svn import -m "请在此处键入您的信息" D http://(项目名称).(域)/svn/(项目名称)/NEWDIR

刷新该页面。请注意,此时“浏览源代码”下列出了 D。点击 D 查看该文件。

转换:--message (-m) TEXT, --file (-F) FILE, --quiet (-q), --non-recursive (-N), --username USER, --password PASS, --no-auth-cache, --non-interactive, --force-log, --editor-cmd EDITOR, --encoding ENC, --config-dir DIR, --auto-props, --no-auto-props

打印有关工作副本中路径的信息svn info

有时,您将需要有关工作副本中文件的具体信息,以执行某些子命令。键入 svn info,将打印出详尽且有用的信息,这些信息涉及工作副本中的工作副本路径中的项,其中包括:路径、名称、URL、修订版本、节点类型、上次更改、作者、上次更改修订版本、上次更改日期、上次更新的文本、上次更新的属性以及校验和。

转换:--targets FILENAME, --recursive (-R), --config-dir DIR

查看存储库中的目录项列表svn list

在开始处理项目或取出“工作副本”之前,您可能希望查看项目存储库中的内容(即目录和文件),或查看本地工作副本中的目录项。在命令提示符处键入 svn list [TARGET...],也可以查看这些内容。除此之外,您也可以找到项目中的“软件配置管理”页,查看项目存储库。

转换:--revision (-r) REV, --verbose (-v), --recursive (-R), --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

查看提交日志信息svn log

如果要查看“工作副本”或存储库中文件/目录的各个文件/目录历史,以跟踪修订信息,请键入:

svn log [PATH]

该命令会显示出文件/目录的修订信息,从最近所做的修订版本开始显示提交信息和作者姓名等信息。除此之外,您也可以使用该站点,查看项目存储库中各个文件的提交日志信息。请点击项目左侧导航窗格中的“Subversion”链接。将出现 Subversion 页。搜索“浏览源代码”的目录中的文件,然后点击文件名。这时将会显示一个提交日志信息页面。

转换:--revision (-r) REV, --quiet (-q), --verbose (-v), --targets FILENAME, --stop-on-copy, --incremental, --xml, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

请参见 svn log

合并更改svn merge

您可以运行 svn merge 命令,以指示 Subversion 将存储库中最新版本的文件合并到您的工作副本中。

转换:--revision (-r) REV, --non-recursive (-N), --quiet (-q), --force, --dry-run, --diff3-cmd CMD, --ignore-ancestry, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

请参见 svn merge解决冲突(合并其他人的更改)分支和合并:常见合并使用案例合并最佳实践

使用存储库

创建新目录svn mkdir

若要在您的工作副本中创建新目录,请键入:

svn mkdir PATH

若要在您的项目存储库中创建新目录,请键入:

svn mkdir URL

PATH 或 URL 的最后一部分决定目录名称。在立即提交时在存储库中创建目录,所以还需要一条提交信息

转换:--message (-m) TEXT, --file (-F) FILE, --quiet (-q), --username USER, --password PASS, --no-auth-cache, --non-interactive, --editor-cmd EDITOR, --encoding ENC, --force-log, --config-dir DIR

移动文件或目录svn move

您可以使用 svn move SRC DST 在工作副本或项目存储库内部移动文件或目录。此命令等效于在使用 svn copy 后,再使用 svn delete。在工作副本内部移动文件或目录,不仅会移动该文件或目录,而且还将安排它以便于下次提交时进行添加。在项目存储库内部移动文件或目录属于封闭单元式提交,所以需要一条提交信息。

转换:--message (-m) TEXT, --file (-F) FILE, --revision (-r) REV, --quiet (-q), --force, --username USER, --password PASS, --no-auth-cache, --non-interactive, --editor-cmd EDITOR, --encoding ENC, --force-log, --config-dir DIR

使用属性

Subversion 具有很多具体属性,这些属性影响或决定其行为。您可以修改、提交和撤消属性更改,就像对文件内容所执行的操作一样。您还可以从本地工作副本或项目存储库的文件、目录或修订版本中,删除、编辑、打印、列出以及设置属性。

请参见 属性无版本属性元数据属性svn propdelsvn propeditsvn propgetsvn proplistsvn propsetHook 脚本

解决冲突svn resolved

更新本地工作副本时,可能会遇到冲突。您需要解决此冲突。解决冲突后,键入 svn resolved PATH...,通知工作副本该冲突已“解决”。

转换:--targets FILENAME, --recursive (-R), --quiet (-q), --config-dir DIR

请参见解决冲突(合并其他人的更改)

撤消您的更改svn revert

使用 Subversion 时,您会发现 svn revert PATH... 等效于 Windows 中的 Ctrl Z。您可以:

  • 撤消本地工作副本中的任何本地更改,从而解决冲突状态。
  • 撤消工作副本中的条目内容及属性更改。
  • 取消任何进度安排操作,如添加文件、删除文件等。

注意,如不提供目标,会导致工作副本中的更改丢失。

转换:--targets FILENAME, --recursive (-R), --quiet (-q), --config-dir DIR

获取文件/目录的状态svn status

在版本控制中,将更改提交到项目存储库之前最好对其进行审查。可以运行 svn status 打印工作副本中的文件和目录的状态。打印结果为八列编码输出。由于每列都有详尽的图例,若要从此输出中得出“无错误”的结论几乎不可能。若要使此任务更加简单,并同时可看到示例,请在命令提示符处键入 svn help status

转换:--show-updates (-u), --verbose (-v), --non-recursive (-N), --quiet (-q), --no-ignore, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir

请参见检查你的更改

转换工作副本svn switch

可以使用 svn switch URL [PATH] 更新工作副本,以镜像新的 URL。您还可以将工作副本或部分工作副本移动到新的分支。您可以将此子命令用作分支的快捷方式。

转换:--revision (-r) REV, --non-recursive (-N), --quiet (-q), --diff3-cmd CMD, --relocate, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

请参见转换工作副本分支和合并以及 svn switch

更新工作副本svn update

为了进行更好的版本控制,建议您每天用项目存储库更新本地工作副本,请使用:

svn update [PATH...]

列出的已更新条目以及它们的当前状态显示如下:

  • A = 已将一个文件添加到您的工作副本中。
  • U = 已更新您的工作副本中的一个文件。
  • D = 已从您的工作副本中删除一个文件。
  • R = 已替换您的工作副本中的一个文件。
  • G = 已成功合并了一个文件。
  • C = 一个文件已合并了必须手动解决的冲突

转换:--revision (-r) REV, --non-recursive (-N), --quiet (-q), --diff3-cmd CMD, --username USER, --password PASS, --no-auth-cache, --non-interactive, --config-dir DIR

请参见更新你的工作副本手动合并冲突

分支和标记

项目的主干通常用作开发主线,而分支通常用作主线的变更。分支是正在进行的开发线。在软件开发生命周期中,如果软件产品的发布版本已到期,经常 会用到分支,使测试者可以使用候选版本,使新的开发可以继续进行,不受测试的约束。分支还用于实验性工作,以及完成代码重写。标记是将一组文件修订版本标 记为整体的方式。虽然分支和标记都是使用 svn copy 子命令创建的,但它们是完全不同的。分支表示多个修订版本而标记只表示单个修订版本。

本站点上您项目的 Subversion 存储库支持对您的源文件进行分支和标记。对于 Subversion 来说,标记和分支属于简单实用的“复制”操作。

若要创建分支或标记项目文件,请键入:

svn copy SRC DST -m "在此处键入您的信息"

请参见分支和合并

Python交互提示符中支持TAB自动补全

Posted on 2011年11月13日 19:46
  • >>> import rlcompleter, readline
  • >>> readline.parse_and_bind('tab: complete'

配置VIM开发Python

Posted on 2011年11月13日 19:39

用户主目录下新建

.vimrc

 

内容:

set encoding=utf8
set paste
set expandtab
set textwidth=0
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set backspace=indent,eol,start
set incsearch
set ignorecase
set ruler
set wildmenu
set commentstring=\ #\ %s
set foldlevel=0
set clipboard+=unnamed
syntax on
 

pgsql 常用命令

Posted on 2011年11月07日 22:16
\d [ table ]
列出数据库中的表,或(如果声明了)表 table 的列/字段.如果表名是用统配符 (“*”)声明的,列出所有表和表的列/字段信息.
\da
列出所有可用聚集.
\dd object
列出 pg_description 里对声明的对象的描述,对象可以是一个表,表中的列/字段,类型,操作符或聚集.
小技巧:并非所有对象在 pg_description 里有描述.此后期命令在快速获取 Postgres 内部特性时很有用.
\df
列出函数.
\di
只列出索引.
\do
只列出操作符.
\ds
只列出序列.
\dS
列出系统表和索引.
\dt
只列出非系统表.
\dT
列出类型.
\e [ filename ]
编辑当前查询缓冲或文件 filename 的内容.
\E [ filename ]
编辑当前查询缓冲或文件 filename 的内容并且在编辑结束后执行之.
\f [ separator ]
设置域分隔符.缺省是单个空白.
\g [ { filename | |command } ]
将当前查询输入缓冲送给后端并且(可选的)将输出放到 filename 或通过管道将输出送给一个分离的Unix shell 用以执行 command.
\h [ command ]
给出声明的 SQL 命令的语法帮助.如果 command 不是一个定义的 SQL 命令(或在 psql 里没有文档),或没有声明 command ,这时 psql将列出可获得帮助的所有命令的列表.如果命令 command 是一个通配符(“*”),则给出所有 SQL 命令的语法帮助.
\H
切换 HTML3 输出.等效于 -H 命令行选项.
\i filename
从文件 filename 中读取查询到输入缓冲.
\l
列出服务器上所有数据库.
\m
切换老式监视器样的表输出,这时表周围有边界字符包围着.这是标准 SQL 输出.缺省时,psql 只包括列/字段间的分隔符.
\o [ { filename | |command } ]
将后面的查询结果输出到文件 filename 或通过管道将后面结果输出到一个独立的Unix shell 里执行 command.如果没有声明参数,将查询结果输出到 stdout.
\p
打印当前查询缓冲区.
\q
退出 psql 程序.
\r
重置(清空)查询缓冲区.
\s [ filename ]
将命令行历史打印出或是存放到 filename.如果省略 filename ,将不会把后继的命令存放到历史文件中.此选项只有在 psql 配置成使用输入行时才有效.
\t
切换输出的列/字段名的信息头和行记数脚注(缺省是开).
\T table_options
允许你在使用HTML 3.0 格式输出时声明放在表 table ... 中的标记选项.例如,border 将给你的表以边框.这必须和 \H 后期命令一起使用.
\x
切换扩展行格式.当打开时,每一行将在左边打印列/字段名而在右边打印列/字段值.这对于那些不能在一行输出的超长行是很有用的.HTML 行输出模式也支持这个标记.
\w filename
将当前查询缓冲区输出到文件 filename.
\z
生成一个带有正确 ACL(赋予/禁止 权限)的数据库中所有表的输出列表.
\! [ command ]
回到一个独立的Unix shell或执行一个Unix 命令 command.
\?
获得关于反斜杠 (“\”) 命令的帮助.

 

一般选项

\c[onnect] [数据库名|- [用户名称]]
联接到新的数据库 (当前为 "test")
\cd [目录名]     改变当前的工作目录
\copyright       显示 PostgreSQL 用法和发布信息
\encoding [编码]
显示或设置客户端编码
\h [名字]        SQL 命令的语法帮助, 用 * 可以看所有命令的帮助
\q               退出 psql
\set [名字 [值]]
设置内部变量, 如果没有参数就列出所有
\timing          查询计时开关切换 (目前是 关闭)
\unset 名字      取消(删除)内部变量
\! [命令]        在 shell 里执行命令或者开始一个交互的 shell

信息选项

\d [名字]        描述表, 索引, 序列, 或者视图
\d{t|i|s|v|S} [模式] (加 "+" 获取更多信息)
列出表/索引/序列/视图/系统表
\da [模式]       列出聚集函数
\db [模式]       列出表空间 (加 "+" 获取更多的信息)
\dc [模式]       列出编码转换
\dC              列出类型转换
\dd [模式]       显示目标的注释
\dD [模式]       列出域
\df [模式]       列出函数 (加 "+" 获取更多的信息)
\dg [模式]       列出组
\dn [模式]       列出模式 (加 "+" 获取更多的信息)
\do [名字]       列出操作符
\dl              列出大对象, 和 \lo_list 一样
\dp [模式]       列出表, 视图, 序列的访问权限
\dT [模式]       列出数据类型 (加 "+" 获取更多的信息)
\du [模式]       列出用户
\l               列出所有数据库 (加 "+" 获取更多的信息)
\z [模式]        列出表, 视图, 序列的访问权限 (和 \dp 一样)

命令:     ABORT
描述:     终止当前事务
语法:
ABORT [ WORK | TRANSACTION ]

命令:     ALTER DATABASE
描述:     改变一个数据库
语法:
ALTER DATABASE 名字 SET 参数 { TO | = } { 值 | DEFAULT }
ALTER DATABASE 名字 RESET 参数
ALTER DATABASE 名字 RENAME TO 新名字
ALTER DATABASE 名字 OWNER TO 新属主
命令:     ALTER GROUP
描述:     改变一个用户组
语法:
ALTER GROUP 组名称 ADD USER 用户名称 [, ... ]
ALTER GROUP 组名称 DROP USER 用户名称 [, ... ]
ALTER GROUP 组名称 RENAME TO 新名称

命令:     ALTER INDEX
描述:     改变一个索引的定义
语法:
ALTER INDEX 索引名称
动作 [, ... ]
ALTER INDEX 索引旧名称
RENAME TO 索引新名称
动作为以下之一:
OWNER TO 新属主
SET TABLESPACE indexspace_name

命令:     ALTER SEQUENCE
描述:     改变一个序列生成器的定义
语法:
ALTER SEQUENCE 名字 [ INCREMENT [ BY ] 递增 ]
[ MINVALUE 最小值 | NO MINVALUE ] [ MAXVALUE 最大值 | NO MAXVALUE ]
[ RESTART [ WITH ] 开始 ] [ CACHE 缓存 ] [ [ NO ] CYCLE ]

命令:     ALTER TABLE
描述:     改变一个表的定义
语法:
ALTER TABLE [ ONLY ] 表名 [ * ]
action [, ... ]
ALTER TABLE [ ONLY ] 表名 [ * ]
RENAME [ COLUMN ] 字段名 TO 新字段名
ALTER TABLE 表名
RENAME TO 新表名
action 为下面的一种:
ADD [ COLUMN ] 字段名 类型 [ 字段约束 [ ... ] ]
DROP [ COLUMN ] 字段名 [ RESTRICT | CASCADE ]
ALTER [ COLUMN ] 字段名 TYPE 类型 [ USING 表达式 ]
ALTER [ COLUMN ] 字段名 SET DEFAULT 表达式
ALTER [ COLUMN ] 字段名 DROP DEFAULT
ALTER [ COLUMN ] 字段名 { SET | DROP } NOT NULL
ALTER [ COLUMN ] 字段名 SET STATISTICS integer
ALTER [ COLUMN ] 字段名 SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }
ADD 表约束
DROP CONSTRAINT 约束名字 [ RESTRICT | CASCADE ]
CLUSTER ON 索引名称
SET WITHOUT CLUSTER
SET WITHOUT OIDS
OWNER TO 新属主
SET TABLESPACE 表空间名字

命令:     ALTER TRIGGER
描述:     改变一个触发器的定义
语法:
ALTER TRIGGER 名字 ON 表 RENAME TO 新名字

命令:     ALTER USER
描述:     改变一个数据库用户
语法:
ALTER USER name [ [ WITH ] option [ ... ] ]
where option can be:
CREATEDB | NOCREATEDB
| CREATEUSER | NOCREATEUSER
| [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
| VALID UNTIL 'abstime'
ALTER USER name RENAME TO newname
ALTER USER name SET parameter { TO | = } { value | DEFAULT }

命令:     COPY
描述:     在一个文件和一个表之间拷贝数据
语法:
COPY 表名 [ ( 字段 [, ...] ) ]
FROM { '文件名' | STDIN }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE NOT NULL column [, ...] ]

COPY 表名 [ ( 字段 [, ...] ) ]
TO { '文件名' | STDOUT }
[ [ WITH ]
[ BINARY ]
[ OIDS ]
[ DELIMITER [ AS ] 'delimiter' ]
[ NULL [ AS ] 'null string' ]
[ CSV [ QUOTE [ AS ] 'quote' ]
[ ESCAPE [ AS ] 'escape' ]
[ FORCE QUOTE column [, ...] ]

命令:     CREATE TABLE
描述:     定义一个新的表
语法:
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE table_name (
{ column_name data_type [ DEFAULT default_expr ] [ column_constraint [ ... ] ]
| table_constraint
| LIKE parent_table [ { INCLUDING | EXCLUDING } DEFAULTS ] } [, ... ]
)
[ INHERITS ( parent_table [, ... ] ) ]
[ WITH OIDS | WITHOUT OIDS ]
[ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
[ TABLESPACE tablespace ]

where column_constraint is:

[ CONSTRAINT constraint_name ]
{ NOT NULL |
NULL |
UNIQUE [ USING INDEX TABLESPACE tablespace ] |
PRIMARY KEY [ USING INDEX TABLESPACE tablespace ] |
CHECK (expression) |
REFERENCES reftable [ ( refcolumn ) ] [ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ]
[ ON DELETE action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

and table_constraint is:

[ CONSTRAINT constraint_name ]
{ UNIQUE ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
PRIMARY KEY ( column_name [, ... ] ) [ USING INDEX TABLESPACE tablespace ] |
CHECK ( expression ) |
FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ]
[ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE action ] [ ON UPDATE action ] }
[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]