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 软链接:
  1. inode号不同
  2. 软链接类似于Windows的快捷方式
  3. 删除软链接不印象源文件
  4. 删除源文件,链接无法使用
  5. 目录可以做软链接
  6. 软链接可以跨文件系统(磁盘)
参数 说明
-s 创建软连接
格式:
ln -s [源文件] [软连接] 作用:
1.代码升级变更
2.解决磁盘不够用

案例48. 创建1.txt的软连接为1.bak

ln -s 1.txt 1.bak
3.2.2 硬链接:
  1. 硬链接inode号相同
  2. 目录不能创建硬链接
  3. 硬链接不能跨文件系统使用
  4. 目录默认有俩硬链接
  5. 删除硬链接互不影响
格式:
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链接下的文件下载到指定为止

基础命令:dd、tar、ln、find、逻辑符号、alisa别名、md5sun校验、lrzsz文件上传下载、wget的更多相关文章

  1. MAC实用操作记录---使用命令执行文件上传下载解压打包与解包

    1.使用命令执行文件上传下载 https://www.cnblogs.com/sugartang/p/12743470.html 2.提示:打不开xx软件,在 OS X 安装软件打不开提示" ...

  2. linux CentOS 安装rz和sz命令 lrzsz 实现windows和linux之间的文件上传 下载

    https://blog.nbhao.org/1902.html https://bbs.csdn.net/topics/391989523 https://www.cnblogs.com/zhoul ...

  3. SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)

    SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...

  4. linux常用命令(二)文件上传下载及软件安装

    1.上传下载工具安装 (1)WINDOWS 到linux的文件上传及下载: windows下打开secureCRT,通过SSH连到⾄至远程linux主机:上传下载工具安装命令:yum -y insta ...

  5. linux命令行模式下对FTP服务器进行文件上传下载

    参考源:点击这里查看   1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码 ...

  6. Linux文件上传下载sz 和 rz 命令

    windows系统和linux系统之间文件上传和下载用到 rz 和 sz 命令.rz: 上传文件sz:下载文件 先检查是否安装rz,sz模块 安装rz,sz 模块yum search sz安装yum ...

  7. 文件上传下载,命令之wget / curl / which / sort / uniq / cut / wc /tr /sed

    目录 命令 1.文件的上传下载 2.从外网下载文件wget 3.curl文件下载 4.查找命令which 5.字符处理命令-排序sort 6.字符处理-去重uniq 7.字符处理-截取cut 8.字符 ...

  8. Linux系统下安装rz/sz命令及使用说明(文件上传下载)

    1.安装软件 yum -y install lrzsz 2.本地文件上传命令 rz -bye 执行该命令后,在弹出框中选择要上传的文件即可 3.下载文件到本地 sz filename

  9. 远程文件传输命令•RHEL8/CentOS8文件上传下载-用例

    scp协议 scp [options] [本地用户名@IP地址:]file1 [远程用户名 @IP 地址 :] file2 options: -v 用来显示进度,可以用来查看连接,认证,或是配置错误. ...

  10. ftp文件上传下载命令

    介绍:从本地以用户wasqry登录的机器1*.1**.21.67上通过ftp远程登录到ftp服务器上,登录用户名是lte****,以下为使用该连接做的实验.  查看远程ftp服务器上用户lte**** ...

随机推荐

  1. [转]Makefile教程

    从0开始教你编写Makefile文件 跟我一起写Makefile-陈皓2005.pdf:链接: https://pan.baidu.com/s/1kKPfosCiPQONyZ1oeCmuAA 提取码: ...

  2. 携程技术分享:亿级流量的办公IM及开放平台技术实践

    本文由携程技术Jim分享,原题"日访问过亿,办公IM及开放式平台在携程的实践",下文进行了排版和内容优化. 1.引言 携程内部的办公IM项目最早在2016年立项,经历了初期简单办公 ...

  3. 微信小游戏直播在Android端的跨进程渲染推流实践

    本文由微信开发团队工程师"virwu"分享. 1.引言 近期,微信小游戏支持了视频号一键开播,将微信升级到最新版本,打开腾讯系小游戏(如跳一跳.欢乐斗地主等),在右上角菜单就可以看 ...

  4. flutter 的一些概念三

    本文同步发布于公众号:stringwu的互联网杂谈:flutter 的一些概念三 1 Stream 与 Future的关系 Stream 和 Future 都是 Flutter 中常用的异步编程模型, ...

  5. MSXML2.DOMDocument加载Internet资源

    MSXML2.DOMDocument加载Internet资源 The information in this article applies to: Microsoft XML, versions 2 ...

  6. AQS源码深度剖析,大厂面试必看!

    AQS(AbstractQueuedSynchronizer)是Java众多锁以及并发工具的基础类,底层采用乐观锁,大量采用CAS操作保证其原子性,并且在并发冲突时,采用自旋方法重试.实现了轻量高效的 ...

  7. SequoiaDB数据库-new数据库

    随着企业中日益复杂与多变的需求,以及迅速扩展带来的海量数据的业务,IT部门需要将越来越多的信息提供给用户,同时在现今的全球经济背景环境下,IT部 门还需要在提供高效服务的同时,降低其设备与程序维护成本 ...

  8. jdk并发包源码解析

    一.总括 java底层并发包,笔者将该包大致分成3个层次. 1.基础依赖: 共享变量volatile:有利于线程可见性.Unsafe类:CAS(Compare and Swap)比较并交换,用于并发下 ...

  9. KafKa动态分组ID

    背景说明:做这个的原因主要是因为懒,KafKa监听没有独立项目出去,由于KafKa没有组内广播模式,这就造成了一个问题:项目多处启动的时候,就只有一个地方能接收信息.这个时候就要手懂修改分组ID了. ...

  10. 创建json文件上传下载ftp

    package org.jeecg.modules.util; import java.io.File; import java.io.FileOutputStream; import java.io ...