linux系统学习(10.shell基础)
目录
一、shell概述
二、shell基本功能
2.echo命令的用法
(1)基础知识
(2)运行结果
3.历史命令与补全
4.别名与快捷键
(1).基本使用
(2)执行的顺序
(3)删除别名
(4)快捷键
5.输入输出重定向
(1)标准输入输出
(2)输出重定向
(3)输入重定向
6.多命令顺序执行与管道符
(1)多命令顺序执行
(2)管道符和grep
7.通配符和其他特殊符号
(1)通配符
(2)其他特殊符号
三、Bash变量
1.用户自定义变量
2.环境变量
(1)相关操作
3.位置参数变量
(1)概述
(2)解释第一条
(3)解释后面三条
4.预定义变量
(1)概述
(2)接受键盘输入
5.数值运算与运算符
一、shell概述
查看电脑上支持的shell
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)解释第一条
#!/bin/bashecho $0
echo $1
echo $2
echo $3

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


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

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

(2)接受键盘输入

#!/bin/bashread -t 30 -p "Please input :" choecho $cho

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

