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

相关推荐

  • 马哥教育网络班20期+第三周课程练习

    1. 列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [oracle@ocp ~]$ who root     pts/1        2016-06-26 …

    Linux干货 2016-06-26
  • Linux发行版的基础目录名称命名法则及功用规定

    /bin  存储单用户维护模式还能操作的命令 /boot 存储开机时会使用到的文件 /dev  存储设备与接口文件 /etc  存储系统的配置文件 /home 系统默认的用户主目录 /lib  存储函数库文件 /media 光盘挂载点 /mnt   光盘或者U盘挂载点 /opt   第三方应用程序文件存放目录 /root  root用户家目录 /sbin  …

    Linux干货 2018-03-04
  • 十三.Linux博客-2016年8月18日while、for特殊用法、selet循环与菜单、函数

    格式说明: 操作 概念 命令 说明及举例 十三.while、for特殊用法、selet循环与菜单、函数 while特殊用法 while循环的特殊用法(遍历文件的每一行): while read line; do 循环体 done < /PATH/FROM/SOMEFILE 依次读取/PATH/FROM/…

    Linux干货 2016-08-24
  • 马哥教育网络班22期第1周课程作业

    一、基础中的基础————–计算机的组成部分         计算机组成分为硬件系统与软件系统         硬件包括五个部分     1.控制器:控制器 I/O 存储器 &nbs…

    Linux干货 2016-08-15
  • What Is So Fascinating About Marijuana News?

    What Is So Fascinating About Marijuana News? The Meaning of Marijuana News If you’re against using Cannabis test.com as you do not need to smoke you’re misinformed. As …

    Linux干货 2025-05-07
  • HTTP协议

    HTTP协议   HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP协议工作于客户端-服务端架构之上。浏览器作为HT…

    Linux干货 2017-02-15