基础指令:grep、wc、管道符( | )、head、tail、less、more、sort、uniq、Linux软件安装、重定向及
3.0 dd读取、转换并输出数据
dd
可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、设备或标准输出
参数 | 说明 |
---|---|
if=[源文件] | 输入文件名,默认为标准输入,即指定源文件 |
of=[输出文件] | 输出文件名,默认为标准输出,即指定目的文件 |
ibs=[bytes] | 指定一次性读入bytes个字节,即指定一个输入块大小为bytes个字节 |
obs=[bytes] | 指定一次性输出bytes个字节,即指定一个输出块大小为bytes个字节 |
bs=[bytes] | 同时指定一次性输入与输出bytes个字节 |
count=[number] | 指定ibs、bs的输入次数 |
案例35. 从/dev/zero读取1M字节,读取10次并存入到测试.txt
[root@kylin-ren-class ren]# dd if=/dev/zero of=测试.txt bs=1M count=10
记录了10+0 的读入
记录了10+0 的写出
10485760字节(10 MB,10 MiB)已复制,0.00277874 s,3.8 GB/s
[root@kylin-ren-class ren]# ll -hi
34158033 -rw-r--r-- 1 root root 10M 12月 31 16:28 测试.txt
3.1 压缩 (tar、zip)、解压缩(tar xf、unzip)
参数 | 说明 |
---|---|
-z | 使用zip压缩 |
-c | 创建文件 |
-v | 显示过程 |
-f | 指定文件 |
-tf | 查看压缩包中的各个文件 |
-C | 指定解压缩到某个目录 |
xf | 解压 |
--exclude | 排除某个文件,例如:--exclude=1.txt |
--exclude-from | 排除文件中指定的文件 |
案例36. 压缩1.txt、2.txt到名称为file.tar.gz中
tar zcvf file.tar.gz 1.txt 2.txt
案例37. 压缩1.txt、/opt目录下的a.txt为a.tar.gz
tar zcvd a.tar.gz 1.txt /opt/a.txt
案例38 . 压缩1.txt、/opt目录下的a.txt,将压缩好的压缩包放入/tmp目录下的test.tar.gz
tar zcvf /tmp/test.tar.gz 1.txt /opt/a.txt
案例39. 查看压缩包中的文件名称
tar tf a.tar.gz
案例40. 压缩当前目录所有文件为all.atr.gz
tar zcvf a.tar.gz ./*
案例41. 压缩除了1.txt的其他所有文件
tar zcvf all.tar.gz --exclude=1.txt /ren/*
案例42. 将要压缩的文件记录在压缩.txt
文件中,压缩除了压缩.txt
中的文件以外的文件
tar zcvf all.tar.gz --exclude-from=压缩.txt /ren/*
案例43. 将all.tar.gz解压到当前文件夹
tar xf all.tar.gz
案例44. 将all.tar.gz解压到/opt目录下
tar xf /ren/all.tar.gz -C /opt/
案例45. 打包所有的txt文件到all.zip中
zip all.zip *.txt
案例46. 解压all.zip文件
unzip all.zip
案例47. 解压all.zip到/opt/目录
unzip all.zip -d /opt/
3.2 ln软硬链接
3.2.1 软链接:
- inode号不同
- 软链接类似于Windows的快捷方式
- 删除软链接不印象源文件
- 删除源文件,链接无法使用
- 目录可以做软链接
- 软链接可以跨文件系统(磁盘)
参数 | 说明 |
---|---|
-s | 创建软连接 |
格式:
ln -s [源文件] [软连接]
作用:
1.代码升级变更
2.解决磁盘不够用
案例48. 创建1.txt的软连接为1.bak
ln -s 1.txt 1.bak
3.2.2 硬链接:
- 硬链接inode号相同
- 目录不能创建硬链接
- 硬链接不能跨文件系统使用
- 目录默认有俩硬链接
- 删除硬链接互不影响
格式:
ln [源文件] [硬链接]
作用:
可以备份重要的数据文件
案例49. 创建1.txt的硬链接为1.bak
ln [1.txt] [1.bak]
3.3 find文件查找
- 文件类型:普通文件、目录、软链接、块设备
find命令:
作用:按照需求查找不同的文件
需求:名称 类型 大小 时间
注意线上服务器避免从 / 路径开始查找,会消耗服务器资源
普通文件 | 目录 | 软链接 | 字节设备 |
---|---|---|---|
f | d | l | c |
命令 | 参数1 | 说明 | 参数2 | 说明 |
---|---|---|---|---|
find [源路径] | -type | 按照文件类型进行查找 | -maxdepth | 按照深度等级查找 |
-name | 按照文件名称进行查找 | -iname | 不区分大小写查找 | |
-size | 按照文件大小进行查找 | -and | 并且关系(默认) | |
-mtime | 按照时间进行查找 | -or | 或者关系 | |
-inum | 按照inode查找 |
find /[源路径] -size [参数] | [参数] | 说明 |
---|---|---|
10M | 等于10MB文件 | |
+10M | 大于10MB文件 | |
-10M | 小与10MB文件 |
3.3.1 xargs命令说明
xargs参数 | 说明 |
---|---|
-i {} | 将之前的结果传到花括号中,没有确认过程 |
-n[数字] | 指定每次传递给命令的参数数量 |
[!CAUTION]
案例135. 将文件内容使用xargs进行一列排列
[root@kylin-ren-class ren]# cat a.txt
你好 任鹏宇 我在学习 学的是运维 全名叫云计算运维 [root@kylin-ren-class ren]# xargs -n1 < a.txt
你好
任鹏宇
我在学习
学的是运维
全名叫云计算运维
-exec参数 | 说明 |
---|---|
-ok {} | 将之前的结果传到花括号中,有确认的过程 |
如果遇到无法删除的乱码文件的时候可以使用inode将其删除
stat [文件]
# 文件事件:
Access:文件的访问时间,cat less more head tail
Modify:文件的修改时间,vim echo
Change:文件的属性被修改的时间,大小 chmod chown
案例50. find按照文件名称查找文件
[root@kylin-ren-class ren]# find /ren -name "1.txt"
/ren/1.txt
案例51. find查找文件名称不区分大小写
[root@kylin-ren-class ren]# find /ren/ -iname "1.txt"
/ren/1.txt
/ren/1.TXT
案例52. find默认按照递归查找文件,查找文件或目录不区分大小写
[root@kylin-ren-class ren]# find /ren/ -iname "1.txt"
/ren/1.txt
/ren/1.TXT
/ren/txt/1.txt
/ren/txt/1.TXT
案例53. find按照深度等级查找
[root@kylin-ren-class ren]# find /ren/ -maxdepth 1 -name "1.txt"
/ren/1.txt
案例54. find查找名称为txt的目录
[root@kylin-ren-class ren]# find /ren -name "txt"
/ren/txt
3.3.2 按照文件类型进行查找
案例55. 按照文件类型进行查找:查找/ren目录下所有的普通文件
[root@kylin-ren-class ren]# find /ren -type f
/ren/vim.log
/ren/ifcfg-ens33
/ren/1.txt
/ren/2.txt
案例56. 按照文件类型进行查找:查找/ren目录下所有的目录
[root@kylin-ren-class ren]# find /ren -type d
/ren
/ren/txt
/ren/adir
/ren/bdir
案例57. 按照文件类型进行查找:查找/dev目录下所有的字节设备
[root@kylin-ren-class ren]# find /dev -type c
/dev/vcsa6
....
案例58. 按照文件类型进行查找:查找/etc目录下所有的软链接文件
[root@kylin-ren-class ren]# find /etc -type l
/etc/mtab
/etc/fonts/conf.d/31-cantarell.conf
...
3.3.3 find的并且或者关系
案例59.找到普通文件并且名字是“1.txt”的文件
[root@kylin-ren-class ren]# find /ren -type f -and -name "1.txt"
/ren/1.txt
/ren/txt/1.txt
案例60. 查找出名字为“adir”并且是目录
[root@kylin-ren-class ren]# find /ren -type d -name "adir"
/ren/adir
案例61. 找出/ren目录下所有的目录或者名字是1.txt的文件
[root@kylin-ren-class ren]# find /ren -type d -or -iname "1.txt"
/ren
/ren/1.txt
/ren/1.TXT
/ren/txt
/ren/txt/1.txt
/ren/txt/1.TXT
/ren/adir
/ren/bdir
案例62. 查找文件大小等于10M的文件
find ./ -size 10M
案例63. 查找文件小于10M的文件
find ./ -size +10M
案例64. 查找文件大于10M的文件
find ./ -size -10M
案例65. 企业中查找大文件,大于200M以上的文件(必会)
find /ren -size +200M
案例66. 查找大于5M且小于10M的文件
find /ren -size +5M -size -10M
案例67. 查找文件大于10M或者等于10M的文件
find /ren -size +10M -or -size 10M
案例68. 查找大于1M的目录
目录越大表示里面的文件数量越多
find /ren -type d -size +1M
3.3.4 按照文件修改时间查找
案例69. 查找文件修改时间是7天前的
find /ren -mtime -7
案例70. 查找文件修改时间是7天内的
find /ren -mtime +7
3.3.5 find结合其他命令结合
find将查询到的结果交给其他命令执行
方法1:使用 #注意xargs后面的命令别名会失效
方法2:使用exec处理 #注意exec不支持别名
方法3:使用 `` 或者 $()
案例71. find查找到文件后交给cat命令处理
find /ren -name "1.txt" | xargs cat
案例72. find查找到文件后交给rm命令处理
find /ren -name "1.txt" | xargs rm
案例73. 使用xargs指定输出三行三列内容
echo {1..10} | xargs -n3
案例74. find查找到的结果交给cp命令处理
find /ren -name "1.txt" | xargs -i cp {} /opt
#这里面的 -i 是xargs的参数,该参数是将其find查找的内容赋值到 {} 中再由cp处理
案例75. find查找到的结果交给mv命令处理
find /ren -name "1.txt" | xargs -i mv {} /opt
方法2:
案例76. 使用exec处理find的结果,之后使用cat命令进行查看
find /ren -name "1.txt" -exec cat {} \;
案例77. 使用exec处理find的结果,之后使用ls -l命令进行查看
find /ren -name "1.txt" -exec ls -l {} \;
案例78. 使用exec处理find的结果,之后使用cp命令进行处理
find /ren -name "1.txt" -exec cp {} /opt/ \;
# 注意这里的 \; 是转义符号,表示结束,是因为 ; 号在系统中有其他的含义,例如mkdir txt;cd txt;touch 2.txt,其中 ; 的意思就是将命令进行分隔执行。
方法3
案例79. 交给 cat 、ll 进行处理
cat `find /ren -name 1.txt"`
cat $(find /ren -name "1.txt")
ll `find /ren -name "1.txt"`
cat $(find /ren -name "1.txt")
案例80. 交给 cp 命令进行处理
cp `find /ren -name "1.txt"` /opt
cp $(find /ren -name "1.txt") /opt
案例81. 交给 rm 命令进行处理
rm -f `find /ren -name "1.txt"`
rm -f $(find /ren -name "1.txt")
案例82. 找出 /ren 目录下所有的普通文件并且打包成file.tar.gz
find /ren -type f | xargs tar zcvf file.tar.gz
tar zcvf file.tar.gz `find /ren -type f`
tar zcvf file.tar.gz $(find /ren -type f)
案例83. 打包的名称以当前的时间命名
find /ren -type f -name "*.txt" | xargs tar zcvf $(date+"%Y%m%d-%H%M%S").tar.gz
### 3.4 逻辑符号
```bash
" ;" 命令分隔符,不管是前面的命令 "成功" 还是 "失败" 都会继续往后执行
" && " 命令分隔符,前面的命令必须执行 "成功" 才会继续往后执行
" || " 命令分隔符,前面的命令必须执行 "失败" 才会继续往后执行
" $? " 将命令的结果返回,'0'为上个命令执行成功,'非0'为执行失败
3.5 alias命令别名
3.5.1 创建别名
格式:alias [别名]='[命令] [参数]'
例子:alias la='ls -a'
3.5.2 删除别名
格式:unalias [别名]
例子:unalias la
3.6 Linux校验文件唯一值
格式:md5sum [文件]
例子:md5sum 1.tar.gz
作用:防止文件被篡改
- 步骤
第一步:创建一个文件并写入内容
echo aaa > 1.txt
第二步:给当前的1.txt做一个md5校验值
[root@kylin-ren-class ren]# md5sum 1.txt
69df04bdca294784539975b0a9e278ca 1.txt
第三步:将md5值写入到一个文件中
md5sum 1.txt > md5.log
第四步:修改文件内容
echo bbb >> 1.txt
第五步:在执行md5sum校验时,校验值发生了改变
[root@kylin-ren-class ren]# md5sum 1.txt
67e5e47eccffb525be75ec86830d9acf 1.txt
案例92. 文件多如何做校验
md5 sum ./*.txt
案例93. 递归查询所有文件,然后校验
find ./ -type f | xargs md5sum
案例94. 使用md5sum -c校验过程
# 将校验1.txt的md5值写入到1.log中
[root@kylin-ren-class ren]# md5sum 1.txt > 1.log
[root@kylin-ren-class ren]# md5sum -c 1.log
1.txt: 成功
案例95. 使用find命令进行md5sum -c校验过程
# 注意:md5sum 1.txt > 1.log 如果在当前路径进行校验时,写入的1.log中,对应的路径是当前路径,如果进行-c检查校验时,因为路径不对,所以会检验错误,解决办法是将1.log中的路径写为绝对路径,或者重新写入md5值。也可以使用find命令进行查找文件,然后将find的结果给到md5sum处理,因为find返回的结果是文件的绝对路径。
find /ren -type f | xargs md5sum > /opt/1.log
3.7 lrzsz文件上传与下载
- rz (recive):接收
- sz (send):发送
缺点:只能传输单个文件,无法传输文件夹或者是零散文件
3.8 wget下载网络资源
- wget = www get
参数 | 说明 |
---|---|
-o [目的地址] [URL地址] | 将URL链接下的文件下载到指定为止 |
基础指令:grep、wc、管道符( | )、head、tail、less、more、sort、uniq、Linux软件安装、重定向及的更多相关文章
- Linux基础学习(6)--Linux软件安装
第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...
- 【基础】Linux软件安装方法
linux中wget .apt-get.yum rpm区别 wget 类似于迅雷,是一种下载工具, 通过HTTP.HTTPS.FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理 名字是Wo ...
- Linux基础第三章:Linux软件安装及yum本地库创建
一.Linux软件安装 1.Rpm包安装 2.yum仓库安装 二.yum本地库建立 一.Linux软件安装软件安装共2种安装方式,通过rpm包安装或通过yum仓库库安装. 1.Rpm包安装rpm:Re ...
- Linux 基础指令初识
Linux 基础指令初识 01. ls 指令 语法: ls [选项] [目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件.对于文件,将列出文件名以及其他信息 -a 列出目录下的所有文 ...
- linux基础指令以及权限管理
基础指令 #打印字符串 echo hello linux #将file1 和 file2粘合在一起,打印到标准输出流 cat file1 file2 标准输入输出 标准输入,stdin,即键盘.鼠标输 ...
- linux入门基础指令大全(汇总)
一.文件目录指令 1 pwd指令 pwd 显示当前所在的目录 2 ls指令 ls [选项] [目录或文件] 查看文件信息 ls -a 查看所有文件和目录,包括隐藏的 ls -l 以列表的方式显示 ll ...
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...
- Linux基础第六课——grep|awk|sort|uniq
管道符 | 前面的输出作为后面的输入 grep 可以理解为正则表达式 grep [参数] 文件名 -c 打印符合要求的行数 -v 打印不符合要求的行 -n 在输出符合要求的行的同时连同行号一起输出 - ...
- Linux基础(03)、常用基础指令和操作
目录 一.什么是Linux 二.常用基础指令 2.1.vi编辑 2.2.Linux文件类型 2.3.常用指令:增.删.改.查.其他 三.Linux的目录和权限 3.1.目录 3.2.权限 3.3.修改 ...
- linux 基础指令
df -h 查看磁盘空间 root@ubuntu:/etc# df -h Filesystem Size Used Avail Use% Mounted on udev 970M 0 970M 0% ...
随机推荐
- Qt音视频开发10-ffmpeg控制播放
一.前言 很多人在用ffmpeg做视频流解码的时候,都会遇到一个问题,如何暂停,如果打开的是本地视频文件,暂停你只需要停止解码即可,但是视频流你会发现根本没用,一旦你停止了解码,下次重新解码的时候,居 ...
- Solution Set -「AGC 013~015」C~F
目录 「AGC 013C」Ants on a Circle 「AGC 013D」Piling Up ^ 「AGC 013E」Placing Squares ^ 「AGC 013F」Two Faced ...
- 搭建springboot web系统
一.集成spring-data-jpa 我在实际项目中使用mybaties居多,但是个人喜欢spring-data-jpa,在 1. 添加依赖 <!-- 数据源依赖 --> <dep ...
- .NET Core GC标记阶段(mark_phase)底层原理浅谈
简介 C# 采用基于代的回收机制,并使用了更复杂的 链式跟踪算法 来识别对象是否为垃圾. GC触发的原因 截至到.NET 8,GC触发的原因有18种 enum gc_reason { reason_a ...
- SpringCloud(八) - 自定义token令牌,鉴权(注解+拦截器),参数解析(注解+解析器)
1.项目结构介绍 项目有使用到,redis和swagger,不在具体介绍: 2.手动鉴权和用户信息参数获取(繁杂,冗余) 2.1用户实体类 /** * Created On : 4/11/2022. ...
- Golang-函数5
http://c.biancheng.net/golang/func/ Go语言函数(Go语言func) 函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 func.函数名.参数列 ...
- ADALM-Pluto修改芯片类型为AD9364模式
ADALM-Pluto 使用芯片AD9363(325 MHz - 3.8 GHz),但可切换至 AD9364(70 MHz - 6 GHz)模式,此篇随笔将采用串口调试的方式将 Pluto 设置为 A ...
- Transaction rolled back because it has been marked as rollback-only问题解决
1.背景 在我们的日常开发中,经常会存在在一个Service层中调用另外一个Service层的方法.比如:我们有一个TaskService,里面有一个execTask方法,且这个方法存在事务,这个方法 ...
- SpringBoot利用@Async注解实现异步调用
前言:异步编程是让程序并发运行的一种手段,使用异步编程可以大大提高我们程序的吞吐量,减少用户的等待时间.在Java并发编程中实现异步功能,一般是需要使用线程或者线程池.而实现一个线程,要么继承Thre ...
- AI 如何重塑劳动力市场:基于 Claude 数据的深度分析
前言 本文翻译自 Anthropic 今天发布的 The Anthropic Economic Index ,经济指数报告,这份报告基于 Claude 的数据对目前的 AI 使用情况做了汇总. 引言 ...