一、环境边量

每个用户登录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. rk3288 LED上加入heartbeat功能

    平台:瑞芯的rk3288 作者:fulinux *****本文同意转载.只是请注明出处:http://blog.csdn.net/fulinus**** 1.硬件环境 随意选取一个GPIO引脚作为he ...

  2. js 获取浏览器显示内容的宽度和高度

      js获取浏览器显示内容的宽度和高度 CreateTime--2017年7月10日17:24:12Author:Marydon 1.获取浏览器屏幕显示d的网页宽度 /** * 得到浏览器显示的屏幕高 ...

  3. C#中静态方法和非静态方法的区别

    静态方法和非静态方法的区别: 1.静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用: 2.静态方法只能访问静态成员和方法,非静态方法都可以访问: 3.静态方法不能标记为overri ...

  4. 小书匠markdown编辑器V1.0.12发布

    a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2p ...

  5. Python内置函数之staticmethod()

    staticmethod(function)返回函数的静态方法.一般来说,实例对象调用类方法不用传入参数,因为实例对象本身隐式的作为第一个参数传入了.而采用静态方法之后,实例对象在调用类方法时必须传入 ...

  6. 通过pyenv进行多版本python管理

    1.安装pyenv brew install pyenv 2.配置.zshrc文件 export PYENV_ROOT=/usr/local/var/pyenv if which pyenv > ...

  7. linux下网卡bonding配置

    linux下网卡bonding配置   章节 bonding技术 centos7配置bonding centos6配置bonding 一.bonding技术 bonding(绑定)是一种linux系统 ...

  8. Openstack(Kilo)安装系列之环境准备(一)

    本文采用VMware虚拟环境,使用CentOS 7.1作为openstack的基础环境. 一.基础平台 1.一台装有VMware的windows系统(可联网) 2.CentOS 7.1 64bit镜像 ...

  9. pycharm的安装和破解

    前提: 为了学习爬虫,单独下载了一个pycharm编辑器,所以就有了这篇文章,和PHPstorm的安装和破解及其类似, 如有想了解PHPstorm的安装破解可参考我的另一篇博文:http://www. ...

  10. u-boot下载模式LCD显示图片修改方法(基于TQ2440)

    1.明确液晶型号,这点非常重要,我手头的液晶是天嵌4.3寸屏,让人很郁闷的是液晶背面竟然写着LCD 3.5,这一点让我在上面浪费了好几个小时: 2.根据液晶型号,修改u-boot1.1.6--> ...