zoukankan      html  css  js  c++  java
  • Shell学习笔记 ——第一天

    1、程序第一行  指定执行Shell的程序

      #!/bin/bash

      #!用来告诉系统它后面的参数是用来执行该文件的程序

    2、在控制台输出信息

      echo "Hello Shell"

    #!/bin/bash
    #向控制台输出信息
    echo "Hello shell"

      保存,退出!
    3、使脚本可执行,需要在DOS窗口 执行如下命令

       chmod +x fileName

    4、执行脚本

      ./helloShell

    5、变量的使用

      Shell中,变量不用声明,直接用即可(类似于Lua),变量名和等号之间不能有空格

      取出变量使用美元符号 $

    #变量的使用
    a="i am a variable"
    echo $a
    echo ${a}

      使用花括号是为了防止变量与字符串相邻时,不确定变量是什么!如:$numth  与 ${num}th  前者取变量名为numth的变量,后者取变量名为num的变量。

      变量类型有:局部变量(仅在当前实例中有效),环境变量,Shel变量

    6、Shell常用命令

      文件统计命令:wc –l fileName,  wc -w fileName, wc -c fileName: 计算文件行数, 计算文件中的单词数, 计算文件中的字符数

      文件拷贝: cp sourcefile destfile
      重命名文件或移动文件: mv oldname newname
      删除文件: rm file

      文件中搜索字符串(支持正则表达式):grep 'str' fileName  会将搜索到的行输出到控制台

      输出文件内容到屏幕上: cat fileName

      获取用户输入: read varName           将用户输入,赋值给变量varName

      将一个变量设置为只读变量:readonly varName         这时候如果更改变量就会报错
      删除变量:unset -v varName  (不加$)

    7、字符串拼接

      直接拼接,不需要任何连接字符,如变量var 与 "hello" 拼接

      echo ${var}"hello" 

    8、获取字符串长度

      ${#var}

    9、截取字符串

    #截取字符串 从第三个截取到第四个
    subStr=${a:2:2}
    echo $subStr

    10、数组的使用

    #数组 三种定义方式 注意,使用的是小括号 不是 花括号
    arrayVar=("one" "two" "three" "four")
    arrayVar2=(
    "1"
    "2"
    "3"
    )
    arrayVar3[0]=""
    arrayVar3[1]=""
    
    #使用时 下标从0开始
    echo ${arrayVar[0]}${arrayVar[1]}
    echo ${arrayVar2[0]}${arrayVar2[1]}
    echo ${arrayVar3[0]}${arrayVar3[1]}

       数组遍历

    #数组遍历
    for num in ${arrayVar[*]}
    do
            echo ${num}
    done

     11、加减乘除 取余

      原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用

    #运算符
    num1=30
    num2=9
    
    #加减乘除 取余 两项之间,必须有空格
    #expr 只能对整形计算
    echo `expr ${num1} + ${num2}`
    echo `expr ${num1} - ${num2}`
    echo `expr ${num1} * ${num2}`
    echo `expr ${num1} / ${num2}`
    echo `expr ${num1} % ${num2}`
    
    #浮点运算
    result=`echo "5.0-1.8"|bc`
    echo "5.0-1.8="$result

    12、数字比较 相等,大于,小于

    #相等-eq  不等 -ne
    eq1=13
    eq2=12
    if [ $eq1 -eq $eq2 ]
    then
        echo "eq1 = eq2"
    else
        echo "eq1 != eq2"
    fi
    
    #大于-gt 小于 -lt
    if [ $eq1 -gt $eq2 ]
    then
        echo "eq1 > eq2"
    else
        echo "eq1 <= eq2"
    fi

     13、布尔运算符

      或-o 与-a 非!

    #字符串比较
    str1="abcd"
    str2="abcd"
    str3="abcder"
    #if 后面必须有空格,=作为判断是否相等时,两边必须有空格 [] 必须有空格
    if [ $str1 = $str2 ]
    then
            echo "str1=str2"
    else
            echo "str1!=str2"
    fi
    
    #或-o 与-a 非!
    if [ $str1 = $str2 -a $eq1 = $eq2 ]
    then
            echo "true"
    else
            echo "false"
    fi

    14、检测端口

    netstat -ntpl|grep 8082

      

      

  • 相关阅读:
    运营商公网
    任务管理器 的 服务与进程
    QQ通信原理及QQ是怎么穿透内网进行通信的?
    windows Telnet 客户端常用命令介绍
    redis优化
    shell反射
    USB安装centos6系统(centos7需要换软件)
    rocketmq双主模式
    golang数据类型与转换
    golang介绍
  • 原文地址:https://www.cnblogs.com/tengpan-cn/p/5775298.html
Copyright © 2011-2022 走看看