(1)shell作用:

	1)自动化批量系统初始化程序(软件安装,时区设置,安全策略)
2)自动化批量软件部署程序(LNMP,LAMP,LNTM)
3)管理应用程序(kvm,集群管理扩容)
4)日志分析处理程序(PV,UV)
5)自动化备份恢复程序(mysql完全备份,增量)
6)自动化管理程序(批量远程修改密码,软件升级,配置更新)
7)自动化信息采集及监控程序(收集系统/应用状态信息,CPU,mem,disk,tcp status,net,nginx,mysql)
8)配合zabbix信息采集
9)自动化扩容(增加云主机--->业务上线)
zabbix监控cpu 80% + python API AWS/ECS(增加/删除云主机)+shell Script(业务上线)

(2)shell执行

  • shell执行方式
	ping -c1 www.baidu.com &>/dev/null && echo "www.baidu.com is up" || echo "www.baidu.com is down"
方式一:bash ping01.sh
方式二:sh ping01.sh
方式二:./ping01.sh
方式二:source ping01.sh
sh是bash的软连接 通过whish sh ll /usr/sbin/sh查看
  • 开头语言标识
	#! /usr/bin/bash      声明使用bash解释器执行该文件
执行方式使用bash test.sh 这种方式开头添加#! /usr/bin/bash 可以忽略
执行方式./test.sh 需要在文件的开头声明解释器
  • 当前shell和子shell区别和执行方式
	子shell中执行的两种方式:bash和sh,不会影响当前shell
当前shell中执行的两种方式:. /root/.bashrc和 source /root/.bashrc 执行会影响当前shell
例:在/root/.bashrc 定义一个别名:alias wang='data' 如果使用bash /root/.bashrc 不会生效因为它是在子shell中执行不会影响当前shell;

(3)shell特性

  • 1)命令和文件自动补齐:tab键
  • 2)命令历史记忆功能:上下键丶!number丶!string丶!$丶!!丶 ctrl+R
  • 3)别名功能: alias , unalias cp , ~username/.bashrc \cp
  • 4)快捷键
		crtl+c :终止当前用户的命令
crtl+d :退出当前会话,相当于logout
crtl+l :清屏,相当于clear命令
crtl+a :移动到命令行首
crtl+e :移动到命令行尾
crtl+u :清除当前光标之前的命令
crtl+k :清除当前光标之后的命令
crtl+s :挂起,当前会话挂起,不能动
crtl+q :解除挂起
  • 5)前后台作业控制:
		& :
nohup :
ctrl + c ctrl + z
bg fg screen
  • 6)输入输出重定向
		>或1> :输出重定向,把前面输出的东西输入到后边的文件中,会清除文件原有内容
>>或1>> :追加输出重定向,把前面输出的内容追加到后边的文件尾部,不会清除文件原有内容
0<或<:输入重定向,输入重定向用于改变命令的输入,后面指定输入内容,可以理解为把文件的内容输入到命令中进行处理
0<<或<<:追加输入重定向,后跟字符串,用来表示"输入结束",也可用ctrl+d来结束输入
cat >>hello.txt<<EOF
> hello
> EOF
2> :错误输出重定向,把错误信息输入到后边的文件中,会删除文件原有内容
2>> :错误输出追加重定向,把错误信息追加到后边的文件中,不会删除文件原有内容 特殊重定向的三种高级用法
例:正确输出和错误输出都放入到同一个文件中:
方法一:#echo 'hello,world!' >a.txt 2>a.txt ,可以使用追加输出重定向
方法二:#echo 'hello,world!' >a.txt 2>&1 常用方法,不可以使用追加输出重定向
方法三:#echo 'hello,world!' &>a.txt
  • 7)管道:| 把命令的结果作为后面命令的参数
  • 8)命令排序:
	;  不具备逻辑判断    &&|| 具备逻辑判断
; :分号,执行多个命令,不具备逻辑判断,前一个命令执行失败后一个命令还会执行 date;date
&& :具备逻辑判断,前一个命令执行成功返回值$? == 0 才会执行后面一个命令 ./configure && make && make install
|| :前一个命令执行失败(命令的返回值$?为非0),才会执行后面一个命令 ls /home/222/333/aaa/bbb || mkdir -pv /home/222/333/aaa/bbb 注意:
command & 后台执行
command &>/dev/null 混合重定向
command 1 && command 2 命令排序
  • 9)shell通配符(元字符)
		*	:匹配任意多个字符   ls *.log    rm -rf *  find / -name "*.log"
? : 匹配任意一个字符
[] :匹配括号中任意一个字符 [abc] [a-z] [0-9] [A-Z] [a-z0-9A-Z] [^a-z0-9A-Z] ll /dev/sd[a-z]
[^a-z0-9A-Z] :取反
() :在子shell中执行, (umask 077;touch test100.txt) 这种不会修改当前shell的umask值
{} :集合 touch file{1..9}
cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.old
cp -rv /etc/sysconfig/network-scripts/{ifcfg-ens33,ifcfg-ens33.old}
cp -rv /etc/sysconfig/network-scripts/ifcfg-ens33{,.old}
\ :转移符,让元字符回归本意
echo *
echo \*
可以让普通字符变成特殊字符
echo -e "a\tb" \t表示tab键
echo -e "a\nb" \n表示换行符
  • 10)echo颜色输出文本
		前景色:
echo -e "\e[1;31mThis is a red text."
echo -e "\e[1;32mThis is a green text." 这样会把当前终端的颜色也会改变
echo -e "\e[1;32mThis is a green text.\e[0m" 只改变需要输出文本的颜色 \e[0m表示重置

(一)shell基础的更多相关文章

  1. Shell基础学习小结

    0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...

  2. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  3. shell基础二十篇 一些笔记

    shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...

  4. shell基础(转)

    shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...

  5. Linux实战教学笔记17:精简shell基础

    第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...

  6. shell基础及变量

    一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...

  7. Shell 基础教程

    一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html

  8. Linux基础学习(10)--Shell基础

    第十章——Shell基础 一.Shell概述 1.Shell是什么: (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 ...

  9. Linux Shell基础(下)

    Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...

  10. Linux shell基础知识(上)

    Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...

随机推荐

  1. 【Autofac】- 创建的类的生命周期

    1.InstancePerDependency 对每一个依赖或每一次调用创建一个新的唯一的实例.这也是默认的创建实例的方式. 官方文档解释:Configure the component so tha ...

  2. JSP动作标识

    jsp中include有两种形式: include指令:<%@ include file=""%> include动作:<jsp:include page=&qu ...

  3. Visio中ShapeAdded和SelectionAdded

    SelectionAdded 和 ShapeAdded 事件的相似之处在于它们都在创建形状之后触发.它们的区别在于,当单个操作添加多个形状时它们的行为方式不同.假定一个 Paste 操作创建三个新建形 ...

  4. 【BZOJ 1407】[Noi2002]Savage ExGCD

    我bitset+二分未遂后就来用ExGCD了,然而这道题的时间复杂度还真是玄学...... 我们枚举m然后对每一对用ExGCD判解,我们只要满足在最小的一方死亡之前无解就可以了,对于怎么用,就是ax+ ...

  5. MySQL使用笔记(六)条件数据记录查询

    By francis_hao    Dec 17,2016 条件数据记录查询 mysql> select field1,field2-- from table_name where 条件; 其中 ...

  6. Codeforces Round #487 (Div. 2) A Mist of Florescence (暴力构造)

    C. A Mist of Florescence time limit per test 1 second memory limit per test 256 megabytes input stan ...

  7. [Usaco2015 dec]Max Flow 树上差分

    [Usaco2015 dec]Max Flow Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 353  Solved: 236[Submit][Sta ...

  8. LwIP - 打开keepalive功能

    在服务器端打开keepalive功能 1.保证LWIP_TCP_KEEPALIVE被定义为1,(这样TCP_KEEPIDLE.TCP_KEEPINTVL和TCP_KEEPCNT 设置才有效) 2. i ...

  9. iOS 快速框架搭建项目

    项目目录 Pod第三方 gitHub地址 https://github.com/henusjj/Basic-project-framework

  10. 网络编程:connect函数

    TCP客户用connect函数来建立与TCP服务器的连接: cpp #include<sys/socket.h> int connect(int sockfd, const struct ...