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

news2024/9/23 11:22:57

文件处理指令-上

  • 背景前言
  • 专栏介绍
  • 面向对象
  • 重点内容
    • 文件处理命令
      • 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
do
    echo "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.coloradmin.cn/o/1380966.html

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

相关文章

5 微信小程序

功能开发 5 功能开发概要今日详细1.发布1.1 发布流程的问题1.2 组件&#xff1a;进度条1.3 修改data中的局部数据1.4 发布示例效果前端后端 1.5 闭包 2.获取前10条新闻&#xff08;动态/心情&#xff0c;无需分页&#xff09;3.复杂版4.文章详细页面 各位小伙伴想要博客相关资料…

函数式编程 - 组合compose的使用方法

函数式编程中有一个比较重要的概念就是函数组合&#xff08;compose&#xff09;,组合多个函数&#xff0c;同时返回一个新的函数。调用时&#xff0c;组合函数按顺序从右向左执行。右边函数调用后&#xff0c;返回的结果&#xff0c;作为左边函数的参数传入&#xff0c;严格保…

【高等数学之不定积分】

一、什么是不定积分? 我们可以简单地从英文层面来基础剖析一下&#xff0c;什么是不定积分? 1.1、基本概念 小tips: 二、不定积分运算法则 三、常用积分公式 四、第一类换元积分法 4.1、定义 4.2、常用凑微分公式 4.3、小calculate 五、第二类换元积分法 5.1、定义 …

【已解决】C语言实现多线程的同步与异步

说真的写了这篇博文时&#xff0c;才知道c语言本身不支持多线程&#xff0c;而是一些windowsapi让c语言拥有多线程的能力&#xff0c;那下面内容就以打开对话框为例&#xff0c;展现如何实现多线程的同步与异步。 文章目录 问题起源c语言多线程同步方案c语言多线程异步方案总结…

JOSEF约瑟端子排中间继电器 DZY-204 DC110V 导轨安装,板前接线

DZY系列端子排中间继电器 系列型号&#xff1a; DZY-101端子排中间继电器 DZY-104端子排中间继电器 DZY-105端子排中间继电器 DZY-301端子排中间继电器 DZY-106端子排中间继电器 DZY-401端子排中间继电器 DZY-204端子排中间继电器 一、 概述 DZY-204端子排中间继电器用于各种…

【金猿CIO展】步长制药信息化管理与建设中心总经理束炼:IT部门既要懂技术,也要懂业务...

‍ 束炼 本文由步长制药信息化管理与建设中心总经理束炼撰写并投递参与“数据猿年度金猿策划活动——2023大数据产业年度优秀CIO榜单及奖项”评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着数字化转型的浪潮席卷各行各业&#xff0c;中国数字经济已进入快速发展阶…

杨中科 .NETCORE 异步编程

一、 为什么需要异步编程 异步点餐的优点&#xff1a;能同时服务多个客人 异步点餐一定会提升单个客户点餐速度吗&#xff1f; 答案理所当然&#xff1a;不能 图片美化服务例子服务器能够同时服务的请求数量有限 void BeautifyPic (File photo, Response response) {byte[] …

Android中集成FFmpeg及NDK基础知识

前言 在日常App开发中,难免有些功能是需要借助NDK来完成的,比如现在常见的音视频处理等,今天就以ffmpeg入手,来学习下Android NDK开发的套路. JNI和NDK 很多人并不清除JNI和NDK的概念,经常搞混这两样东西,先来看看它们各自的定义吧. JNI和NDK 很多人并不清除JNI和NDK的概念…

智能路由器 端口映射 (UPnP) Padavan内网端口映射配置方法

新版本Padavan 4.4内核的端口映射配置和老版本的不太一样,因为新版本默认是启用的 UPnP端口映射, 同时默认使用的是 IGD UPnP自动端口映射, UPnP名词解释: UPnP通用即插即用&#xff0c;是一组协议的统称&#xff0c;是一种基于TCP/IP、UDP和HTTP的分布式、开放体系&#xff…

CSS3动画效果详解

CSS3动画 在CSS3中&#xff0c;animation属性用于实现元素的动画。 animation属性跟transition属性在功能实现上是非常相似的&#xff0c;都是通过改变元素的属性值来实现动画效果。但是&#xff0c;这两者实际上有着本质的区别 对于transition属性来说&#xff0c;它只能将…

Spring创建的单例对象,存在线程安全问题吗?

这个问题涉及到Spring框架中的Bean的作用域、单例模式的线程安全性以及如何判断和处理线程安全问题。让我们一步步深入探讨这些概念。 Spring Bean的作用域 Spring提供了几种不同的Bean作用域&#xff0c;包括&#xff1a; 1、 Singleton&#xff08;单例&#xff09;&#x…

linux软件安装(yum命令)

1.Linux系统的应用商店 操作系统安装软件有许多种方式&#xff0c;一般分为&#xff1a; 下载安装包自行安装 如win系统使用exe文件、msi文件等如mac系统使用dmg文件、pkg文件等 系统的应用商店内安装 如win系统有Microsoft Store商店如mac系统有AppStore商店 Linux命令行…

阳光保险选择OceanBase稳定运行超700天

阳光保险集团成立于 2005 年 7 月&#xff0c;旗下拥有财产保险、人寿保险、信用保证保险、资产管理等多家专业子公司&#xff0c;是全球市场化企业中成长最快的集团公司之一&#xff0c;目前位列中国保险行业前八。随着数字化升级趋势的不断加速&#xff0c;很多企业产生将软硬…

并发编程之ReentrantReadWriteLock详解

目录 ReentrantReadWriteLock介绍 线程进入读锁的前提条件 线程进入写锁的前提条件 ReentrantReadWriteLock三个重要的特性 ReentrantReadWriteLock类 ReentrantReadWriteLock使用读写锁 锁降级 注意事项 ReentrantReadWriteLock结构 ReentrantReadWriteLock读写状态设…

Github上传代码/删除仓库/新建分支的操作流程记录

首先先安装git&#xff0c;安装完git后&#xff0c;看如下操作指令&#xff1a; 输入自己的用户名和邮箱&#xff08;为注册GITHUB账号时的用户名和邮箱&#xff09;&#xff1a; git config --global user.name "HJX-exoskeleton" git config --global user.email …

Kafka基本介绍

消息队列 产生背景 消息队列&#xff1a;指的数据在一个容器中&#xff0c;从容器中一端传递到另一端的过程 消息(message): 指的是数据&#xff0c;只不过这个数据存在一定流动状态 队列(queue): 指的容器&#xff0c;可以存储数据&#xff0c;只不过这个容器具备FIFO(先进…

Mysql事务的处理

1、事务&#xff0c;就是一组命令的操作。 不过这一组命令&#xff0c;我们有时候需要使用手动提交&#xff1b; 1、使用这组命令可以查询出来现在的提交方式&#xff1a;自动提交&#xff08;就是命令输入&#xff0c;点击enter后&#xff0c;会不会直接对表格产生修改&#x…

x-cmd pkg | csview - 美观且高性能的 csv 数据查看工具

目录 介绍首次用户功能特点类似工具与竞品进一步阅读 介绍 csview 是一个用于在命令行中查看 CSV 文件的工具&#xff0c;采用 Rust 语言编写的&#xff0c;支持中日韩/表情符号。它允许用户在终端中以表格形式查看 CSV 数据&#xff0c;可以对数据进行排序、过滤、搜索等操作…

关于html导出word总结一

总结 测试结果不理想&#xff0c;html-to-docx 和 html-docx-js 最终导出的结果 都 差强人意&#xff0c;效果可以见末尾的附图 环境 "electron": "24.3.0" 依赖库 html-docx-js html-docx-js - npm html-to-docx html-to-docx - npm file-saver…

Linux技术,winSCP连接服务器超时故障解决方案

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 故障现象 使用 sftp 协议连接主机时, 明显感觉缓慢且卡顿,并且时常出现如下报错: 点击重新连接后,又有概率重新连接上; 总之在"连接上"和&…