(一)shell基础
(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基础的更多相关文章
- Shell基础学习小结
0 shell基础概念 Shell是解释性语言,使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象:缺点是它们的效率通常不如编译型语言.Shell命令有本 ...
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- shell基础二十篇 一些笔记
shell基础二十篇 转自 http://bbs.chinaunix.net/thread-452942-1-1.html 研讨:Bash 内建命令 read (read命令更具体的说明见博客收藏的一 ...
- shell基础(转)
shell基础1:文件安全与权限 http://bbs.chinaunix.net/forum/viewtopic.php?t=434579&highlight=wingger 附:Linux ...
- Linux实战教学笔记17:精简shell基础
第十七节 精简shell基础 标签(空格分隔): Linux实战教学笔记 1,前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, ...
- shell基础及变量
一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...
- Shell 基础教程
一个比较好的shell基础教程: http://www.runoob.com/linux/linux-shell.html
- Linux基础学习(10)--Shell基础
第十章——Shell基础 一.Shell概述 1.Shell是什么: (1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 ...
- Linux Shell基础(下)
Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
随机推荐
- elmentUI组件怎么绑定原生事件
el-input为例: <el-input id="user-input" type="textarea" placeholder="请换行输入 ...
- js表单验证工具包
常用的js表单验证方法大全 /* 非空校验 : isNull() 是否是数字: isNumber(field) trim函数: trim() lTrim() rTrim() 校验字符串是否为空: ch ...
- 【考试记录】4.8 Path (网络流 —— 劲题)
手抄代码 + 学习指针 + 冥思苦想一晚上终于——在一瞬间开窍了.果然题目都是这样:突破了一个点,一切都是柳暗花明. 题面描述: 样例: 这道题目,首先注意到给定的边的性质:这些边在平面上构成了一棵树 ...
- 2017年研究生数学建模D题(前景目标检测)相关论文与实验结果
一直都想参加下数学建模,通过几个月培训学到一些好的数学思想和方法,今年终于有时间有机会有队友一起参加了研究生数模,but,为啥今年说不培训直接参加国赛,泪目~_~~,然后比赛前也基本没看,直接硬刚.比 ...
- Codeforces Round #534 (Div. 2) D. Game with modulo(取余性质+二分)
D. Game with modulo 题目链接:https://codeforces.com/contest/1104/problem/D 题意: 这题是一个交互题,首先一开始会有一个数a,你最终的 ...
- Fragmenttabhost的使用教程
1.准备tab的图标,放到mipmap目录下面,大小64x64,准备2种,一种是选中的,一种是未选中的,如下图 2.重写fragmentabhost,防止调用fragment每次点击tab都要重新调用 ...
- 使用记事本创建Web服务(WebService)
学习就要从最简单最直观的地方入手. 1)打开记事本,添加如下代码: <%@ WebService Language="C#" Class="myFirstWebSe ...
- Join/remove server into/from windows domain PS script
Join server into windows domain PS script $username = "ad-domain\admin" $Password = " ...
- HDU2066一个人的旅行---(多起点多终点最短路径)
http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memo ...
- 正式进入搭建OpenStack
部署mariadb数据库 控制节点: yum install mariadb mariadb-server python2-PyMySQL -y 编辑: /etc/my.cnf.d/openstack ...