一: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

  \转意

 

Shell之基本用法的更多相关文章

  1. Shell expr的用法 bc 命令 let命令

    Shell expr的用法  bc 命令   let命令 数学运算 let命令  expr命令  bc命令  $(())   $[] http://www.80ops.cn/archives/245. ...

  2. hbase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  3. 【转载】HBase基本概念和hbase shell常用命令用法

    1. 简介 HBase是一个分布式的.面向列的开源数据库,源于google的一篇论文<bigtable:一个结构化数据的分布式存储系统>.HBase是Google Bigtable的开源实 ...

  4. shell字符串的用法

    shell字符串的用法 注意:shell4.2和shell4.1会有差别,较低版本的shell可能不支持某些功能 获取字符串长度:${#string} 获取子串: 注:(左边的第一个字符是用 0 表示 ...

  5. centos shell脚本编程1 正则 shell脚本结构 read命令 date命令的用法 shell中的逻辑判断 if 判断文件、目录属性 shell数组简单用法 $( ) 和${ } 和$(( )) 与 sh -n sh -x sh -v 第三十五节课

    centos   shell脚本编程1 正则  shell脚本结构  read命令  date命令的用法  shell中的逻辑判断  if 判断文件.目录属性  shell数组简单用法 $( ) 和$ ...

  6. (12)Linux shell之read 用法

    Linux shell之read 用法 #!/bin/bash#read 用来读取屏幕输入或是读取文件内容.read -p  "please input you  name: " ...

  7. Shell之date用法

    创建以当前时间为文件名的 mkdir `date+%Y%m%d` 备份以时间做为文件名的 tar cvf./htdocs`date +%Y%m%d`.tar ./* date命令如何获得上星期的日期? ...

  8. Linux Shell nohup命令用法

    linux的nohup命令的用法.   在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行.比如我们要运行mysql在后台: /us ...

  9. shell特殊符号用法大全

      # 注释符号(Hashmark[Comments]) 1.在shell文件的行首,作为shebang标记,#!/bin/bash; 2. 其他地方作为注释使用,在一行中,#后面的内容并不会被执行, ...

  10. linux shell date的用法

    该随笔引用自https://www.cnblogs.com/alsodzy/p/8403870.html 在 linux shell 里面date命令的参数 %% 一个文字的 % %a 当前local ...

随机推荐

  1. 3 web服务器:静态文件

    1.处理客户端请求数据 >>> s = "GET / HTTP/1.1\r\nHost: 127.0.0.1:8080\r\nConnection: keep-alive& ...

  2. FreeRTOS任务暂停和启动函数

    任务句柄 TaskHandle_t pump_task_handle = NULL; 任务的启动函数 if(eTaskGetState(pump_task_handle) != eRunning) v ...

  3. TFS权限配置

            装了TFS,要给TFS里添加用户,然后分配权限.其实一般项目中权限都不会控制的那么细,所以就直接想给项目组的每个人建一个用户,让他们都能访问这个项目的代码并进行任何操作.只想怎么简单怎 ...

  4. Android学习笔记之,调用系统图库,添加自定义字体,屏幕截图

    新年开始的第一天就来学习了慕课迎春活动中的Android心愿分享一课,学到了几个知识点,在此记录一下. 1.调用系统图库调用系统图库用的是intent,步骤为弹出系统图库选择器,选择图片后获取到所选择 ...

  5. PHP二维数组按某个键值排序

    $data=Array(    [0] => Array        (            [id] => 2            [user_id] => 14       ...

  6. Linux-Shell脚本编程-学习-6-Shell编程-使用结构化命令-文件比较-case编程

    这一片主要说test文件的比较,文件比较在日常使用的频率比较高,这里重点把每个部分都试着说说看 1. 检车目录 -d -d测试会检查指定的文件名是否在系统上以目录的形式存在,当我们要写文件到某个目录之 ...

  7. spring boot 打包问题

    一.jar包 1.maven build package 2.linux 下执行 java -jar & 命令后台运行,也可加入服务运行 二.war包 1.将pom中的<packagin ...

  8. 第一周 Introduction

    欢迎 欢迎来到这门关于机器学习的免费网络课程,机器学习是近年来最激动人心的技术之一,在这门课中,你不仅可以了解机器学习的原理,更有机会进行实践操作,并且亲自运用所学的算法. 每天你都可能在不知不觉中使 ...

  9. 《鸟哥的Linux私房菜》读书笔记

    第五章  初次使用Linux man.info的使用 组合键:切换登录环境.Tab.Ctrl+c.Ctrl+d 正确关机的方法 开机过程的问题排解:文件系统错误.忘记root密码 第六章  文件权限& ...

  10. DPDK Qos之报文处理流水线

    原创翻译,转载请注明出处. 下面是一个支持Qos的复杂报文处理流水线的图: 流水线是通过DPDP可重用的软件库构建出来的.在流水线里实现QoS主要是如下模块:policer,dropper,shced ...