• Linux基础(八)


    一、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
  • 相关阅读:
    mysql数据类型介绍
    IO中同步、异步与阻塞、非阻塞的区别(转)
    法线
    C++配置坑-----openCv环境配置
    C++学习记录
    FBX SDK环境配置
    Unity调起外部程序cmd.exe等
    unity读写Excel表格
    Unity编辑器扩展
    Unity 读写文本 文件
  • 原文地址:https://www.cnblogs.com/zhang-can/p/6938893.html
Copyright © 2020-2023  润新知