zoukankan      html  css  js  c++  java
  • shell 笔记

    配置启动界面
    vim /etc/inittab/  init3
    配置网卡 重启生效
    system-config-network
    网卡配置文件
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    ONBOOT=yes 开机自启动网卡
    查看历史命令:参数  -c(清空)  -w(保存)
    history
    shell脚本开头第一行:说明一下内容是shell脚本。
    #!/bin/bash
    命令别名:
    alias
    alias vi = 'vim'临时生效,重启命令就会消失。
    vim /root/.bashrc 将要添加的别名写入到配置文件中。
    删除别名:
    unalias
    清屏:
    ctrl+L 相当于clear
    删除或剪切光标之前的所有命令:
    ctrl+U
    粘贴ctrl+U的数据
    ctrl+Y
    搜索history的内容
    ctrl+R 回车直接执行
    退出终端:
    ctrl+D
    正确输出重定向:
    覆盖之前的内容:命令 > 文件
    追加内容:命令 >> 文件
    错误输出重定向:
    输出错误内容覆盖之前的内容:命令 2> 文件
    输出错误内容追加内容:命令 2>>文件
    错误输出和正确输出都输出到一个文件里:命令 &>> 文件
    正确错误分别保存:命令 >> 文件1 2>> 文件2
    黑洞垃圾箱:
    /dev/null

    输入重定向:wc 参数:-c(统计字节数),-w(统计单词数),-l(统计行数)
    wc < aa.log
    wc -l < aa.log
    wc -c aa.log
    wc -w < aa.log

      • 多命令顺序执行:

    ; 顺序执行
    && 当前一个执行不报错,顺序执行,报错结束
    || 当前一个执行报错,才执行条件2
    用在程序判断:
    ls && echo yes || echo no  正确执行输出yes
    lsss && echo yes || echo no错误执行输出no

      • 管道符:

    命令2作为命令1的输出: 例子:ls -l /etc | more

    grep:搜索关键字,在文件当中搜索相关的字符串
    例子:netstat | grep  EST

      • 通配符和特殊符号:用来匹配文件的

    ?:匹配一个任意字符
    *:匹配多个或任意多个字符,可以匹配任何内容
    []:匹配中括号中任意一个字符,例如[a,b,c]代表一定匹配一个字符,或者a,或者b,或者c
    [-]匹配中括号中任意一个字符,-代表范围例如:[a-z]代表匹配一个小写的字母
    [^]逻辑非,表示匹配不是中括号内的一个字符,例如:[^0-9]代表匹配不是一个数字的字符
    特殊字符
    '' 内容都是字符串里边的不识别特殊字符
    "" 能识别特殊字符
    $ 调用变量的值
    $()和反引号效果一样,输出内容的结果
    特殊符号的特殊作用取消变成普通字符
    例:
    [root@zabbix_1 ~]# name=$(date)
    [root@zabbix_1 ~]# echo $name
    Thu Oct 25 08:41:09 CST 2018
    [root@zabbix_1 ~]# name=22
    [root@zabbix_1 ~]# echo '$name'
    $name
    [root@zabbix_1 ~]# echo "$name"
    22

      • 变量:

    定义变量:变量=值
    变量叠加:变量="$(变量)新值"
    查看变量:echo $变量 或者 echo "$变量"
    查看变量 set(查看所有变量)
    删除变量:unset 变量名

    环境变量:PATH、PS1变量重要
    定义:export 变量=值
    已经定义好的自定义变量想改成全局环境变量:
    sex=boy
    export=sex 这样就定义好了全局环境变量
    查询环境变量: env(查看环境变量)
    变量叠加: PATH="$PATH:/路径" 重启就会失效,永久生效需要添加到环境变量中

      • 位置参数变量:

    $n(n代表参数)$0代表命令本身,$1-$9代表第一个到第九个参数,10以上的参数需要用大括号包含例如:${10}
    $* 把所有参数当成一个整体,打印一行。
    $@ 把每个参数当成一个整体,几个参数打印几行。
    $# 返回参数的个数。

      • 预定义变量:

    $? 返回判断上一条命令是否正确执行,正确执行返回0,不正确执行返回非零
    $$ 显示当前进程的ID
    $! 显示后台进程的ID

    接收键盘输入:-p(提示信息),-t(秒数),-n(字符数,用户可以输入几个字符),-s(隐藏输入的信息)
    例:
    #!/bin/bash
    read -t 30 -p "pleas is:" name
    echo "$name"
    read -s -t 10 -p "pleas is:" age
    echo " "
    echo "$age"
    read -n 1 -t 20 -p "[Y/N]:" is
    echo $is

      • 数据运算与运算符:

    declare 参数:
    -:给变量设定属性类型
    +:取消变量的属性类型
    -i:将变量声明为整型
    -x:将变量声明为环境变量
    -p:显示指定变量的被声明的类型


    例1:
    [root@zabbix_1 sh]# aa=11
    [root@zabbix_1 sh]# bb=12
    [root@zabbix_1 sh]# declare -i cc=aa+bb
    [root@zabbix_1 sh]# echo $cc
    23
    [root@zabbix_1 sh]#

    例2:
    [root@zabbix_1 sh]# dd=$(($aa+$bb))
    [root@zabbix_1 sh]# echo $dd
    23
    [root@zabbix_1 sh]#

    例3:

    [root@zabbix_1 sh]# ff=$((($aa+$bb)*$ee)) 先算加减
    [root@zabbix_1 sh]# echo $ff
    483
    [root@zabbix_1 sh]#

      • 取余:

    例:
    [root@zabbix_1 sh]# dq=$((13%3))
    [root@zabbix_1 sh]# echo $dq
    1
    [root@zabbix_1 sh]#


      • 逻辑与&&:

    例1:
    [root@zabbix_1 sh]# ds=$((1&&0)) 一边为1,返回值为0
    [root@zabbix_1 sh]# echo $ds
    0
    [root@zabbix_1 sh]# ds=$((1&&1))两边都为1,返回值为1
    [root@zabbix_1 sh]# echo $ds
    1
    [root@zabbix_1 sh]#

      • 逻辑或||:

    例:
    [root@zabbix_1 sh]# ds=$((1||0)) 有一个为1,返回值就为1
    [root@zabbix_1 sh]# echo $ds
    1
    [root@zabbix_1 sh]# ds=$((0||0)) 两个都不为1,返回值为0
    [root@zabbix_1 sh]# echo $ds
    0
    [root@zabbix_1 sh]#

    变量测试与内容替换:


      • 环境变量配置文件:

    环境变量有哪些:PATH、HISTSIZE、PSI、HOSTNAME
    source /etc/profile 不重启生效环境变量
    环境变量配置文件有哪些:

    配置文件作用:
    /etc/下的配置文件对任何用户都生效。
    /etc/profile    下的配置文件对任何用户都生效。
    /etc/profile.d/*.sh --->以.sh结尾的文件
    /root/.bash_profile 写在哪个家目录就对哪个用户生效
    /root/.bashrc    写在哪个家目录就对哪个用户生效
    /etc/bashrc 下的配置文件对任何用户都生效。

      •  配置文件启动顺序

    • su命令切换用户(切换登录)

     

    • 正则表达式:

     :

     

     

     

     

  • 相关阅读:
    消息中间件与kafka(二)
    维度建模基本概念(二)
    阿里开源canal
    ETL-kettle报错--org.gjt.mm.mysql.Driver
    消息中间件与rabbitmq(一)
    python装饰器--这个很pythonic
    Swift开发小技巧--识别选中照片中的二维码
    Swift开发小技巧--扫描二维码,二维码的描边与锁定,设置扫描范围,二维码的生成(高清,无码,你懂得!)
    Swift开发小技巧--自定义转场动画
    Swift基础--通知,代理和block的使用抉择以及Swift中的代理
  • 原文地址:https://www.cnblogs.com/szc113/p/9851051.html
Copyright © 2011-2022 走看看