shell脚本基础

shell是一个命令行解释器,她为互用提供了一个想linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动。挂起。停止甚至编写一些程序。

shell还是一个功能相当强大的编程语言,易编写,易调试,灵活醒较强。shell是解释执行的脚本语言,在shell中可以直接调用linux系统命令

脚本的执行

1 echo输出命令
echo [选项][输出内容]
选项:
-e : 支持反斜线控制的字符串转换
控制字符 作用
\a 输出警告音
\b 退格键,也就是像左删除健
\n 换行符
\r 回车健
\t 制表符,也就是tab
\v 垂直制表符
\0nnn 按照八进制acsii表输出字符,其中0未数字零,nnn是三位八进制
\xhh 安卓十六进制输出输出字符
在echo中输出颜色  echo -e "\e[1;31m aaaa \e[0m"

30m =  黑色, 31m = 红色, 32m = 绿色,33m = 黄色
34m = 蓝色 , 35m = 洋红, 36买= 青色, 37m = 白色
2 第一个脚本


#i/bin/bash

#i/bin/bash
#the first program echo -e "\e[1;34m hello \e[0m"
3 脚本执行

赋予执行权限,直接运行

  • chmod 755 hello.sh
  • ./hello.sh

通过bash调用执行脚本

  • bash hello.sh
4 常用快捷键
  • ctrl+c 强制终止当前命令
  • ctrl+l 清屏
  • ctrl+a 光标移动到命令行首
  • ctrl+e 光标移动到命令行尾
  • ctrl+u 从光标所在位置删除到行首
  • ctrl+z 把命令放入后台
  • ctrl+r 在历史命令中搜索

bash的基础命令

1 命令别名和快捷键
alias
#查看系统中所有的命令别名 alias
别名 = ‘原命令’临时生效 vi ~/.bashrc
#写入环境变量配置文件 unalias 别名
#删除别名
2 命令生效的顺序
  • 第一顺位执行绝对路径或相对路径执行的命令
  • 第二顺位执行别名
  • 第三顺位执行bash的内部命令
  • 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
echo $PATH
/usr/local/server/node/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/chenjinxin/bin

2 历史命令

history 查看历史命令
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history

历史命令的调用

  • 使用上下箭头调用以前的历史命令
  • 使用'!n'重复执行第n条历史命令
  • 使用'!!'重复执行上一条命令
  • 使用'!字串'重复执行最后一条以该字符串开头的命令

3 输出重定向

1 标准输入输出
设备 设备文件名 文件描述符 类型
键盘 /dev/stdin 0 标准输入
显示器 /dev/sdtout 1 标准输出
显示器 /dev/sdterr 2 标准错误输出
2 输出重定向
类型 符号 作用
标准输出重定向 命令 > 文件 以覆盖的方式,把命令的正确输出输出到指定的文件或者设备当中
标准输出重定向 命令 >> 文件 以追加的方式,把命令的正确输出输出到指定的文件或者设备当中
标准错误输出重定向 错误命令 2> 文件 以覆盖的方式,把命令的错误输出输出到指定的文件或者设备当中
标准错误输出重定向 错误命令 2>> 文件 以追加的方式,把命令的错误输出输出到指定的文件或者设备当中
正确输出和错误输出同时保存 命令 > 文件 2&1 覆盖
正确输出和错误输出同时保存 命令 >> 文件 2&1 追加
正确输出和错误输出同时保存 命令 &> 文件 覆盖
正确输出和错误输出同时保存 命令 &>> 文件 2&1 追加
正确输出和错误输出同时保存 命令 >> 文件1 2>>文件2 正确追加到1,错误追加到2
3 输入重定向
    wc [选项][文件名]
选项:
-c 统计字节数
-w 统计单词数
-l统计行数
然后ctrl + d 显示统计 << access.log

4 多命令顺序执行

1 多命令顺序执行
多命令执行符 格式 作用
; 命令1; 命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1 && 命令2 逻辑与 当前命令1正确执行,则命令2才能执行当命令1执行不正确,测命令2不会执行
|| 命令1 || 命令2 逻辑或 当命令1执行不正确,测命令2才会执行 当命令1正确执行,测命令2不会执行
2 管道符

命令1 | 命名2 命令1的输出结果作为命令2的输入内容

比如 ps aux | grep node

5 shell中特殊字符

1 通配符
通配符 作用
? 匹配一个任意字符
* 匹配0个或任意多个任意字符,也就是可以匹配任何内容
[] 匹配括号中任意一个字符
[-] [0-9]
[^] [^0-9]在括号内的字符
2 bash中的其他特殊符号
符号 作用
'' 没有特殊的意义
"" 一般没什么意义
`` 内容系统命令
$() 和反引号一样,用来引用系统命令
# 在shell脚本中,#开始的行代表注释
$ 用于调用变量的值,入需要调用变量name的值是,需要用$name的值时,需要用$name的方式得到变量的值
\ 转义符,回到本来的意思

shell编程之SHELL基础(1)的更多相关文章

  1. shell编程之awk命令详解

    shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...

  2. 03 shell编程之case语句与函数

    本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正 Shell编程之case语句与函数 学习目标: 掌握case语句编程 掌握shell函数的使用 目录结构: Case语句 Case语句的作用 ...

  3. shell编程之case分支语句

    shell编程之case分支语句 case分支语句和if的多分支语句很相似. if多分支语句一般用在有(区间范围)的地方 :例如:0-100之间. if需要判断多个不同的条件. case的分支语句用在 ...

  4. shell编程之if语句

    shell编程之if判断 目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other 1.整数比较 -eq 等于,如:if [ "$ ...

  5. shell编程之export

    shell 与 export命令用户登录到Linux系统后,系统将启动一个用户shell.在这个shell中,可以使用shell命令 或声明变量,也可以创建并运行shell脚本程序.运行shell脚本 ...

  6. shell编程之sed编辑器&gawk程序

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/560372 s ...

  7. Shell编程之Shift的用法

    位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常 ...

  8. shell 编程之 for while until 循环

    shell 的for循环 的格式如下: for 变量  in 列表 do ... done 列表是一组值的序列 每个值通过空格隔开 每循环一次,列表中的下一个值赋给变量 in 列表是可选的,如果不用他 ...

  9. shell 编程之 if...else case...esac

    shell的条件判断语句有三种 if...fi  语句 if...else...fi  语句 if...elif...fi  语句 例子: a=10; b=20; if [ $a -gt %b ] t ...

随机推荐

  1. 怎么在谷歌浏览器中安装.crx扩展名的离线Chrome插件?

    李宗申 2014-9-26 23:33:33 20人评论 分类:实用方法   摘要 : 如果用户得到的离线版的Chrome插件文件(扩展名为.crx),该如何将其安装到谷歌浏览器Chrome中去呢? ...

  2. 机器学习——kNN(2)示例:改进约会网站的配对效果

    =================================版权声明================================= 版权声明:原创文章 禁止转载  请通过右侧公告中的“联系邮 ...

  3. myeclipse10不用打开myeclipse configuration center安装插件的方法

    我使用myeclipse10,网上找了一大堆的插件安装方法,全部都是要通过help->myeclipse configuration center进行安装 不用打开myeclipse  conf ...

  4. arcgis server 中Web墨卡托投影与WGS-84坐标的转换

    arcgis server 中Web墨卡托投影坐标与WGS-84坐标的转换 //经纬度转墨卡托 function lonlat2mercator(lonlat){ var mercator={x:0, ...

  5. mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理

    转自:http://www.cnblogs.com/kevingrace/p/6261091.html 在mysql工作中接触最多的就是mysql replication mysql在复制方面还是会有 ...

  6. RocketMQ-quickstart(批量消费问题)

    基本概念: Producer:消息生产者,负责生产消息,一般由业务系统负责生产消息. Consumer:消息消费者,负责消费消息,一般是后台系统负责异步消费. Push Consumer:Consum ...

  7. Linux指令--nl

    原文出处:http://www.cnblogs.com/peida/archive/2012/11/01/2749048.html nl命令在linux系统中用来计算文件中行号.nl 可以将输出的文件 ...

  8. java里程碑之泛型--擦除和转换

    在严格的泛型代码里,带泛型声明的类总应该带着泛型参数.但是为了和古老的java代码保持一致,也就是说为了向下兼容,也允许在使用带泛型声明的类时不指定实际的类型参数.如果没有为这个泛型类指定实际的参数类 ...

  9. Linkin大话Java和internet概念

    整理电脑,无意中翻到不知道哪里来的文章,觉得里面写的很好,仔细看过一遍后,整理了下贴了出来,其中的好多概念我觉得讲的很透彻. 既然Java不过另一种类型的程序设计语言,为什么还有这么多的人认为它是计算 ...

  10. pulltorefresh 设置刷新文字提示颜色

     xmlns:ptr="http://schemas.android.com/apk/res-auto" 赵泽民 2016/7/12 15:48:58 ptr:ptrHeaderS ...