目录
一、shell概述
查看电脑上支持的shell
bash
cat /etc/shells

二、shell基本功能
2.echo命令的用法
(1)基础知识



红色文字
echo -e "\033[31m这是红色的文字\033[0m"
绿色文字
echo -e "\033[32m这是绿色的文字\033[0m"
黄色文字 + 蓝色背景
echo -e "\033[33;44m黄色文字,蓝色背景\033[0m"
粗体 + 红色
echo -e "\033[1;31m粗体红色文字\033[0m"
下划线 + 青色
echo -e "\033[4;36m下划线青色文字\033[0m"
(2)运行结果

3.历史命令与补全
一般来讲本次开机的所有操作只写在缓存中,不会保存到~/.bash_history文件里面,只有下次重新启动本次的数据才从缓存中加载到这个文件。
如果想立马保存到这个文件,需要使用-w命令。


4.别名与快捷键
(1).基本使用


(2)执行的顺序
如果直接按照路径执行命令,那么肯定执行的就是这个路径的命令
第二个界别就是别名。
第三个就是bash自己的命令,比如cd这种,是bash这个命令自己的子命令。那么如果我给一个命令起一个别名叫做cd,那么实际上执行的是那个别名。
第四个就是加入到PATH里面的,比如将python加入到环境变量里面,这个调用的优先级最低。如果其他的有个别名叫做python,那么实际上这个环境变量没有起作用。
为了让别名永久生效,可以加到~/.bashrc里面。

(3)删除别名
unalias 别名

(4)快捷键
一个我不知道的就是ctrl+u,删除光标之后的所有东西
5.输入输出重定向
(1)标准输入输出

(2)输出重定向
我们常用标准输出重定向,因为标准错误输出重定向,在程序执行之前,我们也不知道他是否会报错。


下面是更常用的,&>表示无论对错,都输出到一个文件里面。
>>文件1 2>>文件2,表示正确的输入到1文件,错误的输出到2文件

值得一提的是,如果输出到/dev/null,那么会被自动删除,你就这样理解。
(3)输入重定向


6.多命令顺序执行与管道符
(1)多命令顺序执行


(2)管道符和grep

这个grep默认关键字就是颜色显示了,alias中配置了已经。


7.通配符和其他特殊符号
(1)通配符
这个通配符与正则不同的是,这个?表示匹配一个任意字符,python的正则表示匹配0个或者1个。
通配符可以和任何命令一起使用,他可以和ls一起。


(2)其他特殊符号


三、Bash变量
第一、bash中所有的变量默认字符串类型,如果要进行数值运算,需要指定变量的类型是数值类型。
第二、变量用等号连接,等号左右不可以有空格
第三、变量的值不可以用空格,如果要有,需要用引号包起来。
第四、更改变量的值,下面是操作

第五、如果把命令的结果给变量,需要用$()包着命令,注意这个变量里面存的是结果,而不是命令。

第六、变量的查看与删除

1.用户自定义变量
上面那样直接创建一个变量,A=B的这种就是创建一个用户变量。
2.环境变量
环境变量在当前shell以及他的子shell都有效,用户变量只有在当前shell有效,如果想要全局有效,需要写入到配置文件。
什么叫做一个shell的子shell呢,就是在一个shell里面,输入bash,之后这个shell就变成上一个shell的子shell了,之后使用exit可以推出子shell。
(1)相关操作

3.位置参数变量
(1)概述

(2)解释第一条
bash
#!/bin/bash
echo $0
echo $1
echo $2
echo $3

(3)解释后面三条
bash
#!/bin/bash
echo $#
echo $*
echo $@


4.预定义变量
(1)概述

当然也可以写道脚本里面。$$就是当前脚本的进程号了,$?就表示脚本中上一句是否执行成功。

(2)接受键盘输入

bash
#!/bin/bash
read -t 30 -p "Please input :" cho
echo $cho

5.数值运算与运算符
暂时记住就行了,我也不知道为什么是这个样子。
