1、万事万物皆文件
在Linux中所有的东西都是以文件的方式进行操作,Linux维护着一个树状结构的文件模型;
- 只有一个根节点,它的名字叫/
- 一个节点上可以有多个子节点
- 查找文件的方式
- 相对路径
- 以当前路径为基准点,查找其他资源
- vi ../etc/sysconfig/network-scripts/ifcfg-ens33
- 绝对路径
- 以根目录为基准点,查找其他资源
- vi /etc/sysconfig/network-scripts/ifcfg-ens33
- 日常使用中,只要找到路径即可,但是如果是一些配置文件,尽量写绝对路径
2、Linux的文件操作
- cd
- 改变当前工作目录
- ls 或 ll
- 显示出指定目录下所有的文件
- 文件类型
- -普通文件
- d文件夹
- l软链接
- mkdir
- 创建文件目录
- mkdir -p a/b/c/d/e/f 会自动创建文件父目录
- mkdir -p luck/{1234}ls 一次可以黄金多个子目录
- rmdir
- 删除空文件夹
- 可以安全的删除文件目录
- cp
- 拷贝文件或者文件目录:cp 源文件 目标目录
- 拷贝文件夹:cp -r 文件夹 /目标目录
- mv
- 移动文件或者文件夹:mv 文件或者目录 目标目录
- 修改文件名:mv 源文件名 新文件明
- rm
- 删除文件:rm 文件名
- 强制删除:rm -f 文件名
- 删除文件夹:rm -r 要删除的目录
- rm -rf 要删除的目录 谨慎使用,从删库到跑路
- touch
- 如果没有就创建一个文件
- 如果该文件已经存在,修改文件的三个时间,将三个时间改为当前时间
- stat
- 查看文件的状态
- Inode当前文件在文件系统的唯一标识,类似于ID
- 时间
- access访问时间
- modify修改文件内容时间
- change修改文件元数据信息时间
- ln
- 创建文件的链接
- 软(符合)链接
- ln -s luck01 sl
- 软链接和原始文件不是同一个文件
- 硬链接
- ln luck02 hl
- 硬链接和原始文件使用文件系统中的同一个文件
- 如果你嗨皮一个文件被别人误删,可以使用硬链接保护这个文件
- 软硬链接在链接文件的时候,推荐使用文件的绝对路径,否则有可能会出现问题
- cat
- 将整个文档加载到内存中,并进行一次性显示
- tac
- 将整个文档加载到内存中,并进行一次性按行逆序显示
- more和less
- 分页查看文档内容
- 快捷键
- 回车 下一行
- 空格 下一页
- b 回退
- q 退出
- head
- 重温这开始读取N行
- 默认如果超过10行读取10行,否则读取现在行数
- tail
- 从文章末尾读取N行
- head -3 profile | tail -1
- 利用管道只读取第N行
- 管道的作用就相当于把前面的结果以参数的方式传递给后面的命令
- find
- 查找指定的文件
- find 要查找的范围 -name 名字
vi 和 vim 类似于windows的文本编辑器,所有的Linux系统都会内置vi文本编辑器,vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译及错误跳转等功能,因此被广泛使用。
如果Linux中没有vim这个命令,可以手动下载:
yum install vim
vi 和 vim 的三种常见模式
正常模式
正常模式下,我们可以使用快捷键对文本进行操作,以vim打开文档,直接进入的就是正常模式,这个模式下,我们可以使用【上下左右】来移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的文件数据。
插入模式
在插入模式下,可以输入内容;按下i,o,a,r,I,O,A,R中任意一个键,会进入插入模式,正常习惯按i,因为好记,insert。
命令行模式
这个模式下,可以输入相关指令,来完成比如:读取、存盘、替换、离开vim、显示行号等功能。
三种模式之间的切换
常用快捷键案例
1、正常模式(一般模式或普通模式)
1)对光标的移动操作
G或(shift+g) #将光标移动到文件的最后一行行首
gg或1gg或1G #将光标移动到文件第一行行首
0 #数字0,将光标移动到当前所在行的行首
$ #将光标移动到当前所在行的行尾
shift+( #将光标移动到第一行行首
shift+) #将光标移动到最后一行行尾
n+回车 #从当前行向下移动n行
ngg #移动到第n行
H #光标移动到当前窗口最上方那一行
M #光标移动到当前窗口中间那一行
L #光标移动到当前窗口最下方那一行
2)复制、粘贴、删除
yy #复制光标所在行
nyy #复制光标向下n行
p(np) #在光标下一行粘贴,n表示复制次数
P(nP) #在光标上一行粘贴,n表示复制次数
dd #删除光标所在行
ndd #光标开始向下删除n行
u #恢复前一个执行操作
. #重复前一个执行过程
x #向后删除字符
X #向前删除字符
d1G #删除当前行到第一行
dG #删除当前行到最后一行
d0 #删除当前光标到行首
d$ #删除当前光标到行尾
3)进入编辑模式
i #在光标所在位置插入文字
a #在光标后插入文字
I #在当前行首插入文字
A #在当前行尾插入文字
O #在当前所在行的上一行插入新一行
o #在当前所在行的下一行插入新一行
Esc #退出编辑模式,回到命令模式中
2、命令行模式
1)退出命令
:wq #退出并保存
:wq! #退出并强制保存
:q! #强制退出,不保存
2)显示文本设置
:set nu #显示行号
:set nonu #取消行号
:set ic #不区分大小写
:set ai #自动缩进
/xxx #从光标开始向下寻找xxx字符串
?xxx #从光标开始向上寻找xxx字符串
n #光标往下一个xxx字符串跳
N #光标往上一个xxx字符串跳
:noh #取消高亮显示
:a,b w /root/aaa.txt #将当前文档a到b行写入文件aaa.txt
:r 文件地址 #读某个文件到当前光标后
3)替换
1、全文替换
:%s/被替换内容/替换内容/g
% 包含所有行
s 替换
g 包含一行所有内容
2、第a行到第b行之间进行替换
:a,b s/被替换内容/替换内容/g
3、第n行之前的进行替换(默认从第一行开始)
:,n s/被替换内容/替换内容/g
4、第n行到最后进行替换
:n,$ s/被替换内容/替换内容/g
5、替换单行内容
:n s/被替换内容/替换内容/g
3.可视块模式ctrl+v(在光标处方向键选定区块)
i+#+Esc+Esc #一次性注释多行,#可以替换成别的比如Tab批量缩进
Del #删除所选内容
r #替换所选内容