zoukankan      html  css  js  c++  java
  • Linux 教程学习笔记

    本文石墨链接:https://shimo.im/docs/pD68dP3PP9PxwKj3

    本文全部整理自:
    Linux 系统启动过程 | 菜鸟教程 https://www.runoob.com/linux/linux-system-boot.html

    一、Linux 系统启动过程

    1、分为 5 个阶段

    1. 内核的引导
      打开电源 → BIOS 开机自检 → 按 BIOS 中设置的启动设备(通常是硬盘)来启动→ 操作系统接管硬件 → 首先读入 /boot 目录下的内核文件。
    2. 运行 init
    3. init 进程
      init 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。
      init 程序首先读取配置文件 /etc/inittab。
    4. 运行级别(7 个:0-6。)
      Linux 允许为不同的场合,分配不同的开机启动程序,这就叫做 "运行级别"(runlevel)。
      也就是说,启动时根据 "运行级别",确定要运行哪些程序。
    5. 系统初始化
    6. init 的配置文件执行/etc/rc.d/rc.sysinit
      主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。
    7. rc.sysinit中l5:5:wait:/etc/rc.d/rc 5
    • 以 5 为参数运行 /etc/rc.d/rc,/etc/rc.d/rc 是一个 Shell 脚本,它接受 5 作为参数,去执行 /etc/rc.d/rc5.d/ 目录下的所有的 rc 启动脚本。
    • /etc/rc.d/rc5.d/ 目录中的这些启动脚本实际上都是一些连接文件,而不是真正的 rc 启动脚本,真正的 rc 启动脚本实际上都是放在 /etc/rc.d/init.d/ 目录下。
    1. 建立终端
    2. rc 执行完毕后,返回 init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。
    3. init 接下来会打开 6 个终端,以便用户登录系统。
      注:为什么会是6个终端?
    4. 用户登录系统
    5. 登录方式有三种
      1. 命令行登录
        2. ssh 登录
        3. 图形界面登录

    2、Linux 关机

    正确的关机流程为:sync > shutdown > reboot > halt。

    3、shell、操作系统、内核的关系

    • 操作系统是一个整体,包括shell、内核和其他没说明的东西;
    • 内核是操作系统最重要的部分;
    • shell 是用户交互界面。

    4、参考:

    shell、操作系统、内核是一个东西吗-知乎 https://www.zhihu.com/question/37695460

    二、Linux 系统目录结构

    图片

    每个目录的作用直接看原文吧,没必要重复整理。

    Linux 系统目录结构 | 菜鸟教程 https://www.runoob.com/linux/linux-system-contents.html

    三、Linux 文件基本属性

    1、Linux文件属性

    图片

    注:"-" 字符表示没有权限。

    文件类型还有:

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

    2、Linux用户的划分。

    在 Linux 系统中,用户是按组分类的,一个用户属于一个或多个组。(一个而用户必定属于一个组么?有没有不属于任何组的用户?)

    • 用户自身(对文件所有者来说,又叫属主)
    • 同组用户(对文件所有者来说,又叫属主)
    • 其他用户(对文件所有者来说,就是其他组的用户和其他用户)

    root 用户来说,一般情况下,文件的权限对其不起作用。

    3、更改文件属性:

    见原文。注意用数字更改文件属性,很精妙的一种实现。

    四、Linux 文件与目录管理

    1、绝对路径和相对路径

    • 绝对路径:以/开始
    • 相对路径:不以/开始
      • ..表示父级
      • .表示自己

    2、常用命令说明

    文件和目录操作

    ls
    cd
    pwd
    mkdir
    redir
    cp
    rm
    mv
    
    • 注意命令对于文件和目录的操作不同,有时候对文件和目录需要不同的选项。

    文件查看

    cat
    tac
    nl
    more
    less
    head
    tail
    

    五、Linux 用户和用户组管理

    1、用户管理

    • 添加新用户:useradd
    • 删除帐号:userdel
    • 修改帐号:usermod
    • 密码(口令)管理:passwd

    2、用户组管理:

    • 添加用户组:groupadd
    • 删除用户组:groupdel
    • 修改用户组的属性:groupmod
    • 用户切换用户组:newgrp

    用户组的属性:组标识号、组名

    组标识号(GID)是什么?同用户号。多个组名可以有同一个组标识号。Linux系统内部实际是根据组标识号进行区分的。

    3、用户的属性和常用文件解读

    用户名,用户主目录,用户组,用户附加组,用户登录Shell,用户号,口令,注释性描述

    • 用户名
    • 用户标识号:
      • 一般情况下它与用户名是一一对应的。
      • 如果几个用户名对应的用户标识号是一样的,系统内部将把它们视为同一个用户,但是它们可以有不同的口令、不同的主目录以及不同的登录 Shell 等。
    • 主目录:用户的起始工作目录。
    • 用户登录Shell
      • 什么是Shell?
        • Shell 是用户与 Linux 系统之间的接口。
        • Linux 的 Shell 有许多种,每种都有不同的特点。常用的有 sh (Bourne Shell), csh (C Shell), ksh (Korn Shell), tcsh (TENEX/TOPS-20 type C Shell), bash (Bourne Again Shell) 等。
        • 所以,实际Shell就是用户登陆后使用的具体某个软件。
      • 用户登录Shell:即指定用户登陆后使用的软件。
        • 如果不指定 Shell,那么系统使用 sh 为默认的登录 Shell,即这个字段的值为 /bin/sh。
        • 如果登录 Shell 为空,则用户无法登录。(就是伪用户)
    • 伪用户
      • 常用伪用户
    • 用户组和用户附加组:
      • 当一个用户同时是多个组中的成员时,在 /etc/passwd 文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。

    常用文件解读:

    • /etc/passwd 文件 :存放用户信息
    • /etc/passwd:存放用户口令信息
    • /etc/group:存放用户组的所有信息

    4、添加批量用户操作

    具体见原文

    六、Linux 磁盘管理

    1、常用命令

    • df:列出文件系统的整体磁盘使用量
      • 检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
    • du:检查磁盘空间使用量
      • 与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看
    • fdisk:用于磁盘分区
      • 格式化:mkfs
    • 磁盘检验:fsck
    • 磁盘挂载与卸除:
      • 挂载使用 mount 命令
      • 卸载使用 umount 命令

    2、关于磁盘分区和挂载

    • 磁盘:
      • 就是你买的硬件,比如你买的1T影盘
    • 分区:
      • 逻辑上将该磁盘分为几部分,一个部分就是一个区。
      • 为什么要分区?
        • 便于管理和使用。
          • 不分区,一个磁盘就是一整块。
          • 分区后,磁盘被分成了多个部分,每个部分户部干扰。
          • 虽然物理上他们都是同一个磁盘,但逻辑上互不干扰。是不是很方便。
          • 同时分区还有其他作用,比如分区能提高文件系统管理效率,然后操作系统启动时也需要从特定分区加载系统文件等等。不是很清楚,先不写了,不过这些不影响对分区的理解。
    • 挂载:
      • 以Linux的文件系统来说明。
        • Linux的树形文件结构只是逻辑上的结构,一个文件可以在这个树上,但这个文件本身必须保存在磁盘的某个分区上。
        • 而树形结构要和磁盘的某个分区之间有一个映射关系。这个关系的建立就是挂载。
          • 比如你创建一个文件,实际上有两块:
            • 第一步,文件系统中有这个文件;
            • 第二步:磁盘上有这个文件本身。
          • 如果你不挂载,你就无法创建文件。想一想呀,文件该存在哪里呢?空气中么?
          • 但为什么你不挂载依然可以创建文件。
            • 因为操作系统启动时肯定有一个你没有手动操作的挂载(这个步骤可能不叫挂载,不过和挂载作用一致,就是建立映射关系)。
            • 然后,即使你不主动指定挂载,当你创建文件时,系统会一直向上找,直到找到一个可用的挂载,然后创建文件。
          • 如果你想指定另外的挂载
            • 使用挂载命令即可。解除挂载就使用解除挂载命令。
          • 挂载操作之后有什么影响?
            • 当你将一个已有目录挂载到新的分区上。即使文件系统中有这个我呢见,但是文件系统会找不到。因为文件实际在之前的分区上。新的分区上可能就是空白。
            • 所以:你更换了分区,也就破坏了联系,就无法在找到之前的文件了。
            • 如果你在新的挂载分区上创建新的文件和目录,就没有任何问题。

    参考:

    1. Linux 系统分区和挂载浅谈 - CC 的技术专栏 - CSDN 博客 https://blog.csdn.net/cc_net/article/details/2894510
    2. Linux 文件系统下的分区和挂载 - 小小呆的博客 - CSDN 博客 https://blog.csdn.net/gui951753/article/details/79032190
      注:详细讲解了为什么要分区,以及分区的到底是什么?
      挂载就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下,进入该目录就可以读取该分区。
    3. 能否通俗易懂,深入浅出地解释一下linux中的挂载的概念? - 知乎 https://www.zhihu.com/question/266907637
    4. Linux 学习笔记(二):什么是挂载?mount 的用处在哪? - Machine Learning with Peppa - CSDN 博客 https://blog.csdn.net/qq_39521554/article/details/79501714

    七、Linux vi/vim

    Vim的使用:

    1、各命令模式

    图片

    2、常用按键说明:

    图片

    见原文。

    八、linux yum 命令

    yum 实际就是软件的安装,更新,卸载等操作。

    以Window为例,来理解yum

    当我们想安装一个软件时:

    • 首先需要一个应用商店,提供所有的团结。
      • 在Linux中,应用商品就是 yum 源
    • 软件有名字,我们也能根据名字找到软件。
      • 在Linux中,软件名在就是package
    • 然后,下载、安装、更新、卸载
      • Linux中。安装(install)时,会根据package同时执行查询、下载和安装操作。
      • 其他更新就是更新,卸载就是移除。

    更换 yum 源就相当于更换应用商店,因为有的不好用。而且,为了防止总从yum源中后去,我们可以本地生成一个缓存。

  • 相关阅读:
    Time Zone 【模拟时区转换】(HDU暑假2018多校第一场)
    HDU 1281 棋盘游戏 【二分图最大匹配】
    Codeforces Round #527 (Div. 3) F. Tree with Maximum Cost 【DFS换根 || 树形dp】
    Codeforces Round #527 (Div. 3) D2. Great Vova Wall (Version 2) 【思维】
    Codeforces Round #527 (Div. 3) D1. Great Vova Wall (Version 1) 【思维】
    Codeforces Round #528 (Div. 2, based on Technocup 2019 Elimination Round 4) C. Connect Three 【模拟】
    Avito Cool Challenge 2018 E. Missing Numbers 【枚举】
    Avito Cool Challenge 2018 C. Colorful Bricks 【排列组合】
    005 如何分析问题框架
    004 如何定义和澄清问题
  • 原文地址:https://www.cnblogs.com/buwuliao/p/11650405.html
Copyright © 2011-2022 走看看