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干货 2016-12-05
  • 网络23期心得

    1、描述计算机的组成及其功能 计算机系统是由五大部分组成:运算器、控制器、存储器、输入设备、输出设备   运算器(Datapath):运算器的功能是对数据进行各种算术去处和逻辑运算,即对数据进行加工处理。   控制器(Control):控制器是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、…

    Linux干货 2016-09-19
  • 【N25第六周作业】VIM、crontab、简单脚本

    请详细总结vim编辑器的使用并完成以下练习题 第二周有写过vim的用法,请查看连接: 周期性任务计划:cron 服务程序: cronie:主程序包,提供了crond守护进程及相关辅助工具; 确保crond守护进程(daemon)处于运行状态: CentOS 7: systemctl  status  cron…

    Linux干货 2016-12-27
  • Liunx学习小结2

    1. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。文件管理类命令有:cp、mv、rmcp [选项] [参数]选项:-a:此参数的效果和同时指定”-dpR”参数相同;-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;-f:强行复制文件或目录,不论目标文件或目录…

    Linux干货 2017-07-31
  • linux基础学习之AWK

    内容: 1、awk输出(print、printf) 2、awk变量(内建变量和定义变量) 3、awk数组 4、awk重定向输出 5、awk操作符 6、awk常见模式类型 7、awk控制及循环语句 8、awk内置函数 awk:(其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母)…

    Linux干货 2016-09-22
  • 第三周作业

    1. 列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次则显示一次即可。 who | cut -d' ' -f1 | sort -u 2. 取出最后登录当前系统的用户的相关信息 grep  "$(who …

    Linux干货 2016-12-19