linux系统ftp命令
先来一段简单的ftp 下载脚本
ftp -i -n<<EOF
open 14.2.33.211
user etl etl
cd /etlfile/ftpfile
lcd /etlfile/getfile
binary
prompt
mget *
prompt
close
bye
EOF
ftp安装部分,操作步骤如下:
可以使用yum命令直接安装ftp
# yum install vsftpd
ftp服务的开启与关闭命令:
开启:# service vsftpd start
关闭:# service vsftpd stop
安装成功后,可以在本地使用ftp软件连接,默认账号是虚拟机的账号和密码。
第一次安装,开启后请重启下ftp服务service vsftpd restart(若防火墙没关闭,请关闭防火墙)
有关FTP(客户端,服务器搭建这里不讲)有很多,大体分为命令行和GUI图形界面的软件。
1,图形界面的有
gftp
gnome下ftp客户端
crossftp
基于Java的稳定ftp客户端和同步工具。优良的中文/Unicode支持。
Kftpgrabber
KDE下ftp客户端,支持编码选择。对中文支持较好
filezilla
对中文支持好
krusader
也可以通过浏览器输入ftp://ip使用
如果有喜欢的可以通过apt-get 或者 aptitude 安装。
2,CLI(命令行)主要有ftp 和 lftp
(1)ftp
1. 连接ftp服务器
格式:ftp [hostname| ip-address]
a)在linux命令行下输入:ftp 10.18.34.115
b)服务器询问你用户名和口令,分别输入yint和相应密码,待认证通过即可。
或者用下面的格式
ftp - -i -n IP_ADDRESS
user USERNAME PASSWORD
比如:
ftp -i -n 172.17.17.17
user PUB 123456
也可以自己写个脚本自动登录。
cyq@cyq-desktop:~/桌面/shell$ cat ftp.sh
#!/bin/sh
ftp -i -n 172.17.17.17
<< !
user PUB 123456
!
这样就可以自动登录了。
2. 下载文件
下载文件通常用get和mget这两条命令。
a) get
格式:get [remote-file] [local-file]
将文件从远端主机中传送至本地主机中.
如要获取服务器上E:/rose/1.bmp,则
ftp> get /rose/1.bmp 1.bmp (回车)
b) mget
格式:mget [remote-files]
从远端主机接收一批文件至本地主机.
如要获取服务器上E:/rose/下的所有文件,则
ftp> cd /rose
ftp> mget *.* (回车)
注意:文件都下载到了linux主机的当前目录下。比如,在 /root/yint下运行的ftp命令,则文件都下载到了/root/yint下。
3.上传文件
a) put
格式:put local-file [remote-file]
将本地一个文件传送至远端主机中.
如要把本地的1.bmp传送到远端主机E:/rose,并改名为333.bmp
ftp> put 1.bmp /rose/333.bmp (回车)
b) mput
格式:mput local-files
将本地主机中一批文件传送至远端主机.
如要把本地当前目录下所有bmp文件上传到服务器E:/rose 下
ftp> cd /rose (回车)
ftp> mput *.bmp (回车)
注意:上传文件都来自于主机的当前目录下。比如,在 /root/yint下运行的ftp命令,则只有在/root/yint下的文件linux才会上传到服务器E:/rose 下。
4. 断开连接
bye:中断与服务器的连接。
ftp> bye (回车)
(2)lftp
在用lftp访问国内一些ftp服务器时,往往看到的中文是乱码,这是由于服务器和本地编码不一致造成的。
解决办法:
在主目录下新建一个文件~/.lftprc或者~/.lftp/rc
比如我在终端中输入:
gedit ~/.lftprc #在当前目录下建立.lftprc文件
然后在弹出的对话框中输入以下内容:
debug 3
set ftp:charset GBK
set file:charset UTF-8
#set ftp:passtive-mode no
#alias utf8 " set ftp:charset UTF-8"
#alias gbk " set ftp:charset GBK"
上面的这几行的意思是
设置本地和ftp服务器的编码方式
alias 是使用别名命令
如果对于经常使用不同编码的 ftp server 的朋友,或经常使用不同的选项的,可以设置一些别名,这样会方便很多。
比如:
我经常访问 gbk 编码的 ftp, 还有 utf8 编码的,那么我在 ~/.lftp 中这样写
代码:
alias gbk set ftp:charset gbk; set file:charset UTF-8
alias utf8 set ftp:charset UTF-8; set file:charset UTF-8
那么当我访问一个 utf8 站点的时候,如果发现乱码,只要在 lftp 的命令提示符号下面输入 utf8 就可以将编码调整正常。同理,如果访问 gbk 的发现乱码就输入 gbk, 马上正常。
下面讲解使用lftp
1、登录ftp
代码:
lftp 用户名:密码@ftp地址:传送端口(默认21)
例如: $ lftp test:123456@172.17.17.17
也可以先不带用户名登录,然后在接口界面下用login命令来用指定账号登录,密码不显示。
lftp user@site:port
例如:$ lftp test@172.17.17.17
口令:
然后就进入了。(这里输入的口令是密码,linux下密码不显示)
2、查看文件与改变目录
代码:
ls
cd 对应ftp目录
在lftp终端中,前面带一个l的命令例如lcd,指的是local,就是在本机的操作,而对应的没有这个l的,都是对ftp site的操作。还有就是要执行本地终端命令,也可以用前面带一个!的方式。这样,配合起来,终端,本地的操作都很放遍。
例如,查看ftp上所有的以mp3为扩展名的文件:
代码:
find . -name "*.mp3"
代码:
lftp test@172.17.17.17:/> lcd
lcd 成功, 本地目录=/home/cyq
lftp test@172.17.17.17:/>
3、下载
get当然是可以的,还可以
代码:
mget -c *.pdf
把所有的pdf文件以允许断点续传的方式下载。m代表multi
代码:
mirror aaa/
将aaa目录整个的下载下来,子目录也会自动复制
代码:
pget -c -n 10 file.dat
以最多10个线程以允许断点续传的方式下载file.dat
可以通过设置pget:default-n的值而使用默认值。
4、上传
同样的put,mput,都是对文件的操作,和下载类似。
代码:
mirror -R 本地目录名
将本地目录以迭代(包括子目录)的方式反向上传到ftp site。
5、模式设置。
代码:
set ftp:charset gbk
远程ftp site用gbk编码,对应的要设置为utf8,只要替换gbk为utf8即可。
代码:
set file:charset utf8
本地的charset设定为utf8,如果你是gbk,相应改掉。
代码:
set ftp:passive-mode 1
使用被动模式登录,有些site要求必须用被动模式或者主动模式才可以登录,这个开关就是设置这个的。0代表不用被动模式。
6、书签
其实命令行也可以有书签,在lftp终端提示符下:
代码:
bookmark add ustc
就可以把当前正在浏览的ftp site用ustc作为标签储存起来。以后在shell终端下,直接
代码:
lftp ustc
就可以自动填好用户名,密码,进入对应的目录了。
代码:
bookmark edit
会调用编辑器手动修改书签。当然,也可以看到,这个书签其实就是个简单的文本文件。密码,用户名都可以看到。
7、配置文件
/etc/lftp.conf
一般,我会添加这几行:
引用:
set ftp:charset gbk
set file:charset utf8
set pget:default-n 5
这样,就不用每次进入都要打命令了。其他的set 可以自己tab然后help 来看。
下面是常用命令
ls
显示远端文件列表(ils 显示本地文件列表)。# l 的意思就是local ils比较特殊
cd
切换远端目录(lcd 切换本地目录)。
get
下载远端文件。
mget
下载远端文件(可以用通配符也就是 *)。
pget
使用多个线程来下载远端文件, 预设为五个。
mirror
下载/上传(mirror -R)/同步 整个目录。
put
上传文件。
mput
上传多个文件(支持通配符)。
mv
移动远端文件(远端文件改名)。
rm
删除远端文件。
参数-r,递归删除文件夹
mrm
删除多个远端文件(支持通配符)。
mkdir
建立远端目录。
rmdir
删除远端目录。
pwd
显示目前远端所在目录(lpwd 显示本地目录)。
du
计算远端目录的大小
set net:limit-rate 10000,10000
限制上传下载各为10KB/s
set ftp:charset gbk
设置远程ftp site用gbk编码
!
执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)
lcd
切换本地目录
lpwd
显示本地目录
alias
定义别名
bookmark
设定书签。
exit
退出ftp
linux系统ftp命令的更多相关文章
- 利用windows系统ftp命令编写的BAT文件上传[转]
利用windows系统ftp命令编写的BAT文件上传[转] 利用windows系统ftp命令编写的BAT文件上传[转] 在开发中往往需要将本地的程序上传到服务器,而且用惯了linux命令的人来说.在w ...
- 查看linux系统版本命令 (转)
查看linux系统版本命令 分类: Linux 知识小结2011-10-10 15:26 240162人阅读 评论(9) 收藏 举报 linuxredhatdebianx86susesun 一.查看内 ...
- Linux系统ifconfig命令找不到,centos ifconfig Command not found
centos ifconfig Command not found,Linux系统ifconfig命令找不到 >>>>>>>>>>>& ...
- Linux系统基础命令
这是看itercast的学习笔记 Linux系统基础命令 日期时间 命令date用以查看.设置当前系统时间:格式化显示时间: +%Y--%m--%d 命令hwclock(clock)用以显示硬件时钟时 ...
- Linux系统-解压缩命令集合
Linux系统-解压缩命令集合 linux zip命令 zip -r myfile.zip ./* 将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件. ...
- LINUX系统VMSTAT命令详解
linux系统vmstat命令详解 [转自 https://www.cnblogs.com/wensiyang0916/p/6514820.html] vmstat 1 1表示每秒采集一次vms ...
- 【转载】Linux系统下命令行连接蓝牙设备 查看查找 蓝牙
Linux系统下命令行连接蓝牙设备 2018年11月26日 10:47:27 Zz笑对一切 阅读数:741 1.打开系统蓝牙 sudo service bluetooth start 1 进入bl ...
- Linux系统——awk命令
awk命令不仅仅是Linux系统的命令,也是一种编程语言,用来处理数据和生成报告(Exel),处理的数据可以是一个或多个文件(标准输入和管道获取标准输入).可在命令行上编辑操作,也可以写成awk程序运 ...
- 给大家介绍一下linux系统高级命令
输出重定向(mip.0834jl.com) ;覆盖文件内容 回声' 123 ' 测试;覆盖原始内容 回声' 123 ' 测试;原始存在(共存) echo 'ken2 '(www.jl0834.com) ...
随机推荐
- [NHibernate]Parent/Child
系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernate ...
- (转)PostgreSQL 兼容Oracle - orafce
转自:http://blog.163.com/digoal@126/blog/static/1638770402015112144250486/ PostgreSQL是和Oracle最接近的企业数据库 ...
- 如何快速正确的安装 Ruby, Rails 运行环境---------------转载
https://ruby-china.org/wiki/install_ruby_guide 这上面有全部教程, 亲测可用
- .NET读取Excel数据,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
解决.NET读取Excel数据时,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的操作: 1. 检查本机是否安装Office Access,如果未安装去去h ...
- [BZOJ1146][CTSC2008]网络管理Network
[BZOJ1146][CTSC2008]网络管理Network 试题描述 M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个 部门之间协同工作,公司搭建 ...
- AC自动机
AC自动机,全称Aho-Corasick自动机.如果没记错的话好像就是前缀自动机. 其实AC自动机就是KMP上树的产物.理解了KMP,那AC自动机应该也是很好理解的. 与KMP类似,AC自动机也是扔一 ...
- PHP写的异步高并发服务器,基于libevent
PHP写的异步高并发服务器,基于libevent 博客分类: PHP PHPFPSocketLinuxQQ 本文章于2013年11月修改. swoole已使用C重写作为PHP扩展来运行.项目地址:h ...
- javascript闭包和作用域链
最近在学习前端知识,看到javascript闭包这里总是云里雾里.于是翻阅了好多资料记录下来本人对闭包的理解. 首先,什么是闭包?看了各位大牛的定义和描述各式各样,我个人认为最容易一种说法: 外部函数 ...
- jQuery treetable【表格多重折叠树功能及拖放表格子元素重新排列】
今天有个表格需求做到多重折叠子元素功能,仔细想了下实现原理, 1.在html中,把父子节点的关系写在自定义属性,但对于节点是否有孩子(hasChild),是否是最后一个节点(isLastOne),是否 ...
- iOS之ToolBar定制
ToorBar的定制 在诸如社区类的app里面,很多都涉及到用户发布消息,如现今最流行的新浪微博,每条信息底部都会有个工具条,正如下图所示,有转发.评论和点赞三个按钮的工具条. 结构 1.作为一个独立 ...