• linux学习记录


    此片博客作为我学习linux的学习笔记

    linux该如何学?

    (1)尽量使用命令行
    (2)学习linux相关的知识:计算机网络,计算机体系结构,操作系统等等(推荐网络资料:电脑基础 网络基础
    (3)养成学习笔记的习惯,同时多动手实践
    (4)选择好的参考书籍
    (5)学会解决问题:先自主动手实验解决(根据出错信息),借助FAQ和google,最后实在解决不了要有效提问(提问的智慧
    (6)养成记录错误及解决方案的习惯,网络上看到好文章要学会copy并归类保存

    主机规划和磁盘分割

    linux中一切设备皆文件

    inode

    文件的权限

    安全模型: 最初的安全模型为DAC(Discretionary Access Control),后面新增了MAC(Mandatory Access Control),MAC是在DAC的基础上建立的,是DAC的加强。系统会先做DAC安全检查,如果通过检查并且系统上有MAC,则再执行MAC检查。

    DAC安全模型:该模型的核心为进程的权限等于使用该进程用户的权限
    用户,组,口令

    用户和组分别使用UID和GID来标识,一个用户可以属于一个或多个组,默认用户属于与GID等于该用户UID的一个组。用户信息保存有/etc/passwd中,组信息保存在/etc/group中。口令保存于/etc/shadow(口令是什么还不清楚)

    文件的权限控制信息
    文件的类型:

    普通文件:可分为文本文件和二进制文件,通过touch创建
    目录文件:顾名思义,就是类似目录作用的文件,其中记录着指向该目录下文件的指针
    设备文件:设备文件又可分为字符设备文件(键盘) 和 块设备文件(磁盘)
    套接字文件:与网络通行相关,一般在应用程序执行过程中创建
    符号链接文件:其为软链接文件而非硬链接文件,通过ln创建
    管道文件:顾名思义,该文件就好像一个管道,用来连接不同的进程,该文件可以被多个进程公共使用。通过mkfifo创建
    访问权限控制组:分为三组user, group, others

    可设定的权限:

    r:表示具有读权限
    w:表示具有写权限
    x:一般针对普通文件或者目录文件,表示具有执行/搜索的权限
    s:
    t:
    我们可以通过ls -l 文件 来查看文件的权限控制信息

    软链接 硬链接

    硬盘

    硬盘类型的划分:

    (1)按内部结构划分可分为机械硬盘HHD(Hard Disk Drive)和固态硬盘SSD(Solid State Drive)

    HHD:内部有具体的机械结构,有磁头等物理部件

    SSD:这没有具体的机械结构,一般由主控、缓存、闪存组成,由于没有机械结构,读入写出不需要寻道,所以安静并且效率高,缺点是寿命不如HDD,成本较高

    (2)按传输接口划分

    IDE: 一种并行接口,由于传输稳定性差的原因已经被淘汰
    SATA:一种串行接口,随着技术的升级,传输速率超过了IDE接口
    NVME:上面的SATA接口类型一开始是为了机械硬盘设计的,所以在固态硬盘上速度达到瓶颈,于是出现了NVME。该接口是逻辑接口(不是很懂),只能用于固态硬盘上

    查看计算机的磁盘设备文件

    磁盘不同,磁盘设备文件的命名也会不同,下面以我的计算机来举例,我的计算机使用的是Nvme接口的固态硬盘,所以硬盘设备文件名为/dev/nvmexxx

    我们可以通过df(disk free)命令查看硬盘设备文件

    磁盘的分割方式——MBR和GPT

    MBR(Master Boot Record 主要开机记录区)

    该分割方式以一个柱面为基本单元;

    第一扇区(512bytes)的前446bytes为主要开机记录区,后64个字节存储了分割表;

    分割表最多有4个分割槽(分割信息),分割项可分为主要分割槽和延伸分割槽,主要分割曹中记录了分割区域开始和结束的磁柱编码,延伸分割槽不仅记录了分割区的开始和结束位置,还记录了对应的衍生分割表的位置。

    但是MBR有一些缺点

    (1)分割表太小,导致柱号编号有上限,使得不适合更大空间的磁盘

    (2)分割表记录有一个位置,如果损害那么整个计算机就无法运行

    为了改进以上缺点,提出了新的分割方法GPT

    GPT

    通常一个扇区的大小为512bytes,但是现在也出现了4K大小的扇区,为了统一表示,提出了LBA(Login Block Address 逻辑区域地址)在对扇区进行编号;

    LBA0记录了MBR + GPT标识
    LBA1记录了分区表的位置和大小、备份位置信息(备份LBA1-33、校验码(如果校验码有问题,就选用备份分区表)
    LBA2-33是实际记录分割区域的地方,每个LBA可记录4个分区(每个分区的开始和结束的LBA),所以一共可以有4×32个分区;如果扇区大小为512bytes,则一个分区槽有128bytes,所以就有64bytes来记录LBA地址,那么可覆盖的磁盘空间就非常大了。

    开机检测程序

    问题:操作系统的作用是用户硬件和软件的桥梁,用户可以通过操作系统读取硬盘上的程序到内存中运行,但是目前出现了一个问题,操作系统程序也是存取在硬盘上的,在开机启动时要如何启动操作系统程序呢,这就需要嵌入硬体的开机检测程序

    BIOS

    BIOS为一个韧体(即嵌入ROM的程序)

    使用BIOS的开机流程为:

    (1) 开机启动BIOS韧体,该程序会去加载CMOS,其中记录了用户自定义的硬件参数,根据这些参数寻找含有MBR(主要开机记录)的磁盘

    (2) 读取该磁盘的一个扇区中的MBR程序,启动了开机管理程序

    (3) 开机管理程序会提供一个选单,让用户选择不同的操作系统,如果选的是第一项,就直接载入对应操作系统的核心程序,如果选择的是第K项,则在寻找第K个分区中的PBR中记录的开机启动程序,并把开机管理功能交给该程序负责...

    UEFI(Unified Extensible Fireware Interface)统一可扩展的韧体界面

    为了更好适应GPT分割程序和安全性和可扩展性和兼容性,就有了UEFI开机检测程序

    下面是BIOS与UEFI的对比:

    Linux安装模式下,磁盘分割的选择

    目录数和挂载

    Linux的文件是通过目录树的逻辑方式呈现的,如下图所示:

    而实际上文件存储与线性的磁盘中(存在分区),那么磁盘的线性结构和目录树的树结构是如何联系在一起的呢,答案是通过挂载

    挂载就是以某个目录作为进入点,把磁盘某分区的内容放置与该目录下的行为,简单的说就是如何如果一个目录挂在到某个分区下,我们可以通过该目录去访问该分区

    注意:根目录一定要挂载到某一个分区下,而其他子目录有用户自行决定。

    下面举一个挂载的例子:


    我们可以看到/目录挂载到partion 1分区下,而/home目录挂载到partion 2分区下,对于/home目录下的文件,会存储在partion 2分区中,而其他/目录下的文件,则会存储子partion 1分区中

    命令

    命令的基本格式为```command [-option] parameter,...
    command:指令,如cd
    [-option]:可选项,用来选择命令的模式;当为缩写时用-xx,当为全程时用--xxx
    parameter,...:指令参数
    举个例子,如

    ls -al ~
    

    其作用是显示家目录下的所有文件

    入门指令

    date:date用来显示时间
    date显示当前时间
    date +%Y/%m/%d-%H:%M还是设置具体的显示格式

    cal:cal的全称为calendar
    cal显示当前月份日历
    cal [month] [year]显示[某年][某月]的日历

    bc:bc的全称为basic calculator
    输入bc可以拥有运算功能——输入表达式输出结果,输入quit退出

    重要热键

    Ctrl+c:可以中断程序运行
    Ctrl+d:退出文字界面
    [Shift+]PgUp/PgDo:翻看之前输入过的命令
    Tab :命令补全

    帮助

    指令非常多,全部记住是不可能的,所以我们应该记牢一些重要常见的指令,剩下的查询就行了。如何查询指令信息呢?
    help:command --help 可以输出comand的帮助文档
    man: man全称为manual(使用说明),通过man command可以获得更详细的说明
    info: 通过info command也可以获得详细的说明
    /usr/share/doc: /usr/share/doc中的文件也有非常多的帮助信息
    学了帮助指令后,后面的指令就不需要具体的语法格式了,只给出常用的例子

    关机和重新启动

    (1)shutdown
    常用命令:shutdown -h now现在关机
    shutdown -r now现在重启
    shutdown -k now假装关机
    shutdown -c取消关机
    (2)reboot
    reboot重启
    (3)halt 和 poweroff
    halt poweroff关机
    虽然关机程序会在执行之前自动将缓冲区中的数据写入磁盘,但是为了保险起见,可以先执行同步缓存(Synchronize cache)指令sync来确保缓冲区的信息写入对应磁盘,防止关机后丢失。
    上面的指令,实际上都是通过systemctl <command>来执行的。

    权限

    owner(拥有者)、group(群组)、others(其他人)、root(系统管理员)

    首先要强调,owner、group、others是一个相对的概念,不同的文件有不同owner、group、others。
    (1)owner:一个文件可以定义拥有者,比如对于用户Mark的个人资料文件的拥有者为Mark
    (2)group:一个或多个用户可以形成一个组,比如Mark用户和Mike用户可以形成M组。一个用户可以属于一个或多个组,就像现实中的人可以属于多个群体。一个文件会指定某个群组中的用户拥有某些权限
    (3)others:如果一个文件定义了owner和group,那么剩下的用户则视为others
    (4)root:系统管理员拥有最高权限,不受约束,可以对任何文件进行任何操作


    为什么文件要定义拥有者、群组、其他人的概念呢?原因是文件需要对不同的用户进行不同的权限管理。打个比方,如果高一5班有一个篮球,是班上的小明带的,并无偿给班上的人使用,那么,对于这个篮球来说,小明为拥有者,高一5班的所有同学为群组,剩下的其他同学为其他人。篮球对不同的用户有不同的权限,对于小明来说,他可以看、使用、拿走这个篮球,对于高一5班的同学来说,他们可以看、使用这个篮球,对于剩下的其他同学来说,他们只可以看这个篮球,当然对于上帝(root)来说,他想对这个篮球做什么都可以,比如让它突然消失。

    文件的权限

    通过ls -al命令,我们可以查看当前目录下的文件权限信息,例如

    我们选择其中一条文件信息来解释:

    文件信息: -rw-r--r--     1 shuojia shuojia  147443 12月 15 21:02 code.ipynb
    栏数:             一    二      三       四      五            六         七
    意义:   文件类型及权限 连接数   使用者     群组 文件大小    最后修改时间      文件名
    

    文件类型及权限

    可以看到文件类型及权限一共有10位,为了方便描述,我们为其加上1~10编号。
    1:代表文件类型。-代表一般的文件 d代表目录 l代表链接文件 b代表可随机存储装置 c代表一次性读取装置
    2~4、5~7、8~10:分别代表拥有者、群组、其他人的权限。r为可读 w为可写 x为可执行

    连接数

    文件是以目录树的形式呈现的,但是实际上是通过i-node来标识一个文件。多个不同路径的文件可以有同一个i-node,说明它们其实是同一个文件。打个比分,我们每个人都可以通过地理位置被描述(中国广东省广州市希望小学张三),但是我们每个人实际上通过身份证号来标识,如果你今天在广州,明天在深圳,虽然地理位置变化了,但是依然视为同一个人,因为i-node一致。所以连接数就是至有多少文件共用一个i-node

  • 相关阅读:
    2-Fourteenth Scrum Meeting-20151214
    2-Thirteenth Scrum Meeting-10151213
    2-Twelfth Scrum Meeting20151212
    2-Eleventh Scrum Meeting20151211
    L465 Climate Change May Take Away Your Ability to Flush the Toilet
    L458 Interview
    L457 早上锻炼减肥
    L456 学英语 看美剧
    L455 人之初,性本衰
    L454 正确喝水
  • 原文地址:https://www.cnblogs.com/Serenaxy/p/14032054.html
Copyright © 2020-2023  润新知