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

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

关于文件的关键词

创建 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 是一个文本处理编程语言,适合复杂的文本分析和数据处理。 

相关文章:

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

关于文件的关键词 创建 touch 删除 rm 复制 cp 权限 chmod 移动 mv 查看内容 cat(全部); head(前10行); tail(末尾10行); more,less,grep 查找 find 压缩 gzip ; bzip 打包 tar 编辑 sed 文本处理 awk 创建文件 格式: touch 文件名 删除文件 复制文…...

CentOS 8 如何安装java与mysql

在CentOS 8上安装Java和MySQL的步骤如下: 1. 安装 Java 1.1 安装 OpenJDK(推荐) CentOS 8 默认的软件仓库提供了 OpenJDK 包,您可以直接使用 dnf 命令安装。 # 更新系统 sudo dnf update -y# 安装 OpenJDK 11(Cent…...

Go语言之路————go基本语法、数据类型、变量、常量、输出

Go语言之路————go基本语法、数据类型、变量、常量 前言一、基本语法知识二、数据类型三、常量四、变量五、作用域六、输入输出 前言 我是一名多年Java开发人员,因为工作需要现在要学习go语言,Go语言之路是一个系列,记录着我从0开始接触G…...

音视频入门基础:MPEG2-PS专题(7)——通过FFprobe显示PS流每个packet的信息

音视频入门基础:MPEG2-PS专题系列文章: 音视频入门基础:MPEG2-PS专题(1)——MPEG2-PS官方文档下载 音视频入门基础:MPEG2-PS专题(2)——使用FFmpeg命令生成ps文件 音视频入门基础…...

Docker安装和卸载(centos)

Docker安装和卸载 一,已安装Docker,卸载Docker 1.方法一 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine​ 如果出现以下提示就证明没卸载…...

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

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

Winforms开发基础之非主线程操作UI控件的误区

前言 想象一下,你正在开发一个桌面应用程序,用户点击按钮后需要执行一个耗时操作。为了避免界面卡顿,你决定使用后台线程来处理任务。然而,当你在后台线程中尝试更新UI控件时,程序突然崩溃了。这是为什么呢&#xff1…...

Flutter中Get.snackbar和Get.dialog关闭冲突问题记录

背景: 在使用GetX框架时,同时使用了Get.snackbar提示框和Get.dialog加载框,当这两个widget同时存在时,Get.dialog加载框调用Get.back()无法正常关闭。 冲突解释: 之所以会产生冲突,是因为Get.snackbar在关…...

springcloudalibaba集成fegin报错ClassNotFoundException解决方案

集成fegin遇到问题: java.lang.ClassNotFoundException: com.netflix.config.CachedDynamicIntProperty 解决方案: 在pom文件中添加依赖 <dependency><groupId>com.netflix.archaius</groupId><artifactId>archaius-core</artifactId><versi…...

【HTML+CSS+JS+VUE】web前端教程-31-css3新特性

圆角 div{width: 100px;height: 100px;background-color: saddlebrown;border-radius: 5px;}阴影 div{width: 200px;height: 100px;background-color: saddlebrown;margin: 0 auto;box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);}...

力扣264. 丑数 II

给你一个整数 n &#xff0c;请你找出并返回第 n 个 丑数 。丑数 就是质因子只包含 2、3 和 5 的正整数。 //用一个数组来保存第1到第n个丑数 //一个丑数必须是乘以较小的丑数的 2、3 或 5来得到。 //使用三路合并方法&#xff1a;L2、L3 和 L5三个指针遍历2、3、5倍的丑数序列…...

计算机网络之---TCP连接管理

TCP连接管理 TCP&#xff08;传输控制协议&#xff09;是面向连接的协议&#xff0c;在数据传输之前需要建立连接&#xff0c;在数据传输完成后需要断开连接。TCP连接的建立和断开都遵循特定的规则&#xff0c;分别称为三次握手&#xff08;Three-Way Handshake&#xff09;和四…...

《CPython Internals》阅读笔记:p118-p150

《CPython Internals》学习第 8 天&#xff0c;p118-p150 总结&#xff0c;总计 33 页。 一、技术总结 补充一些本人整理的关于 Context-Free Grammar(CFG) 的知识。 1.symbol(符号) A mathematical symbol is a figure or a combination of figures that is used to repre…...

C/C++ 数据结构与算法【排序】 常见7大排序详细解析【日常学习,考研必备】带图+详细代码

常见7种排序算法 冒泡排序&#xff08;Bubble Sort&#xff09;选择排序&#xff08;Selection Sort&#xff09;插入排序&#xff08;Insertion Sort&#xff09;希尔排序&#xff08;Shell Sort&#xff09;归并排序&#xff08;Merge Sort&#xff09;快速排序&#xff08;…...

三只松鼠携手爱零食,社区零售新高峰拔地而起

合纵连横&#xff0c;这是当前零售行业发展的一个主旋律。从商超之王胖东来的全国调改&#xff0c;到社区零售正在进行的渠道变革&#xff0c;竞争的激烈和商业模式的升级令人目不暇接。 量贩零食赛道在过去一年就是如此&#xff0c;有杀伐&#xff0c;有并购&#xff0c;刀光…...

Java聊天小程序

拟设计一个基于 Java 技术的局域网在线聊天系统,实现客户端与服务器之间的实时通信。系统分为客户端和服务器端两类,客户端用于发送和接收消息,服务器端负责接收客户端请求并处理消息。客户端通过图形界面提供用户友好的操作界面,服务器端监听多个客户端的连接并管理消息通…...

Kibana操作ES基础

废话少说&#xff0c;开干&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;截图更清晰&#xff0c;复制在下面 #库操作#创建索引【相当于数据库的库】 PUT /first_index#获…...

MYSQL8创建新用户报错:You have an error in your SQL syntax;check...

本文所用——MYSQL版本&#xff1a;8.0.25 baidu都是直接创建新用户并赋权&#xff0c;如下&#xff1a; GRANT ALL PRIVILEGES ON *.* TO 用户名% IDENTIFIED BY 密码 WITH GRANT OPTION;但是我用的MYSQL版本它就不行&#xff0c;会报错&#xff01; 经查阅资料发现——MY…...

动漫周边商城系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️&#xff1a;架构: B/S、MVC 2⃣️&#xff1a;系统环境&#xff1a;Windowsh/Mac 3⃣️&#xff1a;开发环境&#xff1a;IDEA、JDK1.8、Maven、Mysql5.7 4⃣️&#xff1a;技术栈&#xff1a;Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库…...

Vue 3 Diff 算法受 `v-for` 循环中的 `key` 属性影响

Vue 3 的 Diff 算法会受到 v-for 循环中的 key 属性的影响&#xff0c;key 的选择直接关系到 Diff 算法的效率和最终的 DOM 更新结果。 key 的作用 在 Vue 中&#xff0c;key 是一种标识&#xff0c;它用于唯一标记每个虚拟 DOM 节点。Diff 算法会根据 key 判断新旧节点是否是…...

Unity安卓打包实战指南:从环境配置到APK生成全链路排错

1. 这不是“入门教程”&#xff0c;而是一份写给真实开发现场的生存指南你打开Unity&#xff0c;新建一个3D项目&#xff0c;拖进一个Cube&#xff0c;点击Play——它动了。你松了口气&#xff0c;觉得“Unity好像也没那么难”。但当你把APK打包发给测试同事&#xff0c;对方回…...

癫痫手术精准定位:基于脑电信号昼夜节律与多生物标志物的机器学习分析框架

1. 项目概述&#xff1a;当机器学习遇见脑电信号&#xff0c;如何让癫痫手术更精准&#xff1f;作为一名长期耕耘在生物医学信号处理与机器学习交叉领域的工程师&#xff0c;我常常思考如何将算法模型从实验室的“玩具”变成临床医生手中可靠的“手术刀”。癫痫&#xff0c;这个…...

DeepSeek系统设计辅助效能断崖式下降的3个信号,第2个90%工程师至今未察觉!

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek系统设计辅助效能断崖式下降的3个信号&#xff0c;第2个90%工程师至今未察觉&#xff01; 当 DeepSeek 的系统设计辅助能力突然变“笨”——接口建议频繁失准、上下文感知错乱、生成代码无法通过基础编…...

AI圈内火热的Agent、MCP、Skill、CLI是啥?用装修房子讲透,看完秒懂

本文用装修房子的比喻&#xff0c;详细解释了AI领域的四个核心概念&#xff1a;Agent如同会自主规划任务的私人助理&#xff1b;MCP是AI与外部工具数据的统一接口&#xff0c;类似USB-C&#xff1b;Skill是指导AI按标准操作执行的手册&#xff1b;CLI则是不依赖图形界面的命令行…...

网飞成立 AI 动画工作室,开启流媒体“原生 AI 制片时代”,中外布局逻辑有何不同?

1. Netflix“偷跑”在影视巨头关于 AIGC 的军备竞赛中&#xff0c;Netflix 再次加速。据外媒 TheVerge 报道&#xff0c;网飞于今年 3 月成立了名为 "INKubator" 的工作室&#xff0c;这是全球流媒体巨头中首个以生成式人工智能为核心的动画制作部门。此动作引发全球…...

java项目011-ssm 宠物医院系统

java项目011-ssm 宠物医院系统 是一款基于springspringmvcmybatis的宠物系统&#xff0c; 包含界面布局、医生信息管理、客户信息管理、宠物管理、浏览管理、 诊断管理、医生管理、用户管理 其中医生管理、用户管理只能管理员有权限进行操作。 采用spingboot方式启动 运行截图...

深度解析:JetBrains IDE试用期重置机制的技术实现

深度解析&#xff1a;JetBrains IDE试用期重置机制的技术实现 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 在软件开发工作流中&#xff0c;JetBrains IDE试用期管理是一个常见的技术挑战&#xff0c;尤其是在多…...

UE5项目打包后RenderTarget导出图片全黑?手把手教你解决伽马校正与资产打包问题

UE5打包后RenderTarget导出图片全黑的终极解决方案当你花了整整三天时间调试RenderTarget导出功能&#xff0c;终于在编辑器里看到完美的截图效果&#xff0c;却在打包成可执行文件后发现所有导出的图片都变成了一片漆黑——这种从云端跌入谷底的感觉&#xff0c;每个UE开发者都…...

YOLOv8道路交通信号标志识别检测系统(项目源码+YOLO数据集+模型权重+UI界面+python+深度学习+环境配置)

摘要 道路交通信号标志的自动检测是智能驾驶与交通管理系统中的核心环节。本文基于YOLOv8目标检测算法&#xff0c;构建了一个涵盖21类常见交通信号标志的检测系统&#xff0c;包括禁令标志、指示标志、警告标志及信号灯等。模型在包含1376张训练图像、488张验证图像和229张测…...

Sora 2原生MP4输出不兼容Premiere Pro?揭秘H.264/H.265封装层4大隐性缺陷(附MediaInfo诊断模板+自动修复脚本)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Sora 2原生MP4输出不兼容Premiere Pro的根源定位 Sora 2生成的原生MP4文件虽符合ISO/IEC 14496-14规范&#xff0c;但其底层封装结构与Adobe Premiere Pro对时间码、元数据及视频流编码参数的严格校验逻辑存在…...