linux:文件的创建/删除/复制/移动/查看/查找/权限/类型/压缩/打包,文本处理sed,awk

news2025/4/10 14:48:06

关于文件的关键词

创建 touch

删除 rm

复制 cp

权限 chmod

移动 mv

查看内容 cat(全部); head(前10行); tail(末尾10行); more,less,grep

查找  find

压缩  gzip ;  bzip

打包 tar 

编辑 sed

文本处理 awk

创建文件

格式: touch 文件名

删除文件

复制文件

移动文件

查看文件内容

cat
head
tail
tail -f   监视文件的增长,当文件更新时,显示新的行
用途
1.监视日志文件(系统管理员常用)
2.查看程序的输出
运行一个程序时,想要实时查看其输出,可以将程序的输出重定向到一个文件,然后使用 tail -f 来监视这个文件
your_program > output.log
tail -f output.log

3.多文件监视

在命令后列出所有文件的名称

格式:    tail -f file1.log file2.log

退出监视  Ctrl+C

使用: 

tail -f 和tail的其他参数一起使用

tail -n 10 -f file.log

tail -f 经常与 grep 命令结合使用,以便在实时输出中过滤特定的信息

tail -f 文件路径 | grep 'error'

命令解释:

  • | 管道符将 tail 命令的输出(即新的行)传递给 grep 'error' 命令。
  • grep 'error' 命令会搜索包含字符串 'error' 的行
tail -f 和 top的区别
  • top 命令主要用于性能监控,而 tail -f 命令主要用于日志文件和输出监控。
  • top 命令显示的信息是动态更新的,而 tail -f 命令显示的是文件内容的实时追加。
more
less
grep

是 "global search regular expression and print" 的缩写,意味着它将搜索整个文件以找到符合正则表达式的文本行,并打印出来

参数 -s --no-messages :用于禁止 grep 显示警告信息或错误信息

当你使用  -s 选项时,如果  grep 没有找到任何匹配项,它不会显示任何消息,但仍然会返回一个非零的退出状态码,这可以用于脚本编写
参数 -o  :仅输出与搜索模式匹配的部分,而不是整行内容
grep和正则表达式结合

查找文件 find

基本用法
find [目录] [条件]
find /var -name *.txt           查找 /var 目录下所有的 .txt 文件

按文件名查找
-name 选项可以根据文件名模式查找文件。模式可以使用通配符(如 * 和 ?)

按照文件类型查找

find . -type d   

按照大小查找

+表示大于,-表示小于,后跟数字和单位

find . -size +10M

按权限查找 
-perm 选项可以根据文件权限查找文件。权限可以指定为八进制数或符号模式。

find . -perm 755

按所有者查找:

使用 -user 选项可以根据文件所有者查找文件

find . -user username

按修改时间查找
-mtime 选项可以根据文件的最后修改时间查找文件。时间可以指定为 -n(n天前)或 +n(n天前)。

find . -mtime -7

按访问时间查找:-atime 选项可以根据文件的最后访问时间查找文件

按状态改变时间查找:-ctime 选项可以根据文件状态的最后改变时间查找文件

组合条件:-a(AND)或 -o(OR)来组合多个条件。

使用正则表达式:-regex 选项可以使用正则表达式来匹配文件名。

 文件权限的设置和修改

ugo: u代表user,即用户/所有者;  g 代表group ,小组成员;  o 代表Others,其他用户

示例(如下图)

chmod 用于更改文件或目录的权限

截图里面:

7=4+2+1,即所有权限,5=4+1,即拥有读和执行的权限,
-rwxr-xr-x : 用户权限rwx; 组内成员的权限:r-x ;其他成员权限: r-x

(权限的位置3,顺序是rwx,缺失的权限用- 占位)

文件类型

截图中helloworld.sh 文件的权限前面有一个 -,表示它是一个普通文件。而 test 文件夹的权限前面有一个 d,表示它是一个目录。

 文件和目录的颜色

文件和目录的颜色通常由终端的配色方案决定,可以通过修改终端的配置文件(如 .bashrc 文件或终端特定的配置文件)来自定义

文件后缀

也称为文件扩展名,用于标识文件的类型或内容

更改文件或目录的所有者和组

压缩文件

减少文件大小,以节省存储空间或加快传输速度。压缩可以应用于单个文件或打包文件

解压当前目录下的文件:   gzip -d *.gz 

解压指定名称的文件:      gzip -d filename.gz

(-d 选项代表 "decompress",即解压缩)

如果文件小于几十MB,一般没有必要压缩,如果文件太小,很可能出现压缩后的文件比压缩之前还大.

bzip2在压缩比率上优于gzip,但可能需要更长的压缩时间。

(压缩比率 = 原内容大小 / 压缩后大小)

打包文件

将多个文件和目录组织到一个归档文件中,以便于存储或传输。

打包并不一定会减少文件的大小,它主要是为了方便文件的管理,移动,备份。

tar打包时,参数v可以省略,省略后执行命令时不显示过程

解包的 *.tar 表示当前目录下所有以 .tar 结尾的文件,*是占位符

解包指定文件名的文件 :   tar -xvf filename.tar

参数 可以省略,v代表单词verbose

*.tar.gz 表示当前目录下所有以 .tar.gz 结尾的文件

指定解包并解压缩的文件: tar -zxvf filename.tar.gz

*.tar.gz 表示当前目录下所有以 .tar.gz 结尾的文件

指定解包并解压缩的文件: tar -jxvf filename.tar.gz

压缩/打包后的原文件

压缩

参数 k 是keep的意思

打包

原文件会保留。

打包(或归档)只是将文件和目录合并到一个单独的文件中,这个过程不会改变原始文件.目录及其内容仍然存在于原始位置,而一个新的打包文件将包含这些内容的副本。

文本处理

sed

示例

awk

文本处理工具,用于模式扫描和处理语言。它非常适合用来处理列式数据,比如 CSV 文件。awk 的名称来源于其创始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的姓氏首字母。

基本语法: awk '条件 {动作}' 文件

如果没有指定条件,awk 默认会执行动作部分

示例

 **打印指定列**:
   awk '{print $1   $3}' 文件,   这将打印文件中的每行的第一列和第三列。

awk默认的分隔符是空格键,定义分隔符使用参数 -F

 **基于条件打印**:
   awk '条件 {print $0}' 文件


   例如,打印所有包含特定字符串的行:
   awk '/pattern/ {print $0}' 文件

 **使用正则表达式**:
   awk '/^pattern/ {print $0}' 文件


   这将打印以 "pattern" 开头的行。

**替换文本**:
   awk '{gsub(/old/, "new", $0); print}' 文件
   这将替换每行中的 "old" 为 "new" 并打印结果。

**计算列的总和**:
   awk '{sum += $1} END {print sum}' 文件
   这将计算第一列的数值总和。

**计算平均值**:
   awk '{sum += $1; n++} END {print sum/n}' 文件
   这将计算第一列的平均值。

**多字段操作**:
   awk -F, '{print $1, $2, $3}' 文件
   使用 `-F` 选项指定字段分隔符,这里假设字段由逗号分隔。

**处理多个文件**:
   awk '条件 {动作}' 文件1 文件2 文件3
   可以一次性对多个文件执行相同的 `awk` 命令。

 **内置函数**:
    `awk` 内置了许多函数,如 `length`、`substr`、`tolower`、`toupper` 等,可以对文本进行各种操作。

 **使用变量**:
    在 `awk` 中,`$0` 代表整行文本,`$1`、`$2` 等代表各个字段。

用$0打印多行

$1打印第一列

用NR==行数,筛选行数

用NR显示行号

 比较判断

  • 在 awk 中,= 用作赋值运算符,用于给变量赋值。比较是否相等用==
  • 当你在 awk 脚本中看到 $3=1000,它实际上会将第三列的值赋值为 1000,而不是进行比较。

**模式匹配**:
    `awk` 支持正则表达式,可以用来匹配复杂的模式。

工作应用:杀死某个进程

ps -ef 显示当前系统上所有正在运行的进程的详细信息,通过管道符|传给grep

grep bash 用于过滤出包含 "bash" 字符串的行,即与 bash shell 相关的进程信息。

NR==1{print} 这个条件动作对表示只对第一行输入执行 print 动作,即打印第一行

$2 表示第二列

xargs传递参数,kill终止程序

(杀死其他进程,把bash换成其他的进程名称)

如果需要强制终止,加 -9

vim,sed,awk的区别

vim 是一个文本编辑器,适合交互式编辑;sed 是一个流编辑器,适合简单的文本过滤和转换;而 awk 是一个文本处理编程语言,适合复杂的文本分析和数据处理。 

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

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

相关文章

day01-HTML-CSS——基础标签样式表格标签表单标签

目录 此篇为简写笔记下端1-3为之前笔记(强迫症、保证文章连续性)完整版笔记代码模仿新浪新闻首页完成审核不通过发不出去HTMLCSS1 HTML1.1 介绍1.1.1 WebStrom中基本配置 1.2 快速入门1.3 基础标签1.3.1 标题标签1.3.2 hr标签1.3.3 字体标签1.3.4 换行标…

哥大开发AI模型助力癌症和遗传病研究,近屿智能专注培养AI人才

近日,哥伦比亚大学瓦格洛斯医学院的研究团队在《自然》杂志上发表了一项重大研究成果。他们开发出一种名为“通用表达转换器”(GET)的新型AI模型,能够准确预测任何人类细胞中的基因活性,从而揭示细胞的内部工作机制。 …

9.4 visualStudio 2022 配置 cuda 和 torch (c++)

一、配置torch 1.Libtorch下载 该内容看了【Libtorch 一】libtorchwin10环境配置_vsixtorch-CSDN博客的博客,作为笔记用。我自己搭建后可以正常运行。 下载地址为windows系统下各种LibTorch下载地址_libtorch 百度云-CSDN博客 下载解压后的目录为: 2.vs…

基于spingbott+html+Thymeleaf的24小时智能服务器监控平台设计与实现

博主介绍:硕士研究生,专注于信息化技术领域开发与管理,会使用java、标准c/c等开发语言,以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年,拥有近12年的管理工作经验,拥有较丰富的技术架…

MySQL社区版下载及其环境配置(msi)

MySQL官网:https://www.mysql.com/ 1、进入官网 点击Downloads 找到MySQL Community (GPL) Downloads   然后点击MySQL Installer for Windows(MySQL Community Server非向导式安装,而MySQL Installer for Windows有向导式安装&#x…

Linux-----进程通讯(消息队列)

目录 相关API 1.相关数据类型 mqd_t struct mq_attr struct timespec 2.相关系统调用接口 mq_open() mq_timedsend() && mq_send() mq_timedreceive() && mq_receive() mq_unlink() clock_gettime() 父子进程使用消息队列通讯 平行进程使用消息队列…

YOLOv8从菜鸟到精通(二):YOLOv8数据标注以及模型训练

数据标注 前期准备 先打开Anaconda Navigator,点击Environment,再点击new(new是我下载anaconda的文件夹名称),然后点击创建 点击绿色按钮,并点击Open Terminal 输入labelimg便可打开它,labelimg是图像标注工具,在上篇…

mac homebrew配置使用

本文介绍mac上homebrew工具的安装、配置过程。homebrew功能类似于centos的yum,用于软件包的管理,使用上有命令的差异。 本次配置过程使用mac,看官方文档,在linux上也可以用,但我没试过,有兴趣的同学可以试试…

《使用 YOLOV8 和 KerasCV 进行高效目标检测》

《使用 YOLOV8 和 KerasCV 进行高效目标检测》 作者:Gitesh Chawda创建日期:2023/06/26最后修改时间:2023/06/26描述:使用 KerasCV 训练自定义 YOLOV8 对象检测模型。 (i) 此示例使用 Keras 2 在 Colab 中…

【Uniapp-Vue3】onShow和onHide钩子的对比和执行顺序

页面生命周期函数的执行顺序是onLoad>onShow>onReady,其中只有onReady中才能获取到DOM节点。 一、onShow函数 每一次的页面切入都会触发onShow函数。 import {onShow} from "dcloudio/uni-app"; onShow(()>{...}) 如果我点击“跳转页面1”再返…

GPT 系列论文精读:从 GPT-1 到 GPT-4

学习 & 参考资料 前置文章 Transformer 论文精读 机器学习 —— 李宏毅老师的 B 站搬运视频 自监督式学习(四) - GPT的野望[DLHLP 2020] 來自猎人暗黑大陆的模型 GPT-3 论文逐段精读 —— 沐神的论文精读合集 GPT,GPT-2,GPT-3 论文精读【论文精读】…

(STM32笔记)十二、DMA的基础知识与用法 第二部分

我用的是正点的STM32F103来进行学习,板子和教程是野火的指南者。 之后的这个系列笔记开头未标明的话,用的也是这个板子和教程。 DMA的基础知识与用法 二、DMA传输设置1、数据来源与数据去向外设到存储器存储器到外设存储器到存储器 2、每次传输大小3、传…

2024年11月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(一)

软考高级系统架构设计师考试包含三个科目:信息系统综合知识、系统架构设计案例分析和系统架构设计论文。考试形式为机考。本文主要回顾2024年下半年(2024-11-10)系统架构设计师考试上午综合知识科目的选择题,同时附带参考答案、解析和所涉知识点。 由于机…

AI浪潮下的IT变革之路:机遇、挑战与重塑未来

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 AI浪…

【RTSP】使用webrtc播放rtsp视频流

一、简介 rtsp流一般是监控、摄像机的实时视频流,现在的主流浏览器是不支持播放rtsp流文件的,所以需要借助其他方案来播放实时视频,下面介绍下我采用的webrtc方案,实测可行。 二、webrtc-streamer是什么? webrtc-streamer是一个使用简单机制通过 WebRTC 流式传输视频捕获…

【芯片设计- RTL 数字逻辑设计入门 9.2 -- flip flop 与 寄存器的关系详细介绍】

请阅读【嵌入式开发学习必备专栏 Cache | MMU | AMBA BUS | CoreSight | Trace32 | CoreLink | ARM GCC | CSH】 文章目录 Overview硬件角度的 Flip-Flop软件角度的寄存器举例说明硬件设计角度软件开发角度D Flip-Flop 实现基本原理:Verilog 代码:UT 示例JK Flip-Flop 实现基…

Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能

Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能 基于SpringBoot3Vue3前后端分离的Java快速开发框架 项目简介:基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-P…

深度学习中的卷积和反卷积(三)——卷积和反卷积的计算

1 Stride和Padding的介绍 计算卷积和反卷积绕不开stride和padding的讨论。卷积和反卷积里都有stride和padding参数,但是同一个参数在卷积和反卷积里的作用不一样,非常容易使人困惑,本文试图理清他们的关系,并用实际数值例子演示计…

网页美观进阶:每一种渐变的实现方式

CSS 渐变效果详解:每一种渐变的实现方式 在现代网页设计中,CSS 渐变效果为我们提供了一种丰富的视觉表现手段,可以使简单的背景或元素具有动态和立体感。渐变从单一颜色转变为另一种颜色,为网站增添了活力与美感。在这篇博文中&a…

Mac MySQL 8.0.30的安装(保姆级教程)

目录预览: 一、下载及安装1.下载2.安装 二、环境变量配置1.编辑文件2.添加配置3.配置生效4.版本查看 三、启动1.MySQL服务的启停和状态的查看2.启动mysql2.1 查看服务状态2.2 Mysql关掉重启2.2.1 查看进程2.2.2 杀死进程2.2.3 验证进程是否成功杀死2.2.4 重新启动My…