zoukankan      html  css  js  c++  java
  • shell基础及变量符号

    kernel主要的功能:
    1、内存的管理
    2、设备驱动程序
    3、文件系统的管理
    4、进程的管理
    5、网络系统
     
    vim /etc/profile.d/
    profile(主配置文件)
    .d(子配置文件)
     
    添加这个配置文件时,加source
     
     
    后台运行脚本
    1、bash 脚本名称 &   (这种用法关掉当前终端就停止脚本)
    (在命令后加上&是把作业放在后台执行)
    2、nohup bash 脚本名称 & (关掉终端不会停止脚本)
    3、查看后台运行
    jobs
     
    停止此种脚本方法
    1、直接关掉当前终端
    2、ps -aux 找到该脚本的PID ,然后使用kill -9 PID
    3、使用jobs命令查看该脚本的序列号,然后使用kill -9 %序列号
     
    执行shell有三种方法
    1、直接用bash解释器执行
    当前终端会新生成一个子 bash 去执行脚本。
    2.、添加可执行权限
    Linux 系统会去 PATH(环境变量) 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。
    3、source 命令执行,以当前默认 Shell 解释器执行
    注:执行shell的命令要以系统所能寻找的路径来执行, ./表示当前目录下
    有这个文件才执行
     
    source filename 与 bash filename 及./filename执行脚本的区别
     
    • 当shell脚本具有可执行权限时,用bash filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所以”.”是用来表示当前目录的。
    • source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
    • bash filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,子shell新建的、改变的变量不会被带回父shell。子shell继承父shell的环境变量:
    子shell新建变量,在父shell中不会生效,但子shell继承父shell的环境变量
    使用pstree查看当前bash位置
     
     
     
    Shell 变量的命名规范和大部分编程语言都一样:
    • 变量名由数字、字母、下划线组成;
    • 必须以字母或者下划线开头,不能以数字开头
    • 不能使用 Shell 里的关键字(通过 help 命令可以查看保留关键字)。
    例:
    # name="zgn"   
    定义变量时等号左右两边无需空格(否则可能会出现错误)
    echo ${name}
    zgn
    给所有变量加上花括号{ },用于定义变量的边界,这是个良好的编程习惯。
     
    使用 unset 命令可以删除变量。语法:
    unset name
    变量被删除后不能再次使用;unset 命令不能删除只读变量。
     
    运行shell时,会同时存在三种变量:
    1) 局部变量
    局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
     
    2) 环境变量
    即全局变量,对所有用户有效。所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
     如果你希望查看当前 Linux 的默认 Shell,那么可以输出 SHELL 环境变量:echo $SHELL
     
    3) shell变量
    shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
     
     
     
    特殊变量 $0  当前脚本的文件名 $n  传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,
    第一个参数是$1,第二个参数是$2。 如脚本里含有$1 ,$2 的变量,在执行脚本
    的时候脚本并不知道$1,$2 的值 ,可在执行脚本是后面加上参数
    例:  #bash 1.sh A B    ,这里的A即为$1的值  B为$2的值 $#  传递给脚本或函数的参数个数。 $*  传递给脚本或函数的所有参数。 $?  上个命令的退出状态,或函数的返回值。可以获取上一个命令的退出状态。所谓退出状态,就是上一个命令执行后的返回结果。
    退出状态是一个数字,一般情况下,大部分命令执行成功会返回 0,失败返回 非0 。
    #echo $?   查看返回值 $$  当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。
     
     
     
    条件表达式
             [ expression ] 
                    [ 1 -eq 1 ]
    注意:括号中的表达式前后都有空格,否则会报错!
     
       整数比较符
             
             描述                        
                    实例                   
    -eq, equal
    等于
    [ 1 -eq 1 ] 为true
    -ne, not equal
    不等于
    [ 1 -ne 1 ] 为false
    -gt, greate than
    大于
    [ 1 -gt 1 ] 为false
    -lt, lesser than
    小于
    [ 1 -lt 1 ] 为false
    -ge, greate or equal
    大于或者等于
    [ 1 -ge 1 ] 为false
    -le, lesser or equal
    小于或者等于
    [ 1 -le 1 ] 为false
     
    字符串比较符
       运算符                 
                     描述                        
                      实例                        
                       ==
    等于
     [ "a" == "a" ] 为true
                       !=
    不等于
    [ "a" != "a" ] 为false
                       -n
    字符串长度不等于 0 为真
     VAR1=1;VAR2=""
     [ -n "$VAR1" ]为 true
     [ -n "$VAR2" ]为 false
                       -z 
     
    字符串长度等于 0 为真
      VAR1=1;VAR2=""
       [ -z "$VAR1" ]为false
       [ -z "$VAR2" ]为 true
     
    文件测试
        测试符      
                 描述              
                       实例                
    -e
    文件或者目录存在为真
    [ -e path ] path 存在为 true
    -f
    文件存在为真
    [ -f file_path ] 文件存在为 true
    -d
    目录存在为真
    [ -d dir_path ] 目录存在为 true
     -r
    有读权限为真
    [ -r file_path ]file_path有读权限为真
    -w
    有写权限为真
    [ -r file_path ]file_path有写权限为真
    -x
    有执行权限为真
    [ -r file_path ]file_path有执行权限为真
     
    布尔运算符
    运算符              
                  描述                
                  实例                     
    非关系,条件结果取反
    [  ! 1 -eq 2 ]为true
    -a
    和关系,在[]表达式中使用
    [ 1 -eq 1 -a 2 -eq 2 ]为true
    两者都为真才为真
    -o
    或关系,在[]表达式中使用
    [ 1 -eq 1 -o 2 -eq 1 ]为true
    两者有一真则为真
     
    整数运算
    运算符
    描述                 
    +
    加法
    -
    减法
    *
    乘法
    /
    除法
    %
    取余
     
     运算表达式          
                实例                  
    $(())
    $((1+1))
    $[]
    $[]
     
    其他运算工具
      命令        
               描述                      
                      实例              
                       let
            赋值并运算,支持++、--
    let VAR=(1+2)*3 ; echo $VAR
    x=10 ; y=5
    let x++;echo $x 每执行一次 x 加 1
    let y--;echo $y 每执行一次 y 减 1
    let x+=2 每执行一次 x 加 2
    let x-=2 每执行一次 x 减 2
                    expr
      乘法*需要加反斜杠转义*
     
    expr 1 * 2   运算符两边必须有空格
    expr ( 1 + 2 ) * 2  使用双括号时要转义
                      bc
     计算器,支持浮点运算、平方等
     bc 本身就是一个计算器,可直接输入命令,进入解释器
    echo 1 + 2 |bc 将管道符前面标准输出作为 bc 的标准输入
    echo "1.2+2" |bc
  • 相关阅读:
    EasyUI DataGrid及Pagination
    Easyui Datagrid的Rownumber行号显示问题
    Easyui控制combotree只能选择叶子节点
    Easyui datebox单击文本框显示日期选择
    EasyUI DataGrid可编辑单元格
    EasyUI获取DataGrid中某一列的所有值
    EasyUI DataGrid 多级表头设置
    EasyUI DataGrid 编辑单元格
    EasyUI combobox 加载JSON数据《一》
    EasyUI combobox 加载JSON数据
  • 原文地址:https://www.cnblogs.com/zgngg/p/10456557.html
Copyright © 2011-2022 走看看