Python全栈之路Day8

初次编辑2017年9月24日 16:25:02

摘要
一. 固化命令
二. grep及正则表达式
三. Sed及正则表达式
四.awk及正则表达式
五. 其他命令
作业
今日总结

摘要

引用:海峰老师

  1. 固化命令的方式
  2. grep、sed下的正则表达式

一. 固化命令

  1. shell登陆

    • /etc/profile
    • /etc/bashrc
    • /root/.bashrc
    • /root/.bash_profile
    • /etc/profile.d/a.sh
  2. 非shell登陆
    • /root/.bashrc
    • /etc/bashrc
    • /etc/profile.d/a.sh

二. grep及正则表达式

  1. grep

    • -n :显示行号
    • -o :只显示匹配的内容
    • -q :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容
    • -l :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl ‘root‘ /etc
    • -A :如果匹配成功,则将匹配行及其后n行一起打印出来
    • -B :如果匹配成功,则将匹配行及其前n行一起打印出来
    • -C :如果匹配成功,则将匹配行及其前后n行一起打印出来
    • -c :如果匹配成功,则将匹配到的行数打印出来
    • -E :等于egrep,扩展
    • -i :忽略大小写
    • -v :取反,不匹配
    • -w:匹配单词
  2. 正则介绍
    • ^ :行首
    • $ :行尾
    • . :除了换行符以外的任意单个字符
    • .*:所有字符
    • * :前导字符的零个或多个
    • + :前导字符一个或多个
    • ? :前导字符零个或一个
    • x{m} :x出现m次
    • x{m,} :x出现m次至多次(至少m次)
    • x{m,n} :出现m次至n次
    • []:字符组内的任一字符
    • [^]:对字符组内的每个字符取反(不匹配字符组内的每个字符)
    • ^[^]:非字符组内的字符开头的行
    • \-:只能放在结尾
    • [a-z]:小写字母
    • [A-Z]:大写字母
    • [a-Z]:小写和大写字母
  3. 正则表达式与通配符
    • 通配符:与命令搭配使用
    • 正则表达式:一般用于文本处理

三. Sed及正则表达式

  1. sed语法

    • sed [options] ‘command‘ in_file[s]

      • options 部分

        • sed -n ‘动作‘ :静默
        • sed -e ‘动作‘ :多个规则
        • sed -i ‘动作‘:直接修改读取内容并写入
        • sed -f ‘动作‘ :将动作写在一个文件内;
      • command 部分
        • ‘[地址1,地址2] [函数] [参数(标记)]‘
        • 定址的方法 1.数字 2.正则
        • 函数
          • 增删改
          • a 后插
          • c 替换
          • i 前插
          • d 删除
          • 输入输出
          • p 打印匹配的行 一般和 -n 参数连用,以屏蔽默认输出
          • r 从文件中读入
          • w 写入到文件中
          • s 字符串替换 s/old/new/[g] (g表示一行全部修改)
          • ():保存被匹配的字符 以备反向引用\N时使用 最多9个标签 标签顺序从左至右

四.awk及正则表达式

  1. awk语法:awk [options] ‘commands‘ files

    • -F 定义字段分隔符,默认的分隔符是连续的空格或制表符,使用option中的-F参数定义间隔符号
    • 用2,$3等的顺序表示files中每行以间隔符号分隔的各列不同域
    • NF变量表示当前记录的字段数
    • NR 表示AWK读入的行数
    • 行处理:定址 命令
      • 定址方法: 正则,变量,比较和关系运算
      • ~ !~:匹配正则或不匹配,正则需要用 /正则/ 包围住
    • -v 定义变量并赋值 也可以借用次方式从shell变量中引入
      • username=root
      • awk -v var=$username -F: ‘$1 == var{print $1,NR,NF}‘ /etc/passwd

五. 其他命令

  1. cat 文件 | sort | uniq:文件排序去重
  2. cut -d分隔符 -fm,n:处理文件以分隔符切割取第m n部分
  3. du -sh:统计文件大小
  4. find 路径 -type f:按照类型查找普通文件
  5. find 路径 -name 文件名 :按照名字查找文件
  6. find 路径 -size +30M:找出大于30M文件
  7. find 路径 -size +10M -size -30M:找出大于10M小于30M的文件
  8. find / -size +2M -type f -name *.txt

作业

  1. 正则表达式及字符处理

    目标文件/etc/passwd,使用grep命令或egrep

    1. 显示出所有含有root的行:
    2. 输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容:
    3. 显示出有多少行含有nologin。
    4. 显示出那些行含有root,并将行号一块输出。
    5. 显示出文件中
    6. 新建用户

      abominable

      abominate

      anomie

      atomize

      编写正则表达式,将他们匹配出来

      egrep ‘a.omi(nabl|nat|z|)e‘ /etc/passwd

    7. 建四个用户

      Alex213sb

      Wpq2222b

      yH438PIG

      egon666

      egon

      过滤出用户名组成是字母+数字+字母的行

      [[email protected] ~]# egrep ‘^[a-Z]+[0-9]+[a-Z]+‘ /etc/passwd

    8. 显示出/etc目录下所有包含root的文件名
    9. 过滤掉/etc/ssh/sshd_config内所有注释和所有空行

      grep -v ‘^#‘ /etc/ssh/sshd_config |grep -v ‘^ *$‘

今日总结

时间: 2024-11-08 20:59:41

Python全栈之路Day8的相关文章

Python全栈之路系列之赋值与运算符

Python全栈之路系列之赋值与运算符 在继续下面的文章之前我们先来浏览一下Python为我们提供的几种运算符,定义两个变量,分别是a和b,a的值是10,b的值是20. 算术运算符 运算符 描述 实例 + 加,两个对象相加 a+b=30 - 减,两个对象相减,可能会得到负数 a-b=-10 * 乘,两数相称或是返回一个被重复若干次的字符串 a*b=200 / 除,两个对象相除 b/a=2 % 取膜,返回除法的余数 b%a=0 ** 幂,返回x的y次幂 a**b=10000000000000000

Python全栈之路_01

Python全栈之路 前言:因为Python主要是在Linux和widows操作系统上使用所以,首先就介绍Pyhton在这两个平台上的安装和一些基础知识 Linux系统下安装Pyhton 1.工具 虚拟机:VMware workstation 12 Pro Linux系统:CentOS 64 位 VMware虚拟机安装很简单就不说明了. 在虚拟机安装CentOS 需要注意的是: 运行内存分配1G左右即可 可以开机按F2进入bios界面boot目录下选择启动设备选择Hard Drive为优先启动位

python 全栈之路

python 全栈之路 一. python 1. Python基础知识部分 Python Python那点事 Python windows和linux下 安装 Python2,Python3 Python 开启入坑之路 Python 基本数据类型 Python 那些零碎的知识点 Python -函数 Python - 面对对象 Python - 模块 Python - 文件操作 Python - python中经常踩得的坑 2. Python - 网络编程 3. Python - 并发编程 二.

Python全栈之路----常用模块----hashlib加密模块

加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值. 简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数. HASH主要用于信息安全领域中加密算法,他把一

Python全栈之路----函数----返回值

函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): print('----注册学生信息----') print('姓名:',name) print('年龄:',age) print('国籍:',country) print('课程:',course) if age > 22: return False else: return True registriat

Python全栈之路系列----之-----面向对象4接口与抽象,多继承与多态)

接口类与抽像类 在python中,并没有接口类这种东西,即便不通过专门的模块定义接口,我们也应该有一些基本的概念 编程思想 归一化设计: 1.接口类 不实现具体的方法,并且可以多继承 2.抽象类 可以做一些基础实现,并且不推荐多继承 编程的几类原则: 开放封闭原则:对扩展示开放的,对修改是封闭的依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象:抽象不应该应该依赖细节:细节应该依赖抽象.换言之,要针对接口编程,而不是针对实现编程接口隔离原则:使用多个专门的接口,而不使用单一的总接口.

python全栈之路【四】测试 2

1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain'] li = ['alex', 'eric', 'rain'] v = "_".join(li) print(v) alex_eric_rain 2.查找列表中元素,移除每个元素的空格,并查找以 a 或 A 开头 并且以 c 结尾的所有元素. li = ["alec", " aric", "Alex", &quo

Python全栈之路Day1(补)

2017年9月18日 0:20:28 摘要一.计算机硬件介绍二.计算机启动流程作业今日总结 摘要 引用:东方越迁blog 因前期笔记整理较差,故重新开始整理笔记并且每日上传至blog. 一.计算机硬件介绍 概念:由一条总线把CPU.内存和I/O设备串联起来并与其他设备进行通信.CPU负责运算,内存用于储存临时变量,硬盘用于储存数据 处理器CPU(寄存器+控制器) 取指令->解码->执行,直到程序结束. 通用寄存器:用来保存变量和临时结果 程序计数器:它保存了将要取出的下一条指令的内存地址.在指

Python全栈之路系列----之-----re模块(正则表达式)

正则表达式并不是python中的一部分,正则表达式适用于处理字符串的强大工具,拥有自己独特的语法,以及独立的处理引擎.在提供了正则表达式的语言中都它的语法是都一样的 re模块本质上和正则表达式没有一毛钱的关系,re模块是python提供给我们方便操作正则的工具而已 正则表达式概念 使用单个字符串规则来描述匹配一系列符合某个句法规则的字符串 是对字符串操作的一种逻辑公式 应用场景:处理文本和数据 正则表示是过程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功:否则匹配失败 正