一、shell

  shell一般代表两个层面的意思,一个是命令解释器,比如BASH,另外一个就是shell脚本。Python也是一种解释语言。

1.   Linux中命令是按照下面的优先级执行的

 ==> alias                                                                              #别名,就是自己命名一个命令,常用来简化长命令
   ==> Compound Commands                                               #如if ,while ,for命令
    ==> function                                                                #函数
      ==> build_in                                                           #内部命令
        ==> hash                    #hash表,用来缓存命令,缓存的是PATH路径
          ==> $PATH                                                  #当别名和内部命令中都找不到时,就寻找$PATH
            ==> error: command not found

2.查看PATH:echo $PATH

 如果临时添加PATH:export PATH=/usr/local/nginx/sbin:$PATH

如果想永久添加,就要把路径写到 /etc/bashrc中

3.切换用户时(shell方式),会默认执行几个文件,执行顺序为

  /etc/profile

  .bash_profile

  .bashrc

  /etc/bashrc

其中/etc/profile和/etc/bashrc 为系统级别,.bash_profile 和.bashrc为用户级别

用非shell方式切换用户时,只会执行.bashrc和/etc/bashrc两个文件。

二、通配符

1.``反引号,取命令执行的结果,但更常用的是$()

2.~代表家目录

3.! 取反,历史命令调用,匹配最近一次历史命令

4.@无特殊含义,常用来分割字符

5.#注释符

6.$变量取值

 $()同``

 ${}变量名的范围

 $[]整数运算

 echo $?查看上次命令是否执行成功

7.%取模

8.^取反,和!类似

9.&把程序放到后台执行,如firefox &

 &&逻辑与

10.*匹任意长度字符串

  乘运算

11.()在当前终端的子进程中运行

12._下划线,无特殊意义,一般命名时用

  -减号,区间,运算

13.|管道符

14.\转义

15.:空命令

16.>覆盖

  >>追加

17.?任一字符

18.‘’硬引用,单引号内的字符无特殊意义,不需要转义

  “”软引用,双引号内的特殊字符需转义

三、正则表达式

  正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。

1.   常用grep命令+正则表达式

grep

  -n   显示行号    grep -n 'root' /etc/passwd

  -o 只显示匹配内容

  -q 判断命令是否执行成功,需要使用$?来显示是否成功

  -l  如果匹配成功,则将文件名打印出来,常与rl一起用,递归的匹配,grep -rl 'root' /etc/passwd

  -An 显示匹配到的行及其后n行

  -Bn 显示匹配到的行及其前n行

  -Cn 显示匹配到的行机器前后n行

  -E    扩展的grep,或者直接写成egrep

  -i  忽略大小写的过滤

  -v    取反,显示匹配到的信息之外的所有

  -w  匹配单词

  -c   显示有几行包含有关键字

2.  正则表达式

  ^ 行首 如:grep '^root' /etc/passwd    是匹配所有以root开头的行

  $  行尾

  .   除了换行符之外的任意单个字符

  *  左边的字符出现零次或多次

  ?  左边字符出现零次或1次

  +   左边字符出现1次或多次

  {n}  花括号左边字符出现n次

  .* 代表任意字符

  [] 字符组内的任一字符,与.的区别是[]可以自己指定范围,如[0-9][a-Z][a-z]

  |  或,|左边匹配成功则不匹配右边,只有左边匹配不成功时才会匹配右边

示例:新建文件1.TXT,内容为   abominable

               abominate

               anomie

               atomize

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

[root@localhost ~]# cat test.txt
bominable
abominate
anomie
atomize [root@localhost ~]# egrep 'a?[a-z]omi(na)?[a-z]?[a-z]?e' test.txt
bominable
abominate
anomie
atomize

Linux基础(八)的更多相关文章

  1. Linux基础知识第八讲,系统相关操作命令

    目录 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 2.磁盘信息查看. 3.系统进程 Linux基础知识第八讲,系统相关操作命令 一丶简介命令 时间和日期 date cal 磁盘和目录空间 ...

  2. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  3. OracleOCP认证 之 Linux基础

    Linux 基础 一.SHELL 1: Shell 简介 shell 是用户和Linux 操作系统之间的接口.Linux 中有多种shell, 其中缺省使用的是bash. Linux 系统的shell ...

  4. linux基础part3

    linux基础 一.linux基本命令归档命令. 1.归档的定义:归档就是把许多文件或目录打包成一个文件. 2.tar命令格式:tar  [参数-cxtzjvfpPN]  打包文件名 文件或目录路径 ...

  5. (转)Linux基础知识学习

    Linux基础知识学习 原文:http://blog.csdn.net/ye_wei_yang/article/details/52777499 一.Linux的磁盘分区及目录 Linux的配置是通过 ...

  6. Linux基础命令-查看基本硬件信息

    Linux基础命令-查看基本硬件信息 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看CPU信息 [root@node101.yinzhengjie.org.cn ~]# l ...

  7. 001.IT运维面试问题-Linux基础

    Linux基础 简述Linux主流的发行版? Redhat.CentOS.Fedora.SuSE.Debian.Ubuntu.FreeBSD等. 简述Linux启动过程? ⑴开机BIOS自检,加载硬盘 ...

  8. Linux基础练习题(二)

    Linux基础练习题(二) 1.复制/etc/skel目录为/home/tuer1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. [root@www ~]# cp -r ...

  9. Bootstrap <基础八>图片

    Bootstrap 提供了三个可对图片应用简单样式的 class: .img-rounded:添加 border-radius:6px 来获得图片圆角. .img-circle:添加 border-r ...

  10. 大数据每日干货第四天(linux基础之一目录结构与常用命令)

           为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...

随机推荐

  1. javaSE_06Java中的数组(array)-思维导图

    思维导图看不清楚时: 1)可以将图片另存为图片,保存在本地来查看 : 2)右击在新标签中打开放大查看 (IE不支持,搜狗,360可以):

  2. 3.Node.js 自定义微信菜单

    文章目录:         1.Node.js 接入微信公众平台开发         2.Node.js access_token的获取.存储及更新         3.Node.js 自定义微信菜单 ...

  3. Vivado简单调试技能

    Vivado简单调试技能 1.关于VIO核的使用 首先配置VIO核: 配置输入输出口的数量5,5 配置输入口的位宽 配置输出口位宽和初始值. 例化与使用: vio_0 U1 ( .clk(clk_27 ...

  4. 深入探索C++对象模型(五)

    构造.解构.拷贝语意学(Semantics of Construction,Destruction, and Copy) 一般而言,class的data member应该被初始化,并且只在constr ...

  5. springMVC+Mybatis(使用AbstractRoutingDataSource实现多数据源切换时)事务管理未生效的解决办法

    业务场景: A.B两个单位,系统部署同一套代码: A.B两系统能相互访问: 要求将数据从A系统同步到B系统,再将反馈信息回发给A: 实际开发情况: 因为系统比较小,最开始设计架构的时候没有考虑到消息互 ...

  6. 使用MySQLdb操作Mysql数据库

    MySQLdb简介 MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司.在2008年1月16号被Sun公司收购.目前MySQL被广泛地应用在Internet上的中小型网站中.由于 ...

  7. JavaScript实现图片拖拽、粘贴上传

    前些日子为老婆做了一个web管理商品的工具,因为商品的图片比较多并且还需要剪裁图,为了上传图片方便加了一个拖拽.粘贴上传的功能. 我已经把代码整理出来放到GitHub上了,有兴趣的朋友可以下来玩玩. ...

  8. 基于C#的接口自动化测试(二)

    Json多重数据处理方法II:jobj直接向后调用即可 ]["GoodsName"]; 用:分隔的字符串转字典: public static Dictionary<strin ...

  9. Bash的作业控制

    作业控制是bash Shell提供的一项强大功能,它允许你选择在前台还是后台运行程序,即作业. 1.开启bash的作业控制功能 #set -o monitor或#set -m 2.显示在后台运行的作业 ...

  10. Mybatis在oracle批量更新

    最近公司业务中为了提高效率要做mybatis批量更新,但是到了oracle数据库中做了好几次都没成功,后来发现mybatis最后少了个分号,可能是Mybatis内部做了异常try  catche  处 ...