操作系统

linux系统中scp命令的使用方法

时间:2023-04-07 09:49:23 操作系统 我要投稿
  • 相关推荐

linux系统中scp命令的使用方法

  Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。下面小编整理了linux系统中scp命令的使用方法,希望对大家有帮助!

  scp命令的用处:

  scp在网络上不同的主机之间复制文件,它使用ssh安全协议传输数据,具有和ssh一样的验证机制,从而安全的远程拷贝文件。

  scp命令基本格式:

  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命令的参数说明:

  -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)的选项。

  scp命令的实际应用

  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 /home/linux/soft/scp.zip root@www.mydomain.com:/home/linux/others/soft

  scp /home/linux/soft/scp.zip root@www.mydomain.com:/home/linux/others/soft/scp2.zip

  scp /home/linux/soft/scp.zip www.mydomain.com:/home/linux/others/soft

  scp /home/linux/soft/scp.zip www.mydomain.com:/home/linux/others/soft/scp2.zip

  (2) 复制目录:

  命令格式:

  scp -r local_folder remote_username@remote_ip:remote_folder

  或者

  scp -r local_folder remote_ip:remote_folder

  第1个指定了用户名,命令执行后需要输入用户密码;

  第2个没有指定用户名,命令执行后需要输入用户名和密码;

  例子:

  scp -r /home/linux/soft/ root@www.mydomain.com:/home/linux/others/

  scp -r /home/linux/soft/ www.mydomain.com:/home/linux/others/

  上面 命令 将 本地 soft 目录 复制 到 远程 others 目录下,即复制后远程服务器上会有/home/linux/others/soft/ 目录

  2>从远程服务器复制到本地服务器

  从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

  例如:

  scp root@www.mydomain.com:/home/linux/soft/scp.zip /home/linux/others/scp.zip

  scp www.mydomain.com:/home/linux/soft/ -r /home/linux/others/

  linux系统下scp命令中很多参数都和 ssh1 有关 , 还需要看到更原汁原味的参数信息,可以运行man scp 看到更细致的英文说明.

  scp命令在两台服务器直接进行文件传输的方法

  假设有两台机器,均为局域网,两机可相互通信无问题,中间无防火墙。

  两机IP分别为:A:192.168.8.232 B:192.168.8.232

  假设A,B机的SSH都允许root登录

  设要把 A上的 /root/abc.zip 传到 B机并放到/abc目录,可以在A机上用命令:

  scp /root/abc.zip root@192.168.8.232:/abc/

  若 SSH端口不是默认的22,比如,是端口1234 则加-P参数:

  scp -P 1234 /root/abc.zip root@192.168.8.232:/abc/

  也可以在B机上用命令:

  scp root@192.168.8.232:/root/abc.zip /abc/

  若 获取服务器SSH端口不是默认的22,比如,是端口 1234 则加-P参数:

  scp -P 1234 root@192.168.8.232:/root/abc.zip

  Linux系统常用的网络命令及使用方法

  1、ping

  ping命令工作在OSI参考模型的第三层-网络层。

  ping命令会发送一个数据包到目的主机,然后等待从目的主机接收回复数据包,当目的主机接收到这个数据包时,为源主机发送回复数据包,这个测试命令可以帮助网络管理者测试到达目的主机的网络是否连接。

  ping无法检查系统端口是否开放。

  2、telnet

  Telnet是位于OSI模型的第7层---应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证,是Internet远程登陆服务的`标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务:

  1)Telnet定义一个网络虚拟终端为远程系统提供一个标准接口。客户机程序不必详细了解远程系统,他们只需构造使用标准接口的程序;

  2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项; .

  3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。

  telnet可以检查某个端口是否开放:telnet IP:Port

  3、ssh

  安全套接层(Secure Socket Layer,简称SSL)协议是建立在应用层和传输层基础上的安全协议,可以用来替代Telnet、FTP以及R命令,主要是用于解决口令在网上明文传输的问题。用 Telnet 和 FTP 登录服务器时,密码以明文的形式发送给服务器,怀有恶意的人可以通过监听网络上传输的数据包,得到用户的登录信息。通过使用SSH,用户可以把所有传输的数据进行加密,而且还能够防止DNS和 IP欺骗,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。其特征是:

  (1)SSH可以为浏览器和服务器的联系提供透明的保护。

  (2)所有的连接都可以自动地加密,并且不会受到损害。

  (3)SSH加密整个传输过程。因此,能够防止任何在客户端和服务器之间的第三者看到传输内容。

  (4)SSH 安装容易、使用简单,而且比较常见,一般的 UNIX 系统、Linux 系统、FreeBSD 系统都附带有支持SSH的应用程序包。

  4、netstat

  Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。常用参数如下:

  -a (all)显示所有选项,默认不显示LISTEN相关

  -t (tcp)仅显示tcp相关选项

  -u (udp)仅显示udp相关选项

  -n 拒绝显示别名,能显示数字的全部转化成数字。

  -l 仅列出有在 Listen (监听) 的服務状态

  -p 显示建立相关链接的程序名

  -r 显示路由信息,路由表

  -e 显示扩展信息,例如uid等

  -s 按各个协议进行统计

  -c 每隔一个固定时间,执行该netstat命令。

  netstat用与检查某个端口是否开放如下:netstat -lnp | grep 端口号。

  linux系统命令大全

  系统

  # uname -a # 查看内核/操作系统/CPU信息

  # head -n 1 /etc/issue # 查看操作系统版本

  # cat /proc/cpuinfo # 查看CPU信息

  # hostname # 查看计算机名

  # lspci -tv # 列出所有PCI设备

  # lsusb -tv # 列出所有USB设备

  # lsmod # 列出加载的内核模块

  # env # 查看环境变量

  资源

  # free -m # 查看内存使用量和交换区使用量

  # df -h # 查看各分区使用情况

  # du -sh # 查看指定目录的大小

  # grep MemTotal /proc/meminfo # 查看内存总量

  # grep MemFree /proc/meminfo # 查看空闲内存量

  # uptime # 查看系统运行时间、用户数、负载

  # cat /proc/loadavg # 查看系统负载

  磁盘和分区

  # mount | column -t # 查看挂接的分区状态

  # fdisk -l # 查看所有分区

  # swapon -s # 查看所有交换分区

  # hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)

  # dmesg | grep IDE # 查看启动时IDE设备检测状况

  网络

  # ifconfig # 查看所有网络接口的属性

  # iptables -L # 查看防火墙设置

  # route -n # 查看路由表

  # netstat -lntp # 查看所有监听端口

  # netstat -antp # 查看所有已经建立的连接

  # netstat -s # 查看网络统计信息

  进程

  # ps -ef # 查看所有进程

  # top # 实时显示进程状态

  用户

  # w # 查看活动用户

  # id # 查看指定用户信息

  # last # 查看用户登录日志

  # cut -d: -f1 /etc/passwd # 查看系统所有用户

  # cut -d: -f1 /etc/group # 查看系统所有组

  # crontab -l # 查看当前用户的计划任务

  服务

  # chkconfig --list # 列出所有系统服务

  # chkconfig --list | grep on # 列出所有启动的系统服务

  程序

  # rpm -qa # 查看所有安装的软件包

  Linux系统关机的命令

  Linux系统提供了多个命令,可以对操作系统进行关机、重启等操作,那不同命令之间有什么区别或相同之处,今天我们来对shutdown、reboot、halt、init、poweroff进行一一对比。

  1、shutdown:只能由超级用户执行

  Linux系统man注释中标注为“shutdown - bring the system down”,促使系统关机。它可以安全的关闭系统,还可在关闭系统之前给所有已登录用户提示警告信息,并锁定系统login不允许再登录。直接执行shutdown命令,在停止系统运行之前,会把系统即将关闭的信息告诉已登录用户,并留给1分钟(值可以更改)时间来完成剩余工作,1分钟后系统调用killall命令杀死系统中运行的进程,并用sync命令将内存中的缓冲数据保存到硬盘上,再卸载已安装的文件系统,最后使用halt命令停止系统。他的另一个特点是可以指定系统关机时间或指定从现在开始一段时间后关机。

  shutdown命令语法格式为:

  shutdown [参数] [时间] [警告信息]

  常用参数如下:

  -k:并不真正关机而只是发出警告信息给所有用户

  -r:关机后立即重新启动

  -h:关机后不重新启动

  -f:快速关机且重启动时跳过fsck(fsck为文件系统检查)

  -n:快速关机不经过init:程序

  -c:取消一个已经运行的shutdown

  使用样例:

  //设置系统15分钟后关机并重启

  # shutdown -h +10

  //马上关闭系统并重启

  # shutdown -r now

  2、halt:

  halt(stop the system)是简单的关机命令,执行命令时直接杀死应用进程,﹐执行sync同步缓存数据,待系统调用文件系统写操作完成后就会停止内核。

  3、reboot、init、poweroff

  reboot、init、poweroff三个命令的功能类似,且三个命令的使用参数也几乎完全一致。

  共用参数:

  -w:并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录

  -d:不写wtmp纪录

  -f:不调用shutdown而强制关机或重启

  -i:关机〔或重启〕前﹐关掉所有的网络接口

  不同之处为:

  halt命令为关机;

  reboot命令执行的是重启。且重启系统时是删除所有系统进程而不是停止,reboot命令可以快速关闭系统,但可能导致系统数据异常。

  poweroff命令在关闭系统之后,还会通知,切断电源供电。

  4、init

  init是系统启动的第一个进程,ID号永远为1。init命令用于切换系统运行级别。

  使用方法为:init X

  系统运行级别及代表涵义如下:

  0:停机

  1:单用户形式

  2:多用户形式

  3:完全多用户

  5:图形化形式(X-Windows)

  4:安全模式

  6:重启

  注:使用runlevel命令可以查看系统当前运行级别。系统启动后默认运行级别在配置文件/etc/inittab中指定。

  友情提示:以上所有命令请谨慎使用,千万不可在正在使用的系统上随意执行。

【linux系统中scp命令的使用方法】相关文章:

Linux系统中smbclient命令的使用方法08-08

Linux系统top命令的使用方法介绍03-09

linux系统下dd命令的使用方法08-09

linux系统下sudo命令使用方法08-20

Linux系统常用的网络命令及使用方法12-02

Linux系统中hexdump的命令汇总08-14

Linux系统格式化命令的使用方法10-07

Linux系统中strace命令的使用代码08-13

Linux系统中命令的学习方法09-13