0805作业

课堂练习

1.找出ifconfig 命令结果中本机的所有IPv4 地址

  ifconfig|tr -cs '[0-9].' '\n'|sort -ut '.' -k3

blob.png

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

  df|tr -s ' '|cut -d" " -f5|sort -n|tail -1

blob.png

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

  getent passwd |sort -n -t: -k3|cut -d: -f1,3,7|tail -1

blob.png

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

  如果无特殊权限位,将rwx—>421,权限位每三个求和

  str=`ll -d /tmp|cut -d " " -f1|cut -c2-10|tr rwx- 4210`

echo $(echo ${str:0:1}+${str:1:1}+${str:2:1}|bc) $(echo ${str:3:1}+${str:4:1}+${str:5:1}|bc) $(echo ${str:6:1}+${str:7:1}+${str:8:1}|bc)|tr -d [:space:]

输出755

 

 

stat /tmp|sed -n 4p|cut -d: -f2|cut -d" " -f2|grep [[:digit:]]|cut -d/ -f1|cut- c3-6

blob.png

stat /bin/cat |head -4|tail -1|tr " " "\n"|head -n2|tail -1|tr -cd '[:digit:]'

blob.png

stat /tmp –c %a

blob.png

 

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

netstat -nt|tr -s " "| cut -d" " -f5|grep "[0-9]"|cut -d: -f1|uniq -c|sort

blob.png

 

6.显示/proc/meminfo 文件中以大小s 开头的行;( 要求:使用两种方式)

cat /proc/meminfo |grep -i ^s.*

cat /proc/meminfo |grep -e ^s.* -e ^S.*

grep '^[sS].*' /proc/meminfo

blob.png

7.显示/etc/passwd 文件中不以/bin/bash 结尾的行

cat /etc/passwd|grep -v /bin/bash$

blob.png

8.显示用户rpc 默认的shell 程序

getent passwd rpc|cut -d: -f7 

grep '^rpc\>' /etc/passwd|cut -d: -f7

blob.png

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

cat /etc/passwd|grep -w '\b[1-9][0-9]\{1,2\}\b'

blob.png

10.显示/etc/grub2.cfg 文件中,至少以一个空白字符开头的且后面存非空白字符的行

cat /etc/grub2.cfg |grep "^[[:space:]]\+.*[^[:space:]]"

blob.png

11.找出"netstat -tan" 命令的结果中以'LISTEN' 后跟0 1或多个空白字符结尾的行

netstat -tan|grep 'LISTEN[[:space:]]*$'

blob.png

12.添加用户bash testbash basher 以及nologin( shell /sbin/nologin),

而后找出/etc/passwd 文件中用户名同shell

useradd bash; useradd testbash; useradd basher

useradd –s /sbin/nologin nologin

cat /etc/passwd|grep '^\<\(.*\)\>.*/\1$'

blob.png

13.显示当前系统root mage wang 用户的UID 和默认shell

grep -E "^(root|wang|mage)\b" /etc/passwd|cut -d: -f3,7

blob.png

14.找出/etc/rc.d/init.d/functions 文件中行首为某单词(包括下划线) 后面跟一个小括号的行

cat /etc/rc.d/init.d/functions |egrep "^[[:alnum:]_]+\(\)"    —最后括号转义

blob.png

 

15.使用egrep 取出/etc/rc.d/init.d/functions 中其基名

echo "/etc/rc.d/init.d/functions" |egrep -o "[^/]+/?$"

blob.png

注意对比下面

blob.png

16.使用egrep 取出上面路径的目录名

echo "/etc/rc.d/init.d/functions" |egrep -o "(/.*/)"

blob.png

17.统计以root 身份登录的每个远程主机IP 地址的登录次数

last|grep -E -o "^root\>.*([[:digit:]]+\.)[[:digit:]]+"|tr -s " "|cut -d" " -f1,3|sort|uniq –c

blob.png

18.利用扩展正则表达式分别表示0-9 10-99 100-199200-249 250-255

grep -E "[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]" file

 

19.显示ifconfig 命令结果中所有IPv4 地址

ifconfig|grep -E -o "(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])"

blob.png

 

作业

1.取本机ip地址

ifconfig | egrep -o '([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'

blob.png

blob.png

2.取各分区利用率的数值

blob.png

3.统计/etc/init.d/functions 文件中每个单词出现的次数,并按频率从高到低显示

cat /etc/init.d/functions |tr -c '[:alpha:]' '\n'|sort|uniq –c

blob.png

4./etc/rc.d/init.d/functions 取目录名

blob.png

/etc/rc.d/init.d/functions/取目录名

blob.png

5.正则表达式表示身份证号

cat identify |egrep -o "[[:digit:]]{18}|[[:digit:]]{17}X|[[:digit:]]{15}"

blob.png

6.正则表达式表示手机号

cat phone |egrep -o "[1-9][0-9]{10}"

blob.png

7.正则表达式表示邮箱

cat mail |egrep -o "[[:alnum:]_]+@[[:alnum:]]+.[[:alnum:]]+"

blob.png

8.正则表达式表示QQ

grep "[1-9][0-9]\{4,9\}$"

blob.png

原创文章,作者:victorycommander,如若转载,请注明出处:http://www.178linux.com/30430

(0)
victorycommandervictorycommander
上一篇 2016-08-07 22:05
下一篇 2016-08-07 22:05

相关推荐

  • nfs与samba实现文件共享服务的流程

    nfs与samba实现文件共享服务的流程     nfs与samba都是能够实现文件共享的服务应用,其用法大致相同,但是挂载选项与配置文件的设置机制不同,下面介绍这两种文件共享服务的内容。     一.nfs服务的安装与配置     服务端主机的配置:   &…

    Linux干货 2016-10-23
  • 磁盘分区相关知识

    磁盘分区相关知识 使用磁盘分区的过程设备识别→设备分区→创建文件系统→标记文件系统→在/etc/fstab文件中创建条目→挂载新的文件系统 分区不是必须的,但是分区是必要的:优化I/O性能实现磁盘空间配额限制提高修复速度隔离系统和程序安装多个OS采用不同文件系统 不重启激活新添加的磁盘:echo “- – -” > …

    Linux干货 2017-08-20
  • SED命令

    sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转…

    Linux干货 2017-05-01
  • shell脚本编程

    shell俗称壳(用来区别于核),提供使用者使用界面(命令解析器),它接受用户命令,然后调用相应的应用程序。 同时它还是一种程序设计语言,作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设计好的一连串的命令。作为程序涉及语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。 一、shell脚本基础概念 …

    Linux干货 2016-08-16
  • 基于kubernetes构建Docker集群管理详解

    一、前言        Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度、均衡容灾、服务注册、动态扩缩容等功能套件,目前最新版本为0.6.2。本文介绍如何基于Centos7.0构建Kubernetes平台,在正式介绍…

    2015-03-10
  • N25_第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@aio ~]# who|cut -d" " -f1|uniq root 2、取出最后登录到当前系统的用户的相关信息。 [root@aio ~]# who| …

    Linux干货 2016-12-19