Linux系统操作篇 one -文件指令及文件知识铺垫
Linux操作系统入门-系统篇
前言
Linux操作系统与Windows和MacOS这些系统不同,Linux是黑屏的操作系统,操作方式使用的是指令和代码行来进行,因此相对于Windows和MacOS这些带有图形化界面的系统,Linux的入门门槛和上手程度要更高,当然也有些公司把Linux的图形化界面做出来了,但不在本文谈论的重点。本文主要谈论对于Linux操作系统的理解,以及文件和目录这些抽象的概念,再者是部分文件和目录操作的指令等。以上这些主要都是让大家熟悉并上手Linux的操作方式,主要目标是找感觉,与鼠标操作Windows的差异这种感觉。废话不多说,让我们进入正文来探讨第一个问题吧。
如何学习Linux
与Windows不同,Linux是不具备图形化界面的操作系统,就是说在Linux系统中鼠标是无法使用的也不存在所谓的 桌面(desktop)。此外,由于无法显示画面,因此我们在电脑上娱乐的游戏、电影等等方面的软件都是无法在Linux上看到的。这种操作的不便也给Linux的学习成本增加了,例如我们在Windows中打开桌面上的一个软件的这个过程是移动鼠标双击对应软件的图标即可。但在Linux上需要通过指令的方式切换到该软件所在的目录内,在执行该程序。因此需要大家多花时间来自己实践操作Linux系统才能换来效率的收益。
学Linux主要分为两大部分:系统篇 和 网络篇,本文及此后好几篇都是围绕系统篇来展开。
系统篇主要学习如何操纵Linux操作系统以及Linux操作系统运作的底层原理,网络篇主要围绕Linux与网络相关的知识来展开,如如何建立网络库等。
Linux系统理解
操作Linux系统简单来说就是操控文件和目录的过程,因为在Linux系统中所有的东西都是文件或目录,例如常说的TXT文件、键盘、显示器甚至是网络库在Linux系统面前都是一个个的目录。系统有相似性,这点也说明Windows的底层很可能也是由一个个文件和目录组成的。此后我们学习Linux操作相关指令几乎都是对文件和目录进行操作。
文件和目录
文件和目录是Linux存储级的概念,作用是存储系统使用时的数据,也就是存储用户和维持系统正常运行的数据。文件是直接存储数据,而目录是存储文件或者目录的从而间接存储数据的。注意区分,Windows系统下喜欢把目录叫文件夹,但Linux下仅被称作目录,也就是说目录就相当于Windows系统下的文件夹,或许也有人喜欢把Linux的目录叫文件夹,但目录就是目录,没什么好说的。
文件的分类
文件有多种,在Windows系统下通常能见到像 ‘.txt ‘’.png’ 这种文件,在Windows中主要通过文件后缀来区分文件的属性,但在Linux系统中则不然。Linux主要通过开头第一个符号来区分文件属性,如下图:
文件大概可以分为以下几类:
以属性开头第一个字母作为区分
'.' -- 隐藏文件
'd' -- 目录
'-' -- 普通文件
'c' -- 字符文件
'b' -- 块设备文件
'l' -- 连接文件
'p' -- 管道文件
's' -- socket文件(网络相关)
后续会专门讲一些与文件相关的指令,集中为一个统一的专题,这里暂不做介绍。
目录
什么是目录?目录就是存储文件或其他目录的一块空间,事实上在Linux系统中的所有文件和目录都是存储于一个叫根 目录(/) 的空间底下,也就是说整个操作系统也是运作在一块巨大的目录中的。
Linux目录结构
在数据结构课程中我们知道树这一结构,事实上目录就是一棵树,根节点对应根目录,通过根目录就能用递归的方式来管理子目录。树形结构的存储方式有一个特点,就是一个子节点只有一个父亲,由于同一个父目录下不可出现同名子目录,因此目录的位置具有唯一性,所以才能有统一的管理方式。
了解什么是 路径, 在Windows中路径就是文件或文件夹所处的位置如下图所示:
简单来说,路径就是文件在内存或硬盘中的位置,就相当于文件的家。通常,Linux用 ’ / ’ (反斜杠)作为分隔符Windows则用 ’ \ '(斜杠)作为分隔符。在每个文件创建后,系统都会自动生成两个隐藏目录分别为 [.] 和 [. .],其中** . **表示当前目录, ‘. .’ 表示上级目录。
绝对路径和相对路径
绝对路径: 以根目录为起点终于目标文件或目录(绝对路径具有唯一性)。
相对路径:以某个非根目录为起点终于目标文件或目录(该路径具有相对性)。
~:进入家目录。
-:返回最近访问的目录。
绝对路径是文件位置的唯一地址,通过绝对路径能够定位到目录中的唯一子目录或文件,因此绝对路径具有权威性。相对路径则是按照非根目录来开始的,因此该路径仅具有时效性,如果路径中某个文件或者目录为空则无法得到有效的位置,绝对路径则不同,绝对路径中如果目标文件或者目标目录存在则前面的路径都存在。
一般情况下,建立重要的文件确保文件位置不出错的话都需要绝对路径,但其他大部分情况如路径切换这些都可以随意使用相对路径。
以上是Linux文件与目录的所有内容了,下面介绍一下一下常用的文件操作命令。
文件操作指令
ls指令
格式: [ls + 选项 + 目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。
对于文件,将列出文件名以及其他信息。
常用选项:
pwd指令
格式:pwd
功能:显示用户当前所在的目录。
cd指令
格式:[cd 目录名]
功能:改变工作目录,将当前工作目录改变到指定的目录下。
touch指令
格式:[touch + 选项 + 文件]
功能:touch命令参数可以更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:
mkdir指令
语法:[mkdir + 选项 + dirname…]
功能:在当前目录下创建一个名为“dirname”(自己随意设置名称)的目录
常用选项:
rmdir指令&rm指令
格式:[rmdir + -p + dirname]
适用对象:具有当前目录操作权限的所有使用者。
功能:删除空目录。
常用选项:
格式:[rm + -f/-i/-r/-v + dirname/dir]
适用对象:所有使用者
功能:删除文件或目录。
常用选项:
cp指令
格式:[cp + 选项 + 源文件或目录 + 目标文件或目录]
功能:复制文件或目录
说明:cp指令用于复制文件或目录
常用选项:
mv指令
格式:[mv + 选项 + 源文件或目录 + 目标文件或目录]
功能:
常用选项:
cat指令
格式:[cat + 选项 + 文件]
功能:查看目标文件的内容。
常用选项:
more指令
格式:[more + 选项 + 文件]
功能:more命令的功能类似cat
常用选项:1.[-n] 对输出的所有行进行编号。2.[q] 退出more
less指令
格式:[less + 参数 + 文件]
功能:less与more类似,但less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且less在查看之前不会加载整个文件。
选项:
head指令&tail指令
格式:[head + 参数 + 文件]
功能:head用于显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:[-n] n代表行数,显示的行数。
tail指令
格式:[tail + 必要参数 + 选择参数 + 文件]
功能:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
以上是本篇文章的全部内容了,感谢大家的关看。
相关文章:

Linux系统操作篇 one -文件指令及文件知识铺垫
Linux操作系统入门-系统篇 前言 Linux操作系统与Windows和MacOS这些系统不同,Linux是黑屏的操作系统,操作方式使用的是指令和代码行来进行,因此相对于Windows和MacOS这些带有图形化界面的系统,Linux的入门门槛和上手程度要更高&…...
隨筆20241028 ISR 的收缩与扩展及其机制解析
在 Kafka 中,ISR(In-Sync Replicas) 是一组副本,它们与 Leader 保持同步,确保数据一致性。然而,ISR 的大小会因多种因素而变化,包括收缩和扩展。以下是 ISR 收缩与扩展的详细解释及其背后的机制…...
linux-字符串相关命令
1、cut 提取文件每一行中的内容 下面是一些常用的 cut 命令选项的说明: -c, --characters列表:提取指定字符位置的数据。-d, --delimiter分界符:指定字段的分隔符,默认为制表符。-f, --fieldsLIST:提取指定字段的数据…...

ES6 函数的扩展
ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法 ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面 参数变量是默认声明的,所以不能用 let 或 const 再次声明 使用参数默认值时,函数不能有同名参…...
Mac 查看占用特定端口、终止占用端口的进程
在 macOS 上,可以使用以下命令来查看占用特定端口(例如 8080)的进程: lsof -i :8080命令说明 lsof:列出打开的文件和网络连接信息。-i :8080:筛选出正在监听 8080 端口的进程。 输出结果结构 执行上述命…...

C#入坑JAVA MyBatis入门 CURD 批量 联表分页查询
本文,分享 MyBatis 各种常用操作,不限于链表查询、分页查询等等。 1. 分页查询 在 下文的 的「3.4 selectPage」小节,我们使用 MyBatis Plus 实现了分页查询。除了这种方式,我们也可以使用 XML 实现分页查询。 这里,…...

RabbitMQ 安装(Windows版本)和使用
安装 安装包获取 可以自己找资源,我这里也有百度云的资源,如果没失效的话可以直接用。 通过百度网盘分享的文件:RabbitMQ 链接:https://pan.baidu.com/s/1rzcdeTIYQ4BqzHLDSwCgyw?pwdfj79 提取码:fj79 安装教程…...
Apache paimon表管理
表管理 2.9.4.1 管理快照 1)快照过期 Paimon Writer每次提交都会生成一个或两个快照。每个快照可能会添加一些新的数据文件或将一些旧的数据文件标记为已删除。然而,标记的数据文件并没有真正被删除,因为Paimon还支持时间旅行到更早的快照。它们仅在快照过期时被删除。 …...
java 第19天
一.Lambda表达式 前提是:参数是函数式接口才可以书写Lambda表达式 函数式接口条件: 1.接口 2.只有一个抽象方法 lambda表达式又称为匿名函数,允许匿名函数以参数的形式传入方法,简化代码 lambda表达式分为两部分()->{} …...
什么是服务器?服务器与客户端的关系?本地方访问不了网址与服务器访问不了是什么意思?有何区别
服务器是一种高性能的计算机,它通过网络为其他计算机(称为客户端)提供服务。这些服务可以包括文件存储、打印服务、数据库服务或运行应用程序等。服务器通常具有强大的处理器、大量的内存和大容量的存储空间,以便能够处理多个客户…...

Spring(1)—Spring 框架:Java 开发者的春天
一、关于Spring 1.1 简介 Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。它提供了全面的基础设施支持,使开发者…...

MT1401-MT1410 码题集 (c 语言详解)
目录 MT1401归并排序 MT1402堆排序 MT1403后3位排序 MT1404小大大小排序 MT1405小大大小排序II MT1406数字重排 MT1407插入 MT1408插入 MT1409旋转数组 MT1410逆时针旋转数组 MT1401归并排序 c 语言实现代码 #include <stdio.h>// merge two subarrays void merge(int a…...

React基础语法
1.React介绍 React由Meta公司开发,是一个用于构建Web和原生交互界面的库 1.1 React优势 相较于传统基于DOM开发的优势 1.组件化的开发方式 2.不错的性能 相较于其他前端框架的优势 1.丰富的生态 2.跨平台支持 1.2React的时长情况 全球最流行,大厂…...

《Kadane‘s Algorithm专题:最大和连续子数组》
🚀 博主介绍:大家好,我是无休居士!一枚任职于一线Top3互联网大厂的Java开发工程师! 🚀 🌟 在这里,你将找到通往Java技术大门的钥匙。作为一个爱敲代码技术人,我不仅热衷…...
Vue基础(5)
ref属性 在 Vue2 中,ref是一个特殊的属性,用于在模板中获取对某个 DOM 元素或子组件的引用。通过 ref,我们可以在 JavaScript 代码中直接访问该 DOM 元素或组件实例。 示例: <template><div><input ref"inputField&quo…...

面对复杂的软件需求:5大关键策略!
面对软件需求来源和场景的复杂性,有效地管理和处理需求资料是确保项目成功的关键,能够提高需求理解的准确性,增强团队协作和沟通,降低项目风险,提高开发效率。反之,项目可能面临需求理解不准确、团队沟通不…...

使用Git进行版本控制的最佳实践
文章目录 Git简介基本概念仓库(Repository)提交(Commit)分支(Branching) 常用命令初始化仓库添加文件提交修改查看状态克隆仓库分支操作合并分支推送更改 最佳实践使用有意义的提交信息定期推送至远程仓库使…...
【入门1】顺序结构 - B2025 输出字符菱形
题目描述 用 * 构造一个对角线长 55 个字符,倾斜放置的菱形。 输入格式 没有输入要求。 输出格式 如样例所示。用 * 构成的菱形。 输入输出样例 输入 #1 输出 #1**** ********* <C> : #include<stdio.h>int main() {printf(" *\n ***\n**…...
C#DLL热加载|动态替换
我有一个项目 开始取数据和结束数据部分是一样的,但中间处理数据是根据客户需求来转换的 又要求增加一个客户数据转换 主程序是不能停下来的 所以这个项目转数据转换部分做成插件式 每个客户的数据转换都是一个项目 都是一个DLL 主程序里面定义好接口类或者抽象…...
数据库三大范式
目录 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) Oracle三大范式是数据库设计中的规范化过程,旨在减少数据冗余、提高数据一致性和数据库性能。这三大范式包括第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。 第一范式(1NF) 数据库表的每一列都是不可分割…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...

练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...