我们在学习一门新技术的时候,我们一定要知道它是什么,学了这门技术能做什么,做程序员,一定要精准定位问题,这样才会事半功倍!
shell是一个程序,采用C语言编写,是用户和Linux内核沟通的桥梁,他就是一种命令语言,有时一种解释性的编程语言。
shell英文单词译为"贝壳",”贝壳“是动物作为外在保护的一种工具,linux中的shell就是Linux内核的一个外层保护工具,并且负责完成用户与内核之间的交互
linux系统中有内核,内核是用来管理硬件的,比如播放声音,打印文档,而这些系统反应是由用户下达命令才去执行操作的,但是内核听不懂人类语言,这时shell就派上用场了,shell相当于一个翻译官,将用户的指令翻译成二进制传给内核,内核就明白是什么意思并且去执行操作了
日常运维工作大部分是一些繁琐的工作,每天80%的工作量就是重复干做天的事情,而且工作量还比较大,那么摆在运维面前的选择就是:
自己搞定一切
机器搞定一切
当然,谁不愿意喝着茶水,逗着前台妹子过完愉快的一天呢,如何让机器搞定一切,得以解放自己,有更多的时间逗妹子,这是就要祭出shell大法了
1.虽然在linux系统中文件没有扩展名的概念,但建议shell 脚本的命名以.sh结束,见名知意,这样一看就知道是一个shell脚本 2.每个shell脚本都要定义脚本的执行环境,如何定义呢:在shell脚本的开头加上(#!/usr/bin/bash)这句话就可以了 3.脚本的组成:
解释环境注释说明执行代码4:echo “hello word”
5:执行脚本的两种方法:
给予脚本执行权限 chomd xxx.sh 700 —> ./xxx.sh解释器直接运行,不用权限: sh xxx.sh1.功能:将内容输出到默认显示设备,echo默认在输出后加个换行符 2.可添加参数
-n 输出内容不自动换行-e 将一些特殊字符进行转意3转意字符;
\a -------- 发出警告声 \b -------- 删除前一个字符 \c -------- 最后不加上换行符 \f --------- 换行但光标仍旧停留在当前位置 \n -------- 换行且光标移至行首 \r -------- 光标移至行首,但不换行 \t -------- 插入tab
1.read命令默认接受键盘输入,回车符代表输入结束 2.read命令参数选项:
-p ------ 打印信息 -t ------- 限定时间 -s ------- 不回显 -n ------- 输入字符个数
1.获取字符串长度
NAME='hello world' echo ${#NAME}2 转意字符-e
echo -e3 重定向符号,将输出重定向记录到到a.txt中
echo 'hello' > a.txt4 输出当前日期和时间
echo `date` 输出:2020年 07月 06日 星期一 16:30:55 CST5 运算符expr,运算符+左右都要空格,expr命令为linux中的命令,一般用于整数值计算,但也可以用于字符串操作
echo `expr 2 + 2`6 乘法运算要家转移意符,*有特殊意义
echo `expr 5 \* 6`7 shell中的if判断条件:a,b两边都要空格
a=30 b=30 if [$a==$b] then echo "a=b" fi