zoukankan      html  css  js  c++  java
  • 鸟哥Linux私房菜基础学习篇学习笔记3

    鸟哥Linux私房菜基础学习篇学习笔记3

    第十二章

    • 正则表达式与文件格式化处理:
      • 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找、删除、替换一行或多行文字字符;
      • 正则表达式是一种标准依据。
      • grep是支持正则表达式的工具程序之一。
      • 正则表达式可以分为基础正则表达式与扩展正则表达式
      • 正则表达式与通配符是完全不一样的东西,通配符是bash接口的一个功能,但是正则表达式是一种字符串处理的表达方式。
    • dmesg列出内核信息;
    • 基础正则表达式字符:
      • ^word --- 带查找字符串在首行;
      • word$ --- 待查找的字符串在行尾;
      • . --- 代表一定有一个任意字符的字符;
      • --- 转义符,将特殊符号的特殊意义去除;
      • * --- 重复零个到无穷多个的前一个字符;
      • [list] --- 从字符集合的RE字符里找出想要选取的字符;
      • [n1-n2] --- 从字符集合的RE字符里找出想要选取的字符范围;
      • [^list] --- 从字符集合的RE字符里面找出不要的字符串或范围;
      • {n,m} --- 连续n到m个的前RE字符, 若{n}是连续n个的前一个RE字符,若为{n,}则是连续n个以上的前一个RE字符。
    • sed工具,awk命令;
      • sed本身就是一个管道命令,可以分析标准输入,还可以将数据进行替换、删除、新增、选取特定行等功能;
        • sed [-nefr] [动作]
    • 扩展正则表达式:
      • + --- 重复一个或一个以上的前一个RE字符;
      • --- 零个或一个的前一个RE字符;
      • | --- 用或(or)的方式找出数个字符串;
      • () --- 找到组字符;
      • ()+ --- 找到多个重复组的判别;
    • 文件的格式化与相关处理:
      • 格式化打印 --- printf;
      • 好用的数据处理工具: awk;
        • sed用于行处理,awk倾向于将一行分成数个字段来处理,awk更适合处理小型的数据处理;
        • awk '条件类型1{动作1} 条件类型2{动作2} ...' filename
      • 文件比较工具: diff;
      • 补丁文件: patch;
      • 文件打印准备: pr

    第十三章

    • shell script --- shell 脚本;
      • 支持数组、循环、条件和逻辑判断等重要功能。
      #!/bin/bash     声明这个script的名称
      # '#'用来注释说明
      PATH=/bin:/... #主要环境变量的声明
      export PATH
      echo -e "Hello world! a 
      "   # 回显hello world
      exit 0 
      
    • 利用test命令的测试功能:
      • test -e /dmtsai && echo "exist" || echo "Not exist".
    • 利用判断符号[]来进行数据的判断,中括号两端必须要有空格分隔;
      • [ -z "$HOME" ]; echo $?, $?是前一个命令执行完毕后的回传码。
    • shell脚本的默认变量:
      • 默认变量是$0, $1, ……
      /path/to/scriptname opt1 opt2 opt3 opt4 
              $0            $1  $2   $3   $
      
      • shift造成参数变量号码便宜;
      • 条件判断式:if...then,单层简单条件判断式。
      • &&代表AND,||代表or。
      # 一个条件判断
      if [ 条件判断式一 ]; then
          成立执行的工作;
      elif [条件判断式二 ]; then
          成立执行的工作;
      else
          都不成立执行的工作
      fi
      
    • 常见的端口号:
      80: www
      22: ssh
      21: ftp
      25: mail
      111: RPC(远程过程调用)
      631: CUPS(打印服务功能)
      
    • 利用case...esac进程判断。
      case $1 in
          "hello")
              echo "Hello, how are you ?"
              ;;
          "")
              echo "input "
              ;;
          *)   #相当于通配符
              echo "usage $0 {hello}"
              ;;
      esac
      
    • 利用function功能:
      function fname() {
          程序段
      }
      
    • 循环(loop):
      • while do done, until do done(不定循环)
      while [ condition ]
      do
          程序段落
      done
      
      until [ condition ]
      do 
          程序段落
      done
      
    • for do done(固定循环):
      for var in con1 con2 con3 ...
      do
          程序段
      done
      
      for ( ( 初始值; 限制值; 执行步长 ) )
      do
          程序段
      done
      
    • shell脚本的追踪调试:
      • sh [-nvx] scripts.sh;
        • -n不执行脚本,仅检查语法的问题;
        • -v在执行script前,先将脚本的内容输出到屏幕上;
        • -x将使用到的脚本内容显示到屏幕上。

    第十八章

    • 认识系统服务(daemons):可分为stand alone与super daemon两类。
      • 自行单独启动服务(stand_alone), WWW的daemon(httpd), FTP的daemon(vsftpd);
      • 一个特殊的daemon来进行统一管理(super daemon):负责唤醒服务(inetd或xinetd);
        • super daemon具有安全管控机制, 类似防火墙的功能。
    • daemon的启动脚本与启动方式:
      • 提供daemon虽然只是一个进程,但这个daemon的启动是需要执行文件、配置文件、执行环境等;
      • 启动脚本的放置处/etc/init.d*;
      • 各服务的初始化环境配置文件/etc/sysconfig/*;
      • super daemon配置文件/etc/xinetd.config, /etc/xinetd.d/*
      • /etc/*各服务各自的配置文件;
      • /var/lib/*各服务产生的数据库;
      • /var/run各服务的程序的PID记录。
  • 相关阅读:
    momentjs时间格式插件
    TagCanvas 插件
    Vue2.0 探索之路——生命周期和钩子函数的一些理解
    vue.js学习:1.0到2.0的变化(区别)
    dom操作节点之常用方法
    javascript 中 x offsetX clientX screenX pageX的区别
    Vuex详解笔记2
    Vuex详解笔记1
    Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#<Object>‘的解决方法
    CSS技巧和经验列表
  • 原文地址:https://www.cnblogs.com/longjiang-uestc/p/10552145.html
Copyright © 2011-2022 走看看