【Linux技术专题】「夯实基本功系列」带你一同学习和实践操作Linux服务器必学的Shell指令(文件处理指令-上)

文件处理指令-上

  • 背景前言
  • 专栏介绍
  • 面向对象
  • 重点内容
    • 文件处理命令
      • file
        • 格式
          • [options] 主要参数
          • 简单说明
          • 使用案例
      • mkdir
        • 格式
          • [options] 主要参数
          • 应用实例
      • grep
        • 格式
        • 主要参数
          • [optionsl 主要参数
        • 应用实例
          • pattern正则表达式主要参数
        • 应用实例
          • fgrep和egrep
      • dd
        • 格式
          • [options]主要参数
      • 应用实例
      • find
        • 格式
        • 主要参数
          • [options]参数
          • [expression]是匹配表达式
          • 应用技巧
          • 根据文件名查找
          • 快速查找文件
          • 根据部分文件名查找方法
          • 使用混台查找方式查找文件
  • 总结
  • 未完待续

背景前言

在当今的数字化时代,Linux已成为服务器、云计算、物联网等众多领域的核心操作系统。对于技术从业者、开发者以及系统管理员来说,掌握Linux指令不仅是一项基本技能,更是打开专业领域大门的关键。

学习Linux指令的必要性:

  • 行业标准与需求: 在IT行业,Linux技能已被广泛认可为必备能力。无论是求职还是项目实施,具备Linux知识都是一项重要的竞争优势。
  • 高效操作与维护: 通过掌握Linux指令,用户可以更快速、高效地完成日常的系统管理、配置更改、故障排除等任务,提高工作效率。
  • 系统安全性: 了解Linux指令有助于增强对系统安全的理解,从而更好地配置安全策略、防范潜在威胁和维护系统安全。
  • 自动化与脚本编写: Linux指令为自动化工作流提供了强大支持,通过脚本编写,可以实现任务的批量化、自动化执行,减少重复劳动。

专栏介绍

在这个专栏《【Linux技术专题】「夯实基本功系列」XXXXX》中,我们将一同深入Linux指令的海洋,无论您是初次涉足还是已熟悉操作,都能从中获得宝贵的经验和知识。这里汇集了详尽的教程、实用的指南和高级技巧,旨在助您深化对Linux指令的理解并掌握其运用。

面向对象

以下是建议学习Linux指令面向的人群和对象:

  1. 运维人员OM:系统管理员是直接负责维护Linux系统正常运行的专业人员。他们需要熟练掌握各种Linux指令,以完成日常的系统管理、配置更改、故障排除等任务。
  2. 后端开发者:Java、Python以及其他的后端语言开发人员,Linux是后端服务器的主要操作系统,开发的应用程序,都需要在Linux服务器上部署和运行。掌握Linux指令可以帮助开发人员更好地管理服务器,配置环境,以及解决部署和运行过程中可能遇到的问题。
  3. DBA/数据库开发人员:数据库管理员使用Linux作为数据库服务器的操作系统。他们需要了解如何安装、配置和管理关系型数据库管理系统(如MySQL、PostgreSQL)以及其他相关的数据库软件。
  4. 云计算工程师:云计算工程师使用Linux来构建和管理云计算平台。他们需要了解如何部署和管理虚拟化技术、容器化工具(如Docker)以及云原生技术等。
  5. 其他相关人员:对于计算机科学和相关专业的学生,学习Linux指令是课程学习的必备内容。对于Linux感兴趣的爱好者,通过自学和实践,可以深入了解Linux操作系统的工作原理和实现方式。

重点内容

本章节我们主要去学习和研究实践Linux操作系统中的【文件处理命令】,主要面向于操作文件以及处理查询文件内容等常用的指令,如果没有涵盖的指令,还希望您可以多多给我留言和评论,后面我会继续完善和补充,谢谢。

文件处理命令

Linux系统的信息都储存在文件中,这些文件与常见的办公文件颇为相似。每个文件都有自己的标识,如名字、内容、存放位置,以及一些管理信息,例如文件的拥有者、大小等。这些文件可以是信件、通讯录,或者是程序的源代码、数据,甚至是可执行的程序或非文本内容。

Linux的文件系统组织严密,为文件处理提供了大量的工具。本文主要探讨了一些常用的文件处理命令。

file

通过对文件内容的探测,file功能能够准确地识别出文件类型。而为了让所有用户都能享受到这个功能带来的便利,特此赋予了所有用户的使用权限。

格式
file [options] 文件名
[options] 主要参数
  • -V:在标准输出后显示版本信息,并且退出。
  • -z:探测压缩过的文件类型。
  • -L:允许符合连接。
  • -f name:从文件namefile中读取要分析的文件名列表。
简单说明

通过使用file命令,我们可以轻松识别出特定文件的类型。无论是ELF格式的二进制可执行文件、Shell脚本文件,还是其他任何格式,file命令都能准确地给出答案。它还能识别目录、英文文本、C语言源文件、文本文件以及DOS的可执行文件等。

使用案例

如果我们看到一个文件handle.sh,可以使用下面命令:

$ file  handle.sh 
handle.sh: Bourne-Again shell script, ASCII text executable

在系统显示这是一个英文文本文件的同时,我们也必须明确一点:file命令在探测多媒体文件类型,如图形、音频和视频等时,是存在局限性的。

mkdir

mkdir命令的功能是创建名为dirname的子目录,与MS DOS中的md命令相似。为了让所有用户都能方便地使用这个命令,我们赋予了它对所有用户的开放权限。

格式
mkdir [options] 目录名
[options] 主要参数
  • -m--mode=模式:设定权限<模式>,与chmod类似。
  • -p--parents:需要时创建上层目录,如果目录早已存在,则不当作错误。
  • -v--verbose:每次创建新目录都显示信息。
  • --version:显示版本信息后离开。
应用实例

在创建目录并设置权限时,可以使用“-m”参数。例如,要创建一个名为“tsk”的目录,并为所有用户赋予读、写和执行权限,您可以使用以下命令:

@$mkdir -m 777 tsk

grep

grep命令允许您在文件中搜索特定内容,并将包含这些内容的行显示在标准输出中。全称为Global Regular Expression Print的grep命令,它被赋予了对所有用户的开放权限。

格式
grep  [options] <pattern> <files>
主要参数
[optionsl 主要参数
  • -C:仅显示匹配行的总数。
  • -I:忽略大小写匹配(仅限单个字符)。
  • -h:在检索多个文件时,不显示文件名。
  • -l:在查询多文件时,仅输出那些包含匹配字符串的文件名。
  • -n:显示每个匹配行及其对应的行号。
  • -s:不显示关于不存在文件或者没有找到匹配文本的错误信息。
  • -v:输出不含匹配文本的所有行。
应用实例
$ grep -C 20 ps  handle.sh 
#!/bin/bash
pids=$(ps -ef | awk '{print $2}')
for pid in $pids
doecho "PID: $pid"lsof -p $pid | wc -l
done
pattern正则表达式主要参数

正则表达式是Linux/Unix系统中一个强大的工具,用于定义能够匹配一系列符合特定规则字符串的模式。正则表达式提供了一种更为灵活和强大的方式来描述和识别字符串模式。当一个字符串的结构符合某个正则表达式定义的模式时,我们称之为与该正则表达式“匹配”。

  • \:忽略正则表达式中特殊字符的原有含义。
  • ^:匹配正则表达式的开始行。
  • $:匹配正则表达式的结束行。
  • <:从匹配正则表达式的行开始。
  • >:到匹配正则表达式的行结束。
  • []:单个字符,如[A]即A符合要求。
  • [-]:范围,如[A-Z],即A、B、C一直到Z都符合要求。

在Linux系统中,正则表达式广泛应用于文本搜索、执行复杂的搜索替换操作,以及执行各种文本处理任务。通过掌握正则表达式,用户可以有效地管理和处理文本数据,提高工作效率。

应用实例

查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量P地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn.:,

要抽取其中所有nnn.nnn IP地址,使用[0-9]{3}\.[0-9]{3}\.含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。

这将匹配以三位数字开头,接着是一个点,然后是一到三位数字,再接着是一个点的字符串。如果您想要确保这是开始或结束的一部分,可以在两边添加边界匹配符 ^$

fgrep和egrep

grep家族中不仅包括标准的grep工具,还有fgrep和egrep这两种变体。

  • fgrep,也称为fixed grep,主要用于查找固定字符串,而不是使用模式匹配。这使得fgrep在执行字符串精确匹配时更为高效。

  • egrep,即扩展grep,支持基本和扩展的正则表达式。它提供了更丰富的模式匹配功能,但不支持某些特定的模式范围应用,例如“q模式”。这些变体使得grep工具在不同的搜索场景中更加灵活和强大。

dd

dd命令用来复制文件,并根据参数将数据转换和格式化。

格式
dd [options]
[options]主要参数

当然可以。以下是润色和优化后的内容:

  • count=块数目:仅复制指定数量(<块数目>)的数据块。
  • bs=字节:设置每次读取操作的数据大小为指定的字节数(<字节>)。
  • if=文件:从指定的文件(<文件>)读取数据,而不是从标准输入。
  • obs=字节:设置每次写入操作的数据大小为指定的字节数(<字节>)。
  • of=文件:将数据写入指定的文件(<文件>),而不是输出到标准输出。
  • seek=块数目:在写入之前,跳过指定数量(<块数目>)的数据块,以obs为单位。
  • skip=块数目:在读取之前,跳过指定数量(<块数目>)的数据块,以ibs为单位。

应用实例

dd命令是在Linux中常用于创建启动盘的一个强大工具。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘:

rdev vmlinuz /dev/hda
$dd if vmlinuz of =/dev/fdo

上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。

find

fnd命令的作用是在目录中搜索文件,它的使用权限是所有用户。

格式
find [path] [options] [expression]

path 参数用于指定开始搜索文件的起始目录路径。系统将从这个路径开始,沿着目录结构向下逐层查找匹配的文件。该参数接受一个由空格分隔的目录路径列表。若省略 path 参数,则搜索默认从当前工作目录开始。

主要参数
[options]参数
  • depth: 采用深度优先的方式进行搜索,在达到指定深度级别的目录中优先搜索文件。
  • maxdepth levels: 限制搜索深度至起始目录下的第 levels 层子目录。levels 是一个非负整数。当 levels 设置为 0 时,仅在当前目录进行搜索。
  • mindepth levels: 设置搜索的最小深度,意味着搜索操作会忽略起始目录下至第 levels 层子目录之前的所有层级。
  • mount: 指示搜索时跳过挂载的其他文件系统(例如 MsdosVfat 等)中的目录和文件。
  • version: 输出当前使用的软件版本信息。
[expression]是匹配表达式

[expression] 为匹配表达式,作为 find 命令所接受的参数,对其进行操作。find 命令提供了众多选项和参数,以下仅列举了几个常用的参数以供参考:

  • name: 支持使用通配符 * 和问号 ? 进行文件名匹配。
  • atime n: 查找在过去 n 天内被访问过的文件。
  • ctime n: 查找在过去 n 天内内容被修改过的文件。
  • group groupname: 查找文件组属性为 groupname 的所有文件。
应用技巧
根据文件名查找

例如,我们想要查找一个文件名是a.conf的文件,可以使用如下命令:

find / -name a.conf

find命令后的“/”表示搜索整个硬盘。

快速查找文件

在根据文件名进行查找时,尤其是在大型Linux文件系统或高容量硬盘中,文件若位于深层次的子目录中,搜索过程可能会耗费大量时间。如果我们已经知道目标文件位于某个特定目录下,那么将搜索范围限制在该目录及其子目录中,可以显著提高查找效率并节省时间。

当搜索特定类型的文件如配置文件时,可以根据文件后缀名来缩小搜索范围,节省大量时间。例如,对于以“.conf”结尾的文件,如smb.conf,我们可以推断它是一个配置文件,通常这类文件会位于/etc目录下。因此,在这种情况下,我们可以使用以下命令进行高效搜索:

find  /etc -name smb.conf
根据部分文件名查找方法

在我们已知某个文件包含特定字符序列“abvd”时,为了定位系统中所有含有这一字符序列的文件,我们可以执行以下命令进行精确搜索:

find / -name '*abvd*'

执行此命令后,Linux系统将从根目录/开始,扫描所有文件名中包含"abvd"这四个连续字符的文件。在这里,“ * “ 作为通配符,允许在"abvd"前后存在任意字符。因此,不仅仅是精确匹配"abvd"的文件名,像"abvdrmyz"这样的文件名,只要符合包含"abvd"这一条件的文件都将被检索并显示出来。

使用混台查找方式查找文件

若需在/etc目录中寻找那些文件大小超过500000字节且在过去24小时内有过修改的文件,我们可以使用find命令的逻辑“与”操作来结合两个搜索条件,构造一个复合查询。这样的查询会同时满足这两个条件,筛选出符合所有指定属性的文件。

find /etc -size +500000c -and -mtime +1

总结

总之,学习Linux指令对于在技术领域工作或对技术感兴趣的人群来说都是非常有价值的。无论您是专业人士还是爱好者,通过学习和实践,您都可以获得更深入的理解和技术能力。

未完待续

等待下一篇对于剩下的指令的介绍和说明:

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

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

相关文章

linux 网络设置

查看linux基础的网络配置 命令 网关route -nip 地址ifconfig / ip aDNS 服务器cat /etc/resolv.conf主机名hostname路由route -n网络连接状态ss / netstat 一&#xff0c;ifconfig 查看网络接口信息 &#xff08;一&#xff09;ifconfig …

设计模式—— 单例设计模式

单例设计模式 什么是单例模式 单例模式是一种对象创建型模式&#xff0c;使用单例模式&#xff0c;可以保证为一个类只生成唯一的实例对象。也就是说&#xff0c;在整个程序空间中&#xff0c;该类只存在一个实例对象。 为什么使用单例模式 在应用系统开发中&#xff0c;我…

【MIdjourney】镜头效果关键词

1.景深(depth of field) 景深&#xff08;DOF&#xff09;&#xff0c;是指在摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围。镜头光圈、镜头距离、及焦平面到拍摄物的距离是影响景深的重要因素。 在MIdjourney中&#xff0c;该关键字会使得…

数字化时代,CDMP/CDGA认证企业个人都需要

&#x1f3af;数字化时代&#xff0c;CDMP(数据管理专业人士)和CDGA(数据治理工程师)认证对于企业和个人来说都是非常重要的。 &#x1f4d2;对于企业而言&#xff1a; ✅为企业赋能 数字化培训是企业在数字化转型中的重要考核标准之一。国资委、工信部、银保监会等都有明确的要…

Python之jieba分词相关介绍

1.jieba分词的安装 直接在cmd窗口当中pip install即可 2.jieba分词的介绍 jieba分词是目前比较好的中文分词组件之一&#xff0c;jieba分词支持三种模式的分词(精确模式、全模式、搜索引擎模式)&#xff0c;并且支持自定义词典(这一点在特定的领域很重要&#xff0c;有时候…

SpringBoot使用MockMVC单元测试Controller

对模块进行集成测试时&#xff0c;希望能够通过输入URL对Controller进行测试&#xff0c;如果通过启动服务器&#xff0c;建立http client进行测试&#xff0c;这样会使得测试变得很麻烦&#xff0c;比如启动速度慢&#xff0c;测试验证不方便&#xff0c;依赖网络环境等&#…

GitHub项目推荐-incubator

项目地址 Github地址&#xff1a;GitHub - apache/incubator-anser 官网&#xff1a;Apache Answer | Free Open-source Q&A Platform 项目简述 这是Apache的一个开源在线论坛&#xff0c;也可以部署成为一个自有的QA知识库。项目主要使用了Go和Typescript来开发&#…

【MATLAB源码-第109期】基于matlab的哈里斯鹰优化算发(HHO)机器人栅格路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 哈里斯鹰优化算法&#xff08;Harris Hawk Optimization, HHO&#xff09;是一种受自然界捕食行为启发的优化算法。它基于哈里斯鹰的捕猎策略和行为模式&#xff0c;主要用于解决各种复杂的优化问题。这个算法的核心特征在于…

层叠布局(Stack)

目录 1、概述 2、开发布局 3、对齐方式 3.1、TopStart 3.2、Top 3.3、TopEnd 3.4、Start 3.5、Center 3.6、End 3.7、BottomStart 3.8、Bottom 3.9、BottomEnd 4、Z序控制 5、场景示例 1、概述 层叠布局&#xff08;StackLayout&#xff09;用于在屏幕上预留一…

31 树的存储结构二

DIsplay() 递归显示 :图示 求树的高度时&#xff0c;递归的技巧 在递归的过程中&#xff1a;ret单独和任意一个子树的子高度比较&#xff0c;如果ret<max&#xff0c;retmax ------------- 注意&#xff1a;组织链表和子链表的【元素类型】都是TLNode* 链表都要先通过TLNod…

Validation--自定义校验

前言&#xff1a; 今天学到这个&#xff0c;闲着也是闲着&#xff0c;就写一个记录一下&#xff0c;也算是总结 我们的步骤是这样的 1.自定义注解State 2.自定义校验数据的类StateValidation实现ConstrainValidator接口 3.在需要校验的地方使用自定义注解 1.自定义注解 这…

C语言如何提高程序的可读性?

一、问题 可读性是评价程序质量的一个重要标准&#xff0c;直接影响到程序的修改和后期维护&#xff0c;那么如何提高程序的可读性呢? 二、解答 提高程序可读性可以从以下几方面来进行。 &#xff08;1&#xff09;C程序整体由函数构成的。 程序中&#xff0c;main()就是其中…

Mysql事务隔离级别是怎么实现的?

Mysql事务 事务概念事务特性事务并发事务隔离级别MVCC多版本并发控制 事务概念 小钢同学今天发工资了&#xff0c;赶紧打开招商银行app看看工资到账了没有&#xff0c;查看余额300 嗯&#xff0c;今天心情好&#xff0c;给对象转账50大元买lv包包去&#xff0c;最后的结果肯定…

Vmware虚拟机问题解决方案 运行虚拟机系统蓝屏 运行虚拟机时报错VT-x

1. 运行虚拟机系统蓝屏 可能的原因有两个: 1). 虚拟机所在磁盘的空间不足 ; -------> 清理磁盘空间 。 2). 操作系统版本高, 需要适配新版本的Vmware ; ------> 卸载Vmware15版本, 安装Vmware16版本 。 2. 卸载Vmware步骤 1). 卸载已经安装的VMware 弹出确认框, 点击…

【LabVIEW FPGA入门】LabVIEW FPGA 实现SPI通信协议

该实现由两个组件组成&#xff1a;在 LabVIEW FPGA 中实现的 SPI 协议以及用于从主机 PC 或实时控制器与 FPGA 进行通信的 LabVIEW 主机接口。该架构允许从单个主机程序控制多个 SPI 端口&#xff0c;同时仍然允许定制 FPGA VI 以进行其他数据采集和处理。该实现不使用任何DMA&…

【期末不挂科-C++考前速过系列P4】大二C++实验作业-继承和派生(3道代码题)【解析,注释】

前言 大家好吖&#xff0c;欢迎来到 YY 滴C考前速过系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的《…

解密威胁:.kat6.l6st6r 勒索病毒的威胁与恢复

导言&#xff1a; 在当今数字化时代&#xff0c;勒索病毒已经成为网络安全威胁中的一大巨头。其中&#xff0c;.kat6.l6st6r 勒索病毒以其狡猾的传播方式和高级的加密算法备受关注。本文将深入介绍.kat6.l6st6r 勒索病毒的特点、应对措施以及如何预防此类威胁。如果您在面对被…

流量预测中文文献阅读(郭郭专用)

目录 基于流量预测的超密集网络资源分配策略研究_2023_高雪亮_内蒙古大学&#xff08;1&#xff09;内容总结&#xff08;2&#xff09;流量预测部分1、数据集2、结果对其中的一个网格的CDR进行预测RMSE和R2近邻数据和周期数据对RMSE的影响 &#xff08;3&#xff09;基于流量预…

ElasticSearch概述+SpringBoot 集成 ES

ES概述 开源的、高扩展的、分布式全文检索引擎【站内搜索】 解决问题 1.搜索词是一个整体时&#xff0c;不能拆分&#xff08;mysql整体连续&#xff09; 2.效率会低&#xff0c;不会用到索引&#xff08;mysql索引失效&#xff09; 解决方式 进行数据的存储&#xff08;只存储…

无缝打通易快报与电子签章系统,合同管理也能如此简单!

客户介绍&#xff1a; 某股份有限公司是一家专注于高端装备制造和智能制造解决方案的高新技术企业。该公司的产品和服务广泛应用于汽车、航空、高铁、智能家居、电子电器、新能源等领域&#xff0c;为全球客户提供了高效、精准、可靠的制造解决方案。 添加图片注释&#xff0c…