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

LINUX 文件基本管理

一、文件类型和根目录结构

1、文件类型

可以通过 ls -l  或者 ll来查看文件类型

可以根据显示,查看第一个字符,就表示文件类型。

- 字符:普通文件,类似于Windows的记事本。

d 字符:目录文件,类似于Windows的文件夹。

c 字符:字符设备文件,串口端口设备,顺序读写,键盘。

b 字符:块设备文件,可供存储的接口设备,随机读写,硬盘。

p 字符:管道文件,用于进程间的通信。

s 字符:套接字文件,通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套字来进行数据通信。

l 字符:符号连接,又叫软连接,和云文件不是一个文件,例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号连接也就都被破坏了。软连接有自己的node,是linux中特俗文件的一种,它的数据是它所连接的文件的路径。符号链接可以跨越文件系统,也可以为目录建立。

注:硬链接与软连接相似,但不是特殊文件类型,只能引用同一文件系统中的文件,它引用的文件在文件系统中的物理索引(inode),当移动或删除原始文件时,硬链接不会被破坏,因为他所引用的是文件的物理数据而不是文件在文件结构的位置。

软连接与硬链接的区别

软连接:

1)是存放在另一个文件的路径形式;

2)软连接可以跨文件系统;

3)软连接可以对一个不存在的文件名建立链接;

4)软连接可以对目录进行连接。

5)软连接与源文件inode编号不一样。

硬链接:

1)以文件副本的形式存在,但不占实际空间;

2)硬链接只能在同一个系统文件进行创建;

3)硬链接只能给存在的文件进行创建;

4)不能给目录创建硬链接;

5)硬链接给源文件的inode编号相同。

链接创建格式

软连接:ln -s  源目录/文件  新名

硬链接:ln  源文件  新名

例如

[root@node1 test_1]# ln -s a.txt b.txt  --创建软链接
[root@node1 test_1]# ln a.txt c.txt     --创建硬链接
[root@node1 test_1]# ls -li
total 0
1321200 -rw-r--r--. 2 root root 0 Sep  9 16:55 a.txt
1321201 lrwxrwxrwx. 1 root root 5 Sep  9 16:55 b.txt -> a.txt
1321200 -rw-r--r--. 2 root root 0 Sep  9 16:55 c.txt

2、目录结构

FHS文件系统层级标准,定义了在LINUX系统中的目录结构和目录内容,即让用户链接到安装软件通常放置于哪个目录下。

目录结构特点

使用树形目录结构来组织和管理文件。

整个系统只有一个根目录,Linux系统中根目录用“/”表示。

其他所有分区意外及外部设备都是以根目录为起点,挂接在目录树的某个目录中的,通过访问挂载点目录,即可以实现对这些分区的访问。

/ :Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录。

/boot:存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动。

/root:超级用户的个人目录,普通用户没有权限访问。

/home:存放一般用户的个人目录。

/bin:是库英文缩写,存在系统的各种库文件。

/usr:一般用户程序安装所在的目录,用于安装各种应用程序。

/etc:存放了系统管理时要用到的各种配置文件和子目录。

/var:通常各种系统日志文件放在这里。

/dev:dev是设备(device)的英文缩写。包含所有的设备文件。

/mnt:可以临时将别的文件系统挂在这个目录下,即为其他的文件系统提供安装点。

/tmp:用来存放不同程序执行时产生的临时文件。

/srv:srv是服务(server)的简写,服务启动之后需要访问的数据目录。

/sys:本目录是将内核的一些信息映射文件,以供应用程序所用。

/proc:可以在这个目录下获取系统信息。这些信息是在内容中由系统自己产生的。

3、路径以及工作目录

路径分类

绝对路径:是指以根目录“/”为起点表示系统中某个文件(或目录)的位置的方式。

相对路径:是以当前目录为起点,表示系统中某个文件或目录或在目录结构中的位置的方式。

如:[root@node1 ~]# cd /var/log  ---绝对路径

二、命令行管理文件

1、文件命名规则

1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符;

2)文件名不能超过255个字符;

3)区分大小写文件;

4)目录也是文件,在同一路径下,两个不同类型文件不能同名。

2、目录操作命令

1)创建目录

基本语法

mkdir [选项参数] [/路径/]目录名

选项参数

-p :可以快速创建出目录结构中指定的每个目录,对于已存在的目录不会被覆盖。

-v:显示创建目录的详细过程。

2)删除目录

基本语法

 rm -r [-f] 目录文件名

-f:强制删除,无提示; -r:删除会有提示信息,需要确认。 

 3)统计目录及文件空间占用情况

基本语法

 du [选项] [目录名]

 选项:

-a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。

-s:只统计每个文件所占用空间总的大小,而不是统计每个子目录、文件的大小。

-h:以K、M、G为单位显示磁盘使用情况,提高信息的可读性。

3、普通文件

1)创建普通文件

基本语法

touch [OPTION]... FILE...

touch 可以进行多个文件创建。

2)删除普通文件

 rm [-f] 文件名

3)查看文件详细信息

stat 文件名/或文件路径

 access:表示访问文件的时间。

modify:表示修改文件内容时间。

change:表示修改文件元数据的时间。

birth:表示文件创建时间。

4、数据流和重定向

1)数据流

标准输入(stdin):默认情况下,标准输入指键盘获取的输入,代码为0。

标准输出(stdout):默认情况下,命令执行所回传正确的信息会输出到屏幕上,代码为1。

标准错误输出(stderr):默认情况下,标准错误输出可理解为命令执行失败后,所回传的错误信息会输出到屏幕上,代码为2。

2)重定向操作符

重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。重定向操作符本身不是命令,而是命令中附加的可以改变命令的输入输出对象的特殊符号。

输出重定向操作符:>、>>

输入重定向操作符:<、<<

3)输入重定向

<:从文件中读取数据。

<<:不表示追加,而是表示输入结束符的意思,即作为一个结束符。

例如

[root@node1 ~]# cat < a.txt 
111
111[root@node1 ~]# cat < a.txt << end
> kkk
> lll
> aaa
> end
kkk
lll
aaa

4)输出重定向

>:输出重定向(覆盖文件内容)

>>:输出重定向(追加内容,不覆盖文件内容)

例如

[root@node1 ~]# date "+%H:%M:%S" > b.txt
[root@node1 ~]# cat b.txt 
22:26:27
[root@node1 ~]# date "+%H:%M:%S" > b.txt
[root@node1 ~]# cat b.txt 
22:26:40
[root@node1 ~]# date "+%H:%M:%S" >> b.txt
[root@node1 ~]# cat b.txt 
22:26:40
22:26:51

三、vi/vim编辑器

1、vi/vim编辑器介绍

所有LINUX系统都会内建vi文本编辑器,其他的文本编辑器则不一定存在,vim具有程序编辑的能,可以将文字颜色用不同颜色标识,方便程序设计;当程序简单,使用编辑器速度相当快。

vi/vim编辑器设置了三种模式:命令模式、末行模式、编辑模式,每种模式分别支持多种不同的快捷键,提高了工作效率。

基本语法

vim 文件路径(文件名)
vi 文件路径(文件名)

当运行编辑器时,默认进入命令模式。

2、命令模式

使用上下左右键,进行光标移动;

w:光标按照单词后跳转;

b:光标按照单词向前跳转;

^:光标跳转至行首;

$:光标跳转至行尾;

gg:文档行首第一个字符;

G:文档最后一行第一个字符;

行号+gg/G:指定跳转至指定行;

yy:复制光标所在行;

行号(n)+yy:复制光标所在行开始n行;

p:粘贴到光标所在下一行;

P:粘贴到光标所在上一行;

u:撤销;

dd:删除光标所在行;

行号(n)+dd:删除从光标开始的n行;

d^:删除光标前至行首字符;

d$:删除光标及之后的所有字符;

3、末行模式

按esc键可以从末行模式切换到命令模式,按 : 或者 / 命令可以切换到末行模式。

查找替换

保存退出

其他操作

 4、vi/vim三种模式切换

相关文章:

LINUX 文件基本管理

一、文件类型和根目录结构 1、文件类型 可以通过 ls -l 或者 ll来查看文件类型 可以根据显示&#xff0c;查看第一个字符&#xff0c;就表示文件类型。 - 字符&#xff1a;普通文件&#xff0c;类似于Windows的记事本。 d 字符&#xff1a;目录文件&#xff0c;类似于Wind…...

一、认识GitHub项目 —— TinyWebServer

认识GitHub项目 —— TinyWebServer 一、前言 这个项目是Linux下C轻量级Web服务器。几乎是想从事C服务器开发方向的同学的必备初始项目了。属于那种&#xff0c;“烂大街”&#xff0c;但是你又不能不会的项目。 对这个项目笔者打算多分几章讲解&#xff0c;帮助刚用GitHub&a…...

66.C++多态与虚函数

目录 1.什么是多态 2.多态的分类 3.对象转型 3.1 向上转型&#xff1a; 3.2 向下转型&#xff1a; 4.虚函数 1.什么是多态 生活中的多态&#xff0c;是指的客观的事物在人脑中的主观体现。例如&#xff0c;在路上看到⼀只哈士奇&#xff0c;你可以看做是哈士奇&#xf…...

【ICer的脚本练习】通过perl脚本来检查仿真log的结果

系列的目录说明请见:ICer的脚本练习专栏介绍与全流程目录_尼德兰的喵的博客-CSDN博客 前言 这是一个非常简单的perl脚本示例,展示一下perl语言“极简”的编码习惯。perl是我脚本入门的语言,一度也是最擅长的,但是因为python的强势现在我基本不写perl了。上一个大的perl脚本…...

创邻科技图数据库课程走进一流高校

《图数据库原理和实践》 正式开课&#xff01; 最近&#xff0c;浙江大学计算机学院新开了一门名为 《图数据库原理和实践》 的新课程&#xff0c;该课程由创邻科技和浙江大学联合推出&#xff0c;吸引了许多学生踊跃参与&#xff01; 曾为浙大学子的创邻科技CTO周研博士作为…...

RabbtiMQ的安装与在Springboot中的使用!!!

一、安装Erlang与Rabbitmq 安装教程本教程是在centos8下试验的&#xff0c;其实linux系统的都差不多RabbitMQ官方&#xff1a;Messaging that just works — RabbitMQRabbitMQ是开源AMQP实现&#xff0c;服务器端用Erlang语言编写&#xff0c;Python、Ruby、 NET、Java、JMS、c…...

【可定制、转换时间戳】解析nc文件,并保存为csv文件

解析nc文件&#xff0c;并保存为csv文件 写在最前面解析nc文件&#xff08;代码汇总放最后面&#xff09;读取nc文件获取气象文件中所有变量解析时间解析部分代码汇总 写入csv文件 写在最前面 愿称之为&#xff1a;支持私人订制、非常完美的版本 参考&#xff1a; 解析部分参…...

介绍串行和并行两种通信方式

前言 参考文章&#xff1a; 串行和并行- CSDN搜索 并行传输和串行传输的区别_金陵大掌柜的博客-CSDN博客 串行和并行介绍 &#xff08;1&#xff09;串行和并行是计算机领域中两个重要的概念。串行是指在计算机中&#xff0c;任务按照顺序一个一个执行&#xff0c;每个任务执行…...

优化爬虫效率:利用HTTP代理进行并发请求

网络爬虫作为一种自动化数据采集工具&#xff0c;广泛应用于数据挖掘、信息监测等领域。然而&#xff0c;随着互联网的发展和网站的增多&#xff0c;单个爬虫往往无法满足大规模数据采集的需求。为了提高爬虫的效率和性能&#xff0c;我们需要寻找优化方法。本文将介绍一种利用…...

关于磁盘空间不够,导致报错 springboot内置tomcat相关的临时目录无法创建等问题,如何自定义配置 tomcat 缓存文件路径

问题 关于磁盘空间不够&#xff0c;导致报错 springboot内置tomcat相关的临时目录无法创建等问题&#xff0c;如何自定义配置 tomcat 缓存文件路径 解决方法&#xff1a; shell 脚本命令&#xff1a;&#xff08;配置自定义缓存路径 java-Djava.io.tmpdir &#xff09; tmp…...

Android HAL - hidl-gen

1.hidl-gen的使用 hidl-gen 编译器会将 .hal 文件编译成一组 .h 和 .cpp 文件,这些 自动生成的文件用于编译客户端 / 服务端实现链接到的共享库,同 时也可以生成 Android.bp 编译文件。 1.1 生成的文件 HIDL 软件包中自动生成的文件会关联到与该软件…...

CGAL 数值类型

文章目录 一、简介二、内置数值类型三、CGAL提供的数值类型四、GMP提供的数值类型五、LEDA提供的数值类型六、CORE提供的数值类型七、区间运算参考资料一、简介 数字类型必须满足一定的语法和语义要求,这样它们才能在CGAL代码中成功使用。一般来说,它们被认为是一个代数结构概…...

建站系列(六)--- 后端开发语言

目录 相关系列文章前言一、常见后端开发语言二、PHP三、Java四、Python五、Go 相关系列文章 建站系列&#xff08;一&#xff09;— 网站基本常识 建站系列&#xff08;二&#xff09;— 域名、IP地址、URL、端口详解 建站系列&#xff08;三&#xff09;— 网络协议 建站系列…...

王道数据结构编程题 查找

二叉树定义 以下为本文解题代码的二叉树定义。 struct TreeNode {int val;TreeNode* left, *right;TreeNode(int val 0, TreeNode* left nullptr, TreeNode* right nullptr): val(val), left(left), right(right) {} };递归二分查找 题目描述 写出二分查找的递归算法。初…...

vue 部分知识点总结

计算属性和方法有什么区别&#xff0c;怎么选择&#xff1f; 在编程中&#xff0c;计算属性和方法都是用于处理数据的工具&#xff0c;但它们有一些区别。以下是它们的区别和如何选择的几个因素&#xff1a; 执行方式&#xff1a;计算属性是基于依赖的响应式系统&#xff0c;在…...

谷粒商城----ES篇

一、product-es准备 P128 ES在内存中&#xff0c;所以在检索中优于mysql。ES也支持集群&#xff0c;数据分片存储。 需求&#xff1a; 上架的商品才可以在网站展示。上架的商品需要可以被检索。 分析sku在es中如何存储 商品mapping 分析&#xff1a;商品上架在es中是存s…...

Redis3.2.1如何设置远程连接?允许局域网访问

背景&#xff1a; 电脑A的redis需要开放给电脑B使用&#xff0c;二者处于同一局域网 【后面会补充更详细的踩坑历程&#xff0c;先发出来作为记录】 过程&#xff1a; 在你查了很多方法后&#xff0c;如果还是没有解决&#xff0c; 尝试考虑一下你的redis配置文件是不是修…...

网络原理(二)TCP的可靠传输

网络原理&#xff08;一&#xff09;目录 网络原理应用层传输层先说UDP&#xff08;不可靠传输&#xff09;重点说明&#xff34;&#xff23;&#xff30;&#xff08;可靠传输&#xff09;一、确认应答二、超时重传三、链接管理建立连接断开链接 四、滑动窗口五、流量控制&am…...

Chat GPT 使用教学,文字创作、学习

目录 文章长篇文章学习任何东西文章 大纲、目录、标题、内容 写出10个即将被AI取代的工作的文章标题 当然,以下是一些可能会被AI取代的工作的文章标题:"未来十年,AI将如何改变传统制造业的就业格局?" "智能客服崛起:人工智能如何重塑客户服务行业?"…...

Android之 Canvas绘制

一 Canvas介绍 1.1 Canvas 是绘制图形的重要类之一&#xff0c;它可以在 View 或 SurfaceView 上绘制各种图形和文本. 1.2 要创建 Canvas&#xff0c;首先需要有一个 View 或 SurfaceView 对象&#xff0c;在 View 或 SurfaceView 的绘制方法中&#xff0c;可以通过 Canvas 的…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...