rm -rf mydir           /* 递归删除mydir目录,包括下面所有文件内容 */

cd mydir                /* 进入mydir目录 */

cd –                       /* 回上一级目录 */

cd ~                      /* 回根目录 */

mv tools tool        /* 把tools目录改名为tool */

cp -a tool /home/leavex/www                   /* 把tool目录下所有文件复制到www目录下 */

rm go.tar                                                    /* 删除go.tar文件 */

find mt.cgi                                                 /* 查找文件名为mt.cgi的文件 */

df –h                                                          /* 查看磁盘剩余空间,好像没这个必要,除非你太那个了 */

tar xvf wordpress.tar                                 /* 解压tar格式的文件 */

tar -tvf myfile.tar                                       /* 查看tar文件中包含的文件 */

gzip -d ge.tar.gz                                       /* 解压.tar.gz文件为.tar文件 */

unzip myzip.zip                                        /* 解压zip文件到当前目录*/

unzip -n myzip.zip -d /home/zip             /*myzip.zip文件在/home/zip目录中进行解压,如有相同的文件则并不覆盖原文件*/

unzip -v myzip                                        /*查看myzip文件中的内容,而不会解压*/

upzip命令选项参考:

unzip命令的选项 参数说明
-v 查看文件目录列表,但不解压
-d 将文件解压到指定目录中
-n 不覆盖原来已经存在的文件
-o 覆盖已存在的文件并且不需要用户确认

tar cf toole.tar tool                                /* 把tool目录打包为toole.tar文件 */

tar cfz geek.tar.gz tool                        /* 把tool目录打包且压缩为geek.tar.gz文件,因为.tar文件几乎是没有压缩过的,MT的.tar.gz文件解压成.tar文件后差不多是10MB */

tar 命令参考手册:

参数:

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!

特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。

-z :是否同时具有 gzip 的属性,亦即是否需要用 gzip 压缩.

-j :是否同时具有 bzip2 的属性,亦即是否需要用 bzip2 压缩.

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!

-p :使用原文件的原来属性(属性不会依据使用者而变)

-P :可以使用绝对路径来压缩!

-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

–exclude FILE:在压缩的过程中,不要将 FILE 打包!

范例:

范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar

tar -cvf /tmp/etc.tar /etc              /*仅打包,不压缩!*/

tar -zcvf /tmp/etc.tar.gz /etc       /*打包后,以 gzip 压缩*/

tar -jcvf /tmp/etc.tar.bz2 /etc     /*打包后,以 bzip2 压缩*/

特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~

如果加 j 参数,则以 .tar.bz2 来作为附档名啊~

上述指令在执行的时候,会显示一个警告讯息:

『tar: Removing leading `/” from member names』那是关於绝对路径的特殊设定。

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?

tar -ztvf /tmp/etc.tar.gz

# 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,

# 就得要加上 z 这个参数了!这很重要的!

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下

cd /usr/local/src

tar -zxvf /tmp/etc.tar.gz

# 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,

# 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,

# 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc

# 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已

cd /tmp

tar -zxvf /tmp/etc.tar.gz etc/passwd

# 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,

# 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!

tar -zxvpf /tmp/etc.tar.gz /etc

# 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份

tar -N “2005/06/01″ -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai

tar –exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!

cd /tmp

tar -cvf – /etc | tar -xvf -

# 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!

# 要注意的地方在於输出档变成 – 而输入档也变成 – ,又有一个 | 存在~

# 这分别代表 standard output, standard input 与管线命令啦!

# 这部分我们会在 Bash shell 时,再次提到这个指令跟大家再解释啰!

wget http://www.sevenapart.com/download/wp.tar.gz

/*下载远程服务器上的文件到自己的服务器,连上传都省了,服务器不是100M就是1000M的带宽,下载一个2-3兆的MT还不是几十秒的事 */

wget -c http://www.eightapart.com/undone.zip
/* 继续下载上次未下载完的文件 */

还有一些是VIM里要用到的,也罗列出来吧!

移动类的:

h/j/k/l: 左/下/上/右 移一格
w : 向后词移动 (前面加数字移动多少个词)
b : 向前词移动 (前面加数字移动多少个词)
e : 向后移到词末
ge : 向前移到词末
$ : 行末
0 : 行首
tx : 向右查找本行的x并移到那儿(大写时向左)
33G : 移到文件的第33行
gg : 文件首行
G : 文件尾行
33% : 文件的33%处
H/M/L : 屏幕的首/中/尾行

zt/zz/zb : 当前行移到屏幕的首/中/底部

跳转:

” : 回到跳转来的地方
CTRL-O : 跳到一个 “较老” 的地方
CTRL-I : 则跳到一个 “较新” 的地方

查找:

/ : 向下查找(后加关键字)
? : 向上查找(后加关键字)
n : 下一条符合的记录

编辑:

i : 转换到插入模式
x : 删除当前字符
. : 重复最后一次的修改操作(同PS里ctrl+f执行滤镜)
u : 撤销操作
CTRL-R : 重做
p : 将删除的字符插入到当前位置(put)

退出保存:

:q : 退出
:q! : 不保存退出
ZZ : 保存后退出
:e! : 放弃修改重新编辑

退出SSH后,继续运行!

#nohup wget http://www.phpv.net/file.tar.gz &

wget是一个Linux环境下用于从World Wide Web上提取文件的工具,这是一个GPL许可证下的自由软件,其作者为Hrvoje Niksic .

wget支持HTTP和FTP协议,支持代理服务器和断点续传功能,能够自动递归远程主机的目录,找到合乎条件的文件并将其下载到本地硬盘上;如果必要,wget将恰当地转换页面中的超级连接以在本地生成可浏览的镜像。由于没有交互式界面,wget可在后台运行,截获并忽略HANGUP信号,因此在用户推出登录以后,仍可继续运行。

通常,wget用于成批量地下载Internet网站上的文件,或制作远程网站的镜像。

语法:

wget [options] [URL-list]
URL地址格式说明:可以使用如下格式的URL:

http://host[:port]/path

例如:

http://fly.cc.fer.hr/

ftp://ftp.xemacs.org/pub/xemacs/xemacs-19.14.tar.gz

ftp://username:password@host/dir/file

在最后一种形式中,以URL编码形式为FTP主机提供了用户名和密码(当然,也可以使用参数提供该信息,见后)。

参数说明:

wget的参数较多,但大部分应用只需要如下几个常用的参数:

-r 递归;

对于HTTP主机,wget首先下载URL指定的文件,然后(如果该文件是一个HTML文档的话)递归下载该文件所引用(超级连接)的所有文件(递归深度由参数-l指定)。对FTP主机,该参数意味着要下载URL指定的目录中的所有文件,递归方法与HTTP主机类似。

-N 时间戳:

该参数指定wget只下载更新的文件,也就是说,与本地目录中的对应文件的长度和最后修改日期一样的文件将不被下载。

-m 镜像:相当于同时使用-r和-N参数。

-l 设置递归级数;默认为5。-l1相当于不递归;-l0为无穷递归;注意,当递归深度增加时,文件数量将呈指数级增长。

-t 设置重试次数。当连接中断(或超时)时,wget将试图重新连接。如果指定-t0,则重试次数设为无穷多。

-c 指定断点续传功能。实际上,wget默认具有断点续传功能,只有当你使用别的ftp工具下载了某一文件的一部分,并希望wget接着完成此工作的时候,才需要指定此参数。

使用举例:
wget -m -l4 -t0 http://oneweb.com.cn/
将在本地硬盘建立http://oneweb.com.cn/的镜像,镜像文件存入当前目录下一个名为oneweb.com.cn的子目录中(你也可以使用-nH参数指定不建立该子目录,而直接在当前目录下建立镜像的目录结构),递归深度为4,重试次数为无穷(若连接出现问题,wget将坚韧不拔地永远重试下去,知道任务完成!)

另外一些使用频率稍低的参数如下:
-A acclist / -R rejlist:
这两个参数用于指定wget接受或排除的文件扩展名,多个名称之间用逗号隔开。例如,假设我们不想下载MPEG视频影像文件和.AU声音文件,可使用如下参数:
-R mpg,mpeg,au

其它参数还有:
-L 只扩展相对连接,该参数对于抓取指定站点很有用,可以避免向宿主主机的其他目录扩散。例如,某个人网站地址为:http://www.xys.org/~ppfl/,使用如下命令行:
wget -L http://www.xys.org/~ppfl/
则只提取该个人网站,而不涉及主机www.xys.org上的其他目录。

-k 转换连接:HTML文件存盘时,将其中的非相对连接转换成为相对连接。

-X 在下载FTP主机上的文件时,排除若干指定的目录

另外,下面参数用于设置wget的工作界面:

-v 设置wget输出详细的工作信息。
-q 设置wget不输出任何信息。

如果我们已经在一个HTML文档(或普通文本文档)中存储了所要提取的文件的连接,可以让wget直接从该文件中提取信息,而不用在命令行中提供URL地址,参数格式为:

-i filename

地址文件也可以不是HTML文档,例如,一个普通的文本文件,其中有需要下载的URL列表即可。

我们可以用以下技巧提高下载速度:由于Linux是一个多任务系统,我们可以同时运行多个wget进程以提高下载速度,例如,先下载某主页文件(index.html),然后将该文件所列出的所有地址分别用一个独立的wget进程进行下载。

至于其他的参数,可参考wget的man手册页,命令为:
man wget

DreamHost中shell使用指南

1. Basic Instructions基本操作命令
通常来说,使用”$[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 拷贝:

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

-mv 重命名或移动

[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), 地址栏输入 [email protected]: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文件中的单个文件*/

5. vi编辑器
Linux下很易用的一种编辑器,只需要稍微知道几个指令即可应用。

打开vi:

vi [filename]:打开或新建文件,并将光标置于第一行首
vi +n [filename] :打开文件,并将光标置于第n行首
vi + [filename] :打开文件,并将光标置于最后一行首
vi +/pattern [filename]:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r [filename] :在上次正用vi编辑时发生系统崩溃,恢复filename
vi [filename]….[filename] :打开多个文件,依次编辑

如果filename不存在,则自动生成一个名字filename的新文件。

vi共有两种状态:命令状态/编辑状态

编辑状态下:

第一次按下insert键为”insert”模式,再按一下为”replace”模式,使用ESC返回命令状态;
在此状态下键盘的PgUp/PgDn/Insert/Delete/Home/End/方向键,均处于正常功能状态。

命令状态下:

输入的字符串作为命令处理,使用”insert”键切换到编辑状态;
以下是命令状态下的命令清单:

移动光标类命令:

h :光标左移一个字符
l :光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n :光标下移一行
Enter :光标下移一行
w或W :光标右移一个字至字首
b或B :光标左移一个字至字首
e或E :光标右移一个字j至字尾
) :光标移至句尾
( :光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾

屏幕翻滚类命令:

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

插入文本类命令:

i :在光标前
I :在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

删除命令:

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

搜索及替换命令 :

/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替换

选项设置:

all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略大小写
list:显示制表位(Ctrl+I)和行尾标志($)
number:显示行号
report:显示由面向行的命令修改过的数目
terse:显示简短的警告信息
warn:在转到别的文件时若没保存当前文件则显示NO write信息
nomagic:允许在搜索模式中,使用前面不带“\”的特殊字符
nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始
mesg:允许vi显示其他用户用write写到自己终端上的信息

最后行方式命令:

:n1,n2 co n3:将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3:将n1行到n2行之间的内容移至到第n3行下
:n1,n2 d :将n1行到n2行之间的内容删除
:w :保存当前文件
:e filename:打开文件filename进行编辑
:x:保存当前文件并退出
:q:退出vi
:q!:不保存文件并退出vi
:!command:执行shell命令command
:n1,n2 w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指
定n1,n2,则表示将整个文件内容作为command的输入
:r!command:将命令command的输出结果放到当前行 。Adminis