导航:首页 > 配服务器 > 终端如何拷贝服务器数据

终端如何拷贝服务器数据

发布时间:2022-08-05 16:08:42

A. 求:linux远程服务器与本地终端文件传输命令

Linux 文件命令精通指南
作者:Sheryl Calish

为刚接触 Linux 文件命令的初学者提供的速成教程

虽然 GUI 桌面(如 KDE 和 GNOME)能够帮助用户利用 Linux 特性,而无需关于命令行接口的功能知识,但还是经常会需要更多的功能和灵活性。而且,基本熟悉这些命令对于在 shell 脚本中正确地使某些功能自动化仍然是必需的。

这篇文章是关于 Linux 文件命令的一个“速成教程”,它是为那些刚接触这个操作系统或者只是需要补充这方面知识的用户提供的。它包含了对一些更有用的命令的一个简明的概述以及关于它们的最强大的应用的指导。下面包含的信息 — 结合一些实验 — 将使您能够容易地掌握这些基本的命令。(注意:当涉及到一个与 Oracle 集群文件系统 (OCFS) 结合的内核时,这些命令中的某些命令的行为可能会稍微有所不同。在此情况下,Oracle 提供了一个 OCFS 工具集,该工具集可以为文件命令应用提供一个更好的选择。)

注意,这里包含的所有示例都在 SUSE Linux 8.0 Professional 上进行了测试。虽然没有理由相信它们在其它的系统上将不能工作,但如果出现问题,您应当查看您的文档,以了解可能的变化。

背景概念

在深入研究规范之前,让我们回顾一些基础知识。

文件和命令

在 Linux/UNIX 操作系统中,所有事物都被当作文件来处理:硬件设备(包括键盘和终端)、目录、命令本身,当然还有文件。这个奇怪的惯例实际上是 Linux/UNIX 的能力和灵活性的基础。

大多数(几乎是全部)的命令形式如下:

command [option] [source file(s)] [target file]

获取帮助

最有用的命令之一是那些提供帮助的命令(特别是对那些学习 Linux 的人而言)。Linux 中的两个重要的信息来源是联机参考手册,或 man 页面和 whatis 工具。您可以用 whatis 命令来访问一个不熟悉的命令的 man 页面。

$ whatis echo

要了解关于这个命令的更多信息,可以使用:

$ man echo

如果您不知道某个特殊任务所需的命令,您可以用 man -k (也称为 apropos)和一个主题来生成可能的命令。例如:

$ man -k files

一个很有用但常常被忽视的命令可以提供关于使用 man 本身的信息:

$ man man

您可以用 SPACEBAR 来浏览任意的 man 页面;UP ARROW 将向上翻滚文件。.要退出,则输入 q,!,或 CTRL-Z。

用户类别

记得那句名言“所有动物一例平等但有些动物比其他动物更加平等”吗?在 Linux 世界中,根用户掌管一切。

根用户可以以另一个用户名 su (源自 "superuser")登录。要执行诸如添加一个新用户、打印机或文件系统之类的任务,必须作为根用户登录或者用 su 命令和根用户密码切换到超级用户。系统文件(包括控制初始化过程的系统文件)归根用户所有。虽然可能允许普通用户对它们进行读操作,但出于系统安全性的原因,编辑的权利将留给根用户。

BASH shell

虽然提供了其它的 shell,但 BASH (Bourne Again Shell) 是 Linux 的默认 shell。它结合了与它同名的 Bourne shell 的特性和 Korn、C 和 TCSH shell 的特性。

BASH 内置的命令 history 默认记录最后输入的 500 条命令。可以通过在命令提示符下输入 history 来查看它们。要检索某个特定的命令,可以在命令提示符下按 UP ARROW 或 DOWN ARROW,或在历史列表中输入它的编号,并在编号前面加上 "!",例如:

$ !49

您还可以通过一条命令在历史列表中离位置最靠前的项目的距离来执行该命令:如果在历史列表中有 53 个事件,$ !-3 将执行事件号 51。

像 UNIX/Linux 世界的其它 shell 一样,BASH 使用了特殊的环境变量来方便系统管理。例如:

HOME,用户主目录
PATH,Linux 用来搜索您输入的命令的可执行镜像的搜索路径
HISTSIZE,系统保存的历史事件的数量

除了这些保留的关键字之外,您还可以定义您自己的环境变量。例如,Oracle 使用 ORACLE_HOME (还有其它一些变量),要使 Oracle 安装成功完成,必须在您的环境中设置这些变量。

可以在提示符下临时设置变量:

$HISTSIZE=100

或者,在 /etc/profile (需要根用户权限)中进行系统范围的永久设置,或在 .profile 中进行局部永久设置。

可以通过 echo 命令,并用一个 $ 符号来访问一个环境变量的值,进而查看该值。

$ echo $HOME
/home/bluher

可以用 env 命令来查看当前所有的环境变量。

正则表达式和通配符

许多 Linux 命令使用通配符 * 和 ? 来匹配任意数量的字符或分别匹配任意的单个字符;正则模式匹配表达式利用一个句点 (.) 来匹配除“换行符”之外的任意单个字符。这两种情况下都使用方括号 ([ ]) 来匹配除“*”号之外的字符组。不过,* 号在各种情况下有类似但不同的意义:虽然它在 shell 中将匹配一个或更多的字符,但在正则表达式中,它匹配上述字符的零个或更多的实例。一些命令(如 egrep 和 awk)使用了一组更广泛的特殊字符来进行模式匹配。

文件处理命令

剖析一个文件列表

ls 命令用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如:

$ ls -liah *
22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile
19942 -rw-r--r-- 1 scalish users 30 Jan 3 20:00 test2.out
925 -rwxr-xr-x 1 scalish users 378 Sep 2 2002 test.sh

上面的列表显示 8 列:

第 1 列指示文件的 inode,因为我们使用了 -i 选项。剩下的列通过 -l 选项来进行正常显示。
第 2 列显示文件类型和文件访问权限。
第3 列显示链接数,包括目录。
第 4 和第 5 列显示文件的所有者和组所有者。这里,所有者 "bluher" 属于组 "users"。
第 6 列显示文件大小(单位为所显示的单位,而不是默认的字节数,因为我们使用了 -h 选项。
第 7 列显示日期(它看起来像是三列),包括月、日和年,以及当天的时间。
第 8 列显示文件名。在选项列表中使用 -a 将使列表中包含隐藏文件(如 .profile)的列表。
处理文件

可以移动 (mv)、复制 (cp) 或删除 (rm) 文件和目录。明智地使用 -i 选项,以获得确认通常是个不错的主意。

$ cp -i ls.out ls2.out
cpverwrite `ls2.out'?

mv 命令允许使用 -b 选项,这将在移动文件之前作一个备份拷贝。rm 和 cp 接受功能强大但却危险的 -r 选项,它将在一个目录和它的文件上递归执行。

$ rm -ir Test
rm:descend into directory `Test'? y

可以用 mkdir 来创建目录,用 rmdir 来删除目录。不过,因为不能用 rmdir 来删除包含文件的目录,所以使用 rm 加 -r 选项通常要更方便些。

出于安全的原因,所有的文件都有所有权和保护。文件访问权限(或文件模式)包含之前提到的相同的 10 个字符:

第一个字符指示文件类型。最常见的是 - 代表文件,d 代表目录,而 l 代表链接。
接下来的 9 个字符是三种用户类别的访问权限:文件所有者(字符 2-4),用户组 (5-7) 和其它 (8-10),其中 r 表示读权限,w 表示写权限,x 指示一个文件上的执行权限。破折号 - 如果出现在这九个位置的任意一个,则指示这个操作对该类别的用户禁止。

可以使用 chmod 命令通过字符符号或二进制掩码来设置访问权限。要使用二进制掩码,必须将三个权限组的字符表示转换成二进制格式,然后转换成八进制格式:

用户类别: 所有者 用户组 其它
字符表示: rwx r-x r--
二进制表示: 111 101 100
八进制表示: 7 5 4

将写权限赋予用户组,您可以使用:

chmod g+w test.sh or chmod 774 test.sh

用 umask 命令,在 /etc/init.dev 文件中进行系统范围内的、或在 .profile 文件中进行的本地的文件权限默认设置。这个命令指示用 777 减去这个数字来获取默认的权限:

$ umask 022

这将为用户创建的所有新文件生成一个默认的文件权限 755。

可以用 chown 来修改文件的所有权:

$ chown bluher ls.out

这里,bluher 是新的文件所有者。类似地,组成员资格将按以下方式修改:

$ chgrp devgrp ls.out

这里,devgrp 是新的用户组。

ls 不提供哪些文件是文本的,哪些文件是二进制的的信息。要了解这个信息,您可以使用 file * 命令。

重命名文件

赋予一个文件多个名字的两种流行的方法是利用链接和 alias 命令。Alias 可以用来为一个更长的命令重新起一个更方便的名字:

$ alias ll='ls -l'
$ ll

注意单引号的使用,这使得 BASH 将该项目传递给别名,而不是自己估计它。别名还可用作较长的路径名的缩写:

$ alias jdev9i=/jdev9i/jdev/bin/jdev

关于 alias 和它的反命令 unalias 的更多信息,请查看 BASH 的 man 页面的 "SHELL BUILTIN COMMANDS" 子部分。在最后一个例子中,定义了一个环境变量来实现相同的结果。

$ export JDEV_HOME=/jdev9i/jdev/bin/jdev
$ echo $JDEV_HOME
/jdev9i/jdev/bin/jdev
$ $JDEV_HOME

链接允许几个文件名引用单个源文件,格式如下:

ln [-s] fileyouwanttolinkto newname

单独的 ln 命令创建到文件的一个硬链接,而使用 -s 选项来创建一个符号链接。简而言之,一个硬链接几乎不能和原始的文件区分开(除了这两个文件的 inode 将相同之外)。符号链接较容易区分,因为它们出现在一个长的文件列表中,并用 ->; 来指示源文件,l 指示文件类型。

查看和查找文件

文件过滤器

用来读取文件内容和在文件内容上执行操作的命令有时被称为 ¹&滤器。sed 和 awk 命令是两个滤波器的例子,因为在以前的 OTN 文章中有它们详细的讨论,在这里将略过。

诸如 cat、 more 和 less 之类的命令让您能够从命令行查看一个文本文件的内容,而无需调用编辑器。Cat 是 "concatenate" 的缩写,它将默认地在标准输出(显示屏)上显示文件内容。和 cat 一起提供的最有趣的选项之一是 -n 选项,它用编号的输出行来显示文件内容。

$ cat -n test.out
1 This is a test.

因为 cat 一次性输出文件中的所有行,所以您可能更喜欢用 more 和 less,因为它们都一次输出一屏的文件内容。Less 是 more 的一个增强的版本,它允许用来自 vi 文本编辑器的关键命令来增强文件查看。例如,d 向前翻滚、b 向后翻滚 N 行(如果 N 是在 d 或 b 之前指定的)。为 N 输入的值成为随后的 d 命令的默认值。man 页面实用工具使用 less 来显示使用说明的内容。

重定向和管道

重定向允许将命令输出重定向到文件中,而不是标准输出,或者类似地,也可重定向输入。重定向的标准符号 >; 创建一个新的文件。>;>; 符号将输出添加到一个现有的文件中:

$ more test2.out
Another test.
$ cat test.out >;>; test2.out
$ cat test2.out
Another test.
This is a test.

到文件的标准输入可以用 < 符号来重定向:

$ cat < test2.out

错误消息用 2>; 和 2>;>; 来重定向和添加,格式如下:

$ command 2>; name_of_error_file

要避免无意地覆盖一个现有的文件,使用 BASH 内置的命令集:

$ set -o noclobber

可以在命令和输出文件之间用 >;! 符号来重载这个特性。要关闭这个特性,用 +o 代替 -o。

重定向在一个命令和文件之间、或文件和文件之间工作。重定向语句的一项必须是一个文件。

管道使用 |符号,并且在命令之间工作。例如,您可以用以下方式将一个命令的输出直接发送到打印机上:

$ ls -l * | lpr

可以用以下方式快速地找到历史列表中的一个命令:

$ history | grep cat

更多的滤波器

Grep、fgrep 和 egrep 都显示匹配一种模式的行。所有这三个命令都在文件中搜索指定的模式,如果您想不起来一个所需文件的名称,这将非常有用。基本格式是:

grep [options] PATTERN [FILE...]

$ grep -r 'Subject' nsmail

CTRL-Z 将终止上述或其它任何命令。

grep 的最有用的选项可能是 -s。如果您以除根用户之外的任何身份搜索系统文件,那么对于每一个您没有访问权限的文件,都将产生错误消息。这个命令禁止那些消息。

Fgrep(也以 grep -F 调用)只查找固定的字符串,而不是 grep 接收的正则表达式。而 egrep 接收包含更大范围的特殊字符(如 “|”,它指示条件 OR 运算符)的模式。

$ egrep 'Subject|mailto' *

查找文件

find 命令的 GNU 版本非常强大、灵活并且比 UNIX 系统上存在的经典版本更具包容性。它对于涉及到目录结构的任务非常有用,包括在文件上查找和执行命令。find 命令的基本格式是:

$ find startdirectory options matchcriteria [actionoptions]

如果您知道文件的名称、或者甚至名称的一部分,但不知道它所处的目录,您可以这么做:

$ find .-name 'test*'
./test
./jdevhome/mywork/EmpWS/EmpBC4J/test

与经典的 UNIX 系统不同,在 Linux 中不需要在末尾添加 -print 操作,因为如果没有指定其它的操作选项,就将假定执行这个操作。在目录起始位置上的一个点 ( . ) 将使 find 在您的工作目录中开始搜索。两个点, ..,在父目录中开始搜索。您可以在任意目录下开始搜索。

注意,您可以使用通配符作为搜索准则的一部分(只要用单引号将整个项目括起来)。

$ find .-name 'test*' -print
./test.out
./test2.out

显示拥有 .out 扩展名的一系列文件:

$ find /home -name '*.out'

不过记住,除非您是作为超级用户运行这个命令,否则您将可能得到许多的 "ermission denied" 错误消息。

最强大的搜索工具之一是和 grep 一起使用的 -exec 操作:

$ find .-name '*.html' -exec grep 'mailto:[email protected]' {} \;

.,查找一个 html 文件,*.html,并在当前文件上执行 (-exec) grep 命令,{}。当使用 -exec 操作时,需要一个分号 ;,这是用来在使用 find 命令时执行其它一些操作。需要反斜线 \ 和引号来确保这些项目通过 BASH,以使它们由命令而不是 shell 来进行解释。

B. 怎么拷贝数据库

当你使用一种直接备份方法时,你必须保证表不在被使用。如果服务器在你则正在拷贝一个表时改变它,拷贝就失去意义。保证你的拷贝完整性的最好方法是关闭服务器,拷贝文件,然后重启服务器。如果你不想关闭服务器,要在执行表检查的同时锁定服务器。如果服务器在运行,相同的制约也适用于拷贝文件,而且你应该使用相同的锁定协议让服务器“安静下来”。假设服务器关闭或你已经锁定了你想拷贝的表,下列显示如何将整个samp_db数据库备份到一个备份目录(DATADIR表示服务器的数据目录):%cd DATADIR%cp -r samp_db /usr/archive/mysql单个表可以如下备份:%cd DATADIR/samp_db%cp member.* /usr/archive/mysql/samp_db%cp score.* /usr/archive/mysql/samp_db ....当你完成了备份时,你可以重启服务器(如果关闭了它)或释放加在表上的锁定(如果你让服务器运行)。要用直接拷贝文件把一个数据库从一台机器拷贝到另一台机器上,只是将文件拷贝到另一台服务器主机的适当数据目录下即可。要确保文件是MyIASM格式或两台机器有相同的硬件结构,否则你的数据库在另一台主机上有奇怪的内容。你也应该保证在另一台机器上的服务器在你正在安装数据库表时不访问它们。 重点是这个:要确保文件是MyIASM格式或两台机器有相同的硬件结构

C. 如何把一个服务器上的文件,拷贝到另一个服务器上

1、我们首先连接到linux服务器上,

D. 怎么从服务器上把数据库拷贝下来

方法1:
停止服务器上面SQL SERVER服务,然后拷贝对应的mdf和ldf文件到本地,然后在本地直接"附加数据库"的方式添到本地SQL SERVER里面去.

方法2:
在服务器上通过企业管理器--->展开-->对应数据库右键"备份数据库"---生成.bak后缀的备份文件------->把备份文件拷贝回本地---->企业管理器---->恢复数据库--->完成.

方法3(只适合仅拷贝表数据的情形):
利用企业管理器里面的导入\导出功能即可.

E. 远程桌面怎样复制本地文件

在我们电脑上打开“远程桌面连接”。

然后点击远程连接对话框中的“选项”。

在弹出的对话框中点击“本地设备和资源”下面的“详细信息”,之后进行如图设置:

在这里勾选上我们本地电脑上的硬盘盘符,然后点确定,之后输入远程电脑IP地址,账号与用户,连接进入远程桌面电脑。
然后在远程桌面电脑的“我的电脑”里面即可找到我们本地电脑上的虚拟磁盘,点击即可进入浏览,并且还可以从里面复制文件到远程桌面电脑上。

F. 阿里云centos7 服务器在终端怎么复制东西进入命令行

像win操控可以用putty连接远程服务器就可以右键粘贴了。直接服务器命令行里面是没法粘贴的

G. linux下在远程终端如何提取服务器上的文件

1.SCP命令。2.如果你们服务器有安装samba服务,可以想Windows一样在IE浏览器输入 //对方IP,来直接用资源管理器拿去文件。当然要求对方服务器的工作组和你本地Windows的工作组一样,并且他共享的目录为根目录。如果不是根目录,如/user。那就得//对方IP/user

阅读全文

与终端如何拷贝服务器数据相关的资料

热点内容
python多张图片拼接与层叠 浏览:977
河北廊坊电信dns服务器地址 浏览:849
老股民指标源码 浏览:30
伟福显示未安装编译器什么意思呢 浏览:232
拉伸命令cad 浏览:489
yy安卓怎么抢麦 浏览:932
阿里云共享型服务器价格 浏览:442
压缩机效率低 浏览:54
python读取excel制作直方图 浏览:485
这周游源码 浏览:179
安卓手机图标怎么变成一样的 浏览:358
pythongui选择文件 浏览:481
预付APP哪个部门管理 浏览:612
程序员入门英语听力 浏览:128
服务器网站被大量不明地址访问 浏览:376
软件分享网站源码 浏览:611
rn是什么文件夹 浏览:988
钢筋核心区域加密 浏览:279
nginxphp慢 浏览:293
服务器系统如何写入u盘 浏览:13