《Linux系统编程篇》认识在linux上的文件 ——基础篇

前言

Linux系统编程的文件操作如同掌握了一把魔法钥匙,打开了无尽可能性的大门。在这个世界中,你需要了解文件描述符、文件权限、文件路径等基础知识,就像探险家需要了解地图和指南针一样。而了解这些基础知识,就像学会了魔法咒语一样,让你能够在Linux系统中游刃有余地驾驭文件操作的魔力。

每一次努力都是一种投资,哪怕结果未必如愿,但你所获得的成长和经验都是无价的。坚持下去,你会看到那些投资最终会为你带来丰厚的回报。 ——家驹(Strange_Head)

文章目录

  • 前言
  • 在编程路上初始阶,Linux文件操作先了解
    • 1. 基础知识
      • 1.1 操作系统基础
    • 2、文件的权限(ls -l)
    • 3、更改文件权限`chmod` 命令
      • 使用数字表示权限
      • 使用符号表示权限
      • 示例
        • 通常使用方式
  • 结束

在编程路上初始阶,Linux文件操作先了解

1. 基础知识

开始Linux系统编程中的文件操作之前,初学者需要掌握一些基础知识

1.1 操作系统基础

文件系统概念:理解文件系统的结构和工作原理,例如文件目录路径等。

Linux基本命令
熟悉一些基本的Linux命令,如ls(列出目录内容)、cd(更改目录)、pwd(显示当前工作目录)、cat(显示文件内容)、touch(创建空文件)、mkdir(创建目录)、rm(删除文件/目录)等。

到了这里可以到自己的linux系统命令行去敲一敲啦!!~

新快捷键学习✨在linux虚拟机当中使用《CTRL+ALT+T》(直接启动一个新终端)————家驹(Strange_Head)

在这里插入图片描述
当然这里只是简单的带着大家示范的敲一下,有些命令还带有一些选项,(如果有必要的话)比如说我上面提到的命令读者可以到百度查一下。这里过于基础。我们的最终目的带着大家学会linux系统编程以及对应的知识点,如果展开讲的话是讲不完的。

随着学习linux时间越久,这些命令将会刻到大脑里,所以不必担心记不住,知道怎么使用即可。随着慢慢深入,知道的会越来越多。

2、文件的权限(ls -l)

在终端输入这个命令

ls -l

这个就是ls命令的详细选项了,加了额外的选项-l
在这里插入图片描述
在Linux中,使用ls -l命令可以列出文件的详细信息,包括文件的权限。每个文件的权限信息显示在列表的第一列。权限信息由10个字符组成,如下所示:

  • 第一个字符表示文件类型:- 表示普通文件,d 表示目录,l 表示符号链接等。

  • 接下来的九个字符表示文件的权限,分为三组,每组三个字符,分别代表文件所有者的权限文件所属组的权限其他用户的权限。这三组权限分别是读(r)、写(w)和执行(x)权限

例如,如果一个文件的权限信息为-rwxr-xr--,那么它的含义是:

  • - rwx r-x r–

  • 文件类型为普通文件

  • 文件所有者具有读、写和执行权限

  • 文件所属组具有读和执行权限

  • 其他用户具有读权限

除了前面的权限的解读呢,后面这些又是什么呢。

有这样条信息。方便观察
-rwxr-xr-- 1 user1 group1 4096 Jul 13 14:25 file.txt

  • 1:表示链接到该文件的硬链接数。对于普通文件,通常为1。

  • user1:表示文件所有者的用户名。

  • group1:表示文件所属组的组名。

  • 4096:表示文件大小(以字节为单位)。

  • Jul 13 14:25:表示文件的最后修改时间。

如果一个文件不是你可以操作的那么通常操作他会报错(no permission)

拓展一下:

在Linux系统中,硬链接(Hard Link)和符号链接(SymbolicLink,也称为软链接)是两种不同类型的链接方式,用于创建文件之间的关联。它们之间有一些重要的区别:

  1. 硬链接

    • 硬链接是指多个文件目录项指向相同的索引节点(inode),这意味着硬链接实际上是同一个文件的不同名称。

    • 硬链接只能在同一个文件系统内创建,因为它们都指向相同的inode。

    • 删除原始文件并不会影响硬链接文件,因为它们实际上都指向相同的数据块。

    • 硬链接无法指向目录。

    • 对硬链接的更改会影响所有指向同一inode的文件,因为它们实际上是同一个文件。

  2. 符号链接

    • 符号链接是一个特殊的文件,它包含指向另一个文件的路径。

    • 符号链接可以跨越文件系统边界,因为它们只是指向另一个路径。

    • 如果原始文件被删除或移动,符号链接将失效,因为它只是指向文件的路径而非文件本身。

    • 符号链接可以指向目录。

    • 对符号链接的更改不会影响原始文件,因为它们只是指向文件的路径。

对于文件操作,我们知道这个文件的所有者是谁,他的权限是什么,什么人可以操作他就可以了。

3、更改文件权限chmod 命令

知道了怎么看文件的权限之后,我们来修改文件的权限。

chmod [选项] 模式 文件名

其中:

  • 选项:可选参数,用于指定 chmod 命令的特定选项。

  • 模式:用来指定权限的方式,可以采用数字表示或符号表示。

  • 文件名:需要更改权限的文件或目录名称。

使用数字表示权限

在数字表示中,每种权限用一个数字表示,如下:

  • 读权限:4

  • 写权限:2

  • 执行权限:1

然后,将所有权限相加得到想要设置的权限值。例如,读取和写入权限为6,读取、写入和执行权限为7。

使用符号表示权限

在符号表示中,可以使用符号来表示权限的改变,如下:

  • +:添加权限

  • -:移除权限

  • =:设置权限

符号表示权限的语法如下:

  • u:表示文件所有者(user)

  • g:表示文件所属组(group)

  • o:表示其他用户(others)

  • a:表示所有用户(all)

例如,chmod u+r file.txt 表示为文件所有者添加读权限。

示例

  • 为所有用户添加读取和写入权限:chmod a+rw file.txt

  • 移除文件所有者的执行权限:chmod u-x file.txt

  • 为文件所有者和所属组添加执行权限:chmod ug+x file.txt

在使用 chmod 命令时,需要以超级用户(root)或文件所有者的身份来更改文件的权限。

通常使用方式

chmod 755 demo2.c直接指定所属文件的权限,第一个7就是自己的权限,后面是组和其他用户的权限。
在这里插入图片描述

结束

这节我们知道了如何使用ls -l查看文件的权限等信息(什么类型,所有者,所属组,文件大小,创建时间/修改时间),和chomd修改文件的权限之后,我们就可以正式进入编写代码环节了。还是那句话,一时间记不住没关系,后续随着使用次数的变多会慢慢成为一种肌肉记忆,刻到大脑里面。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45975.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jenkins系列-07.轻易级jpom安装

jpom是一个容器化服务管理工具:在线构建,自动部署,日常运维, 比jenkins轻量多了。 本篇介绍mac m1安装jpom: #下载:https://jpom.top/pages/all-downloads/ 解压:/Users/jelex/Documents/work/jpom-2.10.40 启动前修…

css基础(1)

CSS CCS Syntax CSS 规则由选择器和声明块组成。 CSS选择器 CSS选择器用于查找想要设置样式的HTML元素 一般选择器分为五类 Simple selectors (select elements based on name, id, class) 简单选择器(根据名称、id、类选择元素) //页面上的所有 …

Web 性能入门指南-1.5 创建 Web 性能优化文化的最佳实践

最成功的网站都有什么共同点?那就是他们都有很强的网站性能和可用性文化。以下是一些经过验证的有效技巧和最佳实践,可帮助您建立健康、快乐、值得庆祝的性能文化。 创建强大的性能优化文化意味着在你的公司或团队中创建一个如下所示的反馈循环&#xff…

centos7|Linux操作系统|编译最新的OpenSSL-3.3,制作rpm安装包

一、 为什么需要编译rpm包 通常,我们需要安装某个软件,尤其是在centos7这样的操作系统,一般是通过yum包管理器来安装软件,yum的作用是管理rpm包的依赖关系,自动的处理rpm包的安装顺序,安装依赖等的相关问…

交换机和路由器的工作流程

1、交换机工作流程: 将接口中的电流识别为二进制,并转换成数据帧,交换机会记录学习该数据帧的源MAC地址,并将其端口关联起来记录在MAC地址表中。然后查看MAC地址表来查找目标MAC地址,会有一下一些情况: MA…

通过Bugly上报的日志查找崩溃闪退原因

第一步,解析堆栈信息 在bugly上收集到的信息是这样的 0x000000010542e46c 0x0000000104db4000 6792300 OS应用发生崩溃时,系统会生成一份崩溃日志,这份日志中包含了崩溃时的堆栈信息,但这些堆栈信息并非直接指向源代码&#x…

【漏洞复现】某赛通 电子文档安全管理系统 多个接口存在远程命令执行漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

【RAG 实践】LlamaIndex 快速实现一个基于 OpenAI 的 RAG

这是 LlamaIndex 官方 Starter Tutorial 中 demo,用很少的代码来使用 OpenAI 快速实现出一个 RAG。 Ref: Starter Tutorial | LlamaIndex 代码:llamindex-rag-demo | Kaggle 1)设置 OpenAI Token 这里使用国内的 OpenAI 中转 API token&…

【Python】数据分析-Matplotlib绘图

数据分析 Jupyter Notebook Jupyter Notebook: 一款用于编程、文档、笔记和展示的软件。 启动命令: jupyter notebookMatplotlib 设置中文格式:plt.rcParams[font.sans-serif] [KaiTi] # 查看本地所有字体 import matplotlib.font_manager a sorted…

802.11ax RU - 传输的最小单元

子载波 无线信号是加载在某个固定频率上进行传输的,这个频率被称为载波。802.11标准中,对传输频率有更新的划分,而这些划分的频率被称为子载波。Wi-Fi 6中,以20Mhz信道为例,20Mhz信道被划分成256个子载波,…

QML 鼠标和键盘事件

学习目标:Qml 鼠标和键盘事件 学习内容 1、QML 鼠标事件处理QML 直接提供 MouseArea 来捕获鼠标事件,该操作必须配合Rectangle 获取指定区域内的鼠标事件, 2、QML 键盘事件处理,并且获取对OML直接通过键盘事件 Keys 监控键盘任意按键应的消…

基于3D感知的端到端具身操作论文导读

DexIL:面向双臂灵巧手柔性操作的端到端具身执行模型 模型架构 输入:   观测Ot: RGB点云,使用PointNet进行编码;   状态St: 双臂末端7x2Dof位姿16x2灵巧手关节位置,只进行归一化,无编码&am…

Linux Win 10 Windows上安装Ollama部署大模型qwen2 7b/15配置启动 LangChain-ChatChat 0.2.10进行对话

Win 10 Window安装Ollama部署qwen2 7b LangChain-ChatChat 环境说明 Win 10 Python 3.11.9 LangChain-ChatChat 0.20 Ollama 0.2.10 Qwen2 1.5b/7b Windows 安装Ollama 下载并安装Windows版Ollama https://ollama.com/download#/ 下载大模型qwen2:1.5b或者qwen2:7b 在命令…

从实时监控到风险智能预警:EasyCVR视频AI智能监控技术在工业制造中的应用

随着科技的不断进步和工业制造领域的持续发展,传统的生产管理方式正逐渐转型,迈向更加智能、高效和安全的新阶段。在这个变革过程中,视频智能监控技术凭借其独特的优势,成为工业制造领域的管理新引擎,推动着从“制造”…

【YOLOv8系列】(三)YOLOv8应用实践:从识别到分类再到分割的全方位视觉解决方案

随着深度学习技术的不断演进,目标检测领域的明星模型——YOLO系列,已经发展到了第八代,即YOLOv8。这一版本不仅继承了前辈们快速与准确的特点,还实现了功能上的巨大飞跃,成为了一个全能型的视觉AI工具箱,支…

maven的settings.xml无法正确配置本地仓库路径

因为以前使用过新版的maven,现在要换个版本使用。 在配置新的本地仓库路径的时候突然发现居然idea居然识别不了我settings.xml里面配置的路径。 我很是震惊,明明之前一直都是这样子配置的。怎么突然间不行了。当我冥思苦想,在网上搜寻资料无果…

WPF学习(5) -- WPF绑定

一、双向绑定 1.代码示例 <Window x:Class"学习.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expres…

[论文阅读]MaIL: Improving Imitation Learning with Mamba

Abstract 这项工作介绍了mamba模仿学习&#xff08;mail&#xff09;&#xff0c;这是一种新颖的模仿学习&#xff08;il&#xff09;架构&#xff0c;为最先进的&#xff08;sota&#xff09;变换器策略提供了一种计算高效的替代方案。基于变压器的策略由于能够处理具有固有非…

阿里云产品流转

本文主要记述如何使用阿里云对数据进行流转&#xff0c;这里只是以topic流转&#xff08;再发布&#xff09;为例进行说明&#xff0c;可能还会有其他类型的流转&#xff0c;不同服务器的流转也可能会不一样&#xff0c;但应该大致相同。 1 创建设备 具体细节可看&#xff1a;…

Spring源码中的模板方法模式

1. 什么是模板方法模式 模板方法模式&#xff08;Template Method Pattern&#xff09;是一种行为设计模式&#xff0c;它在操作中定义算法的框架&#xff0c;将一些步骤推迟到子类中。模板方法让子类在不改变算法结构的情况下重新定义算法的某些步骤。 模板方法模式的定义&…