Linux_第三关练习题_1,3

1.如何取得/etc/hosts 文件的权限对应的数字内容,如-rw-r--r-- 为 644,要求使用命令取得 644 这样的数字。

  解法a:使用sed+awk命令:

[[email protected] data]# stat /etc/hosts  #查看hosts详细信息,权限信息在第四行。  File: `/etc/hosts‘
  Size: 158           Blocks: 8          IO Block: 4096   regular file
  Device: 803h/2051d    Inode: 44          Links: 2
  Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
  Access: 2017-05-16 00:00:39.304004258 +0800  Modify: 2017-04-26 20:16:54.891279979 +0800
  Change: 2017-04-26 20:16:54.892279979 +0800[[email protected] data]# stat /etc/hosts|sed -n ‘4p‘  #使用sed取出第四行
  Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)[[email protected] data]# stat /etc/hosts|sed -n ‘4p‘|awk -F"[(0/]" ‘{print $3}‘  644  #使用awk指定分隔符为‘( 0 /‘;再打印分割后的第三列,完成需求。

  解法b:使用awk命令:

[[email protected] data]# stat /etc/hosts                          
  File: `/etc/hosts‘
  Size: 158           Blocks: 8          IO Block: 4096   regular file
  Device: 803h/2051d    Inode: 44          Links: 2
  Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
  Access: 2017-05-16 00:00:39.304004258 +0800
  Modify: 2017-04-26 20:16:54.891279979 +0800
  Change: 2017-04-26 20:16:54.892279979 +0800
[[email protected] data]# stat /etc/hosts|awk -F"[(0/]" ‘NR==4{print $3}‘  
  644  #使用awk指定分割符为‘( 0 /’;再打印出分割后的第四行的第三列内容,完成需求。

  解法c:使用sed+正则表达式:

[[email protected] data]# stat /etc/hosts|sed -n ‘4p‘
  Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
[[email protected] data]# stat /etc/hosts|sed -n ‘4p‘|sed -r ‘s#.*s: \(0|/-.*##g‘
  644  #使用正则表达式 .*s: \(0|/.* 匹配目标前后的字段,并把匹配的结果替换为空。

3.请执行命令取出 linux 中 eth0 的 IP 地址。

  解法a:使用sed+cut命令

[[email protected] data]# ifconfig eth0|sed -n ‘2p‘
          inet addr:10.0.0.200  Bcast:10.0.0.255  Mask:255.255.255.0
[[email protected] data]# ifconfig eth0|sed -n ‘2p‘|cut -d " " -f12    #指定空格为分隔符
addr:10.0.0.200
[[email protected] data]# ifconfig eth0|sed -n ‘2p‘|cut -d " " -f12|cut -d ":" -f2  #指定冒号为分隔符
10.0.0.200

缺点:使用多条管道,性能低下。

  解法b:使用awk+正则表达式

[[email protected] data]# ifconfig eth0|awk -F"[ :]+" ‘{print $4}‘  #指定分隔符为1个或多个空格或者一个或多个冒号;并打印出目标列。
Ethernet
10.0.0.200
fe80
RUNNING
77689
51859
txqueuelen
8943514

[[email protected] data]# ifconfig eth0|awk -F"[ :]+" ‘NR==2{print $4}‘  #定位到目标行。
10.0.0.200

优点:简洁、优雅。

  解法c:使用sed+正则表达式

[[email protected] data]# ifconfig eth0|sed -n ‘2p‘
          inet addr:10.0.0.200  Bcast:10.0.0.255  Mask:255.255.255.0
[[email protected] data]# ifconfig eth0|sed -n ‘2p‘|sed -r ‘s#.*r:|B.*##g‘
10.0.0.200 

----------------------------------------分割线---------------------------------

参考:

  1. 李泳宜-预习视频
  2. https://deerchao.net/tutorials/regex/regex.htm
时间: 2024-11-22 18:41:58

Linux_第三关练习题_1,3的相关文章

12.28 第三关练习题(下)

12.28 第三关练习题(下) 内容: 1.  默认awk不认识{} 加上--re-interval选项 2.  grep  -i   忽略大小写 3.  常用的DNS服务器 4.  企业案例:企业网站中病毒从发现到解决过程(6个步骤) 第1章 找出网卡配置文件中IPADDR的行 方法一: [[email protected] oldboy]# egrep '^IP.*[0-9]{2,}' /etc/sysconfig/network-scripts/ifcfg-eth0 -o IPADDR=1

第三关练习题 权限

1.1取出网卡中的DNS 1.2date 显示时间显示年月日周 %F:%Y- %m- %d 年-月-日%T:%H:%M:%S 时:分:秒%w (小写) 周几mtime修改时间atime 访问时间ctime 文件属性变化时间1.3ntpdate 自动同步时间#自动同步时间[[email protected] ~]# date Mon May 21 12:13:23 CST 2018[[email protected] ~]# ntpdate ntp1.aliyun.com 6 Aug 09:01:

【linux_笔记】Linux基础常识_1

笔记内容均为观看马哥的Linux培训视频教程所得,经本人整理后发布. 操作系统的稳定性: 操作系统本身是一个程序,他的指令和数据和其它应用程序存储在内存中,如果一个恶意的应用            程序,能够直接访问内核的话,能够直接跟内核交互,能够直接修改内核中的某些数据的话,这就        意味着系统的稳定性将无从得到保证,所以必须要有一种机制能够将应用程序和内核隔离开来,通        常情况下,比如说intel这一类的平台上他会提供所谓的保护机制,一般我们的cpu有4个级别,是同 

【linux_笔记】Linux_文件查找(find)详解&&特殊权限

学习资源来自:www.magedu.com 学习记录过程中难免出现错误,如有发现,还望大神们指出. 示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行.示例仅供参考(练习题在附录). 文件查找: locate(不常用):非实时,模糊匹配,根据全系统文件数据库进行查找,速度快:# updatedb, 手动生成文件数据库(非常耗时) find:实时,精确,支持众多查找标准,遍历指定目录中的所有文件完成查找,速度慢: 命令格式:find 查找路径 查找标准

[Lab4-1]抓路由练习题

[Lab4-1]抓路由练习题 问题1: 用ACL抓取172.18.0.0/16----172.29.0.0/16的路由 答案: 172.16.0.0 0.15.255.255,看上去很完美,但实际上框的范围有些大. R1(f0/0)-(f0/0)R2 R1上的接口地址: R1#sh ip int b Interface IP-Address OK? Method Status Protocol FastEthernet0/0 12.1.1.1 YES NVRAM up up Loopback0

VBS练习题

练习题: 1.输入3个数,输出其中最大的那个值. Option Explicit Dim intA,intB,intC intA=CInt(InputBox("请输入a:")) intB=CInt(InputBox("请输入b:")) intC=CInt(InputBox("请输入c:")) If intA>intB And intA>intC Then MsgBox "最大值是:"&intA ElseIf

hdu 1166:敌兵布阵(树状数组,练习题)

敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 37773    Accepted Submission(s): 15923 Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就

1007 数字逻辑练习题

1007: 数字逻辑练习题 时间限制: 1 Sec  内存限制: 128 MB提交: 264  解决: 59[提交][状态][讨论版] 题目描述 原码.反码.补码都是一样的,都是正数本身.  对于负数: 原码是符号位为 1,数值部分取绝对值的二进制. 反码是符号位为 1,其它位是原码取反. 补码是符号位为 1,其它位是原码取反,未位加 1.  输入一个 64bit 十进制整数,输出它的原码,反码,补码的 16 进制表示法 输入 有多组数据,每组数据一行,为一个 64bit 十进制整数,包含正负符

算法--三色排序练习题

三色排序练习题 第17节 三色排序练习题 有一个只由0,1,2三种元素构成的整数数组,请使用交换.原地排序而不是使用计数进行排序. 给定一个只含0,1,2的整数数组A及它的大小,请返回排序后的数组.保证数组大小小于等于500. 测试样例: [0,1,1,0,2,2],6 返回:[0,0,1,1,2,2] Java (javac 1.7) 代码自动补全 1 import java.util.*; 2 3 public class ThreeColor { 4 public int[] sortTh