/images/hugo/avatar.png

8.1 磁盘使用与文件系统管理介绍

磁盘使用与文件系统管理介绍

/images/linux_mt/linux_mt.jpg

本章我们开始学习 Linux 磁盘和文件系统管理,这部分内容与操作系统原理,文件系统,磁盘硬件密切相关,内容多而且难。但是对Linux 运维而言,我们需要了解的仅仅是其中的基本概念以及如何使用命令管理分区和文件系统。因此将本章分为两个部分:

7.6 awk使用与实战

sed命令应用与实战

/images/linux_mt/linux_mt.jpg

Linxu 上有文本处理三剑客grep,sed,awk。本节我们来学习最后一个命令 awk 的使用。

awk 算得上是一门编程语言,这个编程语言内有包括变量,条件判断,循环,命令等诸多语言特性。我们将按照类似 bash 脚本的方式,从变量开始逐一讲解 awk 的使用。内容概述如下:

7.5 sed命令应用与实战

sed命令应用与实战

/images/linux_mt/linux_mt.jpg

Linux 中有文本处理三剑客

  • grep, egrep, fgrep:文本过滤器
  • sed:Stream EDitor,流编辑器,行
  • awk:文本格式化工具,报告生成器

前面我们已经介绍了grep 命令的使用,本节我们来讲解 sed 。sed 是基于行的文本处理工具,其处理文件使用的命令与 vim 命令行很相似由,地址定界+编辑命令组成,地址定界用于铆定要处理的行,编辑命令指定编辑操作。相比于 vim,sed 无需将整个文本加载至内存,因此 sed 更适用于文件太大而不便使用 vim 打开的情景。本节我们会详细介绍 sed 命令的使用,内容如下:

7.4 文本处理命令

文本处理命令

/images/linux_mt/linux_mt.jpg

1. 文本处理工具

tr

tr [OPTION]... SET1 [SET2]

  • 作用:
    • 将输入中 SET1中的每个字符替换SET2中的每个字符,字符是顺序替换
    • 如果SET1的字符长度大于SET2,那么将SET1中多出来的字符用SET2中的最后一个字符替换
  • 参数:
    • -t: 将SET2中的每个字符替换SET1中的每个字符,字符字符顺序1对1替换,无论SET1还是SET2哪个长,只替换对应的字符,多出的不替换。
    • -c: 取反操作,取数据流中SET1中指定字符的补集。
    • -d: 删除SET1中指定的字符,这里没有SET2
    • -s: 将SET1中指定的连续的连续重复的字符用单个字符替代,可以使用-s ‘\n’删除空行。
  • 字符编码集:
    • [:alpha:]:字母,可以用来替代’a-zA-Z’
    • [:lower:]:小写字母,可以用来替代’a-z'
    • [:upper:]:大写字母,可以用来替代’A-Z'
    • [:digit:]:数字,可以用来替代'0-9'
    • [:alnum:]:字母和数字,可以用来替代’a-zA-Z0-9'
    • [:space:]:空白字符
    • [:punct:]:标点符号
    • [:xdigit:]:十六进制字符
    • [:cntrl:]:控制(非打印)字符
    • [:print:]:可打印字符
    • [:graph:]:图形字符

wc

wc [-clw] [FILE...]

7.3 grep命令与正则表达式

grep命令与正则表达式

/images/linux_mt/linux_mt.jpg

Linux 中有文本处理三剑客grep,sed,awk,它们都会用到正则表达式。bash 中正则表达式分为基础正则表达式和扩展的正则表达式。本节我们来学习 grep 命令与基本的正则表达式。

类元编程

本章内容:

  • 类工厂
    • 元类
    • exec 函数
  • 类装饰器
  • 导入时和运行时
  • 类作为对象

1. 对象之间的关系

元类:

  • 定义: 创建类的类,类是元类的实例
  • 特性: 超类的元类会被子类继承,因此元类可以定制类的层次结构

1.1 类,object,type:

/images/fluent_python/metaclass_object.png