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

云计算【第一阶段(14)】Linux的目录和结构

一、Liunx目录结构

1.1、linux目录结构

linux目录结构是树形目录结构
根目录(树根)

  • 所有分区,目录,文件等的位置起点
  • 整个树形目录结构中,使用独立的一个"/",表示

1.2、常见的子目录

必须知道

目录路径目录作用
/root系统管理员root的宿主目录
/home普通用户的宿主目录
/boot系统内核、启动文件存放位置
/dev设备文件存放位置
/etc配置文件存放位置
/bin所有用户可执行的命令存放位置
/sbin管理员可执行的管理命令存放位置
/usr应用程序存放位置
/var日志文件等存放位置

二、查看及检索文件

2.1、查看全部内容

查看文件内容cat命令

但是用这个命令在长文件会看不过来

可以使用more或者是less分页

  • more命令
    全屏方式分页显示文件内容

    交互操作方法
    按Enter键向下逐行滚动
    按空格键向下翻一屏
    按b键向上翻一屏
    按q键退出
  • less命令
    与 more命令相同,但扩展功能更多
    交互操作方法
    page up 向上翻页,page down 向下翻页,上下键盘
    ”/“ 键查+找内容, "n"下一个内容,"N"上一个内容
    其他功能与more命令基本类似。

2.2、查看其中几条内容

查看文件内容head,tail命令 中

  • head命令

head  -n(n为数字) 文件名,用途:查看文件开头的一部分内容 (默认为10行)

  • tail命令

用途:查看文件结尾的少部分内容 (默认为10行)
tail -n 文件名
tail -f 文件名(重要)追踪

实验一

实验二

2.3、统计文件内容

wc 命令用于统计文件内容中包含的行数、单词数、字节数等信息,使用文件名作为参数,可以同时统计多个文件

 2.4、检索和过滤文件内容

grep命令
在文件中查找并显示包含指定字符串的行

grep  [选项]  查找条件  目标文件

常用命令选项
-i:查找时忽略大小写
-v: 反转查找,输出与查找条件不相符的行

在维护 Linux 操作系统的过程中,经常会遇到包含大量内容的配置文件,而其中往往包含了许多空行和以“#”开头的注释文字,当只需要分析其中的有效配置信息时,这些空行和注释文字的存在不利于快速浏览。使用 grep 命令可以过滤掉这些无关信息。例如,以下操作可以显示/etc/yum.conf 文件中以“#”开头的行和空行以外的内容。

grep -v "^#" /etc/yum.conf | grep -v "^$"

^是一个特殊字符,表示一行的开始

为什么在这两个grep表达式中都要加^呢?

  • 对于^#,如果不加^,那么任何包含#的行都会被匹配,而不仅仅是注释行(即那些以#开头的行)。
  • 对于^$,这个表达式用于匹配空行。空行就是那些没有任何字符(包括空格、制表符等)的行。^表示一行的开始,$表示一行的结束,所以^$就匹配那些开始和结束都在同一位置的行,即空行。

三、备份及恢复文档

3.1、压缩命令gzip,bzip2命令

gzip格式的文件通常具有.gz的后缀,gzip通常可以将纯文本内容压缩到原大小的40%左右。

bzip2通常可以将文件压缩到原始大小的10%至15%。虽然其压缩速度相对较慢,但解压速度较快,且压缩率通常高于gzip。

  • 制作压缩文件
  1. gzip     [-9] 文件名。
  2. bzip2   [-9]文件名。
  • 解开压缩文件
  1. gzip   -d    gz格式的压缩文件  或者gunzip
  2. bzip2 -d    bz2格式的压缩文件  或者bunzip2

1-9代表级,别默认是6级别,

使用一级别压缩比例最少但是压缩速度最快 ,九压缩比例最大但是压缩速度最慢。

3.2、xz和zip

xz 是一种高效的压缩工具,它使用LZMA(Lempel-Ziv-Markov chain-Algorithm)算法进行压缩。这种算法通常比传统的gzip压缩算法具有更高的压缩率,但压缩和解压缩速度可能较慢。

用法

  • 制作压缩文件

xz     [要压缩的文件]

zip -r [归档文件名.zip] [要压缩的文件或目录]
 

  • 解开压缩文件
  1.  unxz [要解压缩的文件]   或者 xz -d   [要解压缩的文件]    
  2.  unzip [归档文件名.zip] -d [解压目录] 

3.3、一些区别

  • bzip2:专注于单文件压缩,不提供归档功能(即多个文件打包成一个文件),但是压缩率高,数据恢复方面也有实用性。通常与其他工具(如tar)结合使用,以创建压缩的归档文件。
  • zip:除了文件压缩外,还支持归档功能,可以将多个文件和目录打包成一个单独的.zip文件。这使得zip在需要处理多个文件或目录的压缩场景中更加灵活(但是压缩率不如bzip2)

以下是xz、bzip2、zip和gzip的简要区分表格:

特性xzbzip2zipgzip
压缩率较高中等中等偏低
压缩速度中等较慢较快较快
解压速度较快较快较快较快
算法LZMA/LZMA2Burrows-Wheeler变换 + Huffman编码DEFLATE/LZ77等DEFLATE
多文件支持不支持不支持支持不支持
归档功能需要配合tar等工具需要配合tar等工具内置归档功能需要配合tar等工具
错误修复能力无特别说明有一定能力无特别说明无特别说明
跨平台性
扩展名.xz.bz2.zip.gz
典型应用场景需要高压缩率,如软件分发需要高压缩率,如软件分发、备份归档多个文件,如文档、图片等压缩单个文件,尤其是文本文件

请注意,这个表格是基于一般情况下的观察和比较,具体表现可能会因文件类型、文件大小、硬件性能等因素而有所不同。在选择压缩工具时,最好根据具体需求进行测试和评估。

3.4、实验

打一个文件

压缩后大小,bizp2小一些,说明压缩率高一些

扩展

  1. time: 这是一个shell命令,用于测量另一个命令的执行时间。当你运行 time command 时,shell会先运行 command,然后在命令完成后显示其执行时间。
  2. -c 选项告诉gzip将输出(即压缩后的数据)直接发送到标准输出(stdout),而不是写入文件。
  3. > 1.txt: 这是shell重定向的一个例子。> 符号将前面命令的标准输出(stdout)重定向到一个文件。结合-c,gzip -c ceshisize.txt 的输出(即ceshisize.txt 的压缩版本)被重定向到名为 1.txt的文件中。

3.5、归档命令tar命令

归档文件通常是一个或多个文件和目录的集合,它们被打包成一个单独的文件以便于存储、传输或备份。tar 命令本身不提供压缩功能,但可以与压缩工具(如 gzip、bzip2、xz 等)结合使用以创建压缩归档文件。

  • 制作归档文件

tar 【选项】 归档文件名     源文件或目录
 

  • 释放归档文件

tar   [选项】归档文件名    【c目标目录】

 

tar 命令主要用于对目录和文件进行归档。在实际的备份工作中,通常在归档的同时也会将包文件进行压缩(需要调用前面的 gzip 或 bzip2 命令),以节省磁盘空间。使用 tar 命令时,选项前的“-”号可以省略。常用的几个选项如下所述。

  • -c:创建(Create).tar 格式的包文件。
  • -C:解压时指定释放的目标文件夹。
  • -x:解开.tar 格式的包文件。
  • -p:打包时保留文件及目录的权限。
  • -P:打包时保留文件及目录的绝对路径。
  • -t:列表查看包内的文件,而不提取内容。
  • -v:输出详细信息(Verbose)。
  • -z:调用 gzip 程序进行压缩或解压。
  • -j:调用 bzip2 程序进行压缩或解压。
  • -f:表示使用归档文件,指定使用的归档文件的名称

  常用的组合命令
  czvf      xzvf 
  cjvf      xjvf
  
  czf       xzf
  cjf       xjf

3.5.1、制作归档备份文件

假设我们要创建一个 /etc 和 /opt/文件夹的归档文件,并且还希望使用 gzip 工具将其压缩。可以使用 tar 命令中的 -z 选项来实现。此类归档文件的扩展名是 tar.gz 或 tgz

需要注意的是,在备份恢复目录或文件时,最好先将工作路径切换至目标目录或文件的所在路径,然后在执行备份命令时使用相对路径,以防输入命令时因手误而导致根目录“/” 下重要文件损坏。

czvfp

当然我们还可以排除

--exclude=*.conf
那么tar -jcpvf archive.tar.bz2 /etc/ /opt/   --exclude=*.conf

3.5.2、查看列出压缩归档文件的内容

tvf


3.5.3、从归档文件中恢复数据

-x:解开.tar 格式的包文件。

-C:解压时指定释放的目标文件夹。

tar -xjvf b.tar.gz  -C /kgc

在大部分的备份及恢复工作中,只使用 tar 命令就可以很好地结合 gzip、bzip2 工具协同工作,无须再执行 gzip 或 bzip2 命令。但是要注意这两个压缩工具的命令程序必须存在。
 

相关文章:

云计算【第一阶段(14)】Linux的目录和结构

一、Liunx目录结构 1.1、linux目录结构 linux目录结构是树形目录结构 根目录(树根) 所有分区,目录,文件等的位置起点整个树形目录结构中,使用独立的一个"/",表示 1.2、常见的子目录 必须知道 目录路径目…...

Zynq学习笔记--AXI4-Stream到视频输出IP是如何工作的?

目录 1. 简介 2. 原理详解 2.1 示例工程 2.2 AXI4-Stream to Video Out 3. Master/Slave Timing Mode 3.1 Slave Timing Mode 3.2 Master Timing Mode 4. 总结 1. 简介 本文主要介绍了 AXI4-Stream 到视频输出 的内容。其中,示例工程展示了一个具体的设计&…...

2016-2023 年美国农业部作物序列边界

简介 2016-2023 年美国农业部作物序列边界 作物序列边界(CSB)是与美国农业部经济研究局合作开发的,它提供了美国毗连地区的田间边界、作物种植面积和作物轮作的估计数据。该数据集利用卫星图像和其他公共数据,并且是开放源码的,使用户能够对美国种植的商品进行面积和统计…...

数字人源码部署怎么做?如何高效搭建好用的数字人系统?

作为人工智能时代的风口项目,AI数字人自出现之日起便引发了大量的关注。不少创业者都有了搭建数字人系统的想法,但却苦于没有强大的专业背景和雄厚资金支撑,只能在局外徘徊,而这恰恰为数字人源码公司推出的数字人源码部署服务的火…...

解决虚拟机Ubuntu IP总是掉的问题

问题 嵌入式开发过程中,需要使用NFS/TFTP等等,虚拟机Ubuntu就需要和板卡进行网络连接,但是我发现虚拟机Ubuntu的IP地址经常动不动就掉线,本文记录解决该问题的一些思路。 其实这个问题很简单,我早该想到,…...

[13] CUDA_Opencv联合编译过程

CUDA_Opencv联合编译过程 详细编译过程可见我之前的文章&#xff1a;Win10下OpencvCUDA联合编译详细教程&#xff08;版本455、460、470,亲测可用&#xff01;&#xff01;&#xff01;&#xff09;本文给出Windows\linux下的opencvcuda的编译总结&#xff0c;摘自 <基于GP…...

uni-app canvas创建画布

canvasTmp: function(arr2, store_name, successFn, errFun) {let that this;const ctx uni.createCanvasContext(myCanvas);ctx.clearRect(0, 0, 0, 0);/*** 只能获取合法域名下的图片信息,本地调试无法获取* */uni.getImageInfo({ src: arr2[0],success: function(res) {…...

Spring MVC详解(上)

一、Spring MVC初步认识 1.1介绍 Spring MVC是Spring Framework提供的Web组件&#xff0c;全称是Spring Web MVC,是目前主流的实现MVC设计模式的框架&#xff0c;提供前端路由映射、视图解析等功能 Java Web开发者必须要掌握的技术框架 1.2MVC是什么 MVC是一种软件架构思想…...

【Linux硬盘读取】Windows下读取Linux系统的文件解决方案:Linux Reader4.5 By DiskInternals

前言 相信做机器视觉相关的很多人都会安装 Windows 和 Linux 双系统。在 Linux 下&#xff0c;我们可以很方便的访问Windows的磁盘&#xff0c;反过来却不行。但是这又是必须的。通过亲身体验&#xff0c;向大家推荐这么一个工具&#xff0c;可以让 Windows 方便的访问 Ext 2/3…...

操作系统—页表(实验)

文章目录 页表1.实验目标2.实验过程记录(1).增加打印页表函数(2).独立内核页表(3).简化软件模拟地址翻译 3.实验问题及相应解答问题1问题2问题3问题4 实验小结 页表 1.实验目标 了解xv6内核当中页表的实现原理&#xff0c;修改页表&#xff0c;使内核更方便地进行用户虚拟地址…...

github 本地仓库上传及报错处理

一.本地文件上传 这里为上传部分&#xff0c;关于gitbash安装配置&#xff0c;读者可自行搜索&#xff0c;由于已经安装完成&#xff0c;未进行截图保存&#xff0c;这里便不做赘述。 1.登录git账号并创建一个仓库 点击仓库打开后会看到这个仓库的网址链接&#xff08;这个链…...

【ZZULIOJ】1104: 求因子和(函数专题)

题目描述 输入正整数n&#xff08;2<n<1000&#xff09;&#xff0c;计算并输出n的所有正因子(包括1&#xff0c;不包括自身)之和。要求程序定义一个FacSum ()函数和一个main()函数&#xff0c;FacSum ()函数计算并返回n的所有正因子之和&#xff0c;其余功能在main()函…...

轨迹优化 | 图解欧氏距离场与梯度场算法(附ROS C++/Python实现)

目录 0 专栏介绍1 什么是距离场&#xff1f;2 欧氏距离场计算原理3 双线性插值与欧式梯度场4 仿真实现4.1 ROS C实现4.2 Python实现 0 专栏介绍 &#x1f525;课程设计、毕业设计、创新竞赛、学术研究必备&#xff01;本专栏涉及更高阶的运动规划算法实战&#xff1a;曲线生成…...

【二维差分】2132. 用邮票贴满网格图

本文涉及知识点 二维差分 LeetCode2132. 用邮票贴满网格图 给你一个 m x n 的二进制矩阵 grid &#xff0c;每个格子要么为 0 &#xff08;空&#xff09;要么为 1 &#xff08;被占据&#xff09;。 给你邮票的尺寸为 stampHeight x stampWidth 。我们想将邮票贴进二进制矩…...

【前端项目笔记】2 主页布局

主页布局 element-ui提供的组件名称就是它的类名 ☆☆ CSS选择器&#xff1a; &#xff08;1&#xff09;基本选择器 类型选择器 p/span/div…… 类选择器 (.classname) ID选择器 (#idname) 通配选择器 ( * ) &#xff08;2&#xff09;属性选择器 选择具有特定属性或属性值的…...

t265 jetpack 6 px4 ros2

Ubuntu22.04 realsenseSDK2和ROS2Wrapper安装方法,包含T265版本踩坑问题_ros2 realsense-CSDN博客 210 git clone https://github.com/IntelRealSense/librealsense.git 212 git branch 215 git tag 218 git checkout v2.51.1 219 git branch 265 git clone https://…...

vue 应用测试(一) --- 介绍

vue 应用测试&#xff08;一&#xff09; ---介绍 前端测试简介组件测试Jest 测试框架简介其他测试框架 第一个测试避免误报如何组织测试代码 组件挂载Vue2 组件挂载的方式Vue3 的挂载方式vue-test-utils挂载选项 如何调试测试用例参考小结 前端测试简介 软件测试&#xff1a;…...

Perl 语言入门学习

一、介绍 Perl 是一种高级的、动态的、解释型的通用编程语言&#xff0c;由Larry Wall于1987年开发。它是一种非常灵活和强大的语言&#xff0c;广泛用于文本处理、系统管理、网络编程、图形编程等领域。 Perl 语言的设计理念是“用一种简单的语法&#xff0c;去解决复杂的编…...

HarmongOS打包[保姆级]

创建应用 首先进入 华为开发者联盟-HarmonyOS开发者官网 然后进行登录。 登录成功后&#xff0c;鼠标悬停在在登录右上角那个位置后再点击管理中心&#xff0c;进入下面这个界面。 再点击&#xff1a;应用服务–>应用发布–>新建–>完善信息 构建和生成私钥和证书请求…...

SpringBoot怎么实现自定义接口全局异常捕获?详细教程

自定义异常 package com.single.bean;import org.springframework.core.NestedRuntimeException;public class FDWException extends NestedRuntimeException {private static final long serialVersionUID = 6046035491210083235L;public FDWException(String msg) {super(msg…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

Qt 事件处理中 return 的深入解析

Qt 事件处理中 return 的深入解析 在 Qt 事件处理中&#xff0c;return 语句的使用是另一个关键概念&#xff0c;它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别&#xff1a;不同层级的事件处理 方…...