zoukankan      html  css  js  c++  java
  • 综合案例分析(sort,cut,正则)

    1、    找出ifconfig “网卡名” 命令结果中本机IPv4地址

    分析:

    解释:要取出ip地址,首先我们可以先取出ip所在的行,即取行;可以结合head和tail,后面会有

    更好的方法去取行,取列当然会想到cut命令,但是此例中,我们要考虑分隔符(空格和冒号),

    因此tr的引入,会使题目变得更加简单。

    答:

    在这里小编仅提供一种比较好的方法。

    2.查出分区空间使用率的最大百分比值

    分析:

    解释;先附上一张df查看的结果,比较容易解释

    首先我们可以用df查看分区,很明显我们需要的是第5列,自然而然会考虑使用cut命令,但是第一列和第二列

    中间的空格长度不一,我们利用以往的经验会使用tr这个命令,可以将空格压缩,而且还能转化为自己想要的

    间隔符那么接下来就是排序了。

    答:

    这样就很容易知道分区的最大利用率了。

    3.查出用户UID最大值的用户名、UID及shell类型

    分析:

    解释:首先取出文件/etc/passwd中含有用户名.UID.以及shell类型的列,不难记忆,分别是1,3,7这三列,

    我们可以用cut命令将这三列取出,然后根据sort的功能,根据uid大小排序,这也是比较容易的。

    答:

    需要区分cut和sort的分隔符,cut的是 -d -f sort的是-t -k。

    4.查出/tmp的权限,以数字方式显示

    分析:

    解释:说到权限,最容易想到的自然是使用ls命令,很容查看到文件的权限,当然查看到的是用字符表示的,

    和题意是不符的,我们可能会想对字符做一个转化,但是以目前接触到的命令,还是无法解决,那么有没有

    更简单的方法,直接截取到数字表示的权限。还记得我们如何查看atime.mtime以及ctime,使用的是

    stat这个命令,使用它也可以查看到数字表示的权限哦。

    答:

    知道了stat这个命令可以查看到文件的权限,而且是用数字法表示的,剩下的只是截取的问题了,是不是值得

    去学stat这个命令,在这里还有更简单的方法,stat -c %a /tmp/一条命令就可以。

    5.统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序

    分析:

    解释:首先我们可以使用netstat命令查看远程连接的IP,由于对ip的统计,我们下一步把ip取出来,

    这个操作和案例一类似,这里就不深入研究了,再接着是排序,会使用sort命令也比较容易,统计数量

    当然是uniq了,这样一分析发现题目很简单呢,以后要学会分析题目,对困难逐个攻破,加油。

    答:

    这样就很容易得出答案了。

    第一次尝试在博客中添加思维导图,写的不好,多多见谅。

    6. 找出/etc/passwd中的两位或三位数

    分析:

     

    解释:首先你可以很容易表示出一位数,即[[:digit:]]或[0-9] ,那么表示2位或3位数也就很简单了,

    可以在后面加上\{2,3\},指定数字重复的次数,这样可以指定为2位数和3位数,这一题需要考虑的是锚定词首和词尾,

    如果不锚定,筛选的范围就会变大,4位数5位数也会被包含在内,因此需要加上\<.\>.

     答:

    7. 显示CentOS6上所有系统用户的用户名和UID

    分析:

    解释:

    首先利用cut命令截取/etc/passwd的第一列和第三列是比较容易的,接下来是从这些用户中筛选出系统用户,

    而筛选系统用户的条件是UID<500,如何用正则表达式表示出小于500的数,成为这一题的难点,不过我们先前知道

    表示一位可以用[0-9] 那表示一个范围呢?也就不是那么的困难了,\([0-9]{0,2}\|[1-4][0-9]{2},还有就是注意用户名可能

    是个数字而且在500以内,所以就必须限定范围和位置。

    答:

    表示0-499的数字还有别的方法,课余同学们可以好好探讨。

    8.添加用户bash、testbash、basher、sh、nologin(其shell

    为/sbin/nologin),找出/etc/passwd用户名同shell名的行。

    分析:

    解释:首先是关于创建用户的,在这里我们创建用户是没有困难的,关键是如何满足后面的条件,即用户名同shell名,

    前面和后面的相同我们自然会想到使用后向引用,但是用户名是未知的该如何表示,那当然使用(.*)了,但是 这里需要

    限制用户名的位置,所以就会知道^\(.*\)\>,这样第一步就完成了,中间的内容我们不关心,所以可以用.*替代,接着是结尾的处理,

    既然是后向引用,那么\1肯定少不了,关键是在什么位置匹配,那当然是行尾即\1$,还有一点要注意那就是只限制了\1在行尾,

    还要限制\1左边的位置,即加上\/将/作为左边的分界线。

    答:

    这是一题典型的后向引用的题目,要多实验,在实验中寻求更多的解决方法。

  • 相关阅读:
    基于注解的ssh框架之spring配置文件
    hdu 4770 Lights Against Dudely
    便捷开发工具(未完)
    solr 简单搭建 数据库数据同步(待续)
    Nginx对某个文件夹或整个站点进行登录认证的方法
    swift 单例模式
    POJ 2823 Sliding Window(单调队列)
    Android 网络下载图片
    一个表空间offline后alert日志报ORA-01135 和ORA-01110的问题
    [c#]分析器错误消息: 发现不明白的匹配。
  • 原文地址:https://www.cnblogs.com/jiesying/p/7295774.html
Copyright © 2011-2022 走看看