Linux系统及操作 (03)

Linux系统及操作 (02)

归档与压缩

归档

  • 将许多零散的文件整理为一个文件

    • 文件总大小基本不变

压缩

  • 按照某种算法实现减小文件占用的空间

    • .gz ==> gzip,gunzip (压缩速度最快,压缩比例小,最常用)
    • .bz2 ==> bzip2,bunzip2 (压缩速度较快) {速度不绝对!!!!}
    • .xz ==> xz,unxz (压缩最慢,压缩比例最高)
  • 恢复时按照对应算法的逆算法即可解压

tar 命令

  • tar ==> 集成备份工具。( tar 打包/解包 ,制作/解放压缩包 )

  • 格式:[ tar 选项 /路径/压缩包名字 /被归档压缩的数据 … ] (无路径时,Linux系统默认是当前路径)

  • [ -c ] : 创建归档,动作为创造。

  • [ -f ] : 指定归档文件名称,必须在所有选项(命令符选项)的最后

    • [ -c ]与[ -f ]经常一起使用**[ -cf ]**,创建一个有名字的归档压缩包。( -f 一定在最后面)
    • 归档压缩后的名字需要提供足够的信息,起名为**[ xxxxx.tar.gz ], [xxxxx.tar.bz2]** 推荐。
    • 压缩后的文件名在Linux系统里的显示为红色
  • [ -z , -j , -J ] : 调用 .gz、.bz2、.xz 格式工具进行处理。

    • [ -z ]与[ -j ]比较常用
    • [ -zcf ] , [ -jcf ] …
    • 例子 :[ tar -zcf /opt/a.tar.gz /opt/1.txt /opt.a ]
      • -zcf 作用 [.gz] 格式压缩 [ /opt/1.txt ] 与 [ /opt/a ] 到 /opt 下的 a.tar.gz 文件
  • [ -C ] : 指定路径

  • [ -x ] : 释放归档。解包

    • 格式 :tar 选项 /路径/压缩包 选项 /释放位置 (无释放位置时,默认当前位置,注意重名文件)
    • [ -x ] 和 [ -f ] 一起用 [ -xf ]
    • 例子 : tar -xf /opt/a.tar.gz -C /opt/a 解压 a.tar.gz 到 /opt 下的 a 目录
      • ​ 注意 [ -C ] 的大写
  • [ -t ] : 显示/查看归档中的文件内容/清单

    • 例子 : tar -tf /opt/a.tar.gz 查看 a.tar.gz 压缩文件的内容

      • 显示内容 : opt/1.txt opt/a/
    • tar 命令在压缩时会把对应的绝对路径(上例中的/opt/a.tar.gz/opt/1.txt)也压缩到包里

      • 无绝对路径的 tar 命令压缩如下:

      • 格式 : [ tar -zcf /路径/压缩包 -C /被压缩路径 被压缩文件名]

        ​ 例子 :tar -zcf /opt/a.tar.gz -C /opt 1.txt a

        ​ 把路径 /opt 下的 1.txt 和 a 目录压缩到 a.tar.gz

  • 当无需压缩只需要归档时, tar 命令格式和压缩相同,选项无需选择压缩算法直接用**[ -cf ]**.

  • 归档文件需要压缩时 [ gzip/bzip2 压缩文件 ]

    • 注意:只归档无压缩时,原文件会消失(移动到归档文件内)。

重定向操作

  • Linux系统的命令输出默认是输出到屏幕(终端)中

  • 重定向 :将命令的输出(屏幕显示信息),写入到指定文件中

  • 有两种重定向输出的方式

    • 覆盖重定向 :[ 命令行 > 指定文件]

      • 例子 : hostname > /opt/1.txt
        • ==> 1.txt 中的内容为 < szhou 192.168.1.143 >
    • 追加重定向 :[ 命令行 >> 指定文件]

      • 例子 : hostname >> /opt/1.txt

        • ==> 1.txt 中的内容为 < szhou 192.168.1.143

          ​ szhou 192.168.1.143 >

  • echo 命令 :输出用命令符。

    • 格式 :[ echo 输出内容 ] (直接将输出内容显示在终端屏幕上,可以作为命令输出使用)
    • 与重定向连用 [ echo 输出内容 > 指定文件 ] / [ echo 输出内容 >> 指定文件 ]
  • 用重定向清空文件内容

    • [ > /opt/1.txt ] 覆盖重定向,用NULL输出覆盖掉文件内容 (注意安全)

管道( 操作符 | )

  • 操作符号 [ | ] :在同一命令行中,将前面的命令输出传递给后面的命令,同时作为后面命令的参数

  • 运行无前后关系,后面命令无参数。

  • 例子 :[ head -3 /opt/1.txt | tail -1 ]

    • 把 /1.txt 的前三行作为命令**[ tail -1 ]** 的参数,最终输出 /1.txt 的前三行中的倒数第一行。
  • 例子 :[ ifconfig | head -2 ]

  • 把命令 ifconfig 的显示结果作为命令**[ head -2 ]** 的参数,最终输出 ifconfig 的前两行。

  • 无参数也可以运行的命令符不支持管道。 例子 : [ -ls ]

  • 双参数或多参数的命令符文不支持管道。 例子 : [ mount ] , [ cp ] , [ mv ]

  • 交互式命令符不支持管道。 例子 : [ vim ]

  • 重定向可以使用 。 例子 :[ ifconfig | head -2 > /opt/1.txt ]

    ​ 把 ifconfig 的前两行覆盖写入到 /opt/1.txt 中。

  • grep 命令符可以使用管道,达到双重过滤的效果。

    • 例子 : [ grep szhou /opt/1.txt | grep -v ^$ ]

      ​ 把 /opt/1.txt 中存在 szhou 并且不是空行的文字行过滤(输出)出来

  • 提取有效信息 [ grep -v ^# /opt/1.txt | grep -v ^$ > /opt/2.txt ]

    ​ 把 /opt/1.txt 中的有效信息(去掉#注释和空行)覆盖写入 /opt/2.txt中

  • 管道与 less 命令符连用,可以方便查看命令输出。

    ​ 例子 : [ ifconfig | less ]

  • bc 计算器 [ echo 1+1 | bc ] 输出是 2 。

find 精准查找

  • 根据条件递归查找对应的文件。查找所有符合条件的数据对应路径。

  • 只有给予的路径中所有数据搜索完毕后结束。

  • 格式 : find [ 目录 ] [ 条件1 ] (无目录情况,以当前目录为准)

常用的条件表示

[ -type 类型 ]
  • -type f 文件 [ find /boot -type f ]

  • -type d 目录 [ find /boot -type d ]

  • -type l 快捷方式 [ find /sbin -type l ]

  • [ find /boot -type f | cat -n ] 标记行数。

  • [ wc ] 命令符,表示统计。[ wc -l ] 统计行数。

  • [ find /boot -type f | wc -l ]

[ -name “文档名称” ]
  • [ find /etc -name “passwd” ]* /etc 下查找就叫”passwd“的文件
  • [ find /etc -name “.*” ] /etc 下查找隐藏文件
  • [ find /boot -name “* 4.18.0*” ] /boot 下含有4.18.0的文件
  • [ -name ] [ -type ] 可以联合使用
    [ find /etc -name “passwd” -type f ]
  • [ -name ] [ -type ] 中间加上 [ -o ] 表示或者(OR)
    [ find /etc -name “passwd” -o -type f ]
  • [-iname] 可以忽略大小写
[ -size +/- k/M/G ]
  • [ -size + ][ -size - ] [ k / M / G ]
    • 表示文件大小大于或者小于对应单位
      [ find /boot -size +300k ] 在 /boot 中查找大小超过 300k 的文件
      [ find /boot -size +10M ] 在 /boot 中查找大小超过 10M 的文件
      [ find /boot -size -2G ] 在 /boot 中查找大小小于 2G 的文件
[ -user 用户名 ]
  • 数据的所有者。(Linux系统认为,所有文件都是各个用户创建的)
  • [ ls -l ] 可以查看对应文件的用户名
  • root 管理员模式下大部分都是 root 为数据所有者(/home/ 下的各个用户文件除外)
  • find 命令是寻找硬盘数据 。/proc 是内存的数据,无法用find 查找
    [ find /home -user szhou ]
    [ find /opt -user root ]
[ -mtime +/-修改时间 ]
  • 根据数据的最终修改时间查找文件(所有的时间都是过去时间)
  • [ ls -l ] 可以查看最终修改时间(只有修改了内容才会变动时间)
  • [ -mtime +90 ] 表示 90天之前的文件 [ find /opt -mtime +90]
  • [ -mtime -90 ] 表示 90天之内的文件 [ find /opt -mtime -90 ]
  • 业内认为, 90天(3个月) 是判断一个文件陈旧与否的判断 ,超过 90天没有更新的文件需要维护清理。
  • /var :经常变化的数据会存放于此。

find 的高级使用 :

  • 找到符合条件的数据,并且进行其他命令符的操作

    • 简单的操作可以使用管道 [ | ] 进行。(单命令类)

    • [ -exec ] 表示开始额外命令符操作

    • [ /; ] 表示额外命令符结束

    • {} 表示前面find查找的结果,作为额外命令符的参数

      • [ find /opt -mtime -90 -exec cp {} /opt/1.txt ; ]

        ​ 把/opt中最终修改时间在90天以内的文件,复制到 /opt/1.txt 中

      • *[ find /etc -name "tab" -type f -exec cp {} /opt/a ; ]

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值