Linux 是一个操作系统,就和我们熟知的 Windows 一样。不过 Linux 是开源的,并且 Linux 一般用于服务器,因此普通的用户对 Linux 无感知,但是又天天接收来自 Linux 服务器发送的数据。

Linux 的前世今生

1991年,Linus 因为不满 MINIX 只允许在教育上使用,所以他开始开发 Linux 内核。

MINIX:一个迷你的类 Unix 系统

从严格意义上来说,Linus 开发的是 Linux 内核,并不是 Linux 操作系统。因为一个操作系统除了内核之外,还包含了用户图形接口和一些实用工具。不过现在一般将 Linux 说成一个操作系统,而不是指 Linux 内核,Linux系统的用户图形接口和实用工具是由 GNU 计划提供的。
image.png
操作系统的核心称为“内核”,但是内核并不等于操作系统。内核提供系统服务,比如文件管理,虚拟内存,设备I/O等。内核还包括一些技术的程序,例如文本编辑器,编译器,外壳程序 Shell。

单独的 Linux 内核没办法工作,必须要有 GNU 项目。

Linux 的发行版

我们并不会直接使用 Linux,而是使用 Linux 的发行版,因为发行版会集成 Linux 操作系统以及相关的软件。Linux 发行版通常包含了桌面环境,办公包,媒体播放器,数据库等应用软件。

简单来说,发行版的本质还是 Linux,但是为了让 Linux 更好用,不用的组织机构对 Linux 做了不同程度的封装。

常见的发行版:

  • Ubuntu
  • Red Hat
  • CentOS

Linux 文件组织

Windows 中文件会被区分为文件或者是非文件,但 Linux 中一切都是文件。Linux 中的文件夹是一种特殊的文件。

根目录

Linux 中的根目录只有一个,就是 /,Linux中没有比这个等级更高的目录了。

window 中的根目录可以有好几个根目录,如果没有分区的话,那么C盘就是根目录。

目录的结构:
windows:

  1. C:\Program Files\Baidu

Linux:

  1. /usr/bin

用户目录

Linux 是一个多用户的操作系统。在 /home 目录中存在这用户的路径。我们使用 ~ 来表示当前用户的用户目录。

我们需要分辨清楚,什么是用户目录 ~,什么是根目录 /

绝对路径和相对路径

绝对路径是相对于根目录的路径,而相对路径是相对于当前目录的路径。

Linux 系统目录结构

image.png
下表是对根目录下每一个文件作用的概述:
前端要懂的 Linux 基础知识 - 图3

Linux 文件基本属性

Linux 是一个多用户系统,因此不同的用户,拥有不同的权限。首先我们来看看 Linux 中的三种用户。

Linux 中的用户分为三种:

  1. 当前用户
  2. 当前用户同组的用户
  3. 其它用户

因此,对于一个文件来说,其对于不同类型的用户的权限也分为三种:

  1. user permissions 当前用户的权限
  2. group permissions 当前用户组的权限
  3. other permissions 其它用户的权限

举一个例子理解,Linux 中存在多个用户,不同的用户也会有不同的用户组。因此一个用户对一个文件的权限分为三种。

  1. 当前我自己的权限
  2. 当前我这个用户组的权限
  3. 其它用户(既不是我自己也不是我所在的用户组)的权限

当然,还有一种特殊的用户,root 用户。root 用户是整个系统的管理员,因此它拥有操作系统中所有文件的权限。

image.png
上图左边的十个字符,决定了该文件的类型以及访问权限。下面,我们就对这十个字符进行讲解。

文件类型 file type

第一个字符代表着这个文件是目录,文件或者链接文件等等。

  • 当为 d 则是目录(directory);
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

文件权限 permissions

我们已经知道了,前 10 位字符,第一位代表着文件的类型,接下来,我们看后面的 9 位字符。

下图中,1-3 位表示着当前用户对于这个文件的权限,4-6 位表示着当前用户组对这个文件的权限,7-8位代表着其它用户对于这个文件的权限。

而每三位数字中,第一位代表着读权限,第二位代表着写权限,第三位代表着执行权限。
image.png
比如上图,这十位数字提供了下面的信息:

  • 该文件是一个目录文件
  • 该文件对于当前用户来说,可读,可写,可执行
  • 该文件对于当前用户所在的用户组来说,可读,不可写,可执行
  • 该文件对于其它用户来说,可读,不可写,可执行

我们举一个生活化的例子来说明文件的权限。比如在你们公司,你写了一份代码。此时,你是一个用户,你拥有对这段代码的读、写、执行这三个权利。而你们部门的人,也是用户,但是他们有一个特殊的属性——和你是一个部门的,也就是同组的,因此你的同事,也就是和你在同一个组的用户,可以读和执行你的代码。而其它用户,比如说别的公司的人,无权过问了。

Linux 中的基础指令

todo