【linux链接文件与编辑工具vim】

一,lnode与Block

文件有文件名与数据,在Linux上被分为两部分:数据date与文件元数据metadata
1.数据data block:数据块是用来记录文件真实内容的地方,称为:Block
2.元数据metabata:用来记录文件大小,创建时间,所有者等信息,称为Inode
3.注意:Inode并不包含文件名称,inode仅包含文件的元数据信息
①文件的字节数
②文件的时间戳
③文件数据block的位置
④文件的User ID Group ID
⑤文件的读,写,执行权限
⑥链接数,即有多少个文件名指向这个inode
4.每一个inode都是一个编号,操作系统是通过Inode来识别不同的文件
①对于系统,文件名只是inode便于识别的别名或绰号,便于识别
②表面上,用户是通过文件名打开的文件,事实上系统内部这个过程分为三步:
Ⅰ:系统找到这个文件名对应的inode编号
Ⅱ:通过inode编号,获取inode信息
Ⅲ:根据inode信息,找到文件数据所在的block,读出数据
大量的小文件,会消耗innode,一旦被使用完;就会提示空间不足,实际情况空间还能继续存数据;大文件存储;消耗1个innode,多个Block,如果是block会占用完毕,说明空间是真的不足了

在这里插入图片描述

软连接

什么是软连接:

①软连接文件会将inode指向源文件的block当我们访问这个链接文件时,其实访问的是源文件本身,类似windows的快捷方式
在这里插入图片描述

软连接使用场景

①软件升级
②代码发布
在这里插入图片描述
在这里插入图片描述

#1:准备1.1版本的网站代码
[root@localhost ~]# mkdir -p /data/rainbow-v1.1 
[root@localhost ~]# echo "123" > /data/rainbow-v1.1/index.html

#2:创建软连接
[root@localhost data]# ln -s /data/rainbow-v1.1/ /data/rainbow
[root@localhost data]# ll
total 0
lrwxrwxrwx. 1 root root 19 Dec  1 00:19 rainbow -> /data/rainbow-v1.1/
drwxr-xr-x. 2 root root 24 Dec  1 00:18 rainbow-v1.1

#3:检查网站程序
[root@localhost data]# cat /data/rainbow/index.html 
123

#4:更新网站程序代码
[root@localhost data]# mkdir /data/rainbow-v1.2
[root@localhost data]# echo "456" > /data/rainbow-v1.2/index.html

#5:升级
[root@localhost data]# rm -f /data/rainbow && ln -s /data/rainbow-v1.2/ /data/rainbow
[root@localhost data]# cat /data/rainbow/index.html 
456

#6:退回v1.1版本
[root@localhost data]# rm -f /data/rainbow && ln -s /data/rainbow-v1.1/ /data/rainbow
[root@localhost data]# cat /data/rainbow/index.html 
123

硬链接

不同的文件名指向同一个inode,简单来说就是指向同一个真实的数据源,类似:超市有多个门,无论从哪个门进入,看到的内容都是一样的,如果关闭其中一扇门,但都不会影响进入超市
在这里插入图片描述


硬链接与软连接的区别
①ln命令创建硬链接,ln -s命令创建软链接
②目录不能创建硬链接,硬链接不可以跨越分区系统
③硬链接文件与源文件的inode相同,软连接文件与源文件inode不同
④软链接支持对目录传创建,同时也支持跨越分区系统
⑤删除源文件及其硬链接文件,整个文件会被真正的删除
⑥删除链接文件的源文件,对硬链接无影响,会导致软链接失效
⑦删除文件的硬链接文件,对源文件及链接文件无任何影响
⑧删除软链接文件,对源文件及链接文件无任何影响


二,linux编辑工具vim

vim 基础

什么是vim

vi 和 vim 是linux下的文本编辑工。(类似于windows的记事本)

为什么需要vim

Linux下一切皆文件,而最多的就是修改服务的配置(修改文件内容),也就是说没有vi及vim,我们很多在linux上的工作则无法完成。

vi与vim的区别

vi和vim都属于文本编辑器,vim只不过是vi的增强版,比vi多了语法高亮显示,其他功能基本一致
采用最小化安装操作系统所以没有vim命令,安装命令:yum install vim

如何使用vim

vim的三种模式:普通模式,编辑模式,末行模式,(视图模式)
每种模式分别支持多种不同的快捷键,要想高效率的操作文本,必须学习三种模式的操作区别,模式之间的切换方法
在这里插入图片描述
vim三种模式介绍

  • 1.普通模式:主要是用来控制光标移动,可以对文本进行复制,粘贴,删除等工作

    + 使用vim 编辑一个文件时,一进入该文件就是普通模式
    + 在这个模式下,可以进行光标移动,复制,粘贴,删除等等
    
  • 2.编辑模式:主要进行文本内容编辑和修改

    • 从普通模式进入编辑模式,只需要按其中一个键即可:i,I,a,A,o,O
    • 当进入编辑模式时,屏幕最下面会出现INSERT或“插入”标记
    • 从编辑模式回到普通模式只需要按ESC键即可
  • 3.末行模式:主要用于保存或退出文本

    • 在普通模式下,输入 :或者 / 即可进入末行模式
    • 在命令该模式下,可进行的操作有:显示行号,搜索,替换,保存,退出。
  • 4.总结:vim编辑打开文件整体流程

    • 默认打开文件处于普通模式
    • 从普通模式切换至编辑模式使用i,a,o
    • 编辑模式修改完毕需要先使用ESC返回普通模式
    • 在普通模式下输入:或 / 进入末行模式,可实现文件的保存与退出
      注意:在vim中,无法直接从编辑模式切换到末行模式

vim模式的使用

普通模式

1.普通模式:主要用于光标移动,复制,粘贴,删除,替换
G			#光标跳转至末端
gg			#光标跳转至顶端
Ngg			#光标跳转至当前文件内的第N行
$			#光标跳转至当前光标所在行的尾部
^			#光标跳转至当前光标所在行的首部
****************************************************************************************
2.文件内容较多
ctrl+f		#往下翻页
ctrl+b		#往上翻页
****************************************************************************************
3.复制与粘贴
yy			#复制当前光标所在行
5yy			#复制当前光标以及光标向下4行

p[小写]		#粘贴至当前光标下一行
P[大写]		#粘贴至当前光标上一行
****************************************************************************************
4.删除,剪贴,撤销
dd			#删除当前光标所在行
4dd			#删除当前光标所在的行以及往下的3行
dG			#删除当前光标以后的所有行子i
D			#删除当前光标及以后的内容
x[小写]		#删除当前光标标记往后的字符
X[大写]		#删除光标当前标记往前的字符
dd & p		#剪贴,先前删除dd9(numner dd),后粘贴
u			#撤销上一次的操作
****************************************************************************************
5.替换
r[小写]		#替换当前光标标记的单个字符
R[大写]		#进入REPLACE模式,连续替换,ESC结束

编辑模式

编辑模式:主要用于编辑文件
i			#进入编辑模式,光标不做任何操作
a			#进入编辑模式,将当前光标往后一位
o			#进入编辑模式,并在当前光标下添加一行空白内容
****************************************************************************************
I			#进入编辑模式,并且光标会跳至本行的头部
A			#进入编辑模式,将光标移动至本行的尾部
O			#进入编辑模式,并在当前光标上添加一行空白内容

末行模式

末行模式:主要用于搜索,保存,退出文件

1.文件保存与退出
:w			#保存当前状态
:w!			#强制保存当前状态
:q			#退出当前文档(文档必须保存才能退出)
:q!		#强制退出文档不会修改当前内容
:wq			#先保存,后退出
:wq!		#强制保存并退出
:x			#先保存,在退出
ZZ			#保存退出,shift+ZZ
:number		#跳转至对应的行号
****************************************************************************************
2.文件内容查找
/string		#需要搜索的内容
n			#按搜索到的内容依次往下进行查找
N			#按搜索到的内容依次往上进行查找
****************************************************************************************
3.文件内容替换
:1,5s#sbin#test#g			#替换1——5行中包含sbin的内容为test
:%s#sbin#test#g				#替换整个文本文件内中包含sbin的内容为test
g:global全局的意思
****************************************************************************************
4.文件内容另存为
:w /root/test.txt			#将所有内容另存为/root/test.txt文件中
****************************************************************************************
5.文件内容读入
:r /etc/hosts			#读取/etc/osts文件至当前光标下面
:5r	/etc/hosts				#指定插入/etc/hosts文件至当前文件的第五行下面

视图模式

视图模式:从普通模式进入视图模式,主要进行批量操作

ctrl+v			#进入可视行模式,选中需要注释的行
		1.插入:按shift+i进入编辑模式,输入# ,结束按ESC键
		2.删除:选中内容后,按x或d键进行删除
		3.替换:选中需要替换的内容,按下r键,让后输入替换后的内容
****************************************************************************************
ctrl+v			#进入可视行模式,选中正行内容
		1.复制:选中行内容后按y键即可复制
		2.删除:选中行内容后按d键即可删除 		

vim扩展知识

vim环境变量

1.环境变量临时生效

	:set nu				#显示行号
	:set ic				#忽略大小写,在搜索的时候用
	:set ai				#自动缩进
	:set list				#显示制表符(空行,tab键)
	:set no [nu|ic|ai..]	#取消临时设定的变量 
****************************************************************************************	
2.环境变量永久生效:~/.vimrc个人环境变量(优先级高)/etc/vimrc全局环境变量

#vim ~/.vimrc				#当下次再次打开文件自动显示行号并忽略大小写
set nu
set ic
##如果个人vim环境没有配置,则使用全局vim环境变量配置
##如果个人vim环境和全局环境变量产生冲突,优先使用个人vim环境变量

vimdiff文件比对

相同文件之间差异对比,通常用于对比修改前后差异

diff			#文件对比
vimdiff			#以vim方式打开两个文件对比,高亮显示不同的内容

vim异常退出处理

如果vim非正常退出(ctrl+z)挂起或强制退出终端没关闭vim后

#假如打开test文件意外关闭,需要删除同文件名.swp文件即可jiejue
#rm -f .test.swp
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿赵的小记录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值