grep正则表达式

grep:这是一个搜索命令,搜文本并且将文本行显示出来

(1)grep -i 表示搜索的时候忽略大小写

(2)grep --colour 表示搜索关键字带颜色

例如:grep --colour 'root' /etc/passwd
显示为在etc的passwd里的 root 选项有颜色

*为了方便我们可以定义个别名,让他搜索的时候默认显示为带颜色 alias grep='grep --colour' (3)grep -v 表示显示出没有被匹配到的行

例如:grep -v 'root' /etc/passwd
显示为 不包含root关键字的行

(4)grep -o 只显示匹配到的字符串

正则表达式:Regular Expression,简写为REGXP

元字符:

*:任意长度的任意字符

?:任意单个字符

[]:任意指定范围内的

[^]:任意指定范围外的

.:点 表示匹配任意单个字符

例如:

grep 'r..t' /etc/passwd 

这个命令显示出来的是 root 和 r任意 任意t
可以理解为r1ot,或者ro1t,或者r11t.

匹配次数: 1) *:匹配其前面的字符任意次

例如:a,b,ab,aab,acb,adb,amnb,amnbamnbamnb

a * b匹配上述, 这里a * b可以理解成为a* b 意思就是a出现了几次 后面跟一个b.    a可以出现零次,所以匹配的结果为:
b ,ab ,aab 其它都不符合 2) .*:任意长度的任意字符

例如:a,b,ab,aab,acb,adb,amnb,amnbamnbamnb

a.*b匹配上述 这里a.*b可以理解为 a开头b结尾 ab中间是啥都行.所以匹配结果为:ab,aab,acb,adb,amnb,amnbmanbmanb. 3) ?:匹配其前面的字符1次或0次

例如:a,b,ab,aab,acb,adb,amnb,amnbamnbamnb0

a\?b匹配上述 \代表转义,相当于b前面一次或者没有a都可以匹配
所以匹配结果为:b,ab,aab,acb,adb,amnb,amnbmanbmanb.

要注意的是 这个命令 只是部分匹配就可以了不是全部匹配. 4) \{m,n\}:匹配其前面的字符至少m次,至多n次.

例如 \{1,\}:至少一次,至多不限
     \{0,3\}:最多三次,最少不限
     
grep 'a\{1,3\}b' /app/test.txt 
a出现最少一次最多三次 后面跟个b

匹配结果为:ab aab

grep 'a.\{1,3\}b' /app/test.txt 
a和b之间出现至少1个字符-至多3个字符

匹配结果为: aab,acb,adb,amnb,amnbmnbmnb. ############用户与权限########## 用户 组 其他用户
用户:标识符
用户组:标识符
输入ls -l total 112 -rw-r--r--. 1 root root 0 Jul 17 11:55 2017-07-17.log
-rw-r--r--. 1 root root 2 Jul 20 09:04 A
-rw-r--r--. 1 root root 0 Jul 20 14:56 aaaaa
-rw-------. 1 root root 1894 Jul 15 08:32 anaconda-ks.cfg
-rw-r--r--. 1 root root 0 Jul 24 16:27 a.out
drwxr-xr-x. 2 root root 6 Jul 20 15:01 bbb
drwxr-xr-x. 2 root root 6 Jul 20 15:01 bbbb
drwxr-xr-x. 2 root root 6 Jul 19 21:56 Desktop
-rw-r--r--. 1 root root 1912 Jul 15 08:45 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Music
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Pictures
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Public
-rw-r--r--. 1 root root 0 Jul 20 11:26 qwer
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Templates
-rw-r--r--. 1 root root 99946 Jul 17 17:18 typescript
drwxr-xr-x. 2 root root 6 Jul 15 08:45 Videos
drwxr-xr-x. 2 root root 6 Jul 20 15:01 wenjianjia
其中第一数列 显示的-rw-r--r--这些
- (rw-)属主的权限 (r--)属组的权限 (r--)其它用户的权限
权限有三种r,w,x
其中每一类都有三种权限
对于文件来说:
r:可读,可以使用类似cat等命令查看文件内容
w:可写,可以编辑或删除此文件
x:可执行,可以再命令提示符下当做命令提交给内核运行
对于目录来说:
r:可以对此目录执行ls以列出内部的所有文件
w:可以再此目录创建文件
x:可以使用cd切换进此目录,也可以使用ls-l查看内部文件的详细信息
例如 4(数字48进制)100r--:表示只读 5(数字58进制)101r-x:读和执行 0(数字98进制)000---:无权限 1(数字18进制)001--x:执行 3(数字38进制)011-wx:写和执行 6(数字68进制)110rw-:读写 7(数字78进制)111rwx:读写执行
使用8进制的数字可以表示某一类用户的权限

例如: 数字显示均为8进制 755:rwx r-x r-x
rw- r-- ---:640 660:rw-rw----
rwx rwx r-x:775 用户:UID /etc/passwd 这个目录存储每一个用户的id号来标识用户
组:GID /etc/group 这个目录存储每个组的id
用户的密码存储在/etc/shadow
组的密码存储在/etc/gshadow

Linux的用户类别:
管理员:ID号为0(默认)
普通用户:系统用户[1-499]/一般用户[500-60000]普通用户(ID号为1-65535)即使超出了也会显示65536 系统用户:是不允许登录的
一般用户:是可以登录的
Linux的用户组:
管理员组:
普通组:系统组/一般组

私有组:创建用户的同时会给用户创建一个私有组,名字为其本身
基本组:用户额外的组(附加组,额外组,默认组以外的其他组)


例如:
进程:一个进程 god用户 god组
对象:rwxrw-r-- girl god a.txt
进程的god用户对应访问对象的god属组如果一样则以rw-的权限去访问这个文件a.txt 如果god用户与对象girl不一样,也不同于对象god组,则以r--的权限访问.
记住Linux一切皆文件,所有进程都是文件.
访问文件取决于用户而不取决于文件本身

输入cat /etc/passwd后:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
取前两个作为例子说明:':'这个里面有7个详细信息,root代表账户名;x代表密码(密码存储在etc/shadow/文件里)0代表用户ID即UID;0代表组ID即GID;root(包含信息电话一类的,用户的注释信息);root(家目录HOME DIR);/bin/bash(为SHELL)


/etc/shadow
输入cat /etc/shadow 显示如下:
root:$6$YsiwrDUWlkWxp6Mf$FvB5NAzc9lDBmtCEZThTpg6Jtzs7dCZHM0bjezjEZNyYc4fYzaKgtvo1W5g6AoHTi6GIMVS0Znm//dqTsAh1J0::0:99999:7:::
bin:*:17110:0:99999:7:::
取前两个显示如上:
冒号里面显示顺序如下: 1:登录名 2:加密的密码 $6 3:从197011日开始上一次修改密码的时间到今天经历了多长时间 4:密码最小使用期限(0为不限定,如有数字则变成在时间内不能修改密码) 5:密码最长使用期限(99999为无限) 6:密码还剩多长时间提示用户 7:在禁用账户之前的日期



创建用户:useradd 或adduser
学习在这里的时候我遇到了一个问题就是软链接的问题
在这里讲下,useradd是可执行文件,用which useradd 来查看显示为:/usr/sbin/useradd,由此得知在上面的目录下, 在输入ls /usr/sbin/useradd显示为:usr/sbin/adduser(为蓝色,一般蓝色代表该文件有软链接),然后我们接着输入ll usr/sbin/adduser显示为:lrwxrwxrwx. 1 root root 7 Jul 14 20:56 /usr/sbin/adduser -> useradd,由此看出useradd是被adduser指向的一个蓝色的链接.相当于adduser是useradd的一个快捷方式.

使用:
useradd 用户
例如:useradd wenwen 输入cat /etc/passwd显示的最后一行为:wenwen:x:1003:1003::/home/wenwen:/bin/bash,以上就是你新建立的用户.

给用户增加密码:
在root(系统管理员)下,输入passwd wenwen会提示配置密码的信息:
Changing password for user wenwen.
New password: 
Retype new password: 
Sorry, passwords do not match.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
少于8个字符是不可以更改的,另外密码过于简单也是不能更改的.

*******chfn wenwen 这个命令可以给用户备注信息,finger wenwen这个命令可以看更详细的用户信息(可能会需要安装一下,安装使用的是rpm -ivh /run/media/root/Centos\ 7\ x86_64/Packages/finger -0.17-52.e17.x86_64.rpm[在Centos7下安装finger命令])
输入rpm -ivh /misc/cd/Packages/finger,这个命令是Centos6自带的 misc是挂载到安装文件,很方便很实用.

添加组的命令:groupadd 组名
例如:groupadd mygroup添加完成后,输入getent passwd wenwen可以看到:wenwen:x:1002:1002:laopo,jia,1,1:/home/wenwen:/bin/bash,的信息

总结一下:
用户管理需要用到的命令: useradd userdel usermod passwd chsh(更改使用者 shell 设定 ,chsh -l查看机器安装的SHELLS) chfn(改变finger指令显示的信息语  法:chfn [-f <真实姓名>][-h <家中电话>][-o <办公地址>][-p <办公电话>][-uv][帐号名称] ) finger(可以让使用者查询一些其他使用者的资料) id chage(命令是用来修改帐号和密码的有效期限)

组管理:groupadd groupdel groupmod gpasswd

权限管理:chown chgrp chmod umask 用法:输入useradd -u 1000 user1(-u直接给出用户ID也就是UID) ,useradd -g 存在的组名,useradd -G 附加组(可以有多个使用,隔开)
useradd -c (组的注释信息) useradd -d (目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录) useradd -s (指定SHELLS)


PS(查看ifconfig中的IP地址):ifconfig |grep -Eo "\<(([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])\>" PS:echo "welcome to magedu linux" |grep -o "." |sort |uniq -c |sort -nr的执行结果: 3 e 3 2 u 2 o 2 m 2 l 1 x 1 w 1 t 1 n 1 i 1 g 1 d 1 c 1 a

PS:ifconfig |egrep -o "(<\[1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]\>)" 找出ifconfig 命令结果中1-255之间的数字.

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

(0)
charlestcharlest
上一篇 2017-07-29
下一篇 2017-07-29

相关推荐

  • 小巧精悍——常见文本处理工具用法及技巧总结

    小巧精悍——常见文本处理工具用法及技巧总结 Linux最重要的哲学思想就是:一切皆文件。可见文件及文件操作在Linux当中是多么的重要。在Linux系统中我们也会经常用到各种文本文件处理的操作,熟练使用这些小巧精悍的文本处理工具,在关键时刻往往展现非凡的神奇功效。常见文本处理小工具:cat、hexdump、nl、less、head、tail、cut、tr、r…

    Linux干货 2016-11-05
  • Cent OS 6 编译方式安装LAMP

    细节要求: (1) 三者分离于三台主机; (2) 一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress; (3) PHP使用FastCGI+xcache; (4) httpd使用非prefork的mpm模式; 一、CentOS6环境准备 1、OS(CentOS6.8)下开发环境包的安装,编译安装程序包需要使用 #yum grou…

    Linux干货 2017-02-24
  • linux用户和组管理

    linux用户和组管理 类Unix系统的设计初衷就是为让多用户同时工作,所以也迫使Linux系统有了极强的安全性,在前面安装红帽RHEL7操作系统时还特别要求“设置root用户密码”,而root用户是存在于所有类UNIX系统中的”超级用户”。 用户管理 root账户介绍(超级管理员) root用户拥有极高的系统所有权,能够管理系统的各项功能,如添加/删除用户…

    Linux干货 2016-09-05
  • N26-博客作业-week12

    1、请描述一次完整的http请求处理过程; (1) 建立或处理连接:接收请求或拒绝请求; (2) 接收请求:接收来自于网络上的主机请求报文中对某特定资源的一次请求的过程; (3) 处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息; (4) 访问资源:获取请求报文中请求的资源; (5) 构建响应报文: (6) 发送响应报文: (7) 记录…

    Linux干货 2017-05-23
  • htop使用详解

        在管理进程时通常要借助一些工具,比较常用的就是ps和top了;不过CentOS还为我们提供了一个更加强大的工具htop,下面就来了解一下此工具的使用方法。 一、安装htop         htop工具在epel源中提供,请自行配置epel源,也可以直…

    Linux干货 2015-05-18
  • 马哥教育网络班21期-第七周课程练习

    1、创建一个10G分区,并格式为ext4文件系统;    (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;    (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@localhost ~…

    Linux干货 2016-08-29