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 名字

vivim 类似于windows的文本编辑器,所有的Linux系统都会内置vi文本编辑器,vim可以看做是vi增强版,具有程序编辑能力,支持语法高亮,代码补全,编译错误跳转等功能,因此被广泛使用。
如果Linux中没有vim这个命令,可以手动下载:

  1. yum install vim

vi 和 vim 的三种常见模式

正常模式

正常模式下,我们可以使用快捷键对文本进行操作,以vim打开文档,直接进入的就是正常模式,这个模式下,我们可以使用【上下左右】来移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制、粘贴】来处理你的文件数据。

插入模式

在插入模式下,可以输入内容;按下i,o,a,r,I,O,A,R中任意一个键,会进入插入模式,正常习惯按i,因为好记,insert。

命令行模式

这个模式下,可以输入相关指令,来完成比如:读取、存盘、替换、离开vim、显示行号等功能。

三种模式之间的切换

image.png

常用快捷键案例

1、正常模式(一般模式或普通模式)

1)对光标的移动操作

  1. G或(shift+g #将光标移动到文件的最后一行行首
  2. gg1gg1G #将光标移动到文件第一行行首
  3. 0 #数字0,将光标移动到当前所在行的行首
  4. $ #将光标移动到当前所在行的行尾
  5. shift+( #将光标移动到第一行行首
  6. shift+) #将光标移动到最后一行行尾
  7. n+回车 #从当前行向下移动n行
  8. ngg #移动到第n行
  9. H #光标移动到当前窗口最上方那一行
  10. M #光标移动到当前窗口中间那一行
  11. L #光标移动到当前窗口最下方那一行

2)复制、粘贴、删除

  1. yy #复制光标所在行
  2. nyy #复制光标向下n行
  3. p(np) #在光标下一行粘贴,n表示复制次数
  4. P(nP) #在光标上一行粘贴,n表示复制次数
  5. dd #删除光标所在行
  6. ndd #光标开始向下删除n行
  7. u #恢复前一个执行操作
  8. . #重复前一个执行过程
  9. x #向后删除字符
  10. X #向前删除字符
  11. d1G #删除当前行到第一行
  12. dG #删除当前行到最后一行
  13. d0 #删除当前光标到行首
  14. d$ #删除当前光标到行尾

3)进入编辑模式

  1. i #在光标所在位置插入文字
  2. a #在光标后插入文字
  3. I #在当前行首插入文字
  4. A #在当前行尾插入文字
  5. O #在当前所在行的上一行插入新一行
  6. o #在当前所在行的下一行插入新一行
  7. Esc #退出编辑模式,回到命令模式中

2、命令行模式

1)退出命令

  1. :wq #退出并保存
  2. :wq! #退出并强制保存
  3. :q! #强制退出,不保存

2)显示文本设置

  1. :set nu #显示行号
  2. :set nonu #取消行号
  3. :set ic #不区分大小写
  4. :set ai #自动缩进
  5. /xxx #从光标开始向下寻找xxx字符串
  6. ?xxx #从光标开始向上寻找xxx字符串
  7. n #光标往下一个xxx字符串跳
  8. N #光标往上一个xxx字符串跳
  9. :noh #取消高亮显示
  10. :a,b w /root/aaa.txt #将当前文档a到b行写入文件aaa.txt
  11. :r 文件地址 #读某个文件到当前光标后

3)替换

  1. 1、全文替换
  2. :%s/被替换内容/替换内容/g
  3. % 包含所有行
  4. s 替换
  5. g 包含一行所有内容
  6. 2、第a行到第b行之间进行替换
  7. :a,b s/被替换内容/替换内容/g
  8. 3、第n行之前的进行替换(默认从第一行开始)
  9. :,n s/被替换内容/替换内容/g
  10. 4、第n行到最后进行替换
  11. :n,$ s/被替换内容/替换内容/g
  12. 5、替换单行内容
  13. :n s/被替换内容/替换内容/g

3.可视块模式ctrl+v(在光标处方向键选定区块)

  1. i+#+Esc+Esc #一次性注释多行,#可以替换成别的比如Tab批量缩进
  2. Del #删除所选内容
  3. r #替换所选内容

image.png

vi/vim快捷键图

image.png