zoukankan      html  css  js  c++  java
  • shell编程之SHELL基础(1)

    shell脚本基础

    shell是一个命令行解释器,她为互用提供了一个想linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动。挂起。停止甚至编写一些程序。

    shell还是一个功能相当强大的编程语言,易编写,易调试,灵活醒较强。shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令

    脚本的执行

    1 echo输出命令
    echo [选项][输出内容]
    选项:
     -e : 支持反斜线控制的字符串转换
    
    控制字符 作用
    a 输出警告音
     退格键,也就是像左删除健
    换行符
    回车健
    制表符,也就是tab
    v 垂直制表符
    nnn 按照八进制acsii表输出字符,其中0未数字零,nnn是三位八进制
    xhh 安卓十六进制输出输出字符
    在echo中输出颜色  echo -e "e[1;31m aaaa e[0m"
    
    30m =  黑色, 31m = 红色, 32m = 绿色,33m = 黄色
    34m = 蓝色  , 35m = 洋红, 36买= 青色, 37m = 白色
    
    2 第一个脚本
    
    
    #i/bin/bash
    
    
    #i/bin/bash
    #the first program
    
    echo -e "e[1;34m hello e[0m"
    
    
    3 脚本执行

    赋予执行权限,直接运行

    • chmod 755 hello.sh
    • ./hello.sh

    通过bash调用执行脚本

    • bash hello.sh
    4 常用快捷键
    • ctrl+c 强制终止当前命令
    • ctrl+l 清屏
    • ctrl+a 光标移动到命令行首
    • ctrl+e 光标移动到命令行尾
    • ctrl+u 从光标所在位置删除到行首
    • ctrl+z 把命令放入后台
    • ctrl+r 在历史命令中搜索

    bash的基础命令

    1 命令别名和快捷键
    alias
    #查看系统中所有的命令别名
    
    alias 
    别名 = ‘原命令’临时生效
    
    vi ~/.bashrc
    #写入环境变量配置文件
    
    unalias 别名
    #删除别名
    
    2 命令生效的顺序
    • 第一顺位执行绝对路径或相对路径执行的命令
    • 第二顺位执行别名
    • 第三顺位执行bash的内部命令
    • 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
    echo $PATH
    /usr/local/server/node/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/chenjinxin/bin
    

    2 历史命令

    history 查看历史命令
    -c 清空历史命令
    -w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history
    

    历史命令的调用

    • 使用上下箭头调用以前的历史命令
    • 使用'!n'重复执行第n条历史命令
    • 使用'!!'重复执行上一条命令
    • 使用'!字串'重复执行最后一条以该字符串开头的命令

    3 输出重定向

    1 标准输入输出
    设备 设备文件名 文件描述符 类型
    键盘 /dev/stdin 0 标准输入
    显示器 /dev/sdtout 1 标准输出
    显示器 /dev/sdterr 2 标准错误输出
    2 输出重定向
    类型 符号 作用
    标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或者设备当中
    标准输出重定向 命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或者设备当中
    标准错误输出重定向 错误命令 2> 文件 以覆盖的方式,把命令的错误输出输出到指定的文件或者设备当中
    标准错误输出重定向 错误命令 2>> 文件 以追加的方式,把命令的错误输出输出到指定的文件或者设备当中
    正确输出和错误输出同时保存 命令 > 文件 2&1 覆盖
    正确输出和错误输出同时保存 命令 >> 文件 2&1 追加
    正确输出和错误输出同时保存 命令 &> 文件 覆盖
    正确输出和错误输出同时保存 命令 &>> 文件 2&1 追加
    正确输出和错误输出同时保存 命令 >> 文件1 2>>文件2 正确追加到1,错误追加到2
    3 输入重定向
        wc [选项][文件名]
        选项: 
        -c 统计字节数
        -w 统计单词数
        -l统计行数
        然后ctrl  + d 显示统计
        
        << access.log
    

    4 多命令顺序执行

    1 多命令顺序执行
    多命令执行符 格式 作用
    ; 命令1; 命令2 多个命令顺序执行,命令之间没有任何逻辑联系
    && 命令1 && 命令2 逻辑与 当前命令1正确执行,则命令2才能执行当命令1执行不正确,测命令2不会执行
    || 命令1 || 命令2 逻辑或 当命令1执行不正确,测命令2才会执行 当命令1正确执行,测命令2不会执行
    2 管道符

    命令1 | 命名2 命令1的输出结果作为命令2的输入内容

    比如 ps aux | grep node

    5 shell中特殊字符

    1 通配符
    通配符 作用
    ? 匹配一个任意字符
    * 匹配0个或任意多个任意字符,也就是可以匹配任何内容
    [] 匹配括号中任意一个字符
    [-] [0-9]
    [^] [^0-9]在括号内的字符
    2 bash中的其他特殊符号
    符号 作用
    '' 没有特殊的意义
    "" 一般没什么意义
    `` 内容系统命令
    $() 和反引号一样,用来引用系统命令
    # 在shell脚本中,#开始的行代表注释
    $ 用于调用变量的值,入需要调用变量name的值是,需要用$name的值时,需要用$name的方式得到变量的值
    转义符,回到本来的意思
  • 相关阅读:
    BAT 批处理脚本教程
    javascript定时器
    使用命令行打开文件夹并显示
    用cmd加密文件夹
    烟波钓叟歌概述讲解
    奇门遁甲的起源
    八卦基本知识
    word2vec和word embedding有什么区别?
    Privoxy shadowscocks代理
    Elasticsearch源码分析—线程池(十一) ——就是从队列里处理请求
  • 原文地址:https://www.cnblogs.com/chenjinxinlove/p/7121854.html
Copyright © 2011-2022 走看看