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

复制文件

移动文件

查看文件内容
cat

head

tail

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
没有找到任何匹配项,它不会显示任何消息,但仍然会返回一个非零的退出状态码,这可以用于脚本编写


查找文件 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 可以省略,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控件时,程序突然崩溃了。这是为什么呢࿱…...
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 ,请你找出并返回第 n 个 丑数 。丑数 就是质因子只包含 2、3 和 5 的正整数。 //用一个数组来保存第1到第n个丑数 //一个丑数必须是乘以较小的丑数的 2、3 或 5来得到。 //使用三路合并方法:L2、L3 和 L5三个指针遍历2、3、5倍的丑数序列…...
计算机网络之---TCP连接管理
TCP连接管理 TCP(传输控制协议)是面向连接的协议,在数据传输之前需要建立连接,在数据传输完成后需要断开连接。TCP连接的建立和断开都遵循特定的规则,分别称为三次握手(Three-Way Handshake)和四…...
《CPython Internals》阅读笔记:p118-p150
《CPython Internals》学习第 8 天,p118-p150 总结,总计 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种排序算法 冒泡排序(Bubble Sort)选择排序(Selection Sort)插入排序(Insertion Sort)希尔排序(Shell Sort)归并排序(Merge Sort)快速排序(…...

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

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

Kibana操作ES基础
废话少说,开干!!!!!!!!!!!!截图更清晰,复制在下面 #库操作#创建索引【相当于数据库的库】 PUT /first_index#获…...

MYSQL8创建新用户报错:You have an error in your SQL syntax;check...
本文所用——MYSQL版本:8.0.25 baidu都是直接创建新用户并赋权,如下: GRANT ALL PRIVILEGES ON *.* TO 用户名% IDENTIFIED BY 密码 WITH GRANT OPTION;但是我用的MYSQL版本它就不行,会报错! 经查阅资料发现——MY…...

动漫周边商城系统|Java|SSM|VUE| 前后端分离
【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库…...
Vue 3 Diff 算法受 `v-for` 循环中的 `key` 属性影响
Vue 3 的 Diff 算法会受到 v-for 循环中的 key 属性的影响,key 的选择直接关系到 Diff 算法的效率和最终的 DOM 更新结果。 key 的作用 在 Vue 中,key 是一种标识,它用于唯一标记每个虚拟 DOM 节点。Diff 算法会根据 key 判断新旧节点是否是…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...