zoukankan      html  css  js  c++  java
  • 学shell的第一天

    shell的基本框架:
       1.bash的基本特性
          快捷键和基本信息
       2.io重定向与管道符
       3.编程基础:
          编程原理
          程序:执行某个功能的一段代码
          程序=指令+数据+(逻辑关系)
                   命令+变量
       4.grep和正则表达式************
          Linux三剑客
          pattrn"模式"
       5.语句的逻辑关系
                --变量
          Linux三剑客
           1.sed(stream edit d?)两种模式切换
           2.awk (报告生成器)
            他是一个独一的编程语言
          函数:
           一段固定功能的代码块
          数组:
           列表、元组、字典
          字符串:
           字符串的处理
           重复:必须连续且相同的数据,先排序再去重
                --循环:
            if、for(优点是不容易进入死循环,程序放入for循环列表)
            while--循环条件为真的时候进入循环
            until(循环)循环条件为假进入循环
            case--“编写Linux程序启动脚本”
                    --打断循环
            break
            continue
            exit--退出当前状态,指定程序执行的返回值
            read ==input()输入
            echo==print() 输出
    练习:
    1.判断/etc/inittab文件是否大于100行,如果大于显示大文件,如果小于显示小文件
    #!/bin/bash
    Line=`wc -l /ect/inittab|cut -d'' -f1`
    if test $Line -gt 100;then
     echo "/etc/inittab is a big file."
    else
     ehco "/etc/inittab is a small file."
    -------------------------------------------------------------------------------------------------------
    bash的基本特性
    1.命令历史
       作用:查看之前使用的命令
       关于命令历史的文件
        每个用户家目录下面.bash_history
        在关机的时候,会自动写入一次(history -r  将内存内的命令存入文件内)
       关于命令历史的变量(环境变量)
        env //查看环境变量
        set  //查看更详细的环境变量参数
        HISTSIZE=1000     数量
        HISTCONTROL=ignoredups   
      
        HISTFILE=/root/.bash_history
        HISTFILESIZE=1000
       history 的常见操作
          1.查看命令历史
          2.!+数字
          3.!+字符串    匹配最近一次的字符串
          4.!!上一条命令
          5.!$上一条命令的最后一个参数:ls /etc     ls !$
                ls  ESC.
        6.常见的选项:
               -a
               -d  行号 删除对应命令
               -c     清空历史命令
               history  【数字】  显示最近数字行的命令
       
    2.命令补全
       Tab键         1.提示    2.自动补全
       扩展:制表符      是个空格
    3.目录补全
       Tab键         1.提示    2.自动补全
    4.命令展开 ---date
       {,}
       Linux的目录需要遵循什么规则?--FHS目录规则
       makdir -pv /var/{a,b}-{1,2}
       date 基于data命令来创建目录
        %F   年-月-日
        %T  小时-分钟-秒
        %D  月 - 日 - 年
        %H   小时
        %M   分钟
        %S     秒
        %Y    年
      练习:通过for语句循环创建一个月的日志文件
        for i in {1..30};do (do是执行这个程序)
         touch `date +%Y-%m-$i`.http.log;done($i是调用i)
        tar 
        *******压缩这个操作只能针对文件,不能针对目录
         压缩工具:
         gzip
         bzip2
         xz
        tar的常见参数:
         tar  归档工具【可以对目录进行操作】
         -j  bzip2
         -J xz
         -z gzip
         -c 创建
         -x 解压
         -f 指定文件名
         -v 显示详细信息
         g-t 不解压查看内容和zcatu一样
      练习:编写脚本,每天两点20备份/etc/目录中所有文件,名称为当天日期,且保存文件
      crontab -->20 2 * * * /root/xxx.sh
      vim xxx.sh
           #!bin/bash
           #
           tar cjvf /var/`date +%F`.xz /etc
      chmod +x xxx.sh
      补充:
         clock /hwclock  常看硬件时钟
    5.命令的执行状态
       在Linux中,每一条命令执行后都会有两个结果:
       命令本身放回的内容
       其次,命令执行的结果状态
       $?变量,就i是用来存放命令执行状态的变量;
       0 表示成功
       1-255表示失败
    6.命令的快捷键
       ctrl + l
       ctrl +c
       ctrl +u     删除光标前的字符
       ctrl +k     删除光标后的字符
       ctrl +a
       ctrl +e
       ctrl +w    以空格为分割符,删除文件
       ctrl +r     进入一个交互界面,搜索最近一次使用的命令(要输入string)
    7.alisa别名
          系统启动时读取一些特殊文件的顺序
       alias
       alias cdnet ="命令"这种只能在当前shell生效;
       /etc/profile     定义环境变量(所有用户)   -- EXPORT  HISTCONTROL=XXX
       /etc/bashrc    定义本地变量--alias(所有用户)
       ~/.bash_profile  定义环境变量(指定用户)
       ~/.bashrc          定义本地变量(指定用户)
                手动写入后   sources /etc/profile 或者 . /etc/profile
    8.文件通配符                  [文件通配符不是正则表达式] 
       ?任意单个字符
       *  任意长度的任意字符
       []  指定范围内的任意一个字符
            1.[^]指定范围以外的任意字符
      指定字符类[^0-9a-zA-Z]是指定符号
      [:digit:]
       任意数字, 相当于0-9
      [:lower]
       任意小写字母
      [upper:]
       任意大写字母
      [alpha:]
       任意大小写字母
      [:alnum:]
       任意数字或字母
      [:blank:]|
       水平空白字符
      [:space:]
       水平或垂直空白字符
      [punct:]
       标点符号
      [print:]
       可打印字符
      [:cntrl:]
       控制(非打印)字符
      [:graph:]
       图形字符
      [xdigit:]
       十六进制字符
  • 相关阅读:
    虚方法、重写方法和抽象方法[转载]
    枚举的默认构造为第一个成员值!
    自定义Attribute例子!
    Python 处理MD5
    php5 反射refection 的用途
    python Sleep休眠函数
    python处理urlencode的两种方式
    python操作mysql进行更新的时候,必须有commit
    Python repr() 或str() 函数
    python抓取网页内容
  • 原文地址:https://www.cnblogs.com/zrxuexi/p/11312967.html
Copyright © 2011-2022 走看看