zoukankan      html  css  js  c++  java
  • Shell之基本用法

    一:shell简介

    1.什么是shell

      shell的中文意思是“外壳”,通俗地讲,shell是一个交互编程接口,通过获得用户输入来驱动操作系统内核完成指定工作。shell除了作为命令解释程序以外,还是一种高级程序设计语音,它有变量、关键字、有各种控制语句、支持函数模块,有自己的语法结构。shell最重要的功能是命令解释,从这种意义上说,shell是一个命令解释器。

    2.Linux系统上可执行的文件分类如下:

      Linux命令:存放在/bin,/sbin目录下的命令

      内置命令:出于效率的考虑,将一些常用命令的解释程序构造在shell内部

      实用程序:存放在/usr/bin,/usr/sbin,/usr/local/bin等目录下的实用程序或工具

      用户程序:用户程序经过编译生成可执行文件后,也可作为shell命令运行

      shell脚本:由shell语音编写的批处理文件

    二:shell变量

    1.变量命名规则

      以字母或下划线开头,剩下的部分可以是:字母、数字、下划线

      最好遵循下述规范:

        1)以字母开头

        2)使用中划线或者下划线做单词的连接

        3)同类型的用数字区分

        4)对于文件最好加上拓展名

        例如:aa、aa1、a_b.tar.gz

    2.系统变量

      set和env区别:set:显示所有变量,env:环境变量

    3.变量赋值

      name=shenbuer

      echo $name

      删除变量  unset name

    (shell变量为小写;环境变量为大写)

    4.常用系统变量

      PATH:命令的搜索路径

      PWD:显示整个路径名

      LANG:解压或释放程序

      HOME:用户根目录的路径名

      HISTSIZE:保存在历史列表中的最大项数

      PS1:提示符1,主提示符(默认为“s-v$”)

      IFS:内部字段分隔符,用于分词

    三、运算符

    1.算术运算符

      +、-、*、/、%

    2、关系操作

      与(())连用

      <   小于

      >   大于

      <=  小于等于

      >=  大于等于

      ==  等于

      !=   不等于

      &&  按位与

      ||   按位或

    3.赋值运算符

      =    等于赋值

      +=  加等于

      *=   乘等于

      /+    除等于

      %=   取模赋值

    四、元字符

      `` 命令替换 取命令的执行结果

      $()同上,但它弥补了``的嵌套缺陷

      ~ 家目录

      ! 取非

      ! 历史命令调用

      ! 匹配最近一次历史命令

      ! ls 带空格 将命令的返回值取反

      @ 无特殊含义

      # 注释

      $ 变量取值

      $() 同``
      ${} 变量名的范围

      $[] 整数计算 echo $[2+3] - * / % 浮点数用 echo "scale=3; 10/3" | bc -l

      % 杀后台进程 jobs号; 取模

      ^ 取非 和 ! 雷同

      ^ 替换

      & 后台执行;&& 逻辑与

      * 匹配任意长度字符串;计算乘法

      () 在子进程中执行

      - 减号;区间;cd -;

      _ 无特殊含义

      + 加号 ;

      = 赋值

      | 管道; || 逻辑或

       转义;

      {} 命令列表 ,注意括号内的开头和结尾必须是空格{    ls; cd /;   }

      [] 字符通配,匹配括号内之一;

      : 空命令 真值

      ; 可以接多个命令:ls;pwd;echo 123;无论对错,会一直执行到最后一条命令

      "" 软引 ''硬引

      < 输入重定向

      > 输出重定向

      >> 追加

      << here document

      >& 合并2和1输出

      , 枚举分隔符

      . source ; 当前目录

      / 目录分隔符

      ? 单个字符

      回车 命令执行

      * 通配符:任意字符
      ? 通配符:任一字符
      [abc] 列表项之一
      [^abc] 对列表取非 也可以使用范围 [a-z] 代表aAbBcC...,[0-9]代表012345。。。
      {} 循环列表

      控制变量名的范围 echo ${AB}C

      转意

     

  • 相关阅读:
    java的多线程学习,第二记
    java多线程的学习
    长城
    2018-12-6
    mysql的笔记
    springboot用jpa生成表,没有外键
    idea 使用方法
    Oracle数据库中文乱码问题
    JAVA-Could not create the Java virtual machine java启动失败
    log4j日志如何在ssh中配置?
  • 原文地址:https://www.cnblogs.com/shenbuer/p/6938544.html
Copyright © 2011-2022 走看看