当前位置: 首页 > news >正文

Linux基础【Linux知识贩卖机】

在这里插入图片描述
偶尔的停顿和修整,对于人生是非常必要的。 --随记

文章目录

  • Linux目录
    • 目录结构
    • 磁盘分区
      • 相关命令
    • 相对路径和绝对路径
  • 文件权限
    • 用户分类
    • umask
    • 创建文件权限计算方法
    • 粘滞位
  • 总结


Linux目录

目录结构

Linux 操作系统采用了一种层次化的目录结构,常被称为标准的 Linux 文件系统层次结构(Filesystem Hierarchy Standard,缩写为 FHS)。

在这里插入图片描述

Linux 目录结构的主要内容:

目录名说明
/(根目录)Linux 文件系统的最顶层,包含了所有其他目录和文件。
/bin存放系统可执行程序(二进制文件),如常用的命令(ls、cp、rm等)。
/boot包含启动 Linux 系统所需的文件,如内核、引导加载程序和配置文件。
/dev存放设备文件,Linux 将硬件设备视为文件的形式进行访问和管理,如磁盘、键盘、鼠标等。
/etc存放系统的配置文件,包括网络配置、用户配置、服务配置等。
/home每个用户的主目录,用户的个人文件和设置存放在这里。
/lib存放系统所需的共享库文件,这些库文件被可执行程序使用。
/media用于挂载可移动媒体设备(如光盘、USB 等)的挂载点。
/mnt临时挂载点,用于临时挂载其他文件系统,如挂载网络共享目录。
/opt用于存放可选的应用程序包,通常由第三方供应商提供,与系统自带的软件包分开。
/proc虚拟文件系统,提供有关系统内核和进程的信息,用于访问和配置内核参数。
/root超级用户(root)的主目录。
/sbin存放系统管理员使用的系统管理程序,这些程序通常需要超级用户权限才能运行。
/srv存放服务(如网站、FTP)提供的数据,用于存储由特定服务提供的数据。
/tmp存放临时文件,系统或用户创建的临时文件将存放在这里。
/usr存放用户程序和文件,包括用户安装的软件、库文件、文档等。
/var存放经常变化的文件,如日志文件、邮件、数据库文件等。

这些是 Linux 文件系统中的一些主要目录,它们的用途和功能各不相同,有助于组织和管理系统的文件和配置。

注意,不同的 Linux 发行版(如 Ubuntu、CentOS)可能会有一些细微的差异,但总体上保持了相似的目录结构。

磁盘分区

在 Linux 下,磁盘分区是将物理硬盘划分为不同的逻辑部分,每个分区可以作为一个独立的文件系统进行使用。磁盘分区可以提供数据隔离、性能优化、安全性和灵活性等优势。在 Linux 系统中,常用的磁盘分区方案包括以下几种:

分区说明
主分区主分区是在硬盘上进行的最基本的分区类型。一个硬盘最多可以有四个主分区,其中一个可以设为扩展分区。
扩展分区扩展分区是用来划分逻辑分区的容器。一个扩展分区可以容纳多个逻辑分区,以便充分利用硬盘空间。
逻辑分区逻辑分区是在扩展分区内创建的分区。逻辑分区的数量没有限制,可以根据需要创建。
引导分区引导分区是用于存放引导加载程序和引导配置文件的分区。通常位于硬盘的开头部分,并具有启动标志。
根分区根分区是 Linux 系统的根文件系统所在的分区。它包含了操作系统的核心文件和目录结构。
/home 分区/home 分区是用于存放用户主目录的分区。将用户数据和设置分离到独立的分区可以方便进行备份和恢复。
/boot 分区/boot 分区是存放启动所需文件的分区,包括内核、引导加载程序和配置文件。
交换分区交换分区是用于虚拟内存(Swap)的分区。当系统内存不足时,部分数据可以转移到交换分区以释放内存。

在实际使用中,可以根据需求和实际情况选择适当的磁盘分区方案。分区的大小、数量和布局应根据系统的需求、硬件配置和预期的用途来进行规划。可以使用一些工具如 fdisk、parted 等来进行分区的创建和管理。

相关命令

在 Linux 系统中,你可以使用以下几种命令来查看已经存在的磁盘分区,这些命令可以帮助你查看和了解系统中已存在的磁盘分区的信息。但是需要注意,在使用这些命令时,可能需要使用超级用户权限(使用 sudo 前缀)来访问有关硬件和分区的详细信息。

fdisk 命令:fdisk 是一个强大的命令行工具,用于分区表的创建和管理。你可以使用以下命令查看磁盘分区信息:

sudo fdisk -l

上述命令将列出系统中所有硬盘的分区信息,包括设备名称、分区类型、起始和结束扇区等。
在这里插入图片描述

parted 命令:parted 是一个分区编辑器,提供了更高级的功能和交互界面。你可以使用以下命令启动 parted,然后检查分区信息:

sudo parted
(parted) print all

上述命令将打印出所有磁盘的分区信息,包括分区号、起始和结束扇区、文件系统类型等。
在这里插入图片描述

lsblk 命令:lsblk 命令用于列出块设备的信息,包括磁盘和分区。你可以使用以下命令查看磁盘和分区的层次结构:

lsblk

上述命令将显示系统中所有块设备的层次结构,包括磁盘、分区和挂载点。
在这里插入图片描述

df 命令:df 命令用于显示文件系统的磁盘空间使用情况,包括分区的挂载点和可用空间。你可以使用以下命令查看分区的挂载点和空间使用情况:

df -h

上述命令将显示已挂载的文件系统的使用情况,包括分区的挂载点、总空间、已用空间和可用空间。
在这里插入图片描述

相对路径和绝对路径

在这里插入图片描述

在计算机系统中,相对路径和绝对路径是用于定位文件或目录位置的两种不同方式。

  • 相对路径:相对路径是相对于当前工作目录(当前所在位置)的路径。它描述了如何从当前位置导航到目标文件或目录的路径。相对路径没有以根目录(/)开头。

例如,假设当前工作目录是/home/user/,而目标文件位于同一目录下的documents/file.txt,那么相对路径就是documents/file.txt。相对路径的优点是简洁,但需要确保当前工作目录的正确性,因为更改工作目录可能会影响相对路径的解析。

  • 绝对路径:绝对路径是从根目录(/)开始的完整路径,它提供了文件或目录在文件系统中的完整位置。

例如,一个文件的绝对路径可以是/home/user/documents/file.txt,其中/表示根目录,home是根目录下的子目录,依次类推。绝对路径的优点是确定性,不受当前工作目录的影响,可以准确地定位文件或目录。

无论是相对路径还是绝对路径,它们都用于在文件系统中定位文件或目录。选择使用哪种路径取决于具体的需求和使用场景。相对路径适用于在当前位置进行相对导航的情况,而绝对路径则提供了更确切和独立的位置信息。

文件权限

用户分类

在Linux中,文件权限包括了对文件的读取、写入和执行的权限。文件权限按照用户分类,主要分为以下三个类别:

  1. 用户(User):用户是文件的拥有者,即文件的创建者或所有者。用户权限通常表示为文件权限中的第一组,用于指定文件所有者对文件的访问权限。

  2. 组(Group):组是用户的集合,可以将多个用户归为同一组。每个文件都可以属于一个主要组。组权限通常表示为文件权限中的第二组,用于指定文件所属组中的用户对文件的访问权限。

  3. 其他人(Other):其他人是除了文件所有者和所属组的用户之外的所有用户。其他人权限通常表示为文件权限中的第三组,用于指定其他用户对文件的访问权限。

在文件权限中,每个类别都有自己的权限设置,通常用以下符号来表示:

  • r(读取权限):表示可以读取文件内容。
  • w(写入权限):表示可以修改或写入文件内容。
  • x(执行权限):表示可以执行文件(对于可执行文件)或者进入该目录(对于目录)。

使用数字表示权限时,r、w、x 分别对应数字 4、2、1。通过将这些数字相加,可以表示不同类别的权限组合。例如,权限设置为 rwxr-x— 表示用户具有读取、写入和执行权限,组具有读取和执行权限,其他人没有任何权限。这种基于用户分类的文件权限系统,使得可以根据用户的身份和所属组来限制对文件的访问和操作,提供了一定的安全性和细粒度的权限控制。

umask

umask(用户文件创建掩码)在Linux中用于确定新创建文件或目录的默认权限的设置。它指定了在创建新文件或目录时,文件系统应该屏蔽的权限位。umask 的值是一个八进制数,用于表示禁止设置的权限位。它的计算方式是将所需的权限从完全权限(通常是 777)中减去。umask 的作用是确保新创建的文件和目录不会自动获得过于宽松的权限,从而提高系统的安全性。

默认情况下,umask 的值通常是 0002。这意味着在创建新文件时,其他人(其他用户)不会被授予写入权限,而对于新创建的目录,其他人没有写入和执行权限。

在这里插入图片描述

umask 值的具体设置可能因操作系统和用户环境而有所不同。某些系统可能使用不同的默认 umask 值,或者用户可能在其配置文件中自定义了 umask 值。要查看当前系统中的 umask 值,可以在终端中运行 umask 命令。它将显示当前的 umask 值。

如果需要更改 umask 值,可以使用 umask 命令。例如,要将 umask 设置为 0002,可以运行以下命令:

umask 0002

这将更改当前会话的 umask 值。如果要使更改永久生效,可以将 umask 值添加到 shell 的配置文件(例如 ~/.bashrc~/.profile)中。

创建文件权限计算方法

  1. 确定所需的权限。根据文件的需求,确定用户、组和其他人所需的权限,例如读取、写入和执行权限。

  2. 确定 umask 的值。

  3. 将所需权限转换为对应的八进制数。例如,读取权限(r)对应 4,写入权限(w)对应 2,执行权限(x)对应 1。

  4. 计算权限。对于每个权限位,将所需权限与 umask 的反码进行按位与操作,以获取最终的权限设置。

  5. 应用权限。使用 chmod 命令将计算得到的权限应用于文件。

例如,假设要创建一个文件,用户需要读取、写入和执行权限,组需要读取和执行权限,其他人不需要任何权限,并且当前的 umask 值是 0002。

计算步骤如下:

用户权限:rwx = 4 + 2 + 1 = 7
组权限:r-x = 4 + 0 + 1 = 5
其他人权限:— = 0 + 0 + 0 = 0

umask 的反码:0002 的反码是 0775。

计算结果:
用户权限:7 & ~0 = 7
组权限:5 & ~0 = 5
其他人权限:0 & ~2 = 0

最终的权限设置为:rwxr-x—。

然后,可以使用 chmod 命令将权限应用于文件:

chmod 750 filename

请注意,umask 的默认值通常是 0002,这意味着默认情况下其他人(其他用户)无法进行写入和执行操作。这样可以确保新创建的文件对其他人是只读的。

粘滞位

粘滞位(Sticky Bit)是一种特殊的权限位,用于设置目录的权限。当粘滞位设置在目录上时,只有目录所有者、文件所有者和超级用户能够删除或重命名该目录下的文件,即使其他用户对该目录拥有写权限。

粘滞位通常用于公共目录,例如 /tmp 目录,以确保只有文件的所有者能够删除或修改自己的文件,而其他用户不能删除或修改他人的文件。粘滞位可以通过设置目录的权限来启用,使用数字形式权限设置时,粘滞位的权限位表示为 1,使用符号形式权限设置时,粘滞位的符号为 “t” 或 “T”。

  • 当粘滞位设置为 “t” 时,表示粘滞位已启用,并且其他用户不能删除或重命名目录下的文件,即使他们对目录有写权限。
  • 当粘滞位设置为 “T” 时,表示粘滞位已启用,但其他用户可以删除或重命名目录下的文件,前提是他们对目录有写权限。

在这里插入图片描述

要启用粘滞位,可以使用 chmod 命令和数字形式或符号形式来设置目录的权限。以下是一些示例:

使用数字形式设置粘滞位为 “t”:

chmod 1755 directory

使用符号形式设置粘滞位为 “t”:

chmod +t directory

使用符号形式设置粘滞位为 “T”:

chmod +T directory

要检查目录是否设置了粘滞位,可以使用 ls 命令并查看权限列表。在粘滞位启用的目录中,权限列表中的最后一位会显示为 “t” 或 “T”。

总结

文章首先介绍了Linux中的目录相关知识,例如目录结构、磁盘分区等,然后对文件的权限等细节进行介绍,例如用户的分类,文件掩码以及创建文件权限的计算方式和粘滞位。希望文章对你有帮助!

在这里插入图片描述

相关文章:

Linux基础【Linux知识贩卖机】

偶尔的停顿和修整,对于人生是非常必要的。 --随记 文章目录 Linux目录目录结构磁盘分区相关命令 相对路径和绝对路径 文件权限用户分类umask创建文件权限计算方法粘滞位 总结 Linux目录 目录结构 Linux 操作系统采用了一种层次化的目录结构,常被称为标…...

CSS 边框、轮廓线

一、CSS边框: CSS边框属性允许指定一个元素边框的样式和颜色。 1)、边框样式:border-style属性用来定义边框的样式,border-style值: 2)、边框宽度:border-width属性用于指定边框宽度。指定变宽…...

Transformer架构 完整的处理流程

Transformer 是由多层的 Encoder 和 Decoder 构成的。每一层的 Encoder 和 Decoder 都包含了多头自注意力机制(Multi-head Self Attention)、前馈神经网络(Feed Forward)和添加及归一化(Add & Norm)。特…...

git and svn 行尾风格配置强制为lf

git CLI配置: // 提交时转换为LF,检出时转换为CRLF git config --global core.autocrlf true // 提交时转换为LF,检出时不转换 git config --global core.autocrlf input // 提交检出均不转换 git config --global core.autocrlf f…...

达梦数据库答案

1、 创建数据库实例,到/dm8/data下,数据库名:DEMO,实例名DEMOSERVER(10分) [dmdbadmServer ~]$ cd /dm8/tool [dmdbadmServer tool]$ ./dbca.sh1、 簇大小32,页大小16,登录密码&…...

基于SSM的楼房销售系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…...

Blender做一个小凳子学习笔记

文章目录 创建椅座椅子腿靠背渲染 本文是这个B站视频的学习笔记:【Blender】爆肝两个月!拜托三连了!这绝对是全B站最用心的(没有之一)Blender 3D建模零基础入门 创建椅座 首先,需要了解其左上角和右上角的…...

Maven简介

一、Maven模型 二、模型实现 三、对应代码项目介绍...

后端工程化 | SpringBoot 知识点

文章目录 [SpringBoot] 后端工程化1 需求2 开发流程3 RequestController 类(操作类)3.1 简单参数(形参名和请求参数名一致)3.2 简单参数(形参名和请求参数名不一致)3.3 复杂实体参数3.4 数组参数3.5 集合参…...

Oracle(15)Managing Users

目录 一、基础知识 1、Users and Security 用户和安全 2、Database Schema 3、Checklist for Creating Users创建用户步骤 二、基础操作 1、创建一个用户 2、OS Authentication 操作系统身份验证 3、Dropping a User 删除用户 4、Getting User Information 获取用户信…...

自动化测试(Java+eclipse)教程

webdriver环境配置 1.下载chromedriver到本地(一定要选择和自己浏览器相对应的版本chromedriver下载地址) 2.加入到环境变量path中 webdriver工作原理 创建web自动化测试脚本 1.Maven项目创建 File->New->project->(搜索maven)选择maven pr…...

ThreadFactory 实例创建方式

匿名内部类 private final Executor executor;{ThreadFactory threadFactory new ThreadFactory() {Overridepublic Thread newThread(Runnable r) {Thread t new Thread(r);t.setDaemon(true);return t;}};executor Executors.newFixedThreadPool(shops.size(), threadFac…...

【自动化测试】Pytest框架 —— 跳过测试和失败重试

1、Pytest跳过测试用例 自动化测试执行过程中,我们常常出现这种情况:因为功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了, 如果我们注释掉或删除掉这些测试用例,后面可能还要进行恢复操作&#…...

python 时间加法 输出t分钟后的时间

题目: 现在时间是a点b分,请问t分钟后,是几点几分? 输入: 第一行包含一个整数a 第二行包含一个整数b 第三行包含一个整数t 其中,0≤a≤23,0≤b≤59,0≤t,t分钟后还…...

51单片机-串口通信

文章目录 前言1.基础介绍2.串口实战3.4. 前言 1.基础介绍 常见1,2,3,电源 常用方式1 fosc外部晶振 2.串口实战 3. 4....

JAVA微信端医院3D智能导诊系统源码

医院智能导诊系统利用高科技的信息化手段,优化就医流程。让广大患者有序、轻松就医,提升医疗服务水平。 随着人工智能技术的快速发展,语音识别与自然语言理解技术的成熟应用,基于人工智能的智能导诊导医逐渐出现在患者的生活视角中…...

考研408-计算机网络 第二章-物理层学习笔记及习题

第二章 物理层 一 通信基础 1.1 物理层基本概念 1.1.1 认识物理层 物理层目的:解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是具体的传输媒体。 物理层主要任务:确认与传输媒体接口有关的一些特性,需要进行定义标…...

鸿蒙开发工具的汉化

1、下载汉化包 汉化插件下载地址:Chinese (Simplified) Language Pack / 中文语言包 - IntelliJ IDEs Plugin | Marketplace 百度网盘下载地址:链接:百度网盘 请输入提取码 DevEco Studio是基于IDEA223版本,下载汉化包时请注意…...

14:00面试,14:06就出来了,问的问题有点变态。。。。。。

从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...

如何使用 NFTScan NFT API 在 zkSync 网络上开发 Web3 应用

zkSync 是由 Matter Labs 创建的,是一个以用户为中心的 zk rollup 平台,它是以太坊的第 2 层扩展解决方案,使用 zk-rollups 作为扩展技术,与 optimistic rollups 一样,zk-rollups 将会汇总以太坊主网上的交易并将交易证…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...