How to use the command of Putty

TOP

putty命令大全

Linux/UNIX常用命令速查手册

Vi编辑器完全使用手册 Basic VI command

最新PUTTY的使用和SSH命令

Buildout知识

Cron Help Guide

Crontab使用和Cronjob简介

zeo Filestorage add connect and pack

cp blobstorage filefolder

 

putty命令大全偶已经学会的几个,简单列下



1、cd (文件夹名)--查看路径
2、dir ---查看当前路径下的所有文件
3、unzip ***.zip-----压缩文件到当前目录
4、wget (路径)----下载
5、mv ***   ****----移动或者重命名
6、rm *** *** ----删除一次可以删除多个
7、pwd ----显示当前路径
8、cp ---拷贝
9、解压:unzip FileName.zip
压缩:zip FileName.zip DirName

putty命令大全

此文介绍putty软件中shell主要的命令语法以及格式,希望对同学们有所帮助。

Shell命令管理如果你是linux主机,可以运行shell命令。如果你是win xp用户,可以下载putty,利用这个工具,你也可以进行shell管理。先到这里,下载PuTTY0.58cn2 中文版。然后就可以开始管理了。但你必须知道shell命令。下面是我收集的一些shell命令供新手参考。资料来源于网络,不保证全部有效。不过一般不会有什么问题。按说明认真操作就好。
[url=post.php?action=newthread&fid=9&extra=page%3D1#mysqlzidongbeifeng]Mysql自动备份[/url](点击查看)。首先我们得知道什么叫shell.
操作系统与外部最主要的接口就叫做shell,或许这样说过于术语化,for example后你肯定就能够明白:cmd命令行,这是windows操作系统下的一个shell。这里说的dreamhost的shell是指 dreamhost提供给客户一个命令行,方便客户更好的使用他们的虚拟主机服务。
DreamHost中shell使用指南本文中所用的 shell指令及操作均基于Linux ord 2.4.29,即DreamHost现在采用的系统。本人不是计算机专业出身,本指南因此会比较死板,只针对想要使用shell又苦于不知如何下手的新 手,如果你也是DreamHost的用户,那本文或许对你有所帮助。目录:

1. Basic Instructions /基本指令
2. wget /下载工具
3. Crontab /定时任务
4. tar/tar.gz /压缩文件
5. vi /编辑器


cd [目录名] 转换路径

ls 显示当前目录下所有文件

rm [-r]-f[] [文件名] 删除文件,加[-r]可以删除文件下所有子文件

unzip [文件名] 解压文件

wget(没用过,据说是最实用的一个,否则那200G估计每天不掉线才有可能用完)


1. BasicInstructions基本操作命令


通常来说,使用"$[Instructions] --help"可以获得以下各个命令[instructions]的帮助,包含其参数列表的定义。


-ls 列出当前文件夹下所有内容

$ls -o 列出当前文件夹中所有内容,含详细信息,但不列出group

$ls -l 同上,含group信息

$ls -a 列出当前文件夹中所有内容,包含以"."开头的文件

$ls -t 按更改时间排序

$ls -v 按版本先后排序

-cd [dir] 进入文件夹

-pwd 显示当前路径

-mkdir [dir] 新建文件夹

-chmod 更改文件/文件夹权限

$chmod [Mode] [dir],其中Mode形如"755"或"777"等。

$chmod [Mode] [file]

$chmod -R [Mode] [dir],递归形式,即将目标文件夹内所有文件均改变权限

Mode还有另一种表达方式,"755"即为"-rwxr-xr-x",不列举了。

-rm [file] 删除文件/文件夹

$rm -f [file] 强行删除,忽略不存在的文件,无提示

$rm -r [file] 递归删除所有内容

-cp 拷贝

$cp [options] [source] [destination]

其中[options]可以为-f(强行拷贝)或-r(递归拷贝)

-mv 重命名或移动

$mv [options] [source] [destination]

[options]常用:-f(强行移动/重命名), -i(移动/重命名前尝试), -u(更新)


例如

$mv wwwroot/cgi-bin . 将/cgi-bin目录移动到当前目录下


$mv cronfile.txt myfile.txt 将cronfile.txt重命名为myfile.txt


2. wget下载工具

 

wget是一种非交互式的网络文件下载工具,在linux下可以使用该工具快速地从网络上下载所需要的文件而不需要经由本地硬盘中转,而且速度极快。以下是一些使用方法:

 

wget [参数列表] URL

 

最简单的用法:

 

$wget http://targetdomain.com/file.tar

 

wget的常用参数:

 

· -t [nuber of times]:尝试次数,当wget无法与服务器建立连接时,尝试连接多少次。比如"-t120"表示尝试120次。当这一项为"0"的时候,指定尝试无穷多次直到连接成功为止,这个设置非常有用,当对方服务器突然关机或者网络突然中断的时候,可以在恢复正常后继续下载没

 

有传完的文件;

 

· -c:断点续传,这也是个非常有用的设置,特别当下载比较大的文件的时候,如果中途意外中断,那么连接恢复的时候会从上次没传完的地方接着传,而不是又从头开始,使用这一项需要远程服务器也支持断点续传,一般来讲,基于UNIX/linux的Web/FTP服务器都支持断点续传;

 

· -T [number of seconds]:超时时间,指定多长时间远程服务器没有响应就中断连接,开始下一次尝试。比如"-T120"表示如果120秒以后远程服务器没有发过来数据,就重新尝试连接。如果网络速度比较快,这个时间可以设置的短些,相反,可以设置的长一些,一般最多不超过900,通常也不少于60,一般设置在 120左右比较合适;

 

· -w [number of seconds]:在两次尝试之间等待多少秒,比如"-w 100"表示两次尝试之间等待100秒;

 

· -nd:不下载目录结构,把从服务器所有指定目录下载的文件都堆到当前目录里;


· -x:与"-nd"设置刚好相反,创建完整的目录结构,例如"wget -nd http://www.gnu.org/ ",实际的目录结构一级一级建下去,直到所有的文件都传完为止;


· -nH:不创建以目标主机域名为目录名的目录,将目标主机的目录结构直接下到当前目录下;· -r:递归下载,在本机建立服务器端目录结构;


· -l [depth]:下载远程服务器目录结构的深度,例如"-l 5"下载目录深度小于或者等于5以内的目录结构或者文件;


· -m:做站点镜像时的选项,如果你想做一个站点的镜像,使用这个选项,它将自动设定其他合适的选项以便于站点镜像;

 

· -np:只下载目标站点指定目录及其子目录的内容。这也是一个非常有用的选项,我们假设某个人的个人主页里面有一个指向这个站点其他人个人主页的连接,而我们只想下载这个人的个人主页,如果不设置这个选项,甚至--有可能把整个站点给抓下来,这显然是我们通常不希望的;


· --http-user=username


· --http-passwd=password:如果Web服务器需要指定用户名和口令,用这两项来设定;


· -O 将数据写入文件中。


3. Crontab 定时执行任务


在DreamHost系统下, 通过Shell可以建立自己的crontab. 具体使用如下:


使用支持shell登录的终端(如fterm或putty), 地址栏输入username@qiran.org:22即可以SSH方式登录至服务器.


常用的crontab命令:


crontab -l 显示所有现存cron job.


crontab -r 删除当前cron jobs.


crontab -e 编辑当前 "crontab file". DH推荐使用nano


注意你的crontab包含所有的cron jobs, 每个cron一行, 断行结尾. 一个正常的cron如下所示:


45 2 * * * /home/user/script.pl


第一个数字是每小时的第几分钟,

第二个数字是每天的第几小时,

第三个数字是每月的第几天,

第四个数字是每年的第几月,

第五个数字是每周的第几天.


使用方式例如:


32 * * * * : 表示每小时的第32分钟.


12,42 * * * * : 表示每小时的第12及第42分钟两次


*/15 */2 * * *: 表示0:00, 0:15, 0:30, 0:45, 2:00, 2:15, 2:30, ...


43 18 * * 7: 表示每个周日的6:43pm运行命令行.

 

在DreamHost下使用nano编辑完文件后,使用ctrl+o保存,ctrl+x退出编辑。

 


4. tar命令

tar命令的使用方法如下:

tar [参数列表] [文件名]

 

参数列表:


-c 生成新的备份,并同时覆盖旧的备份文件

-x 从备份文件中解压缩

-t 列出备份文件内的文件目录

-v 显示所有被操作文件列表

-f 在指定位置生成备份

-u 将不存在于备份中的文件,或将已经被更改的文件加入该备份中。


举例说明:


tar cvf filename.tar /*制作备份*/

tar cvf tarfile.tar ./filename /*将filename的文件备份到tarfile.tar里面*/

tar tvf filename.tar /*列出tar文档的内容*/

tar xvf filename.tar /*从tar文档中导出文件*/

tar zxpvf filename.tar.gz /*从tar.gz文档中导出文件*/

tar zxvf filename.tar.gz /*同上*/

tar xvf tarfile.tar ./filename /*导出tar文件中的单个文件*/

其中最方便快捷的几个命令介绍给大家
压缩与解压
################################
.tar.gz 格式
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
################################
.zip 格式
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
################################
.rar
解压:rar a FileName.rar
压缩:rar e FileName.rar
################################
说明:
filename是指 1,要压缩成的文件名 or 2,正要解压的文件名
dirname是指 你想压缩的目录(文件夹)

BACK TO TOP

Linux/UNIX常用命令速查手册

 

1. 更改档案拥有者


命令 : chown [-cfhvR] [--help] [--version] user[:group] file... 
功能 : 更改文件或者文件夹的拥有者 
参数格式 : 
user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group) 
-c : 若该档案拥有者确实已经更改,才显示其更改动作 
-f : 若该档案拥有者无法被更改也不要显示错误讯息 
-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案 
-v : 显示拥有者变更的详细资料 
-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更) 

例如:chown -R oracle:oinstall /oracle/u01/app/oracle  
更改目录拥有者为oracle 

2. 修改权限 
命令:chmod (change mode) 
功能:改变文件的读写和执行权限。有符号法和八进制数字法。 
选项:(1)符号法: 
命令格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filename 
u (user)   表示用户本人。 
g (group)  表示同组用户。 
o (oher)   表示其他用户。 
a (all)    表示所有用户。 
+          用于给予指定用户的许可权限。 
-          用于取消指定用户的许可权限。 
=          将所许可的权限赋给文件。 
r (read)   读许可,表示可以拷贝该文件或目录的内容。 
w (write)  写许可,表示可以修改该文件或目录的内容。 
x (execute)执行许可,表示可以执行该文件或进入目录。 

(2)八进制数字法:   
命令格式:chmod abc file 
其中a,b,c各为一个八进制数字,分别表示User、Group、及Other的权限。 
4 (100)    表示可读。 
2 (010)    表示可写。 
1 (001)    表示可执行。 
若要rwx属性则4+2+1=7; 
若要rw-属性则4+2=6; 
若要r-x属性则4+1=5。 

例如:# chmod a+rx filename 
让所有用户可以读和执行文件filename。 
# chmod go-rx filename 
取消同组和其他用户的读和执行文件filename的权限。 
# chmod 741 filename 
让本人可读写执行、同组用户可读、其他用户可执行文件filename。 
# chmod -R 755 /home/oracle 
递归更改目录权限,本人可读写执行、同组用户可读可执行、其他用户可读可执行 

3. 修改文件日期 
命令:touch 
格式:touch filenae 
功能:改变文件的日期,不对文件的内容做改动,若文件不存在则建立新文件。 
例如:% touch file 

4. 链接文件 
命令:ln (link) 
格式:ln [option] filename linkname 
ln [option] directory pathname 
功能:为文件或目录建立一个链。其中,filename和directory是源文件名和 
源目录名;linkname和pathname分别表示与源文件或源目录名相链接的 
文件或目录。 
选项:-s  为文件或目录建立符号链接。不加-s表示为文件或目录建立硬链接 
注释:链接的目地在于,对一个文件或目录赋予两个以上的名字,使其可以出 
现在不同的目录中,既可以使文件或目录共享,又可以节省磁盘空间。 
例如:% ln -s filename linkname 

5. 显示日期 
命令:date 
例如:% date 

6. 显示日历 
命令:cal (calendar) 
格式:cal [month] year 
功能:显示某年内指定的日历 
例如:% cal 1998  

7. 显示文件头部 
命令:head 
格式:head [option] filename 
功能:显示文件的头部 
选项:缺省  显示文件的头10行。 
-i    显示文件的开始 i行。 
例如:% head filename 

8. 显示文件尾部 
命令:tail 
格式:tail [option] filename 
功能:显示文件的尾部 
选项:缺省  显示文件的末10行。 
-i    显示文件最后 i行。 
+i    从文件的第i行开始显示。 
例如:% tail filename 

9. 显示用户标识 
命令:id 
格式:id [option] [user] 
功能:显示用户标识及用户所属的所有组。 
选项:-a 显示用户名、用户标识及用户所属的所有组 
注释: 
例如:% id username 

10. 查看当前登录的用户 
命令:users 

11. 显示都谁登录到机器上 
命令:who 
格式:who 
功能:显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。 
例如:% who 

12. 显示当前终端上的用户名 
命令:whoami 
格式:whoami 
功能:显示出当前终端上使用的用户。 
例如:% whoami 

13. 寻找文件 
命令:find 
格式:find pathname [option] expression 
功能:在所给的路经名下寻找符合表达式相匹配的文件。 
选项:-name     表示文件名 
-user     用户名,选取该用户所属的文件 
-size     按大小查找,以block为单位,一个block是512B 
-mtime n  按最后一次修改时间查找,选取n天内被修改的文件 
-perm     按权限查找 
-type     按文件类型查找 
-atime    按最后一次访问时间查找 

例如:% find ./ -name '*abc*' -print 

14. 搜索文件中匹配符 
命令:grep 
格式:grep [option] pattern filenames 
功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。 
选项:-i    匹配时忽略大小写 
-v 找出模式失配的行 

例如:% grep -i 'java*' ./test/run.sh 

15. 统计文件字数 
命令:wc [option] filename 
功能:统计文件中的文件行数、字数和字符数。 
选项:-l 统计文件的行数 
-w 统计文件的单词数 
-c 统计文件的字符数 
注释:若缺省文件名则指标准输入 
例如:% wc -c ./test/run.sh 

16. 显示磁盘空间 
命令:df (disk free) 
格式:df [option] 
功能:显示磁盘空间的使用情况,包括文件系统安装的目录名、块设备名、总 
字节数、已用字节数、剩余字节数占用百分比。 
选项: 
-a:显示全部的档案系统和各分割区的磁盘使用情形 
-i:显示i -nodes的使用量 
-k:大小用k来表示 (默认值) 
-t:显示某一个档案系统的所有分割区磁盘使用量 
-x:显示不是某一个档案系统的所有分割区磁盘使用量 
-T:显示每个分割区所属的档案系统名称 
-h: 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。 
注释: 
例如:% df -hi 

17. 查询档案或目录的磁盘使用空间 
命令:du (disk usage) 
格式:du [option] [filename] 
功能:以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小 
选项: 
-a:显示全部目录和其次目录下的每个档案所占的磁盘空间 
-b:大小用bytes来表示 (默认值为k bytes) 
-c:最后再加上总计 (默认值) 
-s:只显示各档案大小的总合 
-x:只计算同属同一个档案系统的档案 
-L:计算所有的档案大小 
-h: 表示档案系统大小使用 GB、MB 等易读的格式。 
例如:% du -a 
% du -sh /etc 只显示该目录的总合 
% du /etc | sort -nr | more 统计结果用sort 指令进行排序, 
sort 的参数 -nr 表示要以数字排序法进行反向排序。 

18. 显示进程 
命令:ps 
格式:ps [option] 
功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。 
选项: 
-a 显示所有进程信息 
-U uidlist 列出这个用户的所有进程 
-e 显示当前运行的每一个进程信息 
-f 显示一个完整的列表 
-x 显示包括没有终端控制的进程状况 。 
注释: 
例如:% ps -ef 
% ps -aux 然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。 

19. 终止进程 
命令:kill 
格式:kill [option] pid 
功能:向指定的进程送信号或终止进程。kill指令的用途是送一个signal给某一个process, 
因为大部份送的都是用来杀掉 process 的 SIGKILL 或 SIGHUP ,因此称为 kill  
选项:-9  强行终止进程 
注释:pid标示进程号,可由ps命令得到。 
例如:% kill -9 pid 
你也可以用 kill -l 来察看可代替 signal 号码的数目字。kill 的详细情形请参阅 man kill。 

20. 查看自己的IP地址 
命令:ifconfig 
格式:ifconfig -a 

21. 查看路由表 
命令:netstat 
格式:netstat -rn 

22. 远程登录 
命令:telnet 
格式:telnet hostname 

23. 文件传输 
命令:ftp (file transfer program) 
格式:ftp hostname 
功能:网络文件传输及远程操作。 
选项:ftp命令: 
cd [dirname]  进入远程机的目录 
lcd [dirname] 设置本地机的目录 
dir/ls        显示远程的目录文件 
bin           以二进制方式进行传输 
asc           以文本文件方式进行传输 
get/mget      从远程机取一个或多个文件 
put/mput      向远程机送一个或多个文件 
prompt        打开或关闭多个文件传送时的交互提示 
close         关闭与远程机的连接 
quit          退出ftp 
!/exit ftp登陆状态下,!表示暂时退出ftp状态回到本地目录,exit表示返回ftp状态 
注释: 
例如:% ftp hostname 

24. 查看自己的电子邮件 
命令:mailx 
格式:mailx 
选项: 
delete  删除 
next    下一个 
quit    退出 
reply   回复    

25. 回忆命令 
命令:history 
格式:history 
功能:帮助用户回忆执行过的命令。 
选项: 
注释: 
例如:% history 

26. 网上对话 
命令:talk 
格式:talk username 
功能:在网上与另一用户进行对话。 
选项: 
注释:对话时系统把终端分为上下两部分,上半部显示自己键入信息,下半部 
显示对方用户键入的信息。键入delete或Ctrl+C则结束对话。 
例如:% talk username 

27. 允许或拒绝接受信息 
命令:mesg (message) 
格式:mesg [n/y] 
功能:允许或拒绝其它用户向自己所用的终端发送信息。 
选项:n 拒绝其它用户向自己所用的终端写信息 
y 允许其它用户向自己所用的终端写信息(缺省值) 
注释: 
例如:% mesg n 

28. 给其他用户写信息 
命令:write 
格式:write username [ttyname] 
功能:给其他用户的终端写信息。 
选项: 
注释:若对方没有拒绝,两用户可进行交谈,键入EOF或Ctrl+C则结束对话。 
例如:write username 

29. 创建、修改、删除用户和群组 
a. 创建群组: 
例如: groupadd oinstall    创建群组名为oinstall的组 
groupadd -g 344 dba  
创建组号是344的组,此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。 
b. 修改群组: 
groupmod:该命令用于改变用户组帐号的属性 
groupmod –g 新的GID 用户组帐号名 
groupmod –n 新组名 原组名:此命令由于改变用户组的名称 

c. 删除群组: 
groupdel 组名:该命令用于删除指定的组帐号 

d. 新建用户: 
命令: useradd [-d home] [-s shell] [-c comment] [-m [-k template]] 
[-f inactive] [-e expire ] [-p passwd] [-r] name 
主要参数 
-c:加上备注文字,备注文字保存在passwd的备注栏中。  
-d:指定用户登入时的启始目录。 
-D:变更预设值。 
-e:指定账号的有效期限,缺省表示永久有效。 
-f:指定在密码过期后多少天即关闭该账号。 
-g:指定用户所属的群组。 
-G:指定用户所属的附加群组。 
-m:自动建立用户的登入目录。 
-M:不要自动建立用户的登入目录。 
-n:取消建立以用户名称为名的群组。 
-r:建立系统账号。 
-s:指定用户登入后所使用的shell。 
-u:指定用户ID号。 

举例: # useradd -g oinstall -G dba oracle  创建Oracle用户 

e. 删除用户 
命令: userdel 用户名 
删除指定的用户帐号 
userdel –r 用户名(userdel 用户名;rm 用户名):删除指定的用户帐号及宿主目录 
例:#useradd -g root kkk //把kkk用户加入root组里 

f. 修改用户 
命令: usermod
修改已有用户的信息 
usermod –l 旧用户名 新用户名: 修改用户名 
usermod –L 用户名: 用于锁定指定用户账号,使其不能登陆系统 
usermod –U 用户名: 对锁定的用户帐号进行解锁 
passwd –d 用户名: 使帐号无口令,即用户不需要口令就能登录系统 
例:#usermod -l user2 user1 //把用户user2改名为user1 

30. 启动、关闭防火墙 
永久打开或则关闭 
chkconfig iptables on 
chkconfig iptables off 
即时生效:重启后还原 
service iptables start 
service iptables stop 
或者: 
/etc/init.d/iptables start 
/etc/init.d/iptables stop 

31. 启动VSFTP服务 
即时启动: /etc/init.d/vsftpd start 
即时停止: /etc/init.d/vsftpd stop 

开机默认VSFTP服务自动启动: 
方法一:(常用\方便) 
[root@localhost etc]# chkconfig --list|grep vsftpd ( 查看情况) 
vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off 
[root@localhost etc]# chkconfig vsftpd on  (执行ON设置) 
或者:方法二: 
修改文件 /etc/rc.local , 把行/usr/local/sbin/vsftpd & 插入文件中,以实现开机自动启动。 

32. vi技巧 
a. 进入输入模式 
新增 (append) 
a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。 
A:从光标所在列最後面的地方开始新增资料。 

插入 (insert) 
i:从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。 
I :从光标所在列的第一个非空白字元前面开始插入资料。 

开始 (open) 
o :在光标所在列下新增一列并进入输入模式。 
O: 在光标所在列上方新增一列并进入输入模式。 
b. 退出vi 
在指令模式下键入:q,:q!,:wq或:x(注意:号),就会退出vi。其中:wq和:x是存盘退出,而:q是直接退出,如果文件已有新的变化,vi会提示你保存文件而:q命令也会失效,这时你可以用:w命令保存文件后再用:q 退出,或用:wq或:x命令退出,如果你不想保存改变后的文件,你就需要用:q!命令,这个命令将不保存文件而直接退出vi。 

c. 删除与修改文件的命令: 
x:删除光标所在字符。 
dd :删除光标所在的列。 
r :修改光标所在字元,r 後接著要修正的字符。 
R:进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。 
s:删除光标所在字元,并进入输入模式。 
S:删除光标所在的列,并进入输入模式。 

d. 屏幕翻滚类命令 
Ctrl+u: 向文件首翻半屏 
Ctrl+d: 向文件尾翻半屏 
Ctrl+f: 向文件尾翻一屏 
Ctrl+b: 向文件首翻一屏 
nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。 

e. 删除命令 
ndw或ndW: 删除光标处开始及其后的n-1个字 
do: 删至行首 
d$: 删至行尾 
ndd: 删除当前行及其后n-1行 
x或X: 删除一个字符,x删除光标后的,而X删除光标前的 
Ctrl+u: 删除输入方式下所输入的文本 

f. 搜索及替换命令 
/pattern: 从光标开始处向文件尾搜索pattern 
?pattern: 从光标开始处向文件首搜索pattern 
n: 在同一方向重复上一次搜索命令 
N: 在反方向上重复上一次搜索命令 
:s/p1/p2/g: 将当前行中所有p1均用p2替代 
:n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代 
:g/p1/s//p2/g: 将文件中所有p1均用p2替换 

g. 复制,黏贴 
(1) 选定文本块,使用v进入可视模式;移动光标键选定内容 
(2) 复制选定块到缓冲区,用y;复制整行,用yy 
(3) 剪切选定块到缓冲区,用d;剪切整行用dd 
(4) 粘贴缓冲区中的内容,用p 

h. 其他 
在同一编辑窗打开第二个文件,用:sp [filename] 
在多个编辑文件之间切换,用Ctrl+w

BACK TO TOP

Vi编辑器完全使用手册

 

一、Unix编辑器概述

编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件。Unix及其相似的ix操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列的ex编辑器,包括 ex, edit,ed 和vi.其中ex,edit,ed都是行编辑器,现在已很少有人使用,Unix提供他们的原因是考虑到满足各种用户特别是某些终端用户的需要。

值得庆幸的是,Unix提供了全屏幕的Vi编辑器,这使我们的工作轻松不少。不少DOS用户抱怨Vi编辑器不象DOS下的编辑器如edit那么好用,这是因为Vi考虑到各种用户的需要,没有使用某些通用的编辑键(在各个不同的终端机上他们的定义是不同的,在某些终端机上甚至没有这些键)。而是采用状态切换的方法,但这只是习惯的问题,一旦你熟练的使用上了vi你就会觉得它其实也很好用。

虽然 Vi采用了状态切换的方法,但电脑的硬件及操作系统多种多样,某些电脑的键盘上没有特定的几个功能键!那麽不就有某些功能不能用了?这个问题在 Unix 系统上也一样,几乎各大电脑厂商都有自己的

Unix 系统,而 vi 的操作方法也会随之有点出入。这里我们采用 PC 的键盘来说明 vi 的操作,但在具体的环境中还要参考相应的资料,这一点是值得注意的。

二、Vi入门

(一)、进入vi

在系统提示字符(如$、#)下敲入vi <档案名称>,vi 可以自动帮你载入所要编辑的文件或是开启一个新文件(如果该文件不存在或缺少文件名)。进入 vi 后萤幕左方会出现波浪符号,凡是列首有该符号就代表此列目前是空的。

(二)、两种模式

如上所述,vi存在两种模式:指令模式和输入模式。在指令模式下输入的按键将做为指令来处理:如输入a,vi即认为是在当前位置插入字符。而在输入模式下,vi则把输入的按键当作插入的字符来处理。指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入ESC键,如果不晓得现在是处於什麽模式,可以多按几次 [ESC],系统如发出哔哔声就表示已处于指令模式下了。

附:有指令模式进入输入模式的指令:

新增 (append)

a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。

A: 从光标所在列最後面的地方开始新增资料。

插入 (insert)

i: 从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。

I :从光标所在列的第一个非空白字元前面开始插入资料。

开始 (open)

o :在光标所在列下新增一列并进入输入模式。

O: 在光标所在列上方新增一列并进入输入模式。

(三)、退出vi

在指令模式下键入:q,:q!,:wq或:x(注意:号),就会退出vi。其中:wq和:x是存盘退出,而:q是直接退出,

如果文件已有新的变化,vi会提示你保存文件而:q命令也会失效,这时你可以用:w命令保存文件后再用:q退出,或用:wq或:x命令退出,如果你不想保存改变后的文件,你就需要用:q!命令,这个命令将不保存文件而直接退出vi。

(四)、基本编辑

配合一般键盘上的功能键,像是方向键、[Insert] 、[Delete] 等等,现在你应该已经可以利用 vi 来编辑文件了。当然 vi 还提供其他许许多多功能让文字的处理更为方便。何谓编辑?一般认为是文字的新增、修改以及删除,甚至包括文字区块的搬移、复制等等。先这里介绍 vi的如何做删除与修改。(注意:在 vi 的原始观念里,输入跟编辑是两码子事。编辑是在指令模式下操作的,先利用指令移动光标来定位要进行编辑的地方,然後才下指令做编辑。)删除与修改文件的命令:

x: 删除光标所在字符。
dd :删除光标所在的列。
r :修改光标所在字元,r 後接著要修正的字符。
R: 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。
s: 删除光标所在字元,并进入输入模式。
S: 删除光标所在的列,并进入输入模式。

其实呢,在PC上根本没有这麽麻烦!输入跟编辑都可以在输入模式下完成。例如要删除字元,直接按 [Delete] 不就得了。而插入状态与取代状态可以直接用 [Insert] 切换,犯不著用什麽指令模式的编辑指令。不过就如前面所提到的,这些指令几乎是每台终端机都能用,而不是仅仅在 PC 上。在指令模式下移动光标的基本指令是 h, j, k, l 。想来各位现在也应该能猜到只要直接用 PC 的方向键就可以了,而且无论在指令模式或输入模式下都可以。多容易不是。当然 PC 键盘也有不足之处。有个很好用的指令 u 可以恢复被删除的文字,而 U 指令则可以恢复光标所在列的所有改变。这与某些电脑上的 [Undo] 按键功能相同。

三、附件:vi详细指令表

(一)、基本编辑指令:

新增 (append)

a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。
A: 从光标所在列最後面的地方开始新增资料。

插入 (insert)

i: 从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。
I :从光标所在列的第一个非空白字元前面开始插入资料。

开始 (open)

o :在光标所在列下新增一列并进入输入模式。
O: 在光标所在列上方新增一列并进入输入模式。

x: 删除光标所在字符。

dd :删除光标所在的列。

r :修改光标所在字元,r 後接著要修正的字符。

R: 进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。

s: 删除光标所在字元,并进入输入模式。

S: 删除光标所在的列,并进入输入模式。

(二)、光标移动指令:

由於许多编辑工作是藉由光标来定位,所以 vi 提供许多移动光标的方式,这个我们列几张简表来说明(这些当然是指令模式下的指令):

指令?nbsp;?得?nbsp;           ??? 功能键
0 移动到光标所在列的最前面  [Home]?nbsp;
$     ?nbsp;移动到光标所在列的最後面 [End]
[CTRL][d] 向下半页         ?nbsp;[PageDown]
[CTRL][f] 向下一页
[CTRL][u] 向上半页?nbsp;
[CTRL][b] 向上一页          [PageUp]

指令 说明
H 移动到视窗的第一列
M 移动到视窗的中间列
L 移动到视窗的最後列
b 移动到下个字的第一个字母
w 移动到上个字的第一个字母     ?
e 移动到下个字的最後一个字母
^ 移动到光标所在列的第一个非空白字元

指令 说明                 ??nbsp;
n- 减号移动到上一列的第一个非空白字元前面加上数字可以指定移动到以上 n 列
n+ 加号移动到下一列的第一个非空白字元前面加上数字可以指定移动到以下 n 列
nG 直接用数字 n 加上大写 G 移动到第 n 列
指令 说明
fx
往右移动到 x 字元上
Fx 往左移动到 x 字元上      ?nbsp;
tx 往右移动到 x 字元前??nbsp;
Tx    往左移动到 x 字元前
;    配合 f&t 使用,重复一次?
,? 配合 f&t 使用,反方向重复一次
/string 往右移动到有 string 的地方
?string 往左移动到有 string 的地方
n    ?nbsp;配合 /&? 使用,重复一次
N    ?nbsp;配合 /&? 使用,反方向重复一次

指令 说明 ?缸?nbsp;
n(
左括号移动到句子的最前面句子是以前面加上数字可以指定往前移动 n 个句子 ! . ? 三种符号来界定
n)?nbsp;右括号移动到下个句子的最前面前面加上数字可以指定往後移动 n 个句子 ! . ? 三种符号来界定
n{   ? 左括弧移动到段落的最前面 段落是以段落间的空白列界定
n} 前面加上数字可以指定往前移动 n 个段落右括弧移动到下个段落的最前面前面加上数字可以指定往後移动 n 个段落 段落是以段落间的空白列界定

(三)、更多的编辑指令

这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。例如 dw 是由删除指令 d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。

指令列表如下:
d 删除(delete)
y 复制(yank)
p 放置(put)
c 修改(change)
范围可以是下列几个:
e 光标所在位置到该字的最後一个字母
w 光标所在位置到下个字的第一个字母
b 光标所在位置到上个字的第一个字母
$ 光标所在位置到该列的最後一个字母
0 光标所在位置到该列的第一个字母
) 光标所在位置到下个句子的第一个字母
( 光标所在位置到该句子的第一个字母
} 光标所在位置到该段落的最後一个字母
{ 光标所在位置到该段落的第一个字母

说实在的,组合这些指令来编辑文件有一点点艺术气息。不管怎麽样,它们提供更多编辑文字的能力。值得注意的一点是删除与复制都会将指定范围的内容放到暂存区里,然後就可以用指令 p 贴到其它地方去,这是 vi 用来处理区段拷贝与搬移的办法。

某些 vi 版本,例如 Linux 所用的 elvis 可以大幅简化这一坨指令。如果稍微观察一下这些编辑指令就会发现问题其实是定范围的方式有点杂,实际上只有四个指令罢了。指令 v 非常好用,只要按下 v 键,光标所在的位置就会反白,然後就可以移动光标来设定范围,接著再直接下指令进行编辑即可。对於整列操作, vi 另外提供了更方便的编辑指令。前面曾经提到过删除整列文字的指令 dd 就是其中一个;cc 可以修改整列文字;而 yy 则是复制整列文字;指令 D 则可以删除光标到该列结束为止所有的文字。

(四)、文件操作指令

文件操作指令多以 : 开头,这跟编辑指令有点区别。

:q 结束编辑(quit)
:q! 不存档而要放弃编辑过的文件。
:w 保存文件(write)其後可加所要存档的档名。
:wq 即存档後离开。
zz 功能与 :wq 相同。
:x 与:wq相同

BACK TO TOP

 

Buildout — Presentation Transcript

  • 1. Buildout 是什么? Buildout 是一个基于 python 的 build 系统 从多个零件(parts),创建,组装和部署复杂的应用 创建一个 buildout 的配置文件,能在以后重建相同的软件 Create by Jim Fulton of Zope Corporation

  • 2. 我们能用buildout做什么? 依赖管理 建立一个开发环境 部署一个应用 管理一个复杂的项目

  • 3. 怎样开始? 安装 zc.buildout - 只有一个依赖:setuptools - 可以直接 easy_install zc.buildout - 或在项目目录里下载 bootstrap.py 执行 python boostrap.py

  • 4. distutils: - 发布 python 模块 - 安装 python 模块 setuptools: - 增强了 distutils 的功能 - 简化了 setup.py 脚本中的内容 - 最大的优势是它的包管理能力,自动下载安装相关依赖 zc.buildout: - 通过一个配置文件 buildout.cfg 使用 setuptools 来完成包和相关的依赖下载安装

  • 5. 理解 buildout.cfg [buildout] - 是整个配置文件的全局配置段 - 列出哪些要分别独立安装的part,每一个part 与一个 recipe 关联 - parts – 按指定的顺序依次运行各个part - eggs – 为当前项目下载和安装的 egg 列表 - 可以指定版本: reportlab >= 2.3, < 2.4

  • 6. - find-links – 增加一个搜索,下载 egg 的 url – 可以增加一个全路径的URL, 如,pisa find-links = http://download.zopen.cn/pypi/pisa-3.0.33.tar.gz - develop – 针对没有发布的egg – 有些egg 的名称仍然要在part里的eggs列表里列出

  • 7. - extends 和 version – extends 引用一个网络文件或是本地文件添加额外的依赖 – versions 指定依赖的版本

  • 8. 介绍下app part 1 Recipe = zc.recipe.egg – 使用 zc.recipe.egg Eggs = Zopen.frs.model –告诉zc.buildout要装这些 egg Extra-paths = ${xapian:location}/lib/python – 额外要加入 sys.path 里的路径 – ${xapian:localtion} 这表示名叫 xapian 的 part 路径 (parts/xapian/) – ${buildout:directory} 当前 buildout.cfg 所在 的目录

  • 9. Executable – 指定一个python解释器,而不是当前系统 的默认python解释器 Eggs-directory – 指定一个eggs的缓存目录,这可以供几个 buildout 共同使用,节约下载时间和磁盘空间 – 如果在*nix上,也可以在 ~/.buildout/default.cfg 里指定

  • 10. Download-cache – 下载源代码后存放的位置

  • 11. bin下的脚本是如何生成的? Distribution 下的setup.py 文件: setup(name='test', ... entry_points={ 'console_scripts': [ 'script1 = test.module1:main', 'script2 = test.module2:main', … setuptools会根据console_scripts下的内容生成相对应的脚本,上例则会生成 script1 和 script2 的脚本 格式: script_name = package.module:function

  • 12. Buildout 运行参数 -v 更多详细的输出 -q 安静模式 -c 指定一个配置文件,默认是当前目录下的 buildout.cfg -t 下载超时的秒数 -U不要去读取用户home下的配置文件 -o 离线模式, 在buildout.cfg 里也可以配置 offline=true -O非离线模式 -n 永远下载最新的egg版本,等同于buildout 里的 newest=True -N 不要下载最新的 egg 版本 -D 调试选项,通常永远调试一个recipe的错误 命令选项: Install [parts] : 只安装提供的parts Bootstrap : 创建一个新的buildout Init : 初始一个buildout, 如果当前目录下没有buildout.cfg 那么 会自动创建一个 我们最常用的命令选项: binbuildout -Nv

  • 13. 介绍下Buildout的目录结构 1 bootstrap.py - 初始化当前项目的目录 - 从网络安装 zc.buildout 和 setuptools buildout.cfg - 当前项目的 build 配置 .install.cfg - 一个隐藏的文件,显示当前项目的 build 状态 - 如果 buildout.cfg 里修改了某个 parts ,那么 zc.buildout 就会更新该文件

  • 14. 介绍下Buildout的目录结构 2 parts/ - 每一个 part 会在该目录下为它的 recipe 的 使用创建一个保留目录 - 不要手工去修改这个目录下的东西,因为 buildout 会覆盖这些修改 develop-eggs/ - 存放一些软链接,或是一些快捷方式到开发目 录 - 这些目录内容在 buildout.cfg 的 develop = DIRS 指定

  • 15. 介绍下Buildout的目录结构 3 bin/ - 执行脚本的存放位置 - 一些 eggs 的 entrypoints bin/buildout - 调用 zc.buildout bin/mypython - 一个包含所有 parts 的 python 的解释器 - 这个名字使用 interprerter = mypython 指定

  • 16. 介绍下Buildout的目录结构 4 eggs/ - 从网上下载的egg的保存目录 - 这些parts里指定的egg会被映射到sys.path - buildout.cfg: eggs-directory 配置该路径 donwloads/ - 保存从网络上下载的源码包 - buildout.cfg download-cache 配置该路径

  • 17. 一些有用的 recipe zc.recipe.egg: 将egg安装到buildout的eggs缓存目录,如果该egg有执行脚本,那么也会在bin目录下生成相应的脚本 zc.recipe.cmmi: ./configure; make; make install 三步曲 iw.recipe.cmd: 调用外部命令,来完成一个任务 zopen.recipe.pkg: 公司自己写的一个 recipe 适用于 debian 系统,用于 apt 安装一系列软件,依赖 python-apt collective.recipe.modwsgi: 生成供mod_wsgi使用的文件

  • 18. easy_install 参数如何在buildout 里设置 easy_install buildout --install-dir 将egg 安装到哪个目录,默认是 /usr/lib/python2.6/site-pacakes/ eggs-directory --upgrade (-U) 使用最新的版本 Newest = False or True --find-links 用于其它包的索引url Find-links = --always-unzip (-Z) 永远使用解压后的 egg Unzip = True

  • 19. 参考资料 http://www.buildout.org/docs/ http://plone.org/documentation/manual/developer-manual/managing-projects-with-buildout http://peak.telecommunity.com/DevCenter/setuptools http://peak.telecommunity.com/DevCenter/EasyInstall

  • 20. FAQ Any Questions ?

  • BACK TO TOP

 

 
Cron 是UNIX, SOLARIS,LINUX下的一个十分有用的工具。通过Cron脚本能使计划任务定期地在系统后台自动运行。这种计划任务在UNIX, SOLARIS, LINUX下术语为cron jobs。 Crontab (CRON 表)则是用来记录在特定时间运行的CRON的一个脚本文件。
Crontab归结为以下几点特性:
1.      Crontab约束
2.       Crontab命令
3.       Crontab文件语法
4.       Crontab示例
5.       Crontab环境设置
6.      邮件
7.      日志文件
8.      其它
1.      Crontab约束
当用户名记录在文件/usr/lib/cron/cron.allow时,该用户的crontab有效。当/usr/lib/cron /cron.allow 文件不存在时,用户名没被记录在/usr/lib/cron/cron.deny文件中,该用户的crontab也有效。当只存在/usr/lib/cron/cron.deny且为空时,所有的用户都可使用crontab。当前两个文件都不存在时,只有root用户可以使用crontab。 Deny或allow记录以每行一个用户名的形式记录信息。
2.      Crontab 命令
export EDITOR=vi ;为crontab文件指定一个编辑器。
crontab  -e  编辑该用户的crontab,当指定crontab  不存在时新建。
crontab  -l  列出该用户的crontab。
crontab  -r  删除该用户的crontab。
crontab  -u<用户名称>  指定要设定crontab的用户名称。
crontab –v 显示上一次编辑的时间(只在某些操作系统上可用)
3.       Crontab 文件
Crontab语法一个crontab文件用五个段来定义:天,日期和时间,和一个要定期执行的命令代码。
*     *   *   *    *  command to be executed
-     -    -    -    -
|     |     |     |     |
|     |     |     |     +----- day of week (0 - 6) (Sunday=0)
|     |     |     +------- month (1 - 12)
|     |     +--------- day of month (1 - 31)
|     +----------- hour (0 - 23)
+------------- min (0 - 59)
所有的值都必须在相应的范围之内,否则视为无效。在填值区域内可以是*也可以是以”,”分隔的一组值。值可以是一个数据也可以是用连接符连起来的两个数(表示范围)。注:日期的格式可以是星期,也可以是一个月中的天。假如两个都有值,则在这两个时间都会执行。
4. Crontab 实例
下面是crontab文件中的一行,意思是在每天下午6:30中删除临时文件(临时文件存放在/home/someuser/tmp)。 30     18     *     *     *         rm /home/someuser/tmp/*
以下我们改变参数的值使其在不同的时间运行:如下表
min
hour
day/month
month
day/week
Execution time
30
0
1
1,6,12
*
-- 00:30 Hrs  on 1st of Jan, June & Dec.
:
0
20
*
10
1-5
--8.00 PM every weekday (Mon-Fri) only in Oct.
:
0
0
1,10,15
*
*
-- midnight on 1st ,10th & 15th of month
:
5,10
0
10
*
1
-- At 12.05,12.10 every Monday & on 10th of every month
:
注:要是无意间键入了没带参数的crontab 命令,别Control-d退出,这样会删掉所有的cronjob。 应该Control-c退出.
5. Crontab 环境设置
Cron其实是在shell(/usr/bin/sh).后台引用用户程序的命令。
Cron默认的shell环境是:
HOME=user's-home-directory
LOGNAME=user's-login-id
PATH=/usr/bin:/usr/sbin:.
SHELL=/usr/bin/sh
用户希望自己的配置文件在表或者脚本的入口直接执行。
6. 禁用邮件默认的cronjobs在执行任务时会给用户发一封邮件。如果您不需要的话可以通过以下命令关闭。 >/dev/null 2>&1
7.    生成日志文件保存cronjobs日志只需作如下设置就可以
30 18  *    *   *    rm /home/someuser/tmp/* > /home/someuser/cronlogs/clean_tmp_dir.log “/home/someuser/cronlogs/clean_tmp_dir.log”为日志文件保存的绝对路径
 

Handy crontab buildout recipe

Tags: GROKPLONETHEHEALTHAGENCYBUILDOUT

I've recently discovered a handy buildout recipe for maintaining your user's crontab:z3c.recipe.usercrontab (made by two of my colleagues). It is intended to add/remove entries to your user's crontab, not to maintain the system-wide /etc/crontab.d/*.

So for the obvious `@reboot` entry you'd add something like the following to your buildout:

  [buildout]
  ...
  parts = ... crontab

  [crontab]
  recipe = z3c.recipe.usercrontab
  times = @reboot
  command = ${buildout:directory}/bin/instance start

 

You can have multiple crontab parts in one buildout and you can have multiple buildouts writing to the same crontab. No problem at all. Existing entries are also preserved. Works like a charm.

 
 
 
 
  • zeo Filestorage add connect and pack

    ZEO Server默认只包括一个名字为“1”的FileStorage,存放在ZEO服务器的 ``var/Data.fs`` 文件中::
    
     <filestorage 1>
       path $INSTANCE/var/Data.fs
     </filestorage>
     
    也可让ZEO服务器使用多个Storage,比如可再添加名字为plone的Storage::
    
     <filestorage plone>
       path $INSTANCE/var/plone.fs
     </filestorage>
     
    之后,在Zope服务器的zope.conf配置文件中,可增加一个zeoclientstorage的zodb配置,连接到这个名字为plone的storage,如下::
    
     <zodb_db plone>
       mount-point /plone
       cache-size 5000
       <zeoclient>
         server localhost:9000
         storage plone
         name plone
         var $INSTANCE/var
         cache-size 200MB
       </zeoclient>
     </zodb_db>
    
    当然,和前面一样,还需要在Zope的ZMI界面中,添加 Zope Mount Point ,手工加载这个storage才能使用。
    
    挤压(pack)ZEO数据库
    -----------------------
    ZODB数据库默认会保留整个操作历史,如果不进行定期挤压(pack),数据库将不断增大。
    
    前面我们介绍在ZMI中可对数据库进行挤压操作。但是这个操作会对当前运行的站点的性能造成很大的影响,而且不方便在后台自动运行。
    
    对ZEO部署的数据库,Zope提供了一个脚本,可使用一个独立的进程对数据库进行挤压(pack)操作,可避免对运行站点的影响,也很方便编写自动执行的脚本。
    
    这个脚本是Zope安装程序下的 ``bin/zeopack.py`` 文件。
    比如,挤压本机9000端口运行的ZEO Server上的名字为plone的storage,仅仅保留最近一周(7天)的历史数据::
    
     python zeopack.py -p 9000 -h localhost -S plone -d 7
    
    如果使用unix域套接字(Unix-domain socket),则应该这样执行::
    
     python zeopack.py -U /path/to/zeo/var/zeo.sock -h localhost -S plone -d 7
    

    cp blobstorage filefolder

    The following worked perfectly for me: 

    1) file/folder to be duplicated: 
    tar -cvpzf blobstorage.tar.gz blobstorage 

    2) destination file/folder for copy 
    tar -xzf blobstorage.tar.gz