Linux grep命令

Linux grep命令 全拼:Global search REgular expression and Print out the line. 作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行. 模式:由正则表达式的元字符及文本字符所编写出的过滤条件﹔ grep的语法格式: grep -option(参数) ‘word’(关键词) file(文本文件); grep常用参数: –color=auto 或者 –color:表示对匹配到的文本着色显示 -i:在搜索的时候忽略大小写 -n:显示结果所在行号 -c:统计匹配到的行数,注意,是匹配到的总行数,不是匹配到的次数 -o:只显示符合条件的字符串,但是不整行显示,每个符合条件的字符串单独显示一行 -v:输出不带关键字的行(反向查询,反向匹配) -w:匹配整个单词,如果是字符串中包含这个单词,则不作匹配 -Ax:在输出的时候包含结果所在行之后的指定行数,这里指之后的x行,A:after -Bx:在输出的时候包含结果所在行之前的指定行数,这里指之前的x行,B:before -Cx:在输出的时候包含结果所在行之前和之后的指定行数,这里指之前和之后的x行,C:context -e:实现多个选项的匹配,逻辑or关系 -q:静默模式,不输出任何信息,当我们只关心有没有匹配到,却不关心匹配到什么内容时,我们可以使用此命令,然后,使用”echo $?”查看是否匹配到,0表示匹配到,1表示没有匹配到。 -P:表示使用兼容perl的正则引擎。 -E:使用扩展正则表达式,而不是基本正则表达式,在使用”-E”选项时,相当于使用egrep。 示例 # 从test.txt文本文件中搜索包含”L”字符的行 grep "L" test.txt # 输出以 I 开头的行(不区分大小写) grep "^i" test.txt -i -n -o # 可以使用”--color”选项,高亮显示行中的关键字 grep "L" test.txt -i -n --color # -B”选项,显示符合条件的行之前的行,"B"有before之意 grep "L" test.txt -i -n --color -B2 # "-A"有After之意,"-A"代表显示符合条件的行的同时,还要显示之后的行,"-A3"表示同时显示符合条件的行之后的3行。 grep "L" test....

February 17, 2025 · 2 min · Leanku

Linux sed命令

Linux sed命令 全拼:Stream EDitor(流编辑器) Linux sed 命令是利用脚本来处理文本文件,sed 可依照脚本的指令来处理、编辑文本文件。Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。 sed 的运行模式 当处理数据时,Sed 从输入源一次读入一行,并将它保存到所谓的模式空间pattern space中。所有 Sed 的变换都发生在模式空间。变换都是由命令行上或外部 Sed 脚本文件提供的单字母命令来描述的。大多数 Sed 命令都可以由一个地址或一个地址范围作为前导来限制它们的作用范围。 sed的相关选项 -n, –quiet, –silent 取消自动打印模式空间 -e 脚本, –expression=脚本 添加“脚本”到程序的运行列表 -f 脚本文件, –file=脚本文件 添加“脚本文件”到程序的运行列表 –follow-symlinks 直接修改文件时跟随软链接 -i[扩展名], –in-place[=扩展名] 直接修改文件(如果指定扩展名就备份文件) -l N, –line-length=N 指定“l”命令的换行期望长度 –posix 关闭所有 GNU 扩展 -r, –regexp-extended 在脚本中使用扩展正则表达式 -s, –separate 将输入文件视为各个独立的文件而不是一个长的连续输入 -u, –unbuffered 从输入文件读取最少的数据,更频繁的刷新输出 –help 打印帮助并退出 –version 输出版本信息并退出 -a ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ -c ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! -d ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;...

February 17, 2025 · 1 min · Leanku

Linux 进程管理命令

Linux ps命令 ps 命令是 Process Status 的缩写,是一个命令行实用程序,用于显示或查看与Linux系统中运行的进程相关的信息。 命令原理:ps 是通过读取虚拟文件:/proc 拿到进程数据的,不需要给 ps 设置任何的权限就可以运行。 在Linux中,每个进程都有多个ID来关联它,包括: Process ID (PID),即进程ID 这是标识进程的任意数字。每个进程都有一个唯一的ID,但是在进程退出并且父进程检索了退出状态之后,进程ID将被释放,供新进程重用。 Parent Process ID (PPID),即父进程ID 如果父进程在子进程退出之前退出,则子进程的PPID将更改为另一个进程。 Process Group ID (PGID) 这是进程组leader的PID。如果PID == PGID,则此进程是进程组领导。 Session ID (SID) 这是会话领导者的PID。如果PID == SID,则此进程为会话领导进程。 会话和进程组只是将一些相关的进程作为一个单元来对待的方法。一个进程组的所有成员总是属于同一个会话,但是一个会话可以有多个进程组。 通常,shell将是会话领导者,该shell执行的每个管道将是一个进程组。这是为了在shell退出时很容易杀死它的子进程。 grep -option(参数) ‘word’(关键词) file(文本文件); ps命令选项: 简单筛选 a :选择所有进程(BSD-Style)。 -A :选择所有进程,与 -e 等同(标准格式)。 -a :选择除 session 领导者和没有与终端关联的进程之外的所有进程。 -d :选择除了 session leader 的所有进程。 –deselect :选择除满足指定条件之外的所有进程,即反选,与 -N 等同。 -e :选择所有进程,与 -A 等同。 -N :与 –deselect 等同。...

February 17, 2025 · 3 min · Leanku

视频内容处理工具分享之 VideoLingo

视频内容处理工具分享之 VideoLingo VideoLingo 是目前处理视频技术内容最强的开源工具之一。它的核心优势在于不仅仅是“语音转文字”,它还会利用 AI(如 DeepSeek 或 GPT)对内容进行 NLP 断句(让文字像书一样好读)并生成总结。 一、安装方式: 1. 最简单“一键整合包”(适合 Windows 用户) 如果你不想折腾 Python 环境,可以寻找社区维护的一键整合包(如 GitHub 上的 VideoLingo-OneClick 项目)。 下载:从网盘或 GitHub Releases 下载解压包。 启动:双击 启动软件.exe 或 一键启动.bat。 配置:它会弹出一个网页界面。在左侧填入你的 LLM API Key(支持 DeepSeek、OpenAI 等,技术总结必须用到大模型)。 2. 标准安装 如果你想体验最新功能,建议通过源码安装: 1. 准备环境 安装 Python 3.10(必须是这个版本)。 安装 FFmpeg(参考上一个回答)。 如果你有 NVIDIA 显卡,建议安装 CUDA Toolkit 12.6 以获得加速。 2. 源码下载与安装 在终端(Terminal/CMD)中执行: # 1. 克隆项目 git clone https://github.com/Huanshere/VideoLingo.git cd VideoLingo # 2. 安装依赖(需要 python=3.10 建议使用 conda) conda create -n videolingo python=3....

January 11, 2025 · 2 min · Leanku

视频下载工具分享之 yt-dlp

视频下载工具分享之 yt-dlp yt-dlp 是一个功能强大的开源命令行视频下载工具,它本身不需要像常规软件那样运行安装程序。 一、安装方式: 1. Windows 用户(最简单方法) 下载 exe 文件:前往 yt-dlp GitHub 释放页,找到并下载 yt-dlp.exe。 创建文件夹:建议在 C 盘或 D 盘根目录创建一个文件夹(如 D:\ytdlp),将下载好的 .exe 放进去。 安装 FFmpeg (重要依赖):为了能下载高画质视频并自动合并音视频,你必须下载 FFmpeg。 在同一目录下放入 ffmpeg.exe。 添加到 PATH (可选但建议):将该文件夹路径添加到系统的“环境变量”中,这样你就可以在任何地方的终端直接输入 yt-dlp 使用它了。 2. macOS 用户 推荐使用 Homebrew 快速安装: 打开终端(Terminal),输入: brew install yt-dlp ffmpeg 3. Linux 用户 大多数发行版可以直接通过包管理器安装: Ubuntu/Debian: sudo apt install yt-dlp Arch Linux: sudo pacman -S yt-dlp 或者直接下载二进制文件: sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp sudo chmod a+rx /usr/local/bin/yt-dlp 4....

January 10, 2025 · 1 min · Leanku

关于rabbitmq的一些问题

关于rabbitmq的一些问题 一、RabbitMQ的完整工作流程 RabbitMQ 的核心是生产者将消息发送到交换机,交换机根据类型和路由键将消息路由到队列,消费者再从队列中获取消息。 核心组件: Producer(生产者): 发送消息的应用程序。 Consumer(消费者): 接收消息的应用程序。 Message(消息): 包含有效载荷(数据)和标签(元数据,如路由键)。 Exchange(交换机): 接收生产者发送的消息,并根据特定规则(交换机类型、绑定、路由键)将消息路由到一个或多个队列。 Queue(队列): 存储消息的缓冲区,等待消费者消费。 Binding(绑定): 连接交换机和队列的规则。 完整流程: 建立连接: 生产者/消费者与 RabbitMQ Broker 建立一个 TCP 连接。 在连接上创建一个 Channel(信道),Channel 是轻量级的连接,避免了频繁创建/销毁 TCP 开开销。 生产者发送消息: 生产者将消息发送到指定的 Exchange。 发送消息时,必须指定一个 Routing Key(路由键)。 交换机路由消息: Exchange 接收到消息后,根据自身的 类型 和 Binding 规则,决定将消息投递到哪些队列。 主要的交换机类型: Direct: 精确匹配 Routing Key。消息只会被投递到 Binding Key 与 Routing Key 完全一致 的队列。 Fanout: 广播模式。将消息投递到所有绑定到该 Exchange 的队列,忽略 Routing Key。 Topic: 模式匹配。使用通配符(* 匹配一个词,# 匹配零个或多个词)来匹配 Routing Key 和 Binding Key。...

October 13, 2024 · 1 min · Leanku

Ollama

Ollama 简介 介绍 Ollama 是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。 Ollama 提供了一个简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种自然语言处理任务。 Ollama 的特点在于它不仅仅提供了现成的模型和工具集,还提供了方便的界面和 API,使得从文本生成、对话系统到语义分析等任务都能快速实现 安装要求 Ollama 支持多种操作系统,包括 macOS、Windows、Linux 以及通过 Docker 容器运行。 CPU:多核处理器(推荐 4 核或以上) GPU:如果你计划运行大型模型或进行微调,推荐使用具有较高计算能力的 GPU(如 NVIDIA 的 CUDA 支持) 内存:至少 8GB RAM,运行较大模型时推荐 16GB 或更高。 存储:需要足够的硬盘空间来存储预训练模型,通常需要 10GB 至数百 GB 的空间,具体取决于模型的大小。 软件要求:确保系统上安装了最新版本的 Python(如果打算使用 Python SDK)。 下载安装ollama https://ollama.com/download 下载 下载完成后进行安装 运行模型 https://ollama.com/search 查找模型 下载模型 如 ollama run deepseek-r1 使用docker安装UI页面 docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v D:\open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main 进入UI页面,注册本地账号,开始使用 访问 http://localhost:3000/ Ollama API 可参考文档...

September 1, 2024 · 1 min · Leanku

关于分布式

关于分布式 一、什么是分布式? 一个系统,各组件分别部署在不同服务器。彼此通过网络通信和协调的系统。 可以指多个不同组件分布在网络上互相协作 也可以一个组件的多个副本组成集群,互相协作如同一个组件,比如数据存储服务中心为了数据不丢失而采取的多个服务备份冗余 分布式最早出现的目的首先是解决单点问题,避免单点故障,然后解决了性能问题 二、分布式和微服务的区别? 微服务并不一定是分布式系统(微服务中多个服务不一定部署在不同服务器,单机部署情况则不算是分布式) 分布式一定不是微服务 (分布式祖耀侧重服务的部署方式,微服务则是针对应用的一种服务拆分的架构) 三、分布式CAP原则 在设计一个分布式项目的时候会遇到三个特性: 一致性(Consistency):所有节点数据实时同步,读取始终返回最新值 可用性(Availability):每个请求必须得到响应(无论数据是否最新),高可用 分区容错(Partition Tolerance):分布式最基本也是必需要有的特性,系统在遇到某个节点或网络分区故障时,仍然能够对外提供服务 三者无法同时满足,最多只能实现其中两个,网络分区发生时,必须牺牲C或A ‌CP(牺牲可用性)‌:如ZooKeeper,确保数据强一致性但可能拒绝请求 ‌AP(牺牲一致性)‌:如Eureka,保证服务可用但允许数据短暂不一致 三、 BASE理论 BASE理论是分布式系统设计原则,BASE 是指基本可用(Basically Available)、软状态( Soft State)、最终一致性( Eventual Consistency),核心思想是即使无法做到强一致性(CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性。 基本可用(Basically Available):分布式系统,在出现故障的时候,允许损失部分可用性。类似服务降级 软状态(Soft State):允许系统存在中间状态,而该中间状态不会影响系统整体可用性。这里的中间状态就是 CAP 理论中的数据不一致。 最终一致性(Eventual Consistency):系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。 四、分布式事务及解决方案 分布式事务 本地事务依赖数据库本身提供的事务特性来实现, 但是在分布式环境下,可能会出现需要远程调用,比如: begin transaction; //1.本地数据库操作:张三减少金额 //2.远程调用:让李四增加金额 commit transation; 张三和李四的账户不在一个数据库中甚至不在一个应用系统里,实现转账事务需要通过远程调用,由于网络问题就会导致分布式事务问题。 分布式事务解决方案 2PC 2PC 即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(commit phase),2 是指两个阶段,P 是指准备阶段,C 是指提交阶段。偏向数据库 TCC TCC 是 Try、Confirm、Cancel 三个词语的缩写,TCC 要求每个分支事务实现三个操作:预处理 Try、确认 Confirm、撤销 Cancel。Try 操作做业务检查及资源预留,Confirm 做业务确认操作,Cancel 实现一个与 Try 相反的操作即回滚操作。TM 首先发起所有的分支事务的 Try 操作,任何一个分支事务的Try操作执行失败,TM 将会发起所有分支事务的 Cancel 操作,若 Try 操作全部成功,TM 将会发起所有分支事务的 Confirm 操作,其中 Confirm/Cancel 操作若执行失败,TM 会进行重试。偏向代码

June 11, 2024 · 1 min · Leanku

Mysql 简易安装

Mysql 简易安装 安装Mysql8.0(centos8为例), 可参考 MySQL官方文档 # CentOS el8下载 MySQL YUM 仓库(替换为最新版本) wget https://dev.mysql.com/get/mysql80-community-release-el8-6.noarch.rpm # el9 使用sudo yum install mysql84-community-release-el9-x86_64.noarch.rpm sudo rpm -Uvh mysql80-community-release-el*.rpm sudo yum makecache # 安装 MySQL 社区版服务器 # el9 的话sudo yum install mysql84-community-release-el9-x86_64.noarch.rpm sudo yum install -y mysql-community-server # 可以通过手动编辑/etc/yum.repos.d/mysql-community.repo文件来选择发布系列。 # **install时如果出现GPG 密钥问题** # sudo curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023 https://repo.mysql.com/RPM-GPG-KEY-mysql-2023 # sudo chmod 644 /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023 # sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2023 # 重新执行 yum install -y mysql-community-server # 启动 MySQL 服务 sudo systemctl start mysqld sudo systemctl enable mysqld sudo systemctl status mysqld #MySQL 首次启动会生成一个临时 root 密码: sudo grep 'temporary password' /var/log/mysqld....

May 11, 2024 · 2 min · Leanku

Mysql中的事务及隔离级别

MySQL事务与隔离级别深度解析 一、 事务基础概念 1. 什么是事务 事务(Transaction)是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作。事务具有以下四个关键特性(ACID): 原子性(Atomicity):事务中的所有操作要么全部完成,要么全部不完成 一致性(Consistency):事务执行前后,数据库从一个一致状态变到另一个一致状态 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务 持久性(Durability):事务一旦提交,其结果就是永久性的 2. MySQL中的事务控制语句 START TRANSACTION; -- 或 BEGIN -- 执行SQL操作 COMMIT; -- 提交事务 ROLLBACK; -- 回滚事务 二、事务隔离级别详解 1. 四种标准隔离级别 MySQL支持四种事务隔离级别,控制不同事务之间的可见性: 隔离级别 脏读 不可重复读 幻读 说明 READ UNCOMMITTED(读未提交) 可能 可能 可能 最低隔离级别 READ COMMITTED(读已提交) 不可能 可能 可能 大多数数据库默认级别 REPEATABLE READ(可重复读) 不可能 不可能 可能 MySQL默认级别 SERIALIZABLE(序列化) 不可能 不可能 不可能 最高隔离级别 2. 并发问题说明 脏读(Dirty Read):读取到其他事务未提交的数据 不可重复读(Non-repeatable Read):同一事务内多次读取同一数据结果不同 幻读(Phantom Read):同一事务内多次查询返回不同的行集合 3. 隔离级别设置与查看 -- 设置当前会话隔离级别 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; -- 设置全局隔离级别 SET GLOBAL TRANSACTION ISOLATION LEVEL REPEATABLE READ; -- 查看当前隔离级别 SELECT @@transaction_isolation; 三、各隔离级别实现机制 1....

April 23, 2024 · 2 min · Leanku