Skip to content

Linux简介

更新: 2025/2/24 字数: 0 字 时长: 0 分钟

只有硬件没有软件的计算机系统被称之为“裸机”,我们很难用“裸机”来完成计算机日常的工作(如存储和运算),所以必须用特定的软件来控制硬件的工作。最靠近计算机硬件的软件是系统软件,其中最为重要的就是“操作系统”。操作系统是控制和管理整个计算机硬件和软件资源、实现资源分配和任务调配、为系统用户以及其他软件提供接口和环境的程序的集合。

Linux发展史

  1. 1960年:IBM的System/360系列的机器有了统一的操作系统OS/360。

  2. 1965年:AT&T的贝尔实验室加入GE和MIT的合作计划开始开发MULTICS。

  3. 1969年:MULTICS项目失败,Ken Tompson赋闲在家,为了玩“Space Travel”游戏用汇编语言在当时已经被淘汰的PDP-7上开发了Unix。

    注:很难想象,Unix这么伟大的系统,居然是一个赋闲在家的程序员(关键是老婆回娘家还带上了孩子)在一台被淘汰的设备上为了玩游戏开发出来的。

  4. 1970年~1971年:Ken Tompson和Dennis Ritchie用B语言在PDP-11上重写了Unics,并在Brian Kernighan的建议下将其更名为Unix。

ken-and-dennis-pdp-11

  1. 1972年~1973年:Dennis Ritchie发明了C语言来取代可移植性较差的B语言,并开启了用C语言重写Unix的工作。
  2. 1974年:Unix推出了里程碑意义的第5版,几乎完全用C语言来实现。
  3. 1979年:从Unix第7版开始,AT&T发布新的使用条款,将Unix私有化。
  4. 1987年:Andrew S. Tanenbaum教授为了能在课堂上为学生讲解操作系统运作的细节,决定在不使用任何AT&T的源代码前提下,自行开发与Unix兼容的操作系统以避免版权上的争议,该系统被命名为Minix。

andrew

  1. 1991年:Linus Torvalds就读于芬兰赫尔辛基大学期间,尝试在Minix上做一些开发工作,但因为Minix只是作为教学用途的操作系统,功能并不强大,为了方便在学校的新闻组和邮件系统中读写和下载文件,Linus编写了磁盘驱动程序和文件系统,这些东西形成了Linux系统内核的雏形。

linus

下图是Unix操作系统家族的图谱

history-of-unix

简单来说就是:

Unix:是一款收费的操作系统。

Mnix:是一款收费的Unix的简化版系统。

Linux:是一款开源免费、多用户、稳定持久的系统。

Linus Torvalds买了Mnix,用着不爽,自己写了Linux内核,后来只要是基于Linux内核的操作系统,统一称为Linux系统。

Linux概述

**Linux是一个通用操作系统。**一个操作系统要负责任务调度、内存分配、处理外围设备I/O等操作。操作系统通常由内核(运行其他程序,管理像磁盘、打印机等硬件设备的核心程序)和系统程序(设备驱动、底层库、shell、服务程序等)两部分组成。

Linux内核是芬兰人Linus Torvalds开发的,于1991年9月发布。而Linux操作系统作为Internet时代的产物,它是由全世界许多开发者共同合作开发的,是一个自由的操作系统(注意自由和免费并不是同一个概念,想了解二者的差别可以点击这里)。

Linux系统优点

  1. 通用操作系统,不跟特定的硬件绑定。
  2. 用C语言编写,可移植性强,有内核编程接口。
  3. 支持多用户和多任务,支持安全的分层文件系统。
  4. 大量的实用程序,完善的网络功能以及强大的支持文档。
  5. 可靠的安全性和良好的稳定性,对开发者更友好。

Linux发行版本

640

目前市面上较知名的发行版有:UbuntuRedhatCentOSDebianFedora、SuSE、openSUSE、Arch Linux、SolusOS、Kail Linux(黑客专用)等。

640

**不同系列,基本指令都是一样的,只有用户权限管理方式和软件安装方式不一样。**例如,CentOS和Ubuntu的区别如下:

  1. CentOS中新建的非root用户是没有sudo权限的,如果需要使用sudo权限必须在 /etc/sudoers 中加入账户和权限,所以切换到root账号的时候只需要输入:su,加入root账号的密码即可。 在Ubuntu中,一般使用sudo+命令,如果是第一次使用会提示输入当前用户的密码(不是root的密码)。
  2. 在线安装软件中,CentOS使用的是yum命令,而Ubuntu中使用的是apt-get命令。除此之外yum中还有一个从软件源中搜索摸个软件的方法:yum search + 软件名。

ubuntu和centos不同

Linux应用

Linux系统主要应用在服务器端、开发领域,很多程序员都觉得不懂Linux都觉得不好意思,Linux在开源社区的地位岿然不动。

尤其是作为一个后端程序员,是必须要掌握Linux的,因为这是找工作的门槛,不得不学习!

对比Windows

使用占比

在个人操作系统中,使用Windows系统占比最高;在服务器操作系统中,使用Linux系统占比最高。

进程描述

开机后系统会启动许多程序。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)。

QQ截图20210731175220

管理员

在Windows系统当中,最高权限的用户是Administrator。在Linux系统当中最高权限用户是root。

?> 如果一个骇客想破坏别人Linux系统的电脑,就要拿到root权限!

目录结构

Windows系统中的文件夹是建立在多个磁盘下面的。

u=432626552,1905315197&fm=26&fmt=auto&gp=0

Linux系统所有的目录都是建立在根目录下的,即linux文件路径是以/(根目录)开头的树杈状文件系统。

1891fqfqg11561

在根目录下有许多目录,包含不同功能的文件:

  • /root:该目录为系统管理员,也称作超级权限者的用户主目录。

  • /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令。

  • /boot: 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev : dev是Device(设备)的缩写, 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

  • /etc: 这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

  • /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

  • /lib:这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。

  • /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

    /usr/bin:系统用户使用的应用程序。
    /usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
    /usr/src: 内核源代码默认的放置目录。
  • /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

  • /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

  • /srv:该目录存放一些服务启动之后需要提取的数据。

  • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

  • /tmp:这个目录是用来存放一些临时文件的。

  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。

  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /www:存放服务器网站相关的资源、环境、网站的项目。

其他对比

1891fadfadv