Linux-1.目录、编辑器

115 阅读4分钟

一、目录结构

非常重要的基本知识,实际生产我们操作服务器的大多数情况,都是在控制台操作。非图形化界面是无法看到目录结构的。这玩意儿最好背下来。 image.png

1. 一切皆文件

无论是普通文件、目录、设备、管道、还是套接字,Linux都以统一的方式来对待它们,这使得系统更加灵活和简单。以下是这一理念的主要原因:

  • 统一接口:通过将不同类型的资源都视为文件,Linux提供了一个统一的接口,即文件描述符。程序可以使用相同的系统调用(如openreadwriteclose等)来处理各种类型的资源,无需关心底层的实现细节。这大大简化了编程工作。
  • 设备抽象:硬件设备如硬盘、键盘、显示器等被抽象为文件。这意味着,访问硬件设备与读取或写入文件一样简单。设备文件通常位于/dev目录下,比如/dev/sda代表一个硬盘驱动器。
  • 可组合性:因为所有东西都是文件,Linux提供了强大的管道和重定向机制。程序的输出可以直接作为另一个程序的输入,这种机制极大地提高了脚本编写和系统管理的灵活性。
  • 透明性:由于操作系统资源都被视为文件,用户可以通过文件系统路径直接访问和操作它们。这种透明性让系统更加直观且易于管理。
  • 简化权限管理:Linux通过统一的文件权限模型管理对各种资源的访问控制。无论是文件、目录还是设备,都可以使用相同的权限管理机制(读、写、执行权限)来控制访问,这减少了系统的复杂性。

2. 目录结构解释

  • /bin:存放了常用命令,ls、cp、mv啥的;
  • /sbin:存放一些管理员级别的命令;
  • /home:存放普通用户的主目录,一个用户有一个自己的目录;
  • /root:系统管理员的用户目录;
  • /lib:系统所需要的最基本的动态链接;
  • /etc:系统管理所需要的配置都放在这里,也包含一些程序的全局配置(mysql的my.conf)
  • /usr:不同的usr安装的程序默认放在usr下面;
  • /boot:linux启动的核心文件;
  • /proc:目录是一个虚拟文件系统,用于提供关于系统内核、运行中的进程和硬件状态的信息。它并不对应实际存储在磁盘上的文件,而是由内核动态生成的;
  • /srv:目录用于存放系统提供的服务的数据。具体来说,这是存放由系统提供的网络服务(如Web服务器、FTP服务器)所需的数据和文件的目录;
  • /sys:是一个虚拟文件系统,类似于/proc,但它主要用于提供和内核相关的设备和系统信息。这是Linux内核2.6及以后版本中引入的,专门用于设备驱动程序和内核与用户空间之间的接口;
  • /tmp:临时文件;
  • /dev:类似设备管理器,把硬件用文件来管理;
  • /media:自动识别的设备,例如插入的U盘等;
  • /mnt:通常用于临时挂载的文件系统。如果你需要手动挂载一个设备或文件系统,而不希望将其挂载在系统的其他标准挂载点(如/media或自定义挂载点)下,可以使用/mnt作为挂载点。
  • /opt:安装文件一般存储在opt,例如homebrew下载的东西;

二、文本编辑器

vi与vim是常用的编辑器,类似于windows的记事本;vim是vi的加强版,提供字体颜色区分、语法检查。

1. 编辑器的三种模式

image.png

  • 正常模式:查看文本,上下左右移动光标、可以删除字符、删除整行来整理文本。也可以复制粘贴;
  • 插入模式:按下i后进入插入模式,即编辑模式;
  • 命令行模式:执行相关指令,例如保存、读取、替换、离开vim等;显示行号也是在这个模式下完成的;

2. 基本操作

一般模式:

  • 5yy:复制光标开始的5行;
  • p:粘贴;
  • 5dd:删除光标开始的5行;
  • G:到达文档最末行;
  • gg:到达文档最首行;
  • u:撤销刚才的输入;
  • 行号定位:输入行号 + shift G;

命令行模式:

  • set nu:设置行号;
  • set nonu:取消行号;