1.ftp服务器的搭建--vsftpd
ftp的作用:文件的上传和下载,不允许操作目录,如果想操作目录只能用tar打包。
(1)服务器端:
①.修改配置文件
②.重启服务
(以上部分可以参考视频:https://www.bilibili.com/video/av33660709?p=35)
(2)客户端:
①.实名用户登录:
a.首先输入命令:
ftp [-dignv][主机名称或IP地址]
参数:
- -d 详细显示指令执行过程,便于排错或分析程序执行的情形。
- -i 关闭互动模式,不询问任何问题。
- -g 关闭本地主机文件名称支持特殊字符的扩充特性。
- -n 不使用自动登陆。
- -v 显示指令执行过程。
(也可以直接输入ftp再输入 open IP地址)
b.输入用户名(server)
c.输入密码(server)
d.文件的上传
put:上传指定文件put filename [newname]
send:上传指定文件send filename [newname]
(filename为上传的本地文件名,newname为上传至FTP服务器上时使用的名字,如果不指定newname,文件将以原名上传。)
e.文件的下载
get:下载指定文件get filename [newname]
(filename为下载的FTP服务器上的文件名,newname为保存在本都计算机上时使用的名字,如果不指定newname,文件将以原名保存。)
get命令下载的文件将保存在本地计算机的工作目录下。该目录是启动FTP时在盘符C:后显示的目录。如果想修改本地计算机的工作目录,可以使用 lcd 命令。比如:lcd d:\ 表示将工作目录设定为D盘的根目录。
②.匿名用户登录
a.首先输入命令:ftp serverIP
b.输入用户名(server):anonymous
c.输入密码(server):直接回车跳过密码的输入
注意:不允许匿名用户在任意目录直接切换,只能在指定的目录范围内工作。需要在ftp服务器上创建一个匿名用户的目录——匿名用户的根目录。(这部分参考视频:https://www.bilibili.com/video/av33660709?p=37)
d.文件的上传:
put:上传指定文件put filename [newname]
send:上传指定文件send filename [newname]
(filename为上传的本地文件名,newname为上传至FTP服务器上时使用的名字,如果不指定newname,文件将以原名上传。)
e.文件的下载:
get:下载指定文件get filename [newname]
③.ftp实例合集
- ftp> ascii # 设定以ASCII方式传送文件(缺省值)
- ftp> bell # 每完成一次文件传送,报警提示.
- ftp> binary # 设定以二进制方式传送文件.
- ftp> bye # 终止主机FTP进程,并退出FTP管理方式.
- ftp> case # 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母.
- ftp> cd # 同UNIX的CD命令.
- ftp> cdup # 返回上一级目录.
- ftp> chmod # 改变远端主机的文件权限.
- ftp> close # 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除.
- ftp> delete # 删除远端主机中的文件.
- ftp> dir [remote-directory] [local-file] # 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件.
- ftp> get [remote-file] [local-file] # 从远端主机中传送至本地主机中.
- ftp> help [command] # 输出命令的解释.
- ftp> lcd # 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录.
- ftp> ls [remote-directory] [local-file] # 同DIR.
- ftp> macdef # 定义宏命令.
- ftp> mdelete [remote-files] # 删除一批文件.
- ftp> mget [remote-files] # 从远端主机接收一批文件至本地主机.
- ftp> mkdir directory-name # 在远端主机中建立目录.
- ftp> mput local-files # 将本地主机中一批文件传送至远端主机.
- ftp> open host [port] # 重新建立一个新的连接.
- ftp> prompt # 交互提示模式.
- ftp> put local-file [remote-file] # 将本地一个文件传送至远端主机中.
- ftp> pwd # 列出当前远端主机目录.
- ftp> quit # 同BYE.
- ftp> recv remote-file [local-file] # 同GET.
- ftp> rename [from] [to] # 改变远端主机中的文件名.
- ftp> rmdir directory-name # 删除远端主机中的目录.
- ftp> send local-file [remote-file] # 同PUT.
- ftp> status # 显示当前FTP的状态.
- ftp> system # 显示远端主机系统类型.
- ftp> user user-name [password] [account] # 重新以别的用户名登录远端主机.
- ftp> ? [command] # 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。
- ftp> ! # 从 ftp 子系统退出到外壳。
关闭FTP连接:
ftp> bye
ftp> exit
ftp> quit
下载文件:
ftp> get readme.txt # 下载 readme.txt 文件
ftp> mget *.txt # 下载
上传文件:
ftp> put /path/readme.txt # 上传 readme.txt 文件
ftp> mput *.txt # 可以上传多个文件
2.SSH
(1)服务器端:
①.安装SSH:sudo apt-get install openssh-server
可以使用sudo aptitude show openssh-server命令查看SSH是否安装
(这部分参考视频:https://www.bilibili.com/video/av33660709?p=41)
(2)客户端:
①.远程登录:ssh Username@IP,其中,Username是用户名,IP是远程服务器地址。
ssh命令 是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。
语法:
ssh(选项)(参数)
选项:
- -1:强制使用ssh协议版本1;
- -2:强制使用ssh协议版本2;
- -4:强制使用IPv4地址;
- -6:强制使用IPv6地址;
- -A:开启认证代理连接转发功能;
- -a:关闭认证代理连接转发功能;
- -b:使用本机指定地址作为对应连接的源ip地址;
- -C:请求压缩所有数据;
- -F:指定ssh指令的配置文件;
- -f:后台执行ssh指令;
- -g:允许远程主机连接主机的转发端口;
- -i:指定身份文件;
- -l:指定连接远程服务器登录用户名;
- -N:不执行远程指令;
- -o:指定配置选项;
- -p:指定远程服务器上的端口;
- -q:静默模式;
- -X:开启X11转发功能;
- -x:关闭X11转发功能;
- -y:开启信任X11转发功能。
参数:
远程主机:指定要连接的远程ssh服务器;
指令:要在远程ssh服务器上执行的指令。
实例:
# ssh 用户名@远程服务器地址
ssh [email protected]
②.退出登录:logout
3.SCP
Linux scp命令用于Linux之间复制文件和目录。scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
语法:
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
简易写法:
scp [可选参数] file_source file_target
参数说明:
- -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)的选项。
实例:
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个指定了文件名;
复制目录命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
或者
scp -r local_folder remote_ip:remote_folder
或者
scp -r remote_username@remote_ip:local_floder remote_floder
第1个和第3个指定了用户名,命令执行后需要再输入密码;第2个没有指定用户名,命令执行后需要输入用户名和密码;
2、从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
说明:
1.如果远程服务器防火墙有为scp命令设置了指定的端口,我们需要使用 -p 参数来设置命令的端口号,命令格式如下:
#scp命令使用端口号 4588
scp -p 4588 [email protected]:/usr/local/sin.sh /home/administrator
2.使用scp命令要确保使用的用户具有可读取远程服务器相应文件的权限,否则scp命令是无法起作用的。
4.RSH
Linux rsh命令用于远程登入的Shell。rsh(remote shell)提供用户环境,也就是Shell,以便指令能够在指定的远端主机上执行。
语法:
rsh [-dn][-l <用户名称>][主机名称或IP地址][执行指令]
参数说明:
- -d 使用Socket层级的排错功能。
- -l<用户名称> 指定要登入远端主机的用户名称。
- -n 把输入的指令号向代号为/dev/null的特殊外围设备。
实例:
开启rsh服务:
# chkconfig --list //检测rlogin服务是否开启
# chkconfig rsh on //开启rsh服务
# chkconfig -list //检测开启的服务
远程命令执行:
# rsh -l hnlinux 192.168.1.88 /bin/ls //远程执行ls命令