当前位置: 首页 > 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 判断新旧节点是否是…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下&#xff0c;风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

Chrome 浏览器前端与客户端双向通信实战

Chrome 前端&#xff08;即页面 JS / Web UI&#xff09;与客户端&#xff08;C 后端&#xff09;的交互机制&#xff0c;是 Chromium 架构中非常核心的一环。下面我将按常见场景&#xff0c;从通道、流程、技术栈几个角度做一套完整的分析&#xff0c;特别适合你这种在分析和改…...