Linux基础知识与文件系统简介

参考文献:Ubuntu Linux 基础教程

Linux是在什么样的历史背景下出现的

Linux的诞生与发展与UNIX系统、Minix系统、Internet、GNU计划密不可分。

1971年,UNIX系统诞生于Bell实验室,早期UNIX系统是免费的,但是随着它的广泛使用,逐渐由一个免费软件变成一个商用软件,高昂的源码许可费用和对硬件较高的要求限制了UNIX系统在教学和科研领域的应用。

1987年,荷兰教授Andrew S. Tanenbaum利用业余时间开发了一个微型UNIX系统——Minix。Minix系统对硬件要求不高,并且可以运行在廉价的PC上。Linux系统就是在Minix系统的基础上设计开发的。

20世纪80年代中期,互联网形成,借助互联网的力量,全球无数程序员通过Internet参与了Linux的技术改进和测试工作。任何人想要往内核中加入新的特性,只要被认为是有用的、合理的,就被允许加入。Linux在全球人们的共同协作下,借助Internet发展起来。

1983年,自由软件领导者Richard Stallman提出GNU计划,GNU是GNU Is Not UNIX的缩写,该项目的目标是开发一个自由的类UNIX操作系统,包括内核、软件开发工具和各种应用程序。为保证GNU计划的软件能够被广泛共享,Stallman为GNU计划创作了通用软件许可证(General Public License, GPL),GPL允许软件作者拥有软件版权,但授予其他任何人以合法复制、发行和修改软件的权利。对于遵照GPL许可发布的软件,用户可以免费得到软件的源代码和永久使用权,可以任意修改和复制,同时有一副公开修改后的代码。

1991年10月,芬兰赫尔辛基大学计算机系学生Linus发布了Linux系统的第一个正式版本,它并没有包括UNIX源代码,而是按照公开的POSIX标准重新编写。

Linux和GNU的关系

Linux内核一开始就是按照公开的POSIX标准写的,并且大量使用了来自麻省剑桥自由软件基金会的GNU软件,并且Linux本身也是由他们构造而成。

Linux的特点

  1. 基于UNIX设计,性能出色,执行速度快、占用内存少、性能优异,可以全天候不间断工作,胜任大、中、小性格中计算机。
  2. 遵循GPL许可,用户可以免费获得和使用Linux,并在GPL许可范围内自由地修改和传播。
  3. 符合POSIX标准,任何基于POSIX标准编写的大多UNIX类和类UNIX系统都可方便的移植到Linux上。
  4. 可移植性好,Linux内核90%采用C语言编写,可在任何平台运行。
  5. 网络红能强大,支持Internet、文件传输、远程访问。
  6. 拥有设备独立性,操作系统把所有外部设备统一看作文件,只要安装它们的驱动程序,就可以像使用文件一样操纵、使用它们。
  7. 安全性强,源码公开,更新速度快。
  8. 提供命令行界面、系统调用、图形用户界面。

Linux由哪几部分组成

Linux内核,Linux Shell,Linux文件系统,Linux应用程序等几部分。

  • Linux内核,运行程序和管理硬件设备的核心程序,提供硬件抽象层、磁盘及文件系统控制、多任务的系统软件。任何基于Linux内核的完整操作系统容都叫做Linux系统,或GNU/Linux。
  • Linux Shell,提供给用户对系统进行操作的用户接口,Shell负责接收、解释和执行用户输入的命令。
  • Linux文件系统,文件存放在磁盘等存储设备上的组织方法。
  • Linux应用程序,一系列实现某种特定功能的程序。

Linux发行版与Ubuntu

Linux发行版是基于Linux内核,搭配人机界面、应用软件和服务软件的操作系统,主流发行版本包括:

Redhat和fedora, CentOS, Debian, Ubuntu, openSUSE, Gentoo, Slackware。

Ubuntu是基于Debian的Linux发行版,适合个人用户。

Linux操作系统接口的形式

操作系统是架构在硬件上的第一层软件,是计算机硬件和用户之间的接口。任何操作系统都会向上层提供接口,以方便用户使用计算机系统。操作系统的接口包括方便用户使用计算机系统的关键。

操作系统的接口分为用户接口和程序接口,用户接口又包括命令行用户接口和图形用户接口两类。

Shell的含义和作用

Shell是Linux操作系统的最外层,也成为“壳”,作为命令语言为用户提供操作系统的命令接口。

目前常用的bash是Shell的一个版本,即一种命令行用户接口。

X Window, GNOME和Unity

X Window是Linux系统的图形化用户接口,简称X或X11.

GNOME和KDE都是基于X Window的桌面环境,通过X Window才能运行。GNOME安装时需要设定gdm(The GNOME Display Manager)GNOME显示环境管理器,可以选择gdm和lightdm,后者是一个全新的、轻量的桌面显示管理器。

Unity是基于GNOME的桌面系统。

系统调用与应用程序接口(API)

系统调用的作用是把应用程序的请求传递给系统内核,然后调用相应的内核函数完成所需要的处理,最终将处理结果返回给用户的应用程序。

用户输入系统命令,借助应用程序结构实现系统调用。

什么是文件系统

文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即文件在磁盘上的组织方法;从另一方面上来看,文件系统还是操作系统在计算机硬盘上存储和检索数据的逻辑方法。

文件目录

计算机系统建立文件的索引,即文件名和文件物理位置之间的映射关系,这种文件的索引称为文件目录。

文件目录的表目中至少要包含文件名、物理地址、文件逻辑结构、文件物理结构和存取控制信息等,以建立起文件名与物理地址的对应关系,方便用户对文件的查找和修改等操作,实现按名存取文件。

常见文件系统

FAT16, FAT32和NTFS可用于MS-DOS或Windows,Linux操作系统一般采用ext2、ext3和ext4文件系统。

如果用户想要在Linux操作系统中使用非Linux文件系统,就必须在操作系统中挂在这些文件系统到内核中。

虚拟文件系统: 实际文件系统通常为不同操作系统设计和使用,具有不同组织结构和文件操作接口函数,为屏蔽各个文件系统之间的差距,为用户提供访问文件的统一接口,在具体的文件系统上,增加了一个称为虚拟文件系统VFS(Virtual File System)的抽象层。

Ubuntu目录结构

/ 根目录

/bin binary,存放系统中最常用的二进制文件,系统运行的最必须文件

/boot Linux内核和启动文件

/dev device,存放硬盘在内的设备文件

/etc etcetra,存放系统配置文件,例如开机挂载的分区等

/home 用户主目录默认位置

/initrid 存放启动时挂在intrid,img映像文件的目录,以及载入所需设备模块的目录

/lib 存放共享库文件,包括许多被/bin/sbin中程序使用的库文件

/lost+found 用于存放系统意外崩溃产生的文件碎片,以修复系统

/media 即插即用型存储设备的挂载点自动在此目录下创建

/mnt mount(安装), 通常用于被挂载的文件系统的挂载点

/opt option,可选的文件和程序的存放目录,自定义软件包或用户自己编译的软件包可能存放在这里

/proc 存放所有标识为文件的进程

/root 超级用户的主目录

/sbin 系统管理命令,超级用户的可执行命令,一般用户通常无法执行

/srv service,存放系统所提供的服务数据

/sys system,用于将系统设备组织或层次结构,并向用户提供详细的内核数据信息

/tmp temp,临时文件目录

/usr UNIX system resources,存放与系统用户直接有关的文件和目录,如应用程序及支持系统的库文件

/var 存储长度可变的文件

创建、挂载与卸载文件系统

安装操作系统时,安装程序会引导用户提供必要的数据或做出相应的选择,然后自动划分磁盘分区,创建文件系统。

当需要增加新盘或使用移动硬盘,改变现有磁盘分区结构时,需要手工创建文件系统。

一般的步骤:

磁盘分区 -> 创建文件系统 -> 挂载文件系统

  1. 向虚拟机添加未分区硬盘/给电脑新安装硬盘。

  2. 利用fdisk -l命令查看新增硬盘信息,此时会显示新增硬盘的基本信息,但由于没有设置文件系统,所以不会显示分区表。(可将新增硬盘的信息和原有硬盘的信息对比,发现新增硬盘下缺少分区表信息)

    补充:cat /etc/mtab 可查看挂载信息,新增硬盘下没有分区信息,原有硬盘下用分区信息

    mount 命令也可查看挂载信息

  3. 建立目录,并将硬盘挂载(括号中为可选的内容)

    sudo mkdir [/data1]
    sudo mount /dev[/sdb] [/data1/]
    
  4. 挂载成功与否的测试:在挂载文件夹下新建文件夹,并用ls -l查看文件夹信息,文件夹如果能被正确建立,说明挂载成功。

    sudo mkdir [/data1/testdir]
    ls -l /data1/
    
  5. (如果需要)卸载文件系统

    sudo umount /dev[/sdb]
    

    可用上面“补充”中的方法查看当前挂载的文件系统的信息。

Linux基础知识与文件系统简介相关推荐

  1. linux文本运行层次,Linux基础知识之---文件系统层级结构

    #Linux基础知识之---文件系统层级结构 @(Linux系统)[基础知识,文件系统,层级结构,FHS] 一切皆文件: 在Linux中,无论是目录.配置.cpu.内存.键盘.鼠标.或者运行中的系统及 ...

  2. -Linux基础知识2 -文件系统的操作 压缩,解压缩

    df     列出文件系统整体磁盘使用量 df -h 容量以易读的方式显示 du    评估文件系统的磁盘使用量 du -a 列出文件列表 gzip 文件名    压缩文件(生成压缩文件,但源文件会被 ...

  3. linux基础知识之磁盘管理及文件系统

    linux基础知识之磁盘管理及文件系统管理 磁盘管理及文件系统管理 一.磁盘硬件介绍 1. 接口类型 2. 硬盘种类 3. 磁盘命名 二.磁盘分区及文件系统介绍 1. 分区 1.1 什么是分区 1.2 ...

  4. 【Linux系列】Linux基础知识整理

    Linux操作系统在服务器领域广泛的使用到,作为一个后台开发工程师很有必要了解Linux相关的知识. 本篇日志是我学习Linux过程中的简单记录和总结.本着"理论够用,实践为主"的 ...

  5. linux基础知识ppt下载,《Linux基础知识》PPT课件.ppt

    <<Linux基础知识>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<Linux基础知识>PPT课件.ppt(26页珍藏版)>请在装配图网上搜 ...

  6. 后端程序员必备的 Linux 基础知识

    后端程序员必备的 Linux 基础知识 原文来自github stars>63k的项目JavaGuide,欢迎小伙伴去支持原作者 一 从认识操作系统开始 1.1 操作系统简介 1.2 操作系统简 ...

  7. linux基础知识_压缩—进程管理-网络管理-ftp-nfs-ssh-scp

    linux基础知识_压缩-进程管理-网络管理-ftp-nfs-ssh-scp 1.压缩包管理 gzip .gz格式的压缩包,不打包,分别压缩,原文件消失 bzip2 .bz2格式的压缩包,原文件不会消 ...

  8. Linux基础知识题解答(一)

    题目来自老男孩BLOG:http://oldboy.blog.51cto.com/2561410/1709569,比较适合新手,空余的时候做一下,可以巩固Linux基础知识,有不对的地方欢迎指正. 计 ...

  9. linux基础知识复习

    @(tigerfive)[linux,基础知识,复习笔记] linux基础复习(一) 今天只整理框架,具体内容之后详细整理吧 文件管理 文件基本操作 创建文件和目录 拷贝文件和目录 剪切文件和目录 删 ...

最新文章

  1. MySQL设值自动修改时间
  2. 无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题...
  3. 【转】crontab 详解
  4. RStudio快捷键
  5. [有奖励]GeneralUpdate开源项目招募开发者
  6. GItHub--Makedown语法学习(快速入门)
  7. 充分掌握网络工作原理及底层实现 大家都做什么项目啊?
  8. java 实现数据结构之队列
  9. android sdk源码 andoid-21 下的TextUtils.java文本工具类 源码赏析
  10. 解救电商大促没灵感的设计师|攻略模板奉上
  11. UltraEdit汇编语言高亮
  12. Spring Boot Admin Reference Guide
  13. 实习成长之路:MySQL八:普通索引和唯一索引,应该怎么选择?
  14. docker 容器安装 vim 编辑器
  15. xshell4的使用经验
  16. 全外显子捕获测序的杂交和封闭原理
  17. 三色球问题,python解决
  18. 数据解读:​影视行业是不是没编剧了,怎么老是在翻拍网络小说?
  19. 毕业前后的报到和档案相关处理
  20. 基于Python+Django的项目申报审核平台系统

热门文章

  1. 多核cpu应用场景_2019电脑CPU怎么选_多核cpu和单核的区别|哪个好-太平洋电脑网...
  2. 【C语言基础05】循环结构程序设计(含经典代码解析)
  3. java 集成grizzly_获得swagger-core 1.5与Jersey和Grizzly合作
  4. 雷达技术助力,汽车盲点探测技术开始起飞
  5. 凯利公式自动计算表_滚动条不见了?公式不计算了?工作表标签不见了等等,我们怎么办?...
  6. php创建多页ppt,详解PPT中多个人物介绍页的设计思路
  7. python 拼音库 pypinyin 简介
  8. 数据抓包(网络爬虫)-正方教务管理系统登录后获取自己的课程表
  9. Spring data JPA 之 Jackson 在实体里面的注解详解
  10. 已知坐标求方位角_【干货】RTK视频实操 | 求转换参数详解和七点注意事项!