(一)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 ...
随机推荐
- Graphic的一些基本概念
做了张很丑陋的图,估计还不准确...先凑合看吧~
- 基于Thinkphp5+phpQuery 网络爬虫抓取数据接口,统一输出接口数据api
TP5_Splider 一个基于Thinkphp5+phpQuery 网络爬虫抓取数据接口 统一输出接口数据api.适合正在学习Vue,AngularJs框架学习 开发demo,需要接口并保证接口不跨 ...
- HTML5<canvas>标签:使用canvas元素在网页上绘制渐变和图像(2)
详细解释HTML5 Canvas中渐进填充的参数设置与使用,Canvas中透明度的设置与使用,结合渐进填充与透明度支持,实现图像的Mask效果. 一:渐进填充(Gradient Fill) Canva ...
- AGC018C Coins (set)
题目大意: 给出n个人,每个人手里都有xi个金牌,yi个银牌,ci个铜牌. 你需要选出X个人,拿走他们手里的金牌,选出Y个人,拿走他们手里的银牌,选出Z个人,拿走他们手里的铜牌 X+Y+Z = n.并 ...
- [洛谷P3743]kotori的设备
题目大意:ことり有$n$个设备,每个设备每秒共减少$a_i$能量(也就是说每一瞬间都在减少,而不是在一个时刻突然减少),开始前有$b_i$能量,ことり还有一个充电宝,无限能量,每秒共可以提供$p$的能 ...
- 适用于iview的表格转Excel插件
在网上找的一个表格转excel插件,经过修改后使其适用于iview中的table组件 let idTmr; const getExplorer = () => { let explorer = ...
- SCOI2005 互不侵犯 [状压dp]
题目传送门 题目大意:有n*n个格子,你需要放置k个国王使得它们无法互相攻击,每个国王的攻击范围为上下左走,左上右上左下右下,共8个格子,求最多的方法数 看到题目,是不是一下子就想到了玉米田那道题,如 ...
- Codeforces Round #525 (Div. 2) F. Ehab and a weird weight formula
F. Ehab and a weird weight formula 题目链接:https://codeforces.com/contest/1088/problem/F 题意: 给出一颗点有权值的树 ...
- React 入门小结
前段时间用 Ant Design 做了一个项目,由于之前没有 React 基础,对于 ES6 也是一知半解,所以也是一边开发一边学习,好不容易把项目完成了,现在终于有时间沉下心来从头开始好好学一下 R ...
- HDU2157 How many ways??---(邻接矩阵,图论,矩阵快速幂)
http://acm.hdu.edu.cn/showproblem.php?pid=2157 How many ways?? Time Limit: 2000/1000 MS (Java/Others ...