Linux云计算训练营笔记day05(Rocky Linux中的命令:管道操作 |、wc、find、vim)

管道操作 |
作用: 将前面命令的输出,传递给后面命令,作为后面命令的参数

head -3 /etc/passwd | tail -1  取第三行
head -8 /etc/passwd | tail -3 | cat -n  取6 7 8行
ifconfig | head -2 | tail -1  只查看IP地址
ifconfig | grep 192  过滤192的ip地址

wc是一个统计工具,可以统计文件中的行数,单词数,字符数,字节数,以及最长行的长度,分析日志文件
wc 选项  文件 
echo hello world > a.txt  把hello world写入a.txt中
echo hello >> a.txt      把hello追加到a.txt中
选项:
-w 单词数  wc -w a.txt    3个单词
-l 文件的行数 wc -l a.txt  2行
             cat /etc/passwd | wc -l 45行
             ls  /opt | wc -l 2行
             ls | wc -l 查看当前的文件或者目录有多少个
-m 字符数 wc -m a.txt  18个字符  单词15个 空格算1个 换行\n算1个,一共有2个
在a.txt中输入一个中文字符,-c 字节数 wc -c a.txt  一个汉字是三个字节
   UTF-8 编码 通常使用 3 个字节来表示
   GBK 通常使用 2 个字节来表示
L 最长行的长度   wc -L a.txt  11个(hello world)不涉及换行

Linux中大多数的配置文件都是以#开头,这个叫注释
显示配置文件有效信息(去除注释 以#开头, 去除空行 ^$ )
grep -v ^# /etc/login.defs | grep -v ^$  | cat -n > a.txt

把/root/.bashrc配置文件中的有效信息保存到gongli.txt中
grep -v ^# /root/.bashrc | grep -v ^$ > gongli.txt

练习:
1)创建目录 /study/nsd01
  mkdir -p  /study/nsd01
2)在 /study/nsd01 创建文件abc.txt,利用echo 写入内容 abc.tedu.cn
  echo  abc.tedu.cn > abc.txt
3)将/study/nsd01/abc.txt 文件复制到/opt目录下,同时改名为test.txt
  cp /study/nsd01/abc.txt  /opt/test.txt
4)使用vim修改文件/etc/hostname,删除原来内容,写入www.sina.com
  echo  www.sina.com > /etc/hostname
5)将/etc/passwd,/etc/hostname,/etc/hosts同时拷贝到/study/nsd01 
  cp /etc/passwd /etc/hostname /etc/hosts /study/nsd01 
6)将文件/study/nsd01/hostname 重命名为host.txt
  mv /study/nsd01/hostname  /study/nsd01/host.txt
7)把目录/boot内容中以vm开头的数据复制到/root/vm目录下(自己创建vm目录)
  mkdir /root/vm
  cp /boot/vm* /root/vm
8)将/home 目录复制到/root/vm目录下
  cp -r  /home  /root/vm
9)创建/root/boothome与/root/usrsbin目录
  mkdir  /root/boothome  /root/usrsbin
10)打包/boot和/home这两个文件夹,压缩包名字为boothome.tar.gz 
   tar -czf  boothome.tar.gz  /boot  /home
11)打包/usr/sbin目录,压缩包名字为usrsbin.tar.bz2 
   tar -cjf usrsbin.tar.bz2 /usr/sbin
12)解压boothome.tar.gz到/study/nsd01
   tar -xf  boothome.tar.gz  -C /study/nsd01

find 精确查找
find  目录  条件
条件
-type  类型 (f 文件  d目录 l快捷方式)
    find  /boot  -type d
     
    touch  /opt/a.txt
    touch  /opt/b.txt
    mkdir  /opt/nsd
    find  /opt  -type f

-name 名字
find /etc -name "passwd"
find /etc -name "*tab"
find /etc -name "*tab" | cat -n
find /etc -name "*.conf"
find /etc -name "*.conf" | wc -l

find /root -name ".*"   查找隐藏数据

两个条件一起使用:
mkdir /mnt/cbd01
mkdir /mnt/cbd02
touch /mnt/cbd03.txt
find /mnt -name "cbd*"
find /mnt -name "cbd*" -type d     两个必须都满足
find /mnt -name "cbd*" -type f     两个必须都满足
find /mnt -name "cbd*" -o -type f  两个满足其中一个

-size  大小  + -
ls -lh /boot
find  /boot -size +1M     大于1M的数据
find  /boot -size +1M -size -10M    1M到10M之间的数据

-user 用户名,按照数据的所有者
find /home -user nsd  普通用户的名字

-mtime  修改时间(所有的时间都是过去时间)
+90  90天之前修改过的数据
-10  最近10天之内修改过的数据

/var 存放经常变化的数据,日志文件
find /var -mtime +90  三个月之前的数据

-newermt  在此时间之后
! -newermt 在此时间之前 , 不写年月日则表示今天

find  /var -newermt '2025-5-8 15:28:50'
find  /var -newermt '2025-5-8 10:30:50' ! -newermt '12:30:50'

find高级使用
处理find找到的数据,每查找一个就传递一次

find [范围]  [条件]  -exec  处理命令 {} \;
-exec 额外操作的开始
{}    前面find查找的结果
\;    额外操作的结束

find  /boot -size +10M -exec cp {} /opt \;
find  /boot -size +10M -exec ls -lh {} \;
两个条件联合使用
mkdir /root/mytab
find  /etc -name "*tab" -type f -exec cp {} /root/mytab \;

案例:
利用find查找,数据的所有者为student,并且必须是文件,把他们拷贝到/root/findfiles目录中
useradd  student     添加student用户
mkdir  /root/findfiles
find / -user student -type f -exec cp {} /root/findfiles \;

/proc: 内存的数据,不占用硬盘空间 

红帽RHCSA题目:
1.查找属于 jacques 用户所属文件,并拷贝到/root/findfiles 目录
useradd  jacques     添加student用户
mkdir  /root/findfiles
find / -user jacques -type f -exec cp {} /root/findfiles \;

2.查找文件 /usr/share/xml/iso-codes/iso_639_3.xml 中包含字符串 ng 的所有行。将所有这些行的副本按原始顺序放在文件 /root/list 中。/root/list 不得包含空行且所有行必须是 /usr/share/xml/iso-codes/iso_639_3.xml 中原始行的确切副本
grep ng  /usr/share/xml/iso-codes/iso_639_3.xml > /root/list

3.创建一个名为/root/backup.tar.bz2的tar存档,其应包含/usr/local的tar存档,其应包含/usr/local的内容。该tar存档使用bzip2进行压缩。
tar  -cjf  /root/backup.tar.bz2  /usr/local

vim 文本编辑器
cp  /etc/passwd user
vim user
命令模式
   yy 复制一行  p粘贴
   10yy复制十行  
   dd  删除1行
   10dd  删除10行
   G 跳转到末尾
   gg 跳转到首行

   /a 查找字符串a
      n  跳到下一个结果
      N  跳到上一个结果
   u 撤销
   ctrl +r 取消上一次撤销
   ZZ  保存修改并退出
插入模式
   自己随便写东西
末行模式
   :set nu 显示行号
   :set nonu 关闭行号
   :set ai 启用缩进
   :set noai 关闭自动缩进

 

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

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

相关文章

动态规划:最长递增子序列

给定一个数组,求最长递增子序列的长度,就是要求我们求出一个序列中最长的上升子序列的长度,最长上升子序列的定义就是从原序列中按照孙旭去除一些数字,这些数字是逐渐增大的。 *定义dp[i]表示以第i个元素结尾的最长上升子序列的长度。 *初始…

湖北理元理律师事务所:债务优化如何实现还款与生活的平衡?

债务压力往往让债务人陷入“还款还是生存”的两难选择。湖北理元理律师事务所通过案例实践发现,科学规划的核心在于平衡法律义务与基本生活保障,而非单纯追求债务缩减。本文结合实务经验,解析债务优化的可行路径。 刚性需求优先:…

重力场模型、球谐函数以及重力异常

地球重力场有两种表达方法: 1、拉普拉斯(Laplace)方法,将重力场展开为球谐级数。 2、斯托克斯(Stokes)方法,根据地球的总质量和旋转角速度计算。 本篇主要说第一种方法,该方法将地…

MySQL的视图

一、MySQL视图的介绍和作用 MySQL视图,加油兄弟们,孰能生巧,完整代码在最后!!! 视图是一个虚拟的表,并不是真是存在的,视图其实并没有真实的数据,他只是根据一个sql语句…

Scala与Go的异同教程

当瑞士军刀遇到电锯:Scala vs Go的相爱相杀之旅 各位准备秃头的程序猿们(放心,用Go和Scala不会加重你的发际线问题),今天我们来聊聊编程界的"冰与火之歌"——Scala和Go的异同。准备好瓜子饮料,我…

SaaS场快订平台项目说明【持续更新】

一、项目介绍 SaaS场快订平台是一个高效、便捷的体育场馆在线预订平台。本项目采用SaaS方式开发,用户不需要安装软件,直接通过互联网访问在线程序即可使用。本项目主要构建了一个体育馆预订系统,项目的功能主要包括:用户注册与登…

linux中常用的命令(三)

目录 1- ls(查看当前目录下的内容) 2- pwd (查看当前所在的文件夹) 3- cd [目录名](切换文件夹) 4- touch [文件名] (如果文件不存在,新建文件) 5- mkdir[目录名] (创建目录) 6-rm[文件名]&…

使用Simulink开发Autosar Nvm存储逻辑

文章目录 前言Autosar Nvm接口设计模型及接口生成代码及arxmlRTE接口mappingRTE代码分析总结 前言 之前介绍过Simulink开发Dem故障触发逻辑,本文接着介绍另外一个常用的功能-Nvm存储的实现。 Autosar Nvm接口 Autosar Nvm中一般在上电初始化的时调用Nvm_ReadAll获…

Java—— 泛型详解

泛型概述 泛型是JDK5中引入的特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。 泛型的格式&#xff1a;<数据类型> 注意&#xff1a;泛型只能支持引用数据类型。 泛型的好处 没有泛型的时候&#xff0c;可以往集合中添加任意类型的数据&#x…

通俗的桥接模式

桥接模式&#xff08;Bridge Pattern&#xff09; 就像一座桥&#xff0c;把两个原本独立变化的东西连接起来&#xff0c;让它们可以各自自由变化&#xff0c;互不干扰。简单来说&#xff0c;就是 “把抽象和实现分开&#xff0c;用组合代替继承”。 一句话理解桥接模式 假设你…

【现代深度学习技术】注意力机制04:Bahdanau注意力

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上&#xff0c;结合当代大数据和大算力的发展而发展出来的。深度学习最重…

爬虫学习————开始

&#x1f33f;自动化的思想 任何领域的发展原因————“不断追求生产方式的改革&#xff0c;即使得付出与耗费精力越来愈少&#xff0c;而收获最大化”。由此&#xff0c;创造出方法和设备来提升效率。 如新闻的5W原则直接让思考过程规范化、流程化。或者前端框架/后端轮子的…

每天五分钟机器学习:KTT条件

本文重点 在前面的课程中,我们学习了拉格朗日乘数法求解等式约束下函数极值,如果约束不是等式而是不等式呢?此时就需要KTT条件出手了,KTT条件是拉格朗日乘数法的推广。KTT条件不仅统一了等式约束与不等式约束的优化问题求解范式,KTT条件给出了这类问题取得极值的一阶必要…

leetcode0829. 连续整数求和-hard

1 题目&#xff1a; 连续整数求和 官方标定难度&#xff1a;难 给定一个正整数 n&#xff0c;返回 连续正整数满足所有数字之和为 n 的组数 。 示例 1: 输入: n 5 输出: 2 解释: 5 2 3&#xff0c;共有两组连续整数([5],[2,3])求和后为 5。 示例 2: 输入: n 9 输出: …

window 显示驱动开发-线性伸缩空间段

线性伸缩空间段类似于线性内存空间段。 但是&#xff0c;伸缩空间段只是地址空间&#xff0c;不能容纳位。 若要保存位&#xff0c;必须分配系统内存页&#xff0c;并且必须重定向地址空间范围以引用这些页面。 内核模式显示微型端口驱动程序&#xff08;KMD&#xff09;必须实…

Cadence 高速系统设计流程及工具使用三

5.8 约束规则的应用 5.8.1 层次化约束关系 在应用约束规则之前&#xff0c;我们首先要了解这些约束规则是如何作用在 Cadence 设计对象上的。Cadence 中对设计对象的划分和概念&#xff0c;如表 5-11 所示。 在 Cadence 系统中&#xff0c;把设计对象按层次进行了划分&#…

ScaleTransition 是 Flutter 中的一个动画组件,用于实现缩放动画效果。

ScaleTransition 是 Flutter 中的一个动画组件&#xff0c;用于实现缩放动画效果。它允许你对子组件进行动态的缩放变换&#xff0c;从而实现平滑的动画效果。ScaleTransition 通常与 AnimationController 和 Tween 一起使用&#xff0c;以控制动画的开始、结束和过渡效果。 基…

深入解析:如何基于开源p-net快速开发Profinet从站服务

一、Profinet协议与软协议栈技术解析 1.1 工业通信的"高速公路" Profinet作为工业以太网协议三巨头之一,采用IEEE 802.3标准实现实时通信,具有: 实时分级:支持RT(实时)和IRT(等时实时)通信模式拓扑灵活:支持星型、树型、环型等多种网络结构对象模型:基于…

m个n维向量组中m,n的含义与空间的关系

向量的维度与空间的关系&#xff1a; 一个向量的维度由其分量个数决定&#xff0c;例如 ( n ) 个分量的向量属于 Rn空间 。 向量组张成空间的维度&#xff1a; 当向量组有 ( m ) 个线性无关的 ( n ) 维向量时&#xff1a; 若 ( m < n )&#xff1a; 这些向量张成的是 Rn中的…

excel大表导入数据库

前文介绍了数据量较小的excel表导入数据库的方法&#xff0c;在数据量较大的情况下就不太适合了&#xff0c;一个是因为mysql命令的执行串长度有限制&#xff0c;二是node-xlsx这个模块加载excel文件是整个文件全部加载到内存&#xff0c;在excel文件较大和可用内存受限的场景就…