• linux shell基础


    ===========================shell编程===================================

    1、Bash 的常用功能
    Tab 键自动补全
    命令历史记录 历史记录里边最多能保存1000条记录
    echo $HISTSIZE --->10000
    vi /etc/profile......
    命令别名: 建立别名:alias mysql="/usr/local/mysql/bin/mysql"
    删除别名:unalias mysql

    标准的输入出
    重定向 导入 ">"---覆盖写入, ">>"---追加写入

    1>,1>>正确的输出 默认是该方式
    2>,2>>错误输出
    &> ,&>>--- &代表正确和错误的输出
    (ls;lllllllll)&>file 正确和错误同时输出

    (ls;lllllllll) 1>>file 2>&1 正确和错误追加写入
    多条指令之间用";"输出
    读取键盘输入 存储到变量name 然后输出$name
    read -p "please input your username:"name

    please input your username:root

    echo $name

    root

    管道操作符 "|"

    2、shell变量
    1)、变量名:
    2)、变量值:
    变量的类型:
    1)、局部变量
    2)、全局变量
    3)、预定义变量
    4)、位置变量

    局部变量:
    1、新建
    str="hello world!";
    str='hello world!';
    echo $str;
    2、删除一个变量
    unset str
    3、set查看一个变量

    全局变量:
    vi test.sh
    #!/bin/bash --->找解析器

    1、局部变量输出为全局变量
    export str

    2、查看全局变量
    env---只能查看全局变量 or set--查看所有变量
    位置变量:
    $1、$2、....$9 用来应用1~9的位置
    常见的预定义变量 共六个
    $0 、用于存储脚本的名字
    $* 、用户记录脚本的所有参数
    $$ 、用于记录脚本的PID值
    $# 、输入了多少个参数
    $? 、用户记录脚本的运行状态 是否执行成功 0表示执行成功 非0代表错误
    $!

    #for循环输出传入参数
    #!/bin/bash
    for loop in $*
    do

    echo $loop;
    done

    变量赋值与引用

    ""可以解析里边的变量
    str="aaaaaaaaaaaaaaaaaaa"
    echo "bbbbbb${str}cccccc"

    ''不解析里边的变量
    echo 'bbbbbbbb$str'

    ``可以执行其中的shell指令

    srt=`ls -l` //把其中的shell指令的执行结果赋给str

    ********awk 取坐标
    ========================================================
    26、set #查看环境变量
    27、echo $HOME #输出当前登录用户的家目录信息
    28、echo $LANG #输出服务器的语言环境信息
    29、echo $PATH #输出path环境变量 table补全要去这地方查找能适配的补全命令
    30、echo $PS1 #用户身份提示符 默认root为#号 普通用户为 $ --可以修改
    PS1='[w]$' or PS1='[u@h W]$'
    31、echo $PS2 #辅助提示符">" 修改PS2=":"

    32、readonly

    33、/etc/profile 全局环境变量配置文件
    34、.basn_profile


    35、#!bin/bash shell脚本开始出必须写的一个语句

    36、自定义变量有数字、字母、下划线组成
    无需指明变量类型 默认是字符型 需要其他类型 可以做类型转换
    NAME=huangjialin
    echo $NAME--->huangjialin


    转换实列:
    A=12
    B=24

    expr $A + $B--->36 "+"号前后空格必须有
    *(乘号)必须转义 *
    let num-- ($num ++)
    加 减 乘 除 取余

    37、自定义变量的话有自己的作用域
    38、shell中的数组
    通俗讲就是一些变量的集合

    数组的定义:ARRAY=(1 2 3 4 5 6)

    数组的使用:${ARRAY[0]} ${ARRAY[1]} ${ARRAY[2]} ${ARRAY[3]} ......

    获取数组元素的个数:LENGTH=${#ARRAY[@]}
    输出数组中所有元素:LENGTH=${ARRAY[@]}
    数组排序实列:
    ARRAY=(1 2 30 4000 500 60 70 3773)
    LENGTH=${#ARRAY[@]}
    I=0
    while["$I" -lt "$LENGTH"]
    do
    J=`expr $I + 1`
    while["$J" -lt "$LENGTH"]
    do
    if["${ARRAY[J]}" -lt "${ARRAY[I]}"]
    then
    TEMP=${ARRAY[J]}
    ARRAY[J]=${ARRAY[I]}
    ARRAY[I]=$TEMP
    fi
    J=`expr $J + 1`
    done
    I=`expr $I + 1`
    done
    echo ${ARRAY[@]}
    unset ARRAY I J TEMP LENGTH


    ****./ 表示当前路径
    也可以用全路径的方式来执行

    1、shell条件测试

    test 测试表达式是否成立

    测试文件状态
    格式:[ 操作符 文件或目录 ]
    常用测试操作符:
    -d 测试是否为目录
    -e 测试文件是否存在
    -f 测试是否为文件
    -r 测试当前用户是否有权限度文件
    -l

    -L测试是否为链接文件

    整数值比较
    格式:[ 整数1 操作符 整数2 ]
    [常用的测试操作符]
    -eq等于
    -ne不等于
    -gt大于
    -lt小于
    -le 小于等于
    -ge 大于等于

    [ `who|wc-l` -le 10 ] && echo "yes"

    df | awk 'NR==3{print int($4),$1,$3}' 输出df结果的第三行 disi列的数值 大括号前面为条件 大括号里边为执行区间
    cat /etc/passwd |awk -F:'{print $1"===>"$7}'


    字符串比较:
    格式:


    ****mail n--数字查看邮件 d--删除邮件 q---退出邮件查看

    mail root@localhost

    探测某个应用程序 是否启动 -w2为探测时间2秒
    nc -w2 localhost 80
    nc -w2 localhost 3306


    service httpd restart &>/dev/null 黑洞程序


    echo 123456 |passwd --stdin username&>/dev/null

  • 相关阅读:
    mysql的安装、启动和基础配置 —— windows版本
    Navicat安装及简单使用
    期货黄金与现货黄金比较
    android 网络编程--socket tcp/ip udp http之间的关系
    socket、tcp、udp、http 的认识及区别
    Android数据传递的五种方法汇总
    android 应用程序Activity之间数据传递与共享的几种途径
    Android数据存储的五种方法汇总
    Android终端与服务器数据传输解决方案
    转载 解决Android与服务器交互大容量数据问题
  • 原文地址:https://www.cnblogs.com/jamesbd/p/3567646.html
Copyright © 2020-2023  润新知