《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.rhkb.cn/news/376805.html

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

相关文章

【Python】数据分析-Matplotlib绘图

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

Hologres+Flink企业级实时数仓核心能力介绍

讲师:骆撷冬 Hologres PD 随着业务发展,业务对于时效性的要求在逐渐提升。各种场景都需要实时,例如春晚实时直播大屏、双11 GMV实时大屏、实时个性化推荐等等多种场景,都对数据的时效性有着非常高的要求。随着实时需求的发展&…

MT6816磁编码IC在工控机器人中的应用

在现代工业自动化领域,高精度的位置检测和控制技术对于机器人系统的稳定运行至关重要。MT6816磁编码IC作为一款先进的磁传感器解决方案,以其卓越的性能和稳定性,在工控机器人中得到了广泛的应用。本文将详细探讨MT6816磁编码IC在工控机器人中…

【python数据结构精讲】双端队列

通过总结《流畅的Python》等书中的知识,总结Python中常用工具的方法。 deque,学名双端队列。 1. 常用方法 append():队列尾部添加appendleft():队首添加pop():移除队列最后一个元素popleft():移除队列第一…

在lsb.resource中设置特定用户使用特定机器运行作业失效

问题配置如下所示: Resolution lsb.resources文件是用于定义和配置LSF的资源的,资源类型基本都是消耗型资源,需要定义谁去消耗这些资源((如MEM、SLOTS、JOBS));这个“谁”也就是使用…

算法015:串联所有单词的子串

串联所有单词的子串. - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/substring-with-concatenation-of-all-words/ 如果是第一次接触这个题目,接触滑动…

NLP任务:情感分析、看图说话

我可不向其他博主那样拖泥带水,我有代码就直接贴在文章里,或者放到gitee供你们参考下载,虽然写的不咋滴,废话少说,上代码。 gitee码云地址: 卢东艺/pytorch_cv_nlp - 码云 - 开源中国 (gitee.com)https:/…

Android 儿童绘本/汉语拼音实现

有这样一个项目&#xff0c;开发一个电子绘本&#xff0c;需要在绘本上显示&#xff0c;汉语拼音。 界面布局 <androidx.core.widget.NestedScrollViewandroid:layout_width"match_parent"android:layout_height"match_parent"android:fillViewport&quo…

ENSP实现防火墙区域策略与用户管理

目录 实验拓扑与要求​编辑 交换机与防火墙接口的配置 交换机&#xff1a; 创建vlan 接口配置 防火墙配置及接口配置 防火墙IP地址配置 云配置​编辑​编辑​编辑 在浏览器上使用https协议登陆防火墙&#xff0c;并操作 访问网址&#xff1a;https://192.168.100.1:844…

Iceberg概念和特性

1. 快照 Iceberg会随着时间的推进,跟踪表生命周期中的所有数据集变化,并使用快照(Snapshots)来表示每一次变化后的数据集合,每一次数据操作的事务提交均会产生一个快照,并将其记录在元数据文件(Metadata)中。 基于快照的概念,Iceberg有以下特性: 事务性:写入快照成…

TS真的比JS更好吗?

前言 在讨论TypeScript&#xff08;TS&#xff09;是否比JavaScript&#xff08;JS&#xff09;更好时&#xff0c;我们需要明确“更好”这一概念的上下文和衡量标准。TypeScript和JavaScript在多个方面有着明显的区别&#xff0c;但它们并不是简单的“好”与“不好”的关系&a…

java实战项目-学生管理系统(附带全套源代码)--《基础篇》

一、前言 第一个java小型学生管理系统&#xff0c;思路和其他语言都一样&#xff0c;因为有C语言的基础&#xff0c;写这个并不是太难&#xff0c;不过&#xff0c;进阶篇的就难太多了。明天晚上更新进阶篇&#xff0c;因为目前代码还没有完善&#xff0c;保守估计需要500行代…

javaweb学习day5--《HTML篇》Springboot的模块创建、HTML的相关知识点详解

一、前言 从今天开始&#xff0c;就要启动后端的学习了&#xff0c;Springboot会贯穿到底&#xff0c;一定要跟着小编严谨的去搭建Springboot环境&#xff0c;依赖添加的过程可能需要2分钟左右&#xff0c;读者们要耐心等待一下&#xff0c;搭建好Springboot之后才算正式的开始…

【JavaWeb程序设计】Servlet(二)

目录 一、改进上一篇博客Servlet&#xff08;一&#xff09;的第一题 1. 运行截图 2. 建表 3. 实体类 4. JSP页面 4.1 login.jsp 4.2 loginSuccess.jsp 4.3 loginFail.jsp 5. mybatis-config.xml 6. 工具类&#xff1a;创建SqlSessionFactory实例&#xff0c;进行 My…

fortran简单排序算法,对一维、二维矩阵进行正序或倒序排序

fortran简单排序算法&#xff0c;对一维、二维矩阵进行正序或倒序排序 0. 引言1. 算法实现1.1 一维数组排序1.2 二维数组排序1.2 module文件 2. 结语 0. 引言 排序算法是计算机科学中的一项重要技术&#xff0c;它将一组数据按照特定的顺序排列起来。排序算法有很多种&#xff…

Three.js相机简明教程

相机校准是 3D 计算机图形学中的一个基本概念&#xff0c;涉及设置虚拟相机以模拟真实世界相机的视角和行为。在 Three.js&#xff08;一种流行的 3D 渲染 JavaScript 库&#xff09;中&#xff0c;了解相机校准对于创建逼真且身临其境的 3D 场景至关重要。在本文中&#xff0c…

2、ASPX、.NAT(环境/框架)安全

ASPX、.NAT&#xff08;环境/框架&#xff09;安全 源自小迪安全b站公开课 1、搭建组合&#xff1a; WindowsIISaspxsqlserver .NAT基于windows C开发的框架/环境 对抗Java xx.dll <> xx.jar 关键源码封装在dll文件内。 2、.NAT配置调试-信息泄露 功能点&#xf…

《Linux系统编程篇》Visual Studio Code配置下载,中文配置,连接远程ssh ——基础篇

引言 vscode绝对值得推荐&#xff0c;非常好用&#xff0c;如果你能体会其中的奥妙的话。 工欲善其事&#xff0c;必先利其器 ——孔子 文章目录 引言下载VS Code配置VS Code中文扩展连接服务器 连接服务器测试确定服务器的IP地址VS code 配置ssh信息选择连接到主机选择这个添…

【D3.js in Action 3 精译】1.3 D3 视角下的数据可视化最佳实践(下)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 ✔️ 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形1.2.3 Canvas 与 WebGL1.2.4 CSS1.2.5 JavaScript1.2.6 Node 与 JavaScript 框架1.2.7 Observable 记事…

go-高效处理应用程序数据

一、背景 大型的应用程序为了后期的排障、运营等&#xff0c;会将一些请求、日志、性能指标等数据保存到存储系统中。为了满足这些需求&#xff0c;我们需要进行数据采集&#xff0c;将数据高效的传输到存储系统 二、问题 采集服务仅仅针对某个需求开发&#xff0c;需要修改…