Linux基础系列:常用命令(7)_正则表达式
一、环境边量
每个用户登录shell需要执行的四个文件
/etc/profile
/home/egon/.bashrc_profile
/home/egon/.bashrc
/etc/bashrc
非登录shell加载的文件
/home/egon/.bashrc
/etc/bashrc
要固化一个配置时在哪种登录下生效,就显而易见的知道该写在哪个文件里了
通常,我们会将环境变量设置在 /home/egon/.bashrc 中
如果不管哪种登录都想使用的变量就设置在/etc/bashrc中
添加语句:(以python3为例)
PATH=/usr/local/python3:$PATH
export PATH
二、bash中元字符:
bash中的特殊字符,键盘上能敲出来的特殊字符都有其特殊意义
元字符是被shell解释的
`` 命令替换取命令的执行结果
res=`ls` #取命令的运行结果,赋值给变量res
$()同``但它弥补了``的嵌套缺陷
res=$(echo $(ls)) #替代方案
~ 家目录
! 取非/匹配最近一次历史命令
! ls 带空格将命令的返回值取反
[root@~]# ! echo ok #将结果取反
ok
[root@ ~]# echo $?
1
@ 无特殊含义
# 注释
$ 变量取值
$() 同``
${} 变量名的范围
$[] 整数计算
& 后台执行;&& 逻辑与
* 匹配任意长度字符串;计算乘法
() 在子进程中执行
"" 软引 ''硬引
; 可以接多个命令
: 空命令真值
| 管道; || 逻辑或
\ 转义;
{} 命令列表,注意括号内的开头和结尾必须是空格{ ls; cd /; }
[] 字符通配,匹配括号内之一;
三、正则表达式
正则:用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。
或者说:正则就是用来描述一类事物的规则。
在linux中,通配符是由shell解释的,而正则表达式则是由命令解释的
四、文本处理工具/命令:grep
1、参数
-n :显示行号
-o :只显示匹配的内容
-q :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容
-l :如果匹配成功,则只将文件名打印出来,失败则不打印,通常-rl一起用,grep -rl 'root' /etc
-A :如果匹配成功,则将匹配行及其后n行一起打印出来
-B :如果匹配成功,则将匹配行及其前n行一起打印出来
-C :如果匹配成功,则将匹配行及其前后n行一起打印出来
--color
-c :如果匹配成功,则将匹配到的行数打印出来
-E :等于egrep,扩展
-i :忽略大小写
-v :取反,不匹配
-w:匹配单词
-r 递归查询
2、grep种类
grep
fgrep
pgrep
egrep
常用grep、egrep
3、正则介绍
^ 行首
$ 行尾
. 除了换行符以外的任意单个字符
* 前导字符的零个或多个
.* 所有字符
[] 字符组内的任一字符
[^] 对字符组内的每个字符取反(不匹配字符组内的每个字符)
^[^] 非字符组内的字符开头的行
[a-z] 小写字母
[A-Z] 大写字母
[a-Z] 小写和大写字母
[0-9] 数字
\< 单词头单词一般以空格或特殊字符做分隔,连续的字符串被当做单词
\> 单词尾
| 或
grep 加 -E 或 egrep 或转义
? 前导字符零个或一个
+ 前导字符一个或多个
x{m} x出现m次
x{m,} x出现m次至多次(至少m次)
x{m,n} x出现m次至n次
| 或
作业:grep作业(正则表达式及字符处理)
目标文件/etc/passwd,使用grep命令或egrep
1.显示出所有含有root的行:
命令:grep ‘root’ /etc/passwd
2.输出任何包含bash的所有行,还要输出紧接着这行的上下各两行的内容:
命令:grep –C2 ‘bash’ /etc/passwd
3. 显示出有多少行含有nologin。
命令:grep –c ‘nologin’ /etc/passwd
4.显示出那些行含有root,并将行号一块输出。
命令:grep –n ‘root’ /etc/passwd
5.新建用户abominable、abominate、anomie、atomize
编写正则表达式,将他们匹配出来
命令:useradd abominable
useradd abominate
useradd anomie
useradd atomize
正则表达式:grep –o ‘a.omi.*e’ /etc/passwd
6.建四个用户Alex213sb、Wpq2222b、yH438PIG、egon666、egon
过滤出用户名组成是字母+数字+字母的行
命令:useradd Alex213sb
useradd Wpq2222b
useradd yH438PIG
useradd egon666
useradd egon
正则表达式:egrep –n ‘^[a-Z]+[0-9]+[a-Z]+’ /etc/passwd
7.显示出/etc目录下所有包含root的文件名
命令: grep –rl ‘root’ /etc/
8. 过滤掉/etc/ssh/sshd_config内所有注释和所有空行
命令:grep -v '^#' /etc/ssh/sshd_config |grep -v '^ *$'
Linux基础系列:常用命令(7)_正则表达式的更多相关文章
- Linux基础之常用命令整理(一)
Linux 操作系统的安装 如今比较流线的linux操作系统 Centos Redhat Fedora Ubuntu, 安装操作系统的提前是要有操作系统的镜像文件(.iso文件)并且必须为系统指定一 ...
- Linux基础、常用命令
Linux作为IT程序员必知必会知识,将自己学习到的和最近工作常用的一些命令进行总结,作为我结束过去生活和开始类程序员的序吧! 如果你想系统性学习的话,还是建议看书(鸟哥的Linux私房菜)或网上视频 ...
- Linux基础之常用命令篇
一.命令的基本格式 [root@localhost~] root为用户名 -表示当前所在位置 localhost主机名 ‘#’超级用户 '$" 普通用户 命令的基本格式: 命令 [选项] [ ...
- Linux基础之常用命令(1)
一 linux命令的格式 1.命令 [选项] [参数] ls list 显示目录下内容 ① 命令名称:ls 命令英文原意:list 命令所在路径:/bin/ls 执行权限:所有用户 功能 ...
- Linux 压缩系列常用命令
tar 命令: http://man.linuxde.net/tar zip 命令: http://man.linuxde.net/zip unzip 命令: http://man.linuxde.n ...
- Linux基础之常用命令整理(二)
Linux系统启动流程 bios(找到启动介质) --> mbr(找到boot loader 512B 446引导信息 64分区信息 2 标志位 ) -->grub(选择操作系统或者内核 ...
- Linux基础和常用命令
经常使用的命令: #查看端口被占用情况 netstat -tunlp|grep #查看java进程 ps -ef|grep java #压缩前端工程 rar a -ep1 ./update/win32 ...
- 【原创】Linux基础之常用命令
1 磁盘.cpu.内存相关 查看全部设备信息 # lspci 查看整体磁盘空间占用情况 # df -h 查看整体磁盘inode占用情况 # df -i 查看文件详细信息 # ls -l $path 查 ...
- linux基础知识-常用命令
ifconfig :查看当前ip hostname:查看主机名 vim /etc/hosts:修改地址映射 service iptables status : 查看防火墙状态 chkconfig ip ...
- 《Linux基础知识及命令》系列分享专栏
<Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...
随机推荐
- VS中c++文件调用c 函数 ,fatal error C1853 预编译头文件来自编译器的早期版本号,或者预编译头为 C++ 而在 C 中使用它(或相反)
出现错误:error C1853: "Debug\ConsoleApplication1.pch"预编译头文件来自编译器的早期版本号.或者预编译头为 C++ 而在 C 中使用它(或 ...
- django项目搭建
参见https://www.imooc.com/video/13931 1.安装python,从官网python.org下载msi安装2.7,安装完后,输入python可以看到版本 2.djangop ...
- Android错误之--Error retrieving parent for item: No resource found that matches the given name 'Theme.A
错误提示:error: Error retrieving parent for item: No resource found that matches the given name 'Theme.A ...
- 【Excle数据透视】如何隐藏数据透视表字段的分类汇总
如下图:是显示数据透视表的分类汇总 那么我们现在想弄成以下这样,不显示分类汇总 如何操作呢? 步骤 单击数据透视表任意单元格→数据透视表工具→设计→分类汇总→不显示分类汇总 ***显示分类汇总*** ...
- 【VBA】显示Excle内置对话框
点击上图中的"显示Excle内置对话框",显示效果如下: 源代码: Public Sub 显示Excel内置对话框() UserForm.Show End Sub 附件下载
- NoSQL之Redis学习小结
大数据时代要求: 三V:Volume海量.Velocity实时.Variety多样: 三高:高并发.高可扩.高性能 高并发操作不建议使用关联查询,而使用冗余数据,分布式系统支持不了太多的并发. 横向 ...
- 02-2设置第一启动项--进入Bios界面设置U盘为第一启动项
进入Bios界面设置U盘为第一启动项: 开机,当电脑处于启动状态,屏幕显示电脑LOGO时,按下F2键.(根据电脑的不同,进入BIOS的功能键也不同,可根据自己电脑的型号百度搜索相关功能键) 按电脑方向 ...
- Selenium3.14.1+Python安装和第一个Demo
言简意赅的说下Selenium是什么 Selenium是前台测试框架,支持IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome等浏览器,我只 ...
- java学习笔记——java中对象的创建,初始化,引用的解析
如果有一个A类. 1.例如以下表达式: A a1 = new A(); 那么A是类,a1是引用.new A()是对象.仅仅是a1这个引用指向了new A()这个对象. 2.又如: A a2; A代 ...
- Java编程之路相关书籍(三个维度)
一.关于Java的技术学习.能够依照以下分三个维度进行学习 : (1)向下发展,也就是底层的方向 建议看<深入Java虚拟机>.<Java虚拟机规范>.<Thinking ...