当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪linux命令实例教程之grep命令      本节内容: linux下grep 命令的用法。 在linux操作系统中,grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 grep全称是Global Regular Expression Print,表示全.........
    ▪linux命令实例教程之wget命令      本节内容: linux下的wget 命令的用法。 在linux操作系统中,wget是一个下载文件的工具,它用在命令行下。 对于Linux用户是必不可少的工具,经常要下载一些软件或从远程服务器恢复备份到本.........
    ▪linux命令实例教程之scp命令      本节内容: linux下scp 命令的用法。 在linux操作系统中,scp是secure copy的简写,用于在Linux下进行远程拷贝文件。 与此命令类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传.........

[1]linux命令实例教程之grep命令
    来源: 互联网  发布时间: 2013-12-24

本节内容:
linux下grep 命令的用法。

在linux操作系统中,grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

grep的工作方式:
它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
grep可用于shell脚本,因为grep命令通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。
利用这些返回值就可进行一些自动化的文本处理工作。

介绍了这么多,下面就开始学习这个牛x的linux命令吧。

1.命令格式:
grep [option] pattern file

2.命令功能:
用于过滤/搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上十分灵活。

3.命令参数:
 

-a   --text   #不要忽略二进制的数据。  
-A<显示行数>   --after-context=<显示行数>   #除了显示符合范本样式的那一列之外,并显示该行之后的内容。  
-b   --byte-offset   #在显示符合样式的那一行之前,标示出该行第一个字符的编号。  
-B<显示行数>   --before-context=<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前的内容。  
-c    --count   #计算符合样式的列数。  
-C<显示行数>    --context=<显示行数>或-<显示行数>   #除了显示符合样式的那一行之外,并显示该行之前后的内容。  
-d <动作>      --directories=<动作>   #当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。  
-e<范本样式>  --regexp=<范本样式>   #指定字符串做为查找文件内容的样式。  
-E      --extended-regexp   #将样式为延伸的普通表示法来使用。  
-f<规则文件>  --file=<规则文件>   #指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。  
-F   --fixed-regexp   #将样式视为固定字符串的列表。  
-G   --basic-regexp   #将样式视为普通的表示法来使用。  
-h   --no-filename   #在显示符合样式的那一行之前,不标示该行所属的文件名称。  
-H   --with-filename   #在显示符合样式的那一行之前,表示该行所属的文件名称。  
-i    --ignore-case   #忽略字符大小写的差别。  
-l    --file-with-matches   #列出文件内容符合指定的样式的文件名称。  
-L   --files-without-match   #列出文件内容不符合指定的样式的文件名称。  
-n   --line-number   #在显示符合样式的那一行之前,标示出该行的列数编号。  
-q   --quiet或--silent   #不显示任何信息。  
-r   --recursive   #此参数的效果和指定“-d recurse”参数相同。  
-s   --no-messages   #不显示错误信息。  
-v   --revert-match   #显示不包含匹配文本的所有行。  
-V   --version   #显示版本信息。  
-w   --word-regexp   #只显示全字符合的列。  
-x    --line-regexp   #只显示全列符合的列。  
-y   #此参数的效果和指定“-i”参数相同。
 

4.规则表达式:
grep的规则表达式:
 

^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。   
$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。   
.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。   
*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。   
.*   #一起用代表任意字符。  
[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。   
[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。   
\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。   
\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。   
\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。   
x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。   
x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。   
x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。  
\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
\b    #单词锁定符,如: '\bgrep\b'只匹配grep。 

POSIX字符:
为了在不同国家的字符编码中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字符类,如[:alnum:]是[A-Za-z0-9]的另一个写法。要把它们放到[]号内才能成为正则表达式,如[A- Za-z0-9]或[[:alnum:]]。在linux下的grep除fgrep外,都支持POSIX的字符类。
 

[:alnum:]    #文字数字字符  
[:alpha:]    #文字字符  
[:digit:]    #数字字符  
[:graph:]    #非空字符(非空格、控制字符)  
[:lower:]    #小写字符  
[:cntrl:]    #控制字符  
[:print:]    #非空字符(包括空格)  
[:punct:]    #标点符号  
[:space:]    #所有空白字符(新行,空格,制表符)  
[:upper:]    #大写字符  
[:xdigit:]   #十六进制数字(0-9,a-f,A-F) 

5.使用实例:
实例1:查找指定进程
 

代码示例:
命令:
ps -ef|grep svn
输出:
[root@xxx ~]# ps -ef|grep svn
root 4943   1      0  Dec05 ?   00:00:00 svnserve -d -r /opt/svndata/grape/
root 16867 16838  0 19:53 pts/0    00:00:00 grep svn
 

说明:
第一条记录是查找出的进程;第二条结果是grep进程本身,并非真正要找的进程。

实例2:查找指定进程个数
 

代码示例:
命令:
ps -ef|grep svn -c
ps -ef|grep -c svn
输出:
[root@xxx ~]# ps -ef|grep svn -c
2
[root@xxx ~]# ps -ef|grep -c svn
2

实例3:从文件中读取关键词进行搜索
 

代码示例:
命令:
cat test.txt | grep -f test2.txt
输出:
[root@xxx test]# cat test.txt
hnlinux
peida.cnblogs.com
ubuntu
ubuntu linux
redhat
Redhat
linuxmint
[root@xxx test]# cat test2.txt
linux
Redhat
[root@xxx test]# cat test.txt | grep -f test2.txt
hnlinux
ubuntu linux
Redhat
linuxmint
 

说明:
输出test.txt文件中含有从test2.txt文件中读取出的关键词的内容行

实例4:从文件中读取关键词进行搜索 且显示行号
 

代码示例:
命令:
cat test.txt | grep -nf test2.txt
输出:
[root@xxx test]# cat test.txt
hnlinux
peida.cnblogs.com
ubuntu
ubuntu linux
redhat
Redhat
linuxmint
[root@xxx test]# cat test2.txt
linux
Redhat
[root@xxx test]# cat test.txt | grep -nf test2.txt
1:hnlinux
4:ubuntu linux
6:Redhat
7:linuxmint
 

说明:
输出test.txt文件中含有从test2.txt文件中读取出的关键词的内容行,并显示每一行的行号

实例5:从文件中查找关键词
 

代码示例:
命令:
grep 'linux' test.txt
输出:
[root@xxx test]# grep 'linux' test.txt
hnlinux
ubuntu linux
linuxmint
[root@xxx test]# grep -n 'linux' test.txt
1:hnlinux
4:ubuntu linux
7:linuxmint

实例6:从多个文件中查找关键词
 

代码示例:
命令:
grep 'linux' test.txt test2.txt
输出:
[root@xxx test]# grep -n 'linux' test.txt test2.txt
test.txt:1:hnlinux
test.txt:4:ubuntu linux
test.txt:7:linuxmint
test2.txt:1:linux
[root@xxx test]# grep 'linux' test.txt test2.txt
test.txt:hnlinux
test.txt:ubuntu linux
test.txt:linuxmint
test2.txt:linux
 

说明:
多文件时,输出查询到的信息内容行时,会把文件的命名在行最前面输出并且加上":"作为标示符

实例7:grep不显示本身进程
 

代码示例:
命令:
ps aux|grep \[s]sh
ps aux | grep ssh | grep -v "grep"
输出:
[root@xxx test]# ps aux|grep ssh
root   2720  0.0  0.0  62656  1212 ?      Ss   Nov02   0:00 /usr/sbin/sshd
root  16834  0.0  0.0  88088  3288 ?      Ss   19:53   0:00 sshd: root@pts/0
root  16901  0.0  0.0  61180   764 pts/0  S+   20:31   0:00 grep ssh
[root@xxx test]# ps aux|grep \[s]sh]
[root@xxx test]# ps aux|grep \[s]sh
root   2720  0.0  0.0  62656  1212 ?      Ss   Nov02   0:00 /usr/sbin/sshd
root  16834  0.0  0.0  88088  3288 ?      Ss   19:53   0:00 sshd: root@pts/0
[root@xxx test]# ps aux | grep ssh | grep -v "grep"
root   2720  0.0  0.0  62656  1212 ?      Ss   Nov02   0:00 /usr/sbin/sshd
root  16834  0.0  0.0  88088  3288 ?      Ss   19:53   0:00 sshd: root@pts/0

实例8:找出已u开头的行内容
 

代码示例:
命令:
cat test.txt |grep ^u
输出:
[root@xxx test]# cat test.txt |grep ^u
ubuntu
ubuntu linux

实例9:输出非u开头的行内容
 

代码示例:
命令:
cat test.txt |grep ^[^u]
输出:
[root@xxx test]# cat test.txt |grep ^[^u]
hnlinux
peida.cnblogs.com
redhat
Redhat
linuxmint

实例10:输出以hat结尾的行内容
 

代码示例:
命令:
cat test.txt |grep hat$
输出:
[root@xxx test]# cat test.txt |grep hat$
redhat
Redhat
 

实例11:
 

代码示例:
[root@xxx test]# ifconfig eth0|grep "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"
          inet addr:192.168.120.204  Bcast:192.168.120.255  Mask:255.255.255.0
[root@xxx test]# ifconfig eth0|grep -E "([0-9]{1,3}\.){3}[0-9]"
          inet addr:192.168.120.204  Bcast:192.168.120.255  Mask:255.255.255.0

实例12:显示包含ed或者at字符的内容行
 

代码示例:
命令:
cat test.txt |grep -E "ed|at"
输出:
[root@xxx test]# cat test.txt |grep -E "peida|com"
peida.cnblogs.com
[root@xxx test]# cat test.txt |grep -E "ed|at"
redhat
Redhat

实例13:显示当前目录下面以.txt 结尾的文件中的所有包含每个字符串至少有7个连续小写字符的字符串的行
 

代码示例:
命令:
grep '[a-z]\{7\}' *.txt
输出:
[root@xxx test]# grep '[a-z]\{7\}' *.txt
test.txt:hnlinux
test.txt:peida.cnblogs.com
test.txt:linuxmint

>>> 查看更多 linux命令实例教程 <<<


    
[2]linux命令实例教程之wget命令
    来源: 互联网  发布时间: 2013-12-24

本节内容:
linux下的wget 命令的用法。

在linux操作系统中,wget是一个下载文件的工具,它用在命令行下。

对于Linux用户是必不可少的工具,经常要下载一些软件或从远程服务器恢复备份到本地服务器。wget支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。所谓的自动下载是指,wget可以在用户退出系统的之后在后台执行。这意味这你可以登录系统,启动一个wget下载任务,然后退出系统,wget将在后台执行直到任务完成,相对于其它大部分浏览器在下载大量数据时需要用户一直的参与,这省去了极大的麻烦。

wget 可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作”递归下载”。在递归下载的时候,wget 遵循Robot Exclusion标准(/robots.txt). wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。

wget 非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性.如果是由于网络的原因下载失败,wget命令会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

看了以上的介绍,是不是觉得wget命令太强大了,那好,下面我们就开始此linux命令的学习吧。

1.命令格式:
wget [参数] [URL地址]

2.命令功能:
用于从网络上下载资源,没有指定目录,下载资源回默认为当前目录。wget虽然功能强大,但是使用起来还是比较简单:
1)支持断点下传功能;这一点,也是网络蚂蚁和FlashGet当年最大的卖点,现在,Wget也可以使用此功能,那些网络不是太好的用户可以放心了;
2)同时支持FTP和HTTP下载方式;尽管现在大部分软件可以使用HTTP方式下载,但是,有些时候,仍然需要使用FTP方式下载软件;
3)支持代理服务器;对安全强度很高的系统而言,一般不会将自己的系统直接暴露在互联网上,所以,支持代理是下载软件必须有的功能;
4)设置方便简单;可能,习惯图形界面的用户已经不是太习惯命令行了,但是,命令行在设置上其实有更多的优点,最少,鼠标可以少点很多次,也不要担心是否错点鼠标;
5)程序小,完全免费;程序小可以考虑不计,因为现在的硬盘实在太大了;完全免费就不得不考虑了,即使网络上有很多所谓的免费软件,但是,这些软件的广告却不是我们喜欢的。

3.命令参数:
启动参数:
 

-V, –version 显示wget的版本后退出
-h, –help 打印语法帮助
-b, –background 启动后转入后台执行
-e, –execute=COMMAND 执行`.wgetrc’格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc

记录和输入文件参数:
 

-o, –output-file=FILE 把记录写到FILE文件中
-a, –append-output=FILE 把记录追加到FILE文件中
-d, –debug 打印调试输出
-q, –quiet 安静模式(没有输出)
-v, –verbose 冗长模式(这是缺省设置)
-nv, –non-verbose 关掉冗长模式,但不是安静模式
-i, –input-file=FILE 下载在FILE文件中出现的URLs
-F, –force-html 把输入文件当作HTML格式文件对待
-B, –base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀
–sslcertfile=FILE 可选客户端证书
–sslcertkey=KEYFILE 可选客户端证书的KEYFILE
–egd-file=FILE 指定EGD socket的文件名

下载参数:
 

–bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用)
-t, –tries=NUMBER 设定最大尝试链接次数(0 表示无限制).
-O –output-document=FILE 把文档写到FILE文件中
-nc, –no-clobber 不要覆盖存在的文件或使用.#前缀
-c, –continue 接着下载没下载完的文件
–progress=TYPE 设定进程条标记
-N, –timestamping 不要重新下载文件除非比本地文件新
-S, –server-response 打印服务器的回应
–spider 不下载任何东西
-T, –timeout=SECONDS 设定响应超时的秒数
-w, –wait=SECONDS 两次尝试之间间隔SECONDS秒
–waitretry=SECONDS 在重新链接之间等待1…SECONDS秒
–random-wait 在下载之间等待0…2*WAIT秒
-Y, –proxy=on/off 打开或关闭代理
-Q, –quota=NUMBER 设置下载的容量限制
–limit-rate=RATE 限定下载输率

目录参数:
 

-nd –no-directories 不创建目录
-x, –force-directories 强制创建目录
-nH, –no-host-directories 不创建主机目录
-P, –directory-prefix=PREFIX 将文件保存到目录 PREFIX/…
–cut-dirs=NUMBER 忽略 NUMBER层远程目录

HTTP 选项参数:
 

–http-user=USER 设定HTTP用户名为 USER.
–http-passwd=PASS 设定http密码为 PASS
-C, –cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许)
-E, –html-extension 将所有text/html文档以.html扩展名保存
–ignore-length 忽略 `Content-Length’头域
–header=STRING 在headers中插入字符串 STRING
–proxy-user=USER 设定代理的用户名为 USER
–proxy-passwd=PASS 设定代理的密码为 PASS
–referer=URL 在HTTP请求中包含 `Referer: URL’头
-s, –save-headers 保存HTTP头到文件
-U, –user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION
–no-http-keep-alive 关闭 HTTP活动链接 (永远链接)
–cookies=off 不使用 cookies
–load-cookies=FILE 在开始会话前从文件 FILE中加载cookie
–save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中

FTP 选项参数:
 

-nr, –dont-remove-listing 不移走 `.listing’文件
-g, –glob=on/off 打开或关闭文件名的 globbing机制
–passive-ftp 使用被动传输模式 (缺省值).
–active-ftp 使用主动传输模式
–retr-symlinks 在递归的时候,将链接指向文件(而不是目录)

递归下载参数:
 

-r, –recursive 递归下载--慎用!
-l, –level=NUMBER 最大递归深度 (inf 或 0 代表无穷)
–delete-after 在现在完毕后局部删除文件
-k, –convert-links 转换非相对链接为相对链接
-K, –backup-converted 在转换文件X之前,将之备份为 X.orig
-m, –mirror 等价于 -r -N -l inf -nr
-p, –page-requisites 下载显示HTML文件的所有图片

递归下载中的包含和不包含(accept/reject):
 

-A, –accept=LIST 分号分隔的被接受扩展名的列表
-R, –reject=LIST 分号分隔的不被接受的扩展名的列表
-D, –domains=LIST 分号分隔的被接受域的列表
–exclude-domains=LIST 分号分隔的不被接受的域的列表
–follow-ftp 跟踪HTML文档中的FTP链接
–follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表
-G, –ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表
-H, –span-hosts 当递归时转到外部主机
-L, –relative 仅仅跟踪相对链接
-I, –include-directories=LIST 允许目录的列表
-X, –exclude-directories=LIST 不被包含目录的列表
-np, –no-parent 不要追溯到父目录
wget -S –spider url 不下载只显示过程

4.使用实例:
实例1:使用wget下载单个文件
命令:
 

代码示例:
wget http://www./wordpress-3.1-zh_CN.zip

说明:
从网络下载一个文件并保存在当前目录,在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。

实例2:使用wget -O下载并以不同的文件名保存
命令:
 

代码示例:
: wget -O wordpress.zip http://www./download.aspx?id=1080

说明:
wget默认会以最后一个符合”/”的后面的字符来命令,对于动态链接的下载通常文件名会不正确。
错误:下面的例子会下载一个文件并以名称download.aspx?id=1080保存
 

代码示例:
wget http://www./download?id=1

即使下载的文件是zip格式,它仍然以download.php?id=1080命令。
正确:为了解决此问题,我们可以使用参数-O来指定一个文件名:
 

代码示例:
wget -O wordpress.zip http://www./download.aspx?id=1080

实例3:使用wget –limit -rate限速下载
命令:
 

代码示例:
wget --limit-rate=300k http://www./wordpress-3.1-zh_CN.zip

说明:
当执行wget,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

实例4:使用wget -c断点续传
命令:
 

代码示例:
wget -c http://www./wordpress-3.1-zh_CN.zip
 

说明:
使用wget -c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

实例5:使用wget -b后台下载
命令:
 

代码示例:
wget -b http://www./wordpress-3.1-zh_CN.zip
 

说明:
对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载。
 

代码示例:
wget -b http://www./wordpress-3.1-zh_CN.zip
Continuing in background, pid 1840.
Output will be written to `wget-log'.
 

可以使用tail命令来查看下载进度:
 

代码示例:
tail -f wget-log

实例6:伪装代理名称下载
命令:
 

代码示例:
wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" http://www./wordpress-3.1-zh_CN.zip
 

说明:
有些网站能通过根据判断代理名称不是浏览器而拒绝你的下载请求。不过你可以通过–user-agent参数伪装。

实例7:使用wget –spider测试下载链接
 

代码示例:
命令:
wget --spider URL
说明:
当你打算进行定时下载,你应该在预定时间测试下载链接是否有效。我们可以增加–spider参数进行检查。
wget --spider URL

如果下载链接正确,将会显示
 

wget --spider URL
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.
 

这保证了下载能在预定的时间进行,但当你给错了一个链接,将会显示如下错误
 

wget --spider url
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!

可以在以下几种情况下使用spider参数:
定时下载之前进行检查
间隔检测网站是否可用
检查网站页面的死链接

实例8:使用wget –tries增加重试次数
命令:
 

代码示例:
wget --tries=40 URL
 

说明:
如果网络有问题或下载一个大文件也有可能失败。wget默认重试20次连接下载文件。如果需要,你可以使用–tries增加重试次数。

实例9:使用wget -i下载多个文件
命令:
 

代码示例:
wget -i filelist.txt
 

说明:
 

代码示例:
首先,保存一份下载链接文件
cat > filelist.txt
url1
url2
url3
url4
 

接着使用此文件和参数-i下载

实例10:使用wget –mirror镜像网站
命令:
 

代码示例:
wget --mirror -p --convert-links -P ./LOCAL URL
 

说明:
下载整个网站到本地。
–miror:开户镜像下载
-p:下载所有为了html页面显示正常的文件
–convert-links:下载后,转换成本地的链接
-P ./LOCAL:保存所有文件和目录到本地指定目录

实例11:使用wget –reject过滤指定格式下载
命令:
 

代码示例:
wget --reject=gif ur
 

说明:
下载一个网站,但你不希望下载图片,可以使用以下命令。

实例12:使用wget -o把下载信息存入日志文件
命令:
 

代码示例:
wget -o download.log URL
 

说明:
不希望下载信息直接显示在终端而是在一个日志文件,可以使用

实例13:使用wget -Q限制总下载文件大小
命令:
 

代码示例:
wget -Q5m -i filelist.txt
 

说明:
当需要下载的文件超过5M而退出下载,可以使用。
注意:此参数对单个文件下载不起作用,只能递归下载时才有效。

实例14:使用wget -r -A下载指定格式文件
命令:
 

代码示例:
wget -r -A.pdf url
 

说明:
可以在以下情况使用该功能:
下载一个网站的所有图片
下载一个网站的所有视频
下载一个网站的所有PDF文件

实例15:使用wget FTP下载
命令:
 

代码示例:
wget ftp-url
wget --ftp-user=USERNAME --ftp-password=PASSWORD url

说明:
可以使用wget来完成ftp链接的下载。

使用wget匿名ftp下载:
 

代码示例:
wget ftp-url
 

使用wget用户名和密码认证的ftp下载
 

代码示例:
wget --ftp-user=USERNAME --ftp-password=PASSWORD url

备注:编译安装
编译安装:
 

代码示例:
# tar zxvf wget-1.9.1.tar.gz
# cd wget-1.9.1
# ./configure
# make
# make install

>>> 查看更多 linux命令实例教程 <<<


    
[3]linux命令实例教程之scp命令
    来源: 互联网  发布时间: 2013-12-24

本节内容:
linux下scp 命令的用法。

在linux操作系统中,scp是secure copy的简写,用于在Linux下进行远程拷贝文件。

与此命令类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。
可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。

另外,scp命令还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。
虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。

下面就开始学习今天这个linux命令吧,使用scp进行远程文件的拷贝。

1.命令格式:
scp [参数] [原路径] [目标路径]

2.命令功能:
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。

3.命令参数:
 

-1  强制scp命令使用协议ssh1 
-2  强制scp命令使用协议ssh2 
-4  强制scp命令只使用IPv4寻址 
-6  强制scp命令只使用IPv6寻址 
-B  使用批处理模式(传输过程中不询问传输口令或短语) 
-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能) 
-p 保留原文件的修改时间,访问时间和访问权限。 
-q  不显示传输进度条。 
-r  递归复制整个目录。 
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。  
-c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh。  
-F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh。 
-i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。   
-l limit  限定用户所能使用的带宽,以Kbit/s为单位。    
-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,  
-P port  注意是大写的P, port是指定数据传输用到的端口号  
-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
 

4.使用实例:
scp命令的实际应用概述: 
从本地服务器复制到远程服务器:
 

代码示例:
(1) 复制文件: 
命令格式: 
scp local_file remote_username@remote_ip:remote_folder 
或者 
scp local_file remote_username@remote_ip:remote_file 
或者 
scp local_file remote_ip:remote_folder 
或者 
scp local_file remote_ip:remote_file 
 

第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名 
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名  
(2) 复制目录: 
 

代码示例:
命令格式: 
scp -r local_folder remote_username@remote_ip:remote_folder 
或者 
scp -r local_folder remote_ip:remote_folder 
 

第1个指定了用户名,命令执行后需要输入用户密码; 
第2个没有指定用户名,命令执行后需要输入用户名和密码;
 
从远程服务器复制到本地服务器:
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
实例1:从远处复制文件到本地目录
 

代码示例:
命令:
scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
输出:
[root@xxx ~]# cd /opt/soft/
[root@xxx soft]# ll
总计 80072
drwxr-xr-x 12 root root     4096 09-21 18:40 fms3.5
drwxr-xr-x  3 root root     4096 09-21 17:58 fms4.5
drwxr-xr-x 10 root root     4096 10-30 17:15 jdk1.6.0_16
drwxr-xr-x 10 root root     4096 09-17 19:27 jdk1.6.0_16.bak
-rwxr-xr-x  1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bin
drwxrwxrwx  2 root root     4096 09-21 01:16 mysql
drwxr-xr-x  3 root root     4096 09-21 18:40 setup_file
drwxr-xr-x  9 root root     4096 09-17 19:23 tomcat6.0.32
drwxr-xr-x  9 root root     4096 2012-08-14 tomcat_7.0
[root@xxx soft]# scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
root@192.168.120.204's password:
nginx-0.5.38.tar.gz                                                                               100%  479KB 478.7KB/s   00:00   
[root@xxx soft]# ll
总计 80556
drwxr-xr-x 12 root root     4096 09-21 18:40 fms3.5
drwxr-xr-x  3 root root     4096 09-21 17:58 fms4.5
drwxr-xr-x 10 root root     4096 10-30 17:15 jdk1.6.0_16
drwxr-xr-x 10 root root     4096 09-17 19:27 jdk1.6.0_16.bak
-rwxr-xr-x  1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bin
drwxrwxrwx  2 root root     4096 09-21 01:16 mysql
-rw-r--r--  1 root root   490220 03-15 09:11 nginx-0.5.38.tar.gz
drwxr-xr-x  3 root root     4096 09-21 18:40 setup_file
drwxr-xr-x  9 root root     4096 09-17 19:23 tomcat6.0.32
drwxr-xr-x  9 root root     4096 2012-08-14 tomcat_7.0
[root@xxx soft]#
 

说明:
从192.168.120.204机器上的/opt/soft/的目录中下载nginx-0.5.38.tar.gz 文件到本地/opt/soft/目录中

实例2:从远处复制到本地
 

代码示例:
命令:
scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/
输出:
[root@xxx soft]# ll
总计 80556
drwxr-xr-x 12 root root     4096 09-21 18:40 fms3.5
drwxr-xr-x  3 root root     4096 09-21 17:58 fms4.5
drwxr-xr-x 10 root root     4096 10-30 17:15 jdk1.6.0_16
drwxr-xr-x 10 root root     4096 09-17 19:27 jdk1.6.0_16.bak
-rwxr-xr-x  1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bin
drwxrwxrwx  2 root root     4096 09-21 01:16 mysql
-rw-r--r--  1 root root   490220 03-15 09:11 nginx-0.5.38.tar.gz
drwxr-xr-x  3 root root     4096 09-21 18:40 setup_file
drwxr-xr-x  9 root root     4096 09-17 19:23 tomcat6.0.32
drwxr-xr-x  9 root root     4096 2012-08-14 tomcat_7.0
[root@xxx soft]# scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/
root@192.168.120.204's password:
mongodb-linux-i686-static-1.8.5.tgz                                                               100%   28MB  28.3MB/s   00:01   
README                                                                                            100%  731     0.7KB/s   00:00   
THIRD-PARTY-NOTICES                                                                               100% 7866     7.7KB/s   00:00   
mongorestore                                                                                      100% 7753KB   7.6MB/s   00:00   
mongod                                                                                            100% 7760KB   7.6MB/s   00:01   
mongoexport                                                                                       100% 7744KB   7.6MB/s   00:00   
bsondump                                                                                          100% 7737KB   7.6MB/s   00:00   
mongofiles                                                                                        100% 7748KB   7.6MB/s   00:01   
mongostat                                                                                         100% 7808KB   7.6MB/s   00:00   
mongos                                                                                            100% 5262KB   5.1MB/s   00:01   
mongo                                                                                             100% 3707KB   3.6MB/s   00:00   
mongoimport                                                                                       100% 7754KB   7.6MB/s   00:00   
mongodump                                                                                         100% 7773KB   7.6MB/s   00:00   
GNU-AGPL-3.0                                                                                      100%   34KB  33.7KB/s   00:00   
[root@xxx soft]# ll
总计 80560
drwxr-xr-x 12 root root     4096 09-21 18:40 fms3.5
drwxr-xr-x  3 root root     4096 09-21 17:58 fms4.5
drwxr-xr-x 10 root root     4096 10-30 17:15 jdk1.6.0_16
drwxr-xr-x 10 root root     4096 09-17 19:27 jdk1.6.0_16.bak
-rwxr-xr-x  1 root root 81871260 2009-12-21 jdk-6u16-linux-x64.bin
drwxr-xr-x  3 root root     4096 03-15 09:18 mongodb
drwxrwxrwx  2 root root     4096 09-21 01:16 mysql
-rw-r--r--  1 root root   490220 03-15 09:11 nginx-0.5.38.tar.gz
drwxr-xr-x  3 root root     4096 09-21 18:40 setup_file
drwxr-xr-x  9 root root     4096 09-17 19:23 tomcat6.0.32
drwxr-xr-x  9 root root     4096 2012-08-14 tomcat_7.0
 

说明:
从192.168.120.204机器上的/opt/soft/中下载mongodb 目录到本地的/opt/soft/目录来。

实例3:上传本地文件到远程机器指定目录
 

代码示例:
命令:
scp /opt/soft/nginx-0.5.38.tar.gz root@192.168.120.204:/opt/soft/scptest
输出:
上传前目标机器的目标目录:
[root@xxx soft]# cd scptest/
[root@xxx scptest]# ll
总计 0
[root@xxx scptest]# ll

本地机器上传:
 

代码示例:
[root@xxx soft]# scp /opt/soft/nginx-0.5.38.tar.gz root@192.168.120.204:/opt/soft/scptest
root@192.168.120.204's password:
nginx-0.5.38.tar.gz        100%  479KB 478.7KB/s   00:00   

上传后目标机器的目标目录:
 

代码示例:
[root@xxx scptest]# ll
总计 484
-rw-r--r-- 1 root root 490220 03-15 09:25 nginx-0.5.38.tar.gz
[root@xxx scptest]#
 

说明:
复制本地opt/soft/目录下的文件nginx-0.5.38.tar.gz 到远程机器192.168.120.204的opt/soft/scptest目录

实例4:上传本地目录到远程机器指定目录
 

代码示例:
命令:
scp -r /opt/soft/mongodb root@192.168.120.204:/opt/soft/scptest
输出:
上传前目标机器的目标目录:
[root@xxx ~]# cd /opt/soft/scptest/
[root@xxx scptest]# ll
总计 484
-rw-r--r-- 1 root root 490220 03-15 09:25 nginx-0.5.38.tar.gz
[root@xxx scptest]#
本地机器上传:
[root@xxx ~]# scp -r /opt/soft/mongodb root@192.168.120.204:/opt/soft/scptest
root@192.168.120.204's password:
mongodb-linux-i686-static-1.8.5.tgz                                                               100%   28MB  28.3MB/s   00:01   
README                                                                                            100%  731     0.7KB/s   00:00   
THIRD-PARTY-NOTICES                                                                               100% 7866     7.7KB/s   00:00   
mongorestore                                                                                      100% 7753KB   7.6MB/s   00:00   
mongod                                                                                            100% 7760KB   7.6MB/s   00:01   
mongoexport                                                                                       100% 7744KB   7.6MB/s   00:00   
bsondump                                                                                          100% 7737KB   7.6MB/s   00:00   
mongofiles                                                                                        100% 7748KB   7.6MB/s   00:00   
mongostat                                                                                         100% 7808KB   7.6MB/s   00:01   
mongos                                                                                            100% 5262KB   5.1MB/s   00:00   
mongo                                                                                             100% 3707KB   3.6MB/s   00:00   
mongoimport                                                                                       100% 7754KB   7.6MB/s   00:01   
mongodump                                                                                         100% 7773KB   7.6MB/s   00:00   
GNU-AGPL-3.0                                                                                      100%   34KB  33.7KB/s   00:00   
[root@xxx ~]#

上传后目标机器的目标目录:
 

代码示例:
[root@xxx scptest]# ll
总计 488
drwxr-xr-x 3 root root   4096 03-15 09:33 mongodb
-rw-r--r-- 1 root root 490220 03-15 09:25 nginx-0.5.38.tar.gz
 

说明:
上传本地目录 /opt/soft/mongodb到远程机器192.168.120.204上/opt/soft/scptest的目录中去。

>>> 查看更多 linux命令实例教程 <<<


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3