网站LOGO
云与雾Blog
页面加载中
1月18日
网站LOGO 云与雾Blog
分享你我所热爱的。
菜单
  • 云与雾Blog
    分享你我所热爱的。
    用户的头像
    首次访问
    上次留言
    累计留言
    我的等级
    我的角色
    打赏二维码
    打赏博主
    Linux系统结构
    点击复制本页信息
    微信扫一扫
    文章二维码
    文章图片 文章标题
    创建时间
  • 一 言
    确认删除此评论么? 确认
  • 本弹窗介绍内容来自,本网站不对其中内容负责。

    Linux系统结构

    小北 · 原创 ·
    📓学习笔记🐧linux · 与Linux的情情爱爱
    共 8034 字 · 约 8 分钟 · 1777
    本文最后更新于2023年05月29日,已经过了599天没有更新,若内容或图片失效,请留言反馈

    一、Linux系统结构

    Linux系统结构.pngLinux系统结构.png

    1.Linux内核是什么?

    操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。

    2.shell是什么

    Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。是在Linux内核与用户之间的解释器程序,现在Linux通常指/bin/bash解释器来负责向内核翻译以及传达用户/程序指令,shell相当于操作系统的“外壳”

    接收用户的命令,经过转换,交给内核去执行

    为什么使用shell
    为了简化操作和保证内核的安全。

    bash 代码:
    #查看当前shell
    echo $SHELL
    #切换shell
    chsh -s /bin/csh
    #查看shell列表
    chsh -l
    shell名称程序路径
    bonrne shell/usr/bin/sh或/bin/sh
    C Shell/usrbin/csh
    K Shellusr/bin/ksh
    Bourne Again Shell/bin/bash
    Z Shell/bin/zsh或/usr/bin/zsh

    Windows:cmd、Power Shell

    Shell和Termin.pngShell和Termin.png

    3.Linux文件系统

    Linux系统一切皆文件

    普通文件、目录、进程(/proc)、输入输出设备(/dev)、网络字节流socket、链接文件、管道文件

    Linux系统没有Windows盘符的概念,所有的文件都在根目录/

    text 代码:
    bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
    目录说明备注
    bin存放普通用户可执行的指令
    (存放二进制可执行文件)
    即使在单用户模式下也能够执行处理
    boot开机引导目录
    存放用于系统引导时的文件
    包括Linux内核文件与开机所需要的文件
    dev设备目录
    用于存放设备文件
    所有的硬件设备及周边均放置在这个设备目录中
    etc各种配置文件目录大部分配置属性均存放在这里
    lib/lib64存放跟文件系统中的程序运行所需要的共享库及内核模块
    开机时常用的动态链接库
    bin及sbin指令也会调用对应的lib库
    media可移除设备挂载目录类似软盘 U盘 光盘等临时挂放目录
    mnt系统管理员安装临时文件系统的安装点额外的设备可挂载在这里,相对临时而言
    opt第三方软件安装目录现在习惯性的放置在/usr/local
    proc虚拟文件系统通常是内存中的映射,特别注意在误删除数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来
    root系统管理员主目录除root之外,其他用户均放置在/home目录下
    home存放用户文件的根目录
    run系统运行时所需文件以防止在/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据
    sbin只有root才能运行的管理指令跟bin类似,但只属于root管理员
    只有root才能访问
    srv服务启动后需要访问的数据目录
    sys跟proc一样虚拟文件系统记录核心系统硬件信息
    tmp存放临时文件目录所有用户对该目录均可读写
    usr应用程序放置目录
    var存放系统执行过程经常改变的文件

    比较重要的几个目录:

    1. /etc这个是系统中的配置文件,如果更改了该目录下的某个文件可能会导致系统不能启动。
    2. /bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如ls就是在/bin/ls 目录下的。值得提出的是,/bin, /usr/bin是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin则是给root使用的指令。
    3. /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log目录下,另外mail的预设放置也是在这里。

    用户目录

    用户目录位于/home/下,例如/home/xiaobei

    text 代码:
    [root@iZ4q179d4eyom2Z home]# cd /home
    [root@iZ4q179d4eyom2Z home]# ls
    xiaobei

    登录信息

    bash 代码:
    [root@localhost /]#
    #Linux的bash解析器终端用来显示主机名和当前用户的标识;
    
    # root表示当前用户叫root(系统管理员账户)
    # localhost表示当前使用的主机名叫localhost(没有设置系统名字的时候默认名称是localhost)
    # / 表示你当前所处的目录位置 (这里的'/'表示你当前在根目录下)

    相对路径与绝对路径

    绝对路径
    /开始的路径叫绝对路径、如:

    bash 代码:
    [root@localhost /]# cd /home/xiaobei
    [root@localhost /]# ls /usr

    相对路径
    从当前位置开始描述的路径为相对路径,如:

    bash 代码:
    [root@localhost /]# cd ../../
    [root@localhost /]# ls abc/def

    . 和 ..
    每个目录下都有...

    bash 代码:
    . 表示当前目录
    
    .. 表示上一级目录,即父目录
    text 代码:
        例如这里切换路径时候
    
    bash 代码:
    # 从 / 根目录切换到 home目录
    [root@localhost /]# cd home
    
    # 确认路径/home
    [root@localhost home]# pwd
    /home
    
    # 切换到当前目录cd .  目录无变化
    [root@localhost home]# cd .
    
    # 切换到当前目录cd ..  目录回到上一级根目录
    [root@localhost home]# cd ..
    [root@localhost /]# 
    根目录下的 . 和 .. 都表示当前目录

    二、Linux权限

    Linux的权限有RWX三种
    r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
    w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具有新建,删除,修改,移动目录内文件的权限。
    x(eXecute,执行):对文件而言,具有执行文件的权限;对目录来说该用户具有进入目录的权限。

    1. 目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
    2. 只有执行权限只能进入目录,不能看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
    3. 一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外
    4. 目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件

    文件权限

      文件权限就是文件的访问控制权限,即哪些用户和组群可以访问文件以及可以执行什么样的操作。

      Unix/Linux 系统是一个典型的多用户系统,不同的用户处于不同的地位,对文件和目录有不同的访问权限。为了保护系统的安全性Unix/Linux系统除了对用户权限作了严格的界定外,还在用户身份认证、访问控制、传输安全、文件读写权限等方面作了周密的控制。

      在 Unix/Linux 中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。

    访问用户

      通过设定权限可以从以下三种访问方式限制访问权限:

    txt 代码:
    只允许用户自己访问(所有者) 所有者就是创建文件的用户,用户是所有用户所创建文件的所有者,用户可以允许所在的用户组能访问用户的文件。
    允许一个预先指定的用户组中的用户访问(用户组) 用户都组合成用户组,例如,某一类或某一项目中的所有用户都能够被系统管理员归为一个用户组,一个用户能够授予所在用户组的其他成员的文件访问权限。
    允许系统中的任何用户访问(其他用户) 用户也将自己的文件向系统内的所有用户开放,在这种情况下,系统内的所有用户都能够访问用户的目录或文件。在这种意义上,系统内的其他所有用户就是 other 用户类

    访问权限

      用户能够控制一个给定的文件或目录的访问程度,一个文件或目录可能有读、写及执行权限:

    txt 代码:
    读权限(r) 对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
    写权限(w) 对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
    可执行权限(x) 对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

      注意:通常,Unix/Linux系统只允许文件的属主(所有者)或超级用户改变文件的读写权限。

    bash 代码:
    [root@localhost /]# ls -l
    总用量 20
    lrwxrwxrwx.   1 root root    7 8月  31 15:48 bin -> usr/bin
    dr-xr-xr-x.   5 root root 4096 8月  31 15:58 boot
    ...

      我们来拆解结构,这里面我只列了根目录下的一部分内容

      用到 ls -l 命令查看当前文件夹下详细信息,具体的命令和参数,后面会深入讲解

      我们需要关注的是文件或目录的权限情况

    bash 代码:
    l  rwx  rwx  rwx
    d  r-x  r-x  r-x
    
    # 首先第一个字母 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
    [ d ] 表示目录
    [ l ] 表示为链接文档(link file)
    [ - ] 表示为文件
    [ b ] 表示为装置文件里面的可供储存的接口设备(可随机存取装置)
    [ c ] 表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
    
    # 其次接下来的字符中,以三个为一组,且均为 [ rwx ] 的三个参数的组合
    [ r ]代表可读(read)
    [ w ]代表可写(write)
    [ x ]代表可执行(execute)
    [ - ]
    
    # 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
    
      此时问题来了那么这三组一样是有什么区分尼?
    # 这里就涉及到刚才所描述的访问用户权限
    # 所有者    所有者表示该文件的所有者
    # 用户组    表示当前用户再同一组
    # 其他用户  允许系统中的任何用户访问,系统内的其他所有用户就是 other 用户类
    
    # 可以将这个权限进行类比,如我的篮球,
    # 所有者表示的是我可以玩 
    # 用户组表示,我可以借给我同班同学玩
    # 其他用户表示,我可以借给其他班的同学玩
    

    文件属主与属组

      对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。

      同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。

      文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。

      因此,Linux系统按文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。

    bash 代码:
    [root@localhost /]# ls -l
    总用量 20
    ...
    dr-xr-xr-x.   5 root root 4096 8月  31 15:58 boot
    ...
    
    [root@localhost /]# cd /home
    [root@localhost home]# ls -l
    总用量 0
    drwx------. 2 xiaobei xiaobei 83 9月   2 15:54 xiaobei
    
    
    # 在以上实例中,xiaobei 文件是一个目录文件,属主和属组都为 xiaobei,属主有可读、可写、可执行的权限;与属主同组的用户无权限读写执行;其他用户也无权限读写执行
    
    # 对于 root 用户来说,一般情况下,文件的权限对其不起作用。
    声明:本文由 小北(博主)原创,依据 CC-BY-NC-SA 4.0 许可协议 授权,转载请注明出处。

    还没有人喜爱这篇文章呢

    我要发表评论 我要发表评论
    博客logo 云与雾Blog 分享你我所热爱的。 51统计
    MOEICP 萌ICP备20228088号 ICP 晋ICP备2021016398号 又拍云 本站由又拍云提供CDN加速/云存储服务

    💻️ 小北 1月5日 在线

    🕛

    本站已运行 3 年 336 天 18 小时 24 分
    云与雾Blog. © 2021 ~ 2025.
    网站logo

    云与雾Blog 分享你我所热爱的。