一、环境边量

每个用户登录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  递归查询

2grep种类

      grep

      fgrep

      pgrep

      egrep

      常用grepegrep

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.新建用户abominableabominateanomieatomize

            编写正则表达式,将他们匹配出来

命令:useradd abominable

            useradd abominate

            useradd anomie

            useradd atomize

正则表达式:grep –o ‘a.omi.*e’ /etc/passwd

    

 

 6.建四个用户Alex213sbWpq2222byH438PIGegon666egon

            过滤出用户名组成是字母+数字+字母的行

命令: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)_正则表达式的更多相关文章

  1. Linux基础之常用命令整理(一)

    Linux 操作系统的安装 如今比较流线的linux操作系统 Centos Redhat  Fedora Ubuntu, 安装操作系统的提前是要有操作系统的镜像文件(.iso文件)并且必须为系统指定一 ...

  2. Linux基础、常用命令

    Linux作为IT程序员必知必会知识,将自己学习到的和最近工作常用的一些命令进行总结,作为我结束过去生活和开始类程序员的序吧! 如果你想系统性学习的话,还是建议看书(鸟哥的Linux私房菜)或网上视频 ...

  3. Linux基础之常用命令篇

    一.命令的基本格式 [root@localhost~] root为用户名 -表示当前所在位置 localhost主机名 ‘#’超级用户 '$" 普通用户 命令的基本格式: 命令 [选项] [ ...

  4. Linux基础之常用命令(1)

    一 linux命令的格式 1.命令  [选项]  [参数] ls  list    显示目录下内容 ①  命令名称:ls 命令英文原意:list 命令所在路径:/bin/ls 执行权限:所有用户 功能 ...

  5. Linux 压缩系列常用命令

    tar 命令: http://man.linuxde.net/tar zip 命令: http://man.linuxde.net/zip unzip 命令: http://man.linuxde.n ...

  6. Linux基础之常用命令整理(二)

    Linux系统启动流程 bios(找到启动介质) --> mbr(找到boot loader  512B 446引导信息 64分区信息 2 标志位 ) -->grub(选择操作系统或者内核 ...

  7. Linux基础和常用命令

    经常使用的命令: #查看端口被占用情况 netstat -tunlp|grep #查看java进程 ps -ef|grep java #压缩前端工程 rar a -ep1 ./update/win32 ...

  8. 【原创】Linux基础之常用命令

    1 磁盘.cpu.内存相关 查看全部设备信息 # lspci 查看整体磁盘空间占用情况 # df -h 查看整体磁盘inode占用情况 # df -i 查看文件详细信息 # ls -l $path 查 ...

  9. linux基础知识-常用命令

    ifconfig :查看当前ip hostname:查看主机名 vim /etc/hosts:修改地址映射 service iptables status : 查看防火墙状态 chkconfig ip ...

  10. 《Linux基础知识及命令》系列分享专栏

    <Linux基础知识及命令>系列分享专栏 本专题详细为大家讲解了Linux入门基础知识,思路清晰,简单易懂.本专题非常适合刚刚学习Linux的小白来学习,通过学习该专题会让你由入门达到中级 ...

随机推荐

  1. Singleton单例模式是最简单的设计模式,它的主要作用是保证在程序执行生命周期中,使用了单类模式的类仅仅能有一个实例对象存在。

                                                                                                        ...

  2. Hibernate框架中的HibernateUtil

    对于刚学习三层框架的人来说.每个配置文件和每个类.以及功能来说都非常新奇,时常就忘记了相关类的功能. 在这里建议编程就是要多加练习,才干熟能生巧. 这里说一下HibernateUtil类,在使用Hib ...

  3. springMVC 【@response 返回对象自动变成json并且防止乱码】 & 【配置支持实体类中的@DateTimeFormat注解】

    在springmvc的配置文件中加上这一段即可 <bean class="org.springframework.web.servlet.mvc.annotation.Annotati ...

  4. Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your datab

    Database returned an invalid value in QuerySet.datetimes(). Are time zone definitions for your datab ...

  5. Burp Suite安装&环境配置&启动&浏览器设置代理

    一.简述 Burp Suite是一款使用Java编写的,用于Web安全审计与扫描套件.它集成了诸多实用的小工具以完成http请求的转发/修改/扫描等,同时这些小工具之间还可以 互相协作,在BurpSu ...

  6. WebLogicSSL解决苹果IOS itms下载问题

    前提: 安装好openssl工具. 通过windows cmd 命令进入 openssl工作文件夹 如解压文件夹为:E:\ openssl-1.0.2-beta1 则工作文件夹为E:\openssl- ...

  7. sparkstreaming+socket workCount 小案例

    Consumer代码 import org.apache.spark.SparkConf import org.apache.spark.streaming.StreamingContext impo ...

  8. MBA人物俞洪敏:亿万富翁的生活表

    我的智商非常一般,就是比别人勤奋.我的脑袋不属于特别笨的那种,但肯定也不是顶尖聪明的类型.在北大的50个同学当中,我的智商应该属于中下水平,这说明我不是顶尖高智商. 我的勤奋一般人跟不上.我平均每天工 ...

  9. hadoop partitioner个数与reducer个数的试验

    job.setPartitionerClass(myPartitioner.class);//设置了5个 job.setNumReduceTasks(2); 1.当分区数等于rducer数量时,正常运 ...

  10. 如何开启Apache Rewrite功能

    一.Ubuntu默认未开启Rewrite支持 apche模块加载工作已分散到不同的配置文件,这样看起来似乎更为合理,管理起来也非常方便.下面看一下如何开启Rewrite模块,当用户需使用301重定向. ...