Linux文件系统的说明介绍(中)

大家应该都知道linux中怎么打开一个文件
vi
正常打开一个文件,只需要简单一句代码即可

vi profile

但如果要打开的同时有其他的作用
那就简单介绍几个

vi +8 profile打开文件,并将光标置于第8行
vi + profile 打开最后一行
vi +/if profile打开指定搜索单词的位置
然后就是,vi有一个好用的编辑器,VIM
它相对于普通的VI多了不少便利的功能,不过操作起来还是一样的。这里不做过多介绍
使用 Vim 编辑文件时,存在 3 种工作模式,分别是命令模式、编辑模式和底行模式,这 3 种工作模式可随意切换,如下图所示。
在这里插入图片描述

  • 命令模式:每一个按键都有其具体的功能。
  • 编辑模式:输入什么就是什么。
  • 底行(命令行)模式:保存文件或对文件中的指定内容执行查找或替换等操作。

简单说一下三种模式下的快捷操作指令

命令模式
G :跳转至文件末尾。
gg :跳转至文件第一行。
数字gg :跳转到指定行,例如: 2gg ,跳转到第 2 行。
^ :跳转至行首。
$ :跳转至行末。
w :跳到下个单词处。
数字w :跳转到指定个数的单词处。
yw :复制一个单词。
3yw :复制三个单词。
yy :复制一行。
3yy :复制三行。
p :粘贴复制内容。
6p :粘贴 6 次。
dw :删除一个单词。
3dw :删除三个单词。
dd :删除一行。
3dd :删除三行。
u :回退到上一步的操作。
Ctrl + r :回退 u 执行的操作。
. :重复上一步操作。
x :剪切当前光标处字符。
3x :剪切三个字符。
r :替换,然后输入一个字符替换,例如: r1 ,光标处字符会被替换为 1 。
3r :替换三个字符。
kjhl :方向键,分别对应上下左右。
ZZ :保存并退出。
ZQ :不保存退出。
Ctrl + s :锁屏。
Ctrl + q :解锁。
…等等

编辑模式
 这个没什么好说的,就和正常文本输入一样,输入什么就是什么。
 
底行模式
:set nu :打开行号。
:set nonu :关闭行号。
/要查找的内容 :搜索指定的字符串。
n :查找下一个。
N :查找上一个。
s/要查找的内容/替换为的内容/修饰符 :替换字符串。
/i :忽略大小写。
/g :替换当前行所有,不加 /g 只替换当前行的第一个。
3,8s/abc/lucky/g :替换指定行,不加 /g 只替换指定行的第一个。
%s/要查找的内容/替换为的内容/g :替换全文,不加 % 表示只替换光标所在行。
:w :保存。
:q :退出。
:wq :保存并退出。
q! :强制退出,不保存

如果上次异常退出(比如文件正在编辑忽然断电或者直接把 Shell 窗口关闭了)会保留同名隐藏文件。每次启动会给与提示。如果确定当前文件没问题,请删除隐藏文件。
这时候就能体现出一个vim的优点,它会给你自动地使用备份文件导入,可以省下不少时间。

计算机之间的数据传输

Window - Linux

这里简单提供两种方法:

使用lrzsz

在Linux上手动安装:yum -y install lrzsz
rz:将文件从window上传到Linux
sz 文件:将文件从Linux传输到Window
安装完 lrzsz 插件以后,还支持使用鼠标拖拽文件至 Xshell 的方式来上传文件

使用xftp

较为通用的文件传输方式
这个就非常简单便捷了,跟在windows上拖动传输文件没多大差别

Linux - Linux

有两种情况

scp

Linux 机器之间互相传输文件使用 scp 命令即可。 s :SSH 协议的意思, cp :拷贝。
scp 表示安全复制,该命令可以在两个位置之间安全地复制文件和目录。使用 scp,可以复制文件:

  • 从本地系统到远程系统;
  • 从远程系统到本地系统。

使用 scp 传输数据时,文件是加密的,因此任何敏感内容都不会在传输过程中被篡改。
scp 命令格式如下:

[root@localhost ~]# scp 源数据地址(source) 目标数据地址(target)
# A 端的 ~/test 目录拷贝到 B 端的 ~ 目录,B 端 ~ 目录下会出现 test 目录
[root@localhost ~]# scp -Crp -l 1 test/ root@192.168.88.100:~

常用选项:
-C (大写):允许传输过程中压缩,可提高效率
-r :递归传输整个目录(如果传输的是文件则不需要这个参数)
-p (小写):保留源文件的修改时间和访问权限等
-P (大写):指定远程主机的 ssh 端口
-l :limit 限制传输带宽 KB/s, -l 1 表示限制每秒 1kb 的传输效率
-v :详细模式,打印有关其进度的调试消息的选项,这有助于调试连接、身份验证和配置问题(调试可以使用)
 如果是第一次连接到目标服务器,会得到一个提示,寻求将对方主机添加到当前设备的已知主机列表。添加后在这台电脑上连接目标服务器时就不会再有这个提示

  • 已知主机列表文件叫 known_hosts/root/.ssh/known_hosts

然后需要输入目标服务器的密码进行身份认证,认证通过后即可正常操作。

只不过,因为 SSH 协议是一个验证授权的网络协议,所以每次传输都需要输入密码。有没有什么办法可以解决这个问题?当然有,我们可以使用非对称加密公私钥实现免密操作,关于这块的内容后面会详细的讲解,这里先略过。

rsync

rsync 也是一个比较实用的命令,用于通过远程 Shell 在两个位置之间同步文件,它通传输源和目标之间的差异来提供更快的文件传输。使用前需要先安装命令(传输的双方都必须安装 rsync):

[root@localhost ~]# yum -y install rsync

既然都有了 scp ,还需要用到 rsync 吗?当然,因为增量备份和在拷贝目录时,排除掉目录中的某些文件这两个场景 scp 就满足不了。
rsync 命令格式如下:

[root@localhost ~]# scp 源数据地址(source) 目标数据地址(target)
# A端的~/test目录拷贝到B端的~目录,B端~目录下不会出现test目录,而是把A端的~/test目录下的所有文件拷贝到B端的~目录
[root@localhost ~]# rsync -az --exclude 'log' --bwlimit=1 test/ root@192.168.88.100:~
# A 端的 ~/test 目录拷贝到 B 端的 ~ 目录,B 端 ~ 目录下会出现 test 目录
[root@localhost ~]# rsync -az --exclude 'log' --bwlimit=1 test/ root@192.168.88.100:~/test

常用选项:
-r :递归传输目录下所有文件
-a :归档模式,保持所有文件属性。递归同步并保留符号链接、组、所有者和权限,它比 -r 更常用
-v :显示 rsync 过程的详细信息, -vvvv 可以获取更加详细的信息
-z :传输时进行压缩处理
-exclude=PATTERN :排除不需要传输的文件格式
-exclude-from=FILE :排除 FILE 中指定格式的文件
-bwlimit :限制 I/O 带宽 KB/s
--partial :恢复因某些原因而中断的传输
--progress:显示传输进度
-P (大写):由两个参数组成。

  • --partial:恢复某些原因而中断的传输, --progress :显示传输进度

--delete :从目标目录中删除无关文件。例如某一端删除了某些文件,使用该参数后另一端对应的文件也会被删除

区别

  • scp 通过安全的 SSH 连接进行文件传输(总是安全的),rsync 不是加密传输,rsync 必须通过 SSH 传输才能安全;
  • 如果要传输大文件,并且传输在完成之前断开连接,rsync 会从中断的地方继续传输,而 scp 没有;
  • rsync 默认是只拷贝有变动的文件,scp 是全量拷贝,所以 rsync 很适合做增量备份

rsync 比较端与端的文件并只传输更改文件的更改部分,当你第一次传输文件时,它的行为与 scp 非常相似,但是对于大多数文件未更改的第二次传输,它推送的数据将比 scp 少得多。这也是一种重新启动失败传输的便捷方法,你只需重新发出相同的命令,它就会从上次中断的地方开始,而 scp 将从头开始。
  通常情况下,用 scp 比较多,因为它使用起来更加简单。但对于重复性任务,请使用 rsync,因为在多次调用时,它将利用已传输的数据,执行速度非常快且节省资源,并且在拷贝目录时,还支持排除掉目录中的某些文件。它是在网络上保持两个目录同步的绝佳工具。
  此外,在处理大文件时,请使用带有 -P 选项的 rsync。如果传输被中断,可以通过重新发出命令从它停止的地方恢复传输。

总结

rsync 和 scp 在文件夹均不存在时,执行时间相差不大,但是文件夹存在的情况下差异很大。原因是 scp 是复制:若目的地文件不存在则新建,若存在则覆盖。而 rsync 是同步,比较两边文件是否相同,相同的话,就什么都不做,若存在差异就直接更新。
  起到同步的作用时用 rsync 会快一些,起到复制作用时两者均可(目的地无文件)。视情况来选择 rsync 或 scp,如果小文件非常多(过万),且只改动了一两个,使用 rsync 就不见得比 scp 快,因为 scp 无脑全部覆盖,rsync 还需要一个个去比较,比较会浪费大量时间。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值