就业班 2401--3.1 Linux Day9--文件查找和压缩
一、文件查找与打包压缩
grep: 文件内容过滤
[root@qfedu.com ~]# grep 'root' /etc/passwd #从/etc/passwd文件中过滤root字段 grep '^root' 'root$' root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin
查找命令
[root@qfedu.com ~]# which ls alias ls='ls --color=auto'/usr/bin/ls [root@qfedu.com ~]# which cd /usr/bin/cd [root@qfedu.com ~]# which rm alias rm='rm -i'/usr/bin/rm
查询命令和配置文件的位置
[root@qfedu.com ~]# whereis rpm rpm: /usr/bin/rpm /usr/lib/rpm /etc/rpm /usr/share/man/man8/rpm.8.gz [root@qfedu.com ~]# whereis passwd passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz
二、find详解: 文件查找 重点:!!!!!!!!!!!!!!!!
=========================================================================
语法: # find 路径 条件 跟条件相关的操作符 [-exec 动作] 路径: 1.默认不写路径时查找的是当前路径. 2.加路径。 条件: 1.指定的名称 -name 2.文件类型 -type 3.权限 4.时间
按文件名
从根开始找文件 [root@qfedu.com ~]# find / -name “file2” #从根开始找文件 最好加上双引号 /root/file2 /var/tmp/file2 [root@qfedu.com ~]# find /etc -name "ifcfg-ens33" #以名字的方式查找 [root@qfedu.com ~]# find /etc -iname "Ifcfg-ens33" #-i忽略大小写
**熟用通配符
[root@qfedu.com ~]# find /etc -iname "*.txt" 参数解释: *:表示所有字符
按文件大小 -size
我爱你 10个byte
hello
world
11个byte,有换行
[root@qfedu.com ~]# find /etc -size +5M #大于5M [root@qfedu.com ~]# find /etc -size 5M #等于5M [root@qfedu.com ~]# find /etc -size -5M #小于5M [root@qfedu.com ~]# find / -size +3M -a -size -5M #查找/下面大于3M而且小于5M的文件 -a:and [root@qfedu.com ~]# find / -size -1M -o -size +80M #查找/下面小于1M或者大于80M的文件 -o:or [root@qfedu.com ~]# find / -size -3M -a -name "*.txt" #查找/ 下面小于3M而且名字是.txt的文件
按时间查找
按时间找(atime,mtime,ctime) -atime = access访问时间 -mtime = modify改变时间 内容修改时间会改变 -ctime = change修改时间 属性修改时间会改变 -amin #分钟 -mmin -cmin[root@qfedu.com ~]# find /opt -mtime +5 #修改时间5天之前 [root@qfedu.com ~]# find /opt -atime +1 #访问时间1天之前 [root@qfedu.com ~]# find . -mtime -2 #修改时间2天之内 [root@qfedu.com ~]# find . -amin +1 #访问时间在1分钟之前 [root@qfedu.com ~]# find /opt -amin -4 #访问时间在4分钟之内 [root@qfedu.com ~]# find /opt -mmin -2 #修改时间在2分钟之内
按文件类型
[root@qfedu.com ~]# find /dev -type f #f普通文件 [root@qfedu.com ~]# find / -type f -size -1M -o -name "*.txt" [root@qfedu.com ~]# find /dev -type d #d目录 [root@qfedu.com ~]# find /etc/ -type d -name "*.conf.d" [root@qfedu.com ~]# find /etc -type l #l链接 [root@qfedu.com ~]# find /dev -type b #b块设备 [root@qfedu.com ~]# find /dev/ -type b -name "sd*"
按文件权限
[root@qfedu.com ~]# find . -perm 644 #.是当前目录 精确查找644 [root@qfedu.com ~]# find /usr/bin -perm -4000 #包含set uid [root@qfedu.com ~]# find /usr/bin -perm -2000 #包含set gid [root@qfedu.com ~]# find /usr/bin -perm -1000 #包含sticky
找到后处理的动作 ACTIONS
[root@qfedu.com ~]# find /etc -name "ifcfg*" -exec cp -rf {} /tmp \; #exec命令对之前查找出来的文件做进一步操作----- 查找带ifcfg开头的文件复制到tmp下 [root@qfedu.com ~]# touch /home/test{1..20}.txt [root@qfedu.com ~]# find /home/ -name test* -exec rm -rf {} \; #{}为前面查找到的内容,\; 格式 大白话:-exec 将前面的命令一个一个给后面的命令去执行,xargs必须加个管道才可以,它需要分号, 但是分号会有其他意思,必须加个 \将分号变为普通的,变为前面-exec的分号。
find使用xargs
[root@qfedu.com ~]# touch /home/test{1..20}.txt [root@qfedu.com ~]# # find /home/ -name "test*" | xargs -i cp {} /tmp/ #找到之后删除处理xargs 参数传递 大白话:将管道前面的命令全部交给xargs这个命令,然后xargs将前面的一起处理逐个给cp 后面的大括号{}
-exec和xargs的区别
-exec:参数是一个一个传递的,传递一个参数执行一次命令。 xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。 =============== 1、exec 每处理一个文件或者目录,它都需要启动一次命令,效率不好; 2、exec 格式麻烦,必须用 {} 做文件的代位符,必须用 \来转义; 作为命令的结束符,书写不便。 3、xargs不能操作文件名有空格的文件; 综上,如果要使用的命令支持一次处理多个文件,并且也知道这些文件里没有带空格的文件,那么使用 xargs比较方便; 否则,就要用 exec了。
案例1: 分别找出test5 和除了test5的文件
[root@qfedu.com ~]# find /home/ -name *test5* [root@qfedu.com ~]# find /home/ ! -name "test5*" # !--取反 这个叹号加到查找的目录后面去
cp -r 为什么和后处理的动作 ACTIONS 区别:
e.g. 将etc下的所有*.conf 一并复制
cp -r :将目录中的文件和子目录一并复制,但是不能将子目录里面的想要找的文件去复制
后处理的动作 ACTIONS :可以将etc下的所有.conf 一并复制,当然也可以找出来子目录的.conf
三、打包压缩
window打包压缩工具:
结尾:.rar .zip 打包工具:winrar zip 7zip 好压
linux打包压缩工具:
结尾:.tar.gz .tar.bz2 .zip
工具:gzip和tar(打包) bzip2(只压缩)
打包
语法: #tar cvf xxxx.tar filename 被打包的文件 ... 表示归档 c :create 创建 v :verbose 详细信息 f :file 文件
解包
#tar xvf filename.tar [-C /root/Desktop] x: extract 解压缩 解包 -C: 指定解包路径
案例
[root@qfedu.com ~]# tar cvf dir1.tar /home/dir10/ #打包目录dir10,将包命名为dir1.tar [root@qfedu.com ~]# tar xf dir1.tar -C /usr/local/ #将dir1包解压到指定目录
压缩
gzip bzip2 语法: 压缩:#gzip 源文件 #格式 file.gz结尾#bzip2 源文件 #格式 file.bz2结尾
bzip2需要安装
[root@qfedu.com ~]# yum -y install bzip2 #打包bzip2需要安装
解压缩
语法: #gunzip 压缩文件 #bunzip2 压缩文件 #gzip -d 压缩文件 #bzip2 -d 压缩文件 -d:dicompress 解压缩
案例
[root@qfedu.com ~]# gzip file1 #压缩 [root@qfedu.com ~]# gzip -d file1.gz #解压缩 [root@qfedu.com ~]# gunzip file1.gz #也是解压缩包 [root@qfedu.com ~]# gzip -c file1 > /usr/local/file1.gz #压缩到指定位置(注意以.gz结尾) [root@qfedu.com ~]# gunzip -c /usr/local/file1.gz > /opt/file1 #解压到指定位置(解压出的名字可以自定义) -c, --stdout
打包压缩一起:
语法: #tar cvzf file.tar.gz 源文件 #tar cvjf file.tar.bz2 源文件 z:表示gz压缩 j:表示bz2压缩
解压解包一起:
语法:
#tar xvzf 压缩文件 [-C 解压路径]
#tar xvjf 压缩文件 [-C 解压路径]
案例
[root@qfedu.com ~]# tar czf dir1.tar.gz dir1 #打包并压缩 [root@qfedu.com ~]# tar xzf dir1.tar.gz -C /usr/local/ #解压到指定位置
打包到指定路径
[root@qfedu.com ~]# tar czf /tmp/`date +%F-%T`-etc.tar.gz /etc/ #将打包的文件放到/tmp目录下,并以当前时间开头命名
扩展--按时间创建目录或者文件
# mkdir `date +%F`-upload # touch file-`date +%F`.txt
作业
查找系统内所有.gz结尾的文件并备份到/tmp/backup目录下 查找10天以内被修改过的.txt结尾的文件
四、链接文件
软链接 或 符号链接 硬链接
硬链接
一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。 这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)。[root@qfedu.com ~]# echo 222 > /file2 [root@qfedu.com ~]# ll -i /file2 #-i:显示inode编号 34045994 -rw-r--r-- 1 root root 4 Dec 29 20:52 file2 [root@qfedu.com ~]# ln /file2 /file2-h1 [root@qfedu.com ~]# ll -i /file2 /file2-h1 #查看inode号 34045994 -rw-r--r-- 2 root root 4 7月 30 22:25 /file2 34045994 -rw-r--r-- 2 root root 4 7月 30 22:25 /file2-h1 [root@qfedu.com ~]# rm -rf /file2 #删除源文件 [root@qfedu.com ~]# ll -i /file2-h1 #查看链接文件 34045994 -rw-r--r--. 3 root root 4 Nov 9 15:01 /file2-h1 查看: [root@qfedu.com ~]# cat /file2-h1 222运行上面这条命令以后,源文件与目标文件的inode号码相同,都指向同一个inode。inode信息中有一项叫做"链接数",记录指向该inode的文件名总数,这时就会增加1。 反过来,删除一个文件名,就会使得inode节点中的"链接数"减1。当这个值减到0,表明没有文件名指向这个inode,系统就会回收这个inode号码,以及其所对应block区域。
软连接
除了硬链接以外,还有一种特殊情况 文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。 也称为快捷方式 这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。
ln -s 命令可以创建软链接。
语法:ln -s 源文件 链接文件 [root@qfedu.com ~]# echo 111 > /file1 [root@qfedu.com ~]# ll -i /file1 545310 -rw-r--r-- 1 root root 4 7月 30 22:06 /file1 [root@qfedu.com ~]# ln -s /file1 /file11 #将文件file1软链接到file11 [root@qfedu.com ~]# ll /file11 lrwxrwxrwx 1 root root 6 Dec 20 17:58 /file11 -> /file1 [root@qfedu.com ~]# ll -i /file11 /file1 #查看inode号 545310 -rw-r--r-- 1 root root 4 7月 30 22:06 /file1 545343 lrwxrwxrwx 1 root root 6 7月 30 22:06 /file11 -> /file1 [root@qfedu.com ~]# cat /file1 111 [root@qfedu.com ~]# cat /file11 111 [root@qfedu.com ~]# rm -rf /file11 #取消软连接。 [root@qfedu.com ~]# ln -s /file1 /file11 [root@qfedu.com ~]# rm -rf /file1 #删除源文件 [root@qfedu.com ~]# ll /file11 lrwxrwxrwx 1 root root 6 Dec 20 17:58 /file11 -> /file1 #已失效 #给目录设置软链接必须是绝对路径 [root@qfedu.com ~]# ln -s /root/aaa/ /usr/bbb [root@qfedu.com ~]# ll /usr/bbb lrwxrwxrwx 1 root root 10 Dec 29 21:08 /usr/bbb -> /root/aaa/ [root@qfedu.com ~]# rm -rf /usr/bbb #取消链接,注意:删除目录链接时目录后面加“/”是删除目录,不加是删除链接
把一些重要文件做多个链接
注:硬链接 1. 不能跨文件系统 2. 不支持目录做硬链接
[root@qfedu.com ~]# ln /root/aaa/ /mnt/bbb ln: "/root/aaa/": 不允许将硬链接指向目录
面试:软链接和硬链接的区别:
=========================================================================
- 软链接可以跨文件系统,硬链接不可以;
- 软链接可以对目录进行连接,硬链接不可以;
- 删除源文件之后,软链接失效,硬链接无影响;
- 两种链接都可以通过命令 ln 来创建;
- ln 默认创建的是硬链接;
- 使用 -s 参数可以创建软链接。
=========================================================================
五、破解密码---扩展
# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core)
修复模式: 1,特权模式:不需要root密码,直接以root账户身份登陆。 破解密码时特权模式。
1.重起系统,进入grub菜单 2.选择要使用的内核 3.按e
4.找到linux16那一行,把光标移动到最后,添加 init=/bin/sh 5.ctrl+x #保存退出
6.进入系统后,以rw方式重新挂载/分区 #mount -o remount,rw / 7.永久关闭selinux #vim /etc/sysconfig/selinux 8.修改密码
9. # touch /.autorelabcl #重新识别新的root密码 10. # exec /sbin/init #重启机器,
测试登录
补充:两个时间输出的不同
相关文章:

就业班 2401--3.1 Linux Day9--文件查找和压缩
一、文件查找与打包压缩 grep: 文件内容过滤 [rootqfedu.com ~]# grep root /etc/passwd #从/etc/passwd文件中过滤root字段 grep ^root root$ root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/sbin/nologin 查找命令 [rootqfedu.com ~]# which ls ali…...

「滚雪球学Java」:JDBC(章节汇总)
🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,助你一臂之力,带你早日登顶🚀,欢迎大家关注&&收藏!持续更新中,up!up!up!…...
RT-DETR改进RepVGG结构:简单但功能强大的卷积神经网络架构
💡本篇内容:RT-DETR改进RepVGG结构:简单但功能强大的卷积神经网络架构 💡🚀🚀🚀本博客 改进源代码改进 适用于 RT-DETR 按步骤操作运行改进后的代码即可 💡本文提出改进 原创 方式:二次创新,RT-DETR专属 应部分读者要求,新增一篇RepVGG 论文理论部分 + 原…...
C#进阶高级语法之LINQ :Lambda 表达式
C# 中的 LINQ (Language Integrated Query) 提供了一种声明性的数据查询和操作方法,它允许开发人员对集合、数据库等数据源进行查询和操作,而不需要编写复杂的循环和手动编码。Lambda 表达式与 LINQ 紧密相关,它提供了一种简洁的方式来定义匿…...
react hook: useCallback
useCallback的主要使用场景在于优化性能,并确保当传递回调函数给子组件时,子组件不会因为父组件的重渲染而重新创建函数。 使用场景 1.当你需要将回调函数传递给子组件时,使用useCallback可以确保子组件在重新渲染时不会不必要地重新创建函数…...

java面试(jvm)
JVM内存模型 细分Eden: java类加载过程?双亲委派机制?一个对象从加载到JVM,再到被GC清除过程? JAVA类加载器:AppClassLoader - ExtClassLoader - BootStrapClassLoader。每种类加载器都有他自己的加载目录…...

自动化测试摸索:python+selenium+pytest(持续更新.....)
一、环境搭建 1、python 安装 下载链接:Python Releases for Windows | Python.org 自己选择合适的版本下载 当下载完毕时,找到该安装程序:python-3.12.2-amd64.exe文件,双击启动安装向导。 为了防止C:盘文件因系统故障或者无…...

C++惯用法之RAII思想: 资源管理
C编程技巧专栏:http://t.csdnimg.cn/eolY7 目录 1.概述 2.RAII的应用 2.1.智能指针 2.2.文件句柄管理 2.3.互斥锁 3.注意事项 3.1.禁止复制 3.2.对底层资源使用引用计数法 3.3.复制底部资源(深拷贝)或者转移资源管理权(移动语义) 4.RAII的优势和挑战 5.总…...
矢量图是什么,有哪些格式的文件
矢量图是一种图形设计中常用的图像类型,与我们日常见到的光栅图像(如JPEG、PNG等)有本质的区别。矢量图基于数学方程和几何元素(如点、线、曲线和形状)来表示图像,而不是像光栅图那样通过像素阵列来表示。这…...

Linux 设置快捷命令
以ll命令为例: 在 Linux 系统上,ll 命令通常不是一个独立的程序,而是 ls 命令的一个别名。 这个别名通常在用户的 shell 配置文件中定义,比如 .bashrc 或 .bash_aliases 文件中。 要在 Debian 上启用 ll 命令,你可以按…...

SpringCloudFeign远程调用
文章目录 1. Feign 是什么2. Feign 的使用2.1 引入依赖2.2 写接口2.3 服务调用方2.4 启动测试 3. Feign 日志配置4. Feign 使用优化5. 注意包扫描问题 1. Feign 是什么 Feign 是一个声明式、模板化的 HTTP 客户端,它是由 Netflix 开发并开源的。Feign 极大地简化了…...
Java中List、Set、Map三种集合之间的区别
Java中List、Set、Map三种集合之间的区别 1. List2. Set3. Map 在Java中,List、Set和Map是三种常见的集合类型,它们之间也有一些重要的区别: 1. List List是有序集合,可以存储重复元素。List的实现类常见有ArrayList、LinkedLis…...
SpringMVC之DispatcherServlet组件
目录 一、SpringMVC的核心处理流程二、DispatcherServlet1、init()方法2、doDispatch()方法3、AbstractAnnotationConfigDispatcherServletInitializer类 一、SpringMVC的核心处理流程 请求到达 DispatcherServlet DispatcherServlet 的请求处理: DispatcherServlet…...

抢商家、夺用户、比低价,抖音、快手、小红书“奇招尽出”
随着流量红利逐渐消退,国内电商平台之间互相内卷已成为了行业常态,而无论是在该领域深耕已久的淘宝、京东、拼多多等电商巨头,还是新跨界而来的抖音、快手、小红书等电商新秀都在不断地进行创新,以便为商家提供更好的服务…...
ChatGPT引领的AI面试攻略系列:AI全栈工程师篇
系列文章目录 AI全栈工程师(本文) 文章目录 系列文章目录一、前言二、面试题1. 基础理论与数据处理2. 机器学习3. 深度学习4. 大模型与迁移学习5. 计算机视觉6. 自然语言处理(NLP)7. 多模态学习8. AI生成内容(AIGC&am…...

上位机图像处理和嵌入式模块部署(qmacvisual配置)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们谈到了qmacvisual的编译、验证码、用户登录以及流程的编辑,这部分都是基础工作。事实上,除了这些内容之外…...

EXPLAIN PLAN FOR:在Oracle中生成执行计划
目录 案例 解析 Operation类型 在Oracle中,可以使用 EXPLAIN PLAN FOR 命令来生成执行计划,然后通过 SELECT plan_table_output FROM TABLE(DBMS_XPLAN.DISPLAY(PLAN_TABLE))来查看执行计划。需要注意的是,这两个命令需要在同一个窗口下运…...
蓝桥杯 9241.飞机降落
这道题本来作者以为是可以用一些小技巧进行暴力解法的,但是后来试了一下,不能过去全部数据。 下面是对半个的题解: #include<iostream> #include<stdio.h> #include<cstring> #include<cstdlib> #include<cmath…...

数据可视化原理-腾讯-散点图
在做数据分析类的产品功能设计时,经常用到可视化方式,挖掘数据价值,表达数据的内在规律与特征展示给客户。 可是作为一个产品经理,(1)如果不能够掌握各类可视化图形的含义,就不知道哪类数据该用…...

深度学习-Pytorch实现经典AlexNet网络:山高我为峰
深度学习-Pytorch实现经典AlexNet网络之山高我为峰 深度学习中,经典网络引领一波又一波的技术革命,从LetNet到当前最火的GPT所用的Transformer,它们把AI技术不断推向高潮。2012年AlexNet大放异彩,它把深度学习技术引领第一个高峰…...

网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...

Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...