目录

Linux之shell命令

Linux之shell命令

1、shell入门

在计算机科学中,shell就是一个 命令解释器

shell是位于操作系统和应用程序之间,是他们二者最主要的接口。

shell负责把应用程序的输入命令信息解释给操作系统,将操作系统指令处理后的结果解释给应用程序。

一句话,shell就是在操作系统和应用程序之间的一个命令翻译工具

https://i-blog.csdnimg.cn/blog_migrate/f22f31a575bc0d94bcc56f4129d6ca25.png

2、shell的使用方式

手工方式:

手工敲击键盘,直接输入命令,按Enter后。执行命令,显示命令执行的结果.重点:逐行输入命令、逐行进行确认执行

脚本方式:

我们把手工执行的命令,写到一个文件中,然后运行这个文件,达到执行命令的效果。这个文件就叫做脚本文件。

3、编写第一个shell

1、新建一个文件后缀名为sh

2、书写内容

https://i-blog.csdnimg.cn/blog_migrate/9e9991ecf6e4de6773f1776b35626f06.png

3、执行

4、shell注释

单行注释

https://i-blog.csdnimg.cn/blog_migrate/0ded73b564ba3721e274c6a942a5e191.png

多行注释

https://i-blog.csdnimg.cn/blog_migrate/cf24852e9e8fed974438f0f6f3323614.png

5、shell定义变量.

普通变量

方式一:        变量名=变量值         变虽值必须是一个整体,中间没有特殊字符

方式二:        变量名=‘变量值’        单引号中的的内容,原样赋值

方式三:        变量名=“变量值”        如果双引号里面有其他变量,会把变是的结果进行拼接,然后赋值。

习惯:

数字不加引号,其他默认加双引号

命令变量

方式一:变量名=命令        注意: ` 是反引号

方式二:变量名=$(命令)

6、shell使用变量.

使用变量

方式一:$变量名         非标准写法,图省事

方式二:$“变量名”         非标准写法,图省事

方式三:${变量名}        在双引号里面要使用变量的值

方式四:"${变量名}"         标准使用方式

只读变量        readonly 变量名

删除变量        unset 变量名

7、shell数组

https://i-blog.csdnimg.cn/blog_migrate/024a16b92043671830667b6bde38eed4.png

8、算术运算符

https://i-blog.csdnimg.cn/blog_migrate/83f93f7ef8cebc0e0e68461f45b4be2a.png

注意点:

1,原生的bash不支持简单的数学运算。可以通过其他命令实现.expr

2,表达式和运算符之间要有空格

3,完整的表达式要被反引号包含。

举例:

expr 2 + 2

8、字符串运算符

https://i-blog.csdnimg.cn/blog_migrate/31a5045f2effead1102474055efd594a.png

#! /bin/bash
#字符串运算
a="aaa"
b="bbb"
c=""

#判断两个字符串是否相等
#$?可以获取上一条语句的执行结果
[ "${a}" = "${b}" ]
echo "判断两个字符串是否相等,0为真,1为假: $?"

[ -z "${c}" ]
echo "检测字符申长度是否为0,0为真,1为假: $?"

[ -n "${c}" ]
echo "检测字符申长度是否为0,0为真,1为假: $?"


[ $"$c"]
echo "检测字符用是否为空,0为真,1为假: $?"

9、shell关系运算符

https://i-blog.csdnimg.cn/blog_migrate/9d10c52418b4af8b26b95eee72cd45b4.png

注意点

只能比较数据,不支持字符串,除非字符串的值是数字

10、shell布尔运算符

https://i-blog.csdnimg.cn/blog_migrate/511ee8fdf599bf2586016e8f8e41063b.png

​​​​​​​ https://i-blog.csdnimg.cn/blog_migrate/c38761db85820457255ae08c07c8bc16.png

11、shell逻辑运算符

https://i-blog.csdnimg.cn/blog_migrate/46d6cd6f5df0c2fe27b75c366cccaa6d.png

https://i-blog.csdnimg.cn/blog_migrate/06aef479f3f37f4057c7d645c415178c.png

https://i-blog.csdnimg.cn/blog_migrate/5391960dc13b21f92ddb142c39b98776.png

12、shell判断语句

https://i-blog.csdnimg.cn/blog_migrate/28759fa731b94a39beefa823dd17e13f.png

https://i-blog.csdnimg.cn/blog_migrate/ef528f582a517ad66805ab18f3f2f7cc.png

https://i-blog.csdnimg.cn/blog_migrate/ab67c1576d765458a80f4490e1671674.png

结果a小于b

13、shell选择语句

https://i-blog.csdnimg.cn/blog_migrate/4ec410c490e2f69a95bd460a04632198.png https://i-blog.csdnimg.cn/blog_migrate/faed5a06c7fe971ab0b4a0b618dc4701.png

14、shell循环语句

for

https://i-blog.csdnimg.cn/blog_migrate/fd88429f3fb2a8be99d30c8ab0f37700.png

where

https://i-blog.csdnimg.cn/blog_migrate/8ff9c952c34aece1505e09fee2e58e44.png