shell基础
说明:shell译为命令解释器,通过vi /etc/shells查看系统支持的shell。
一、shell脚本的执行方式
1、echo命令
-e 反斜线控制转义符
-n 取消输出后末行
转义符表格
控制字符 | 作用 |
\\ | 输出\本身 |
\a | 输出警告 |
\b | 退格键,向左删除键 |
\c | 取消输出行末的换行符。和“-n”选项一致 |
\e | ESCAPE键 |
\f | 换页符 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符,Tab键 |
\v | 垂直制表符 |
\0nnn | 按照八进制数输出,nnn为三位八进制数 |
\xhh | 按照十六进制数输出,hh是两位十六进制数 |
[root@localhost~]# echo –e “\e[1;31m abcd \e[0m”
二、bash的基本功能
1、history历史命令的查看
-c 清空历史命令。
-w 把缓存中的历史命令写入历史命令保存文件。
说明:保存的历史命令条数在/etc/profile文件,默认历史命令保存文件~/.bash_history
2、历史命令的调用
1)使用上、下箭头调用历史命令
2)使用“!n”重复执行第n条历史命令
3)使用“!!”重复执行上一条命令
4)使用“!字符串”重复执行最后一条以该字符串开头的命令
5)使用“!$”重复上一条命令的最后一个参数
3、命令与文件补全
1)tab键
2)alias命令(命令的别名)
命令执行顺序:
第一顺位执行用的绝对路径或相对路径执行的命令。
第二顺位执行别名。
第三顺位执行bash的内部命令。
第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。
说明:命令别名设置文件”/root/.bashrc”。
4、bash常用快捷键
5、输入输出重定向
设备 | 设备文件名 | 文件描述符 | 类型 |
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/stdout | 1 | 标准输出 |
显示器 | /dev/stderr | 2 | 标准错误输出 |
1)输出重定向
类型 | 符号 | 作用 |
标准输出重定向 | 命令 > 文件 | 以覆盖方式,把正确输出和错误输出都保存到同一个文件中。 |
命令 >> 文件 | 以追加方式,把正确输出和错误输出都保存到同一个文件中。 | |
正确输出和错误输出同时保存 | 命令 > 文件 2>&1 | 以覆盖方式,把正确输出和错误输出都保存到同一个文件中。 |
命令 >> 文件 2>&1 | 以追加方式,把正确输出和错误输出都保存到同一个文件中。 | |
命令 &>文件 | 以覆盖方式,把正确输出和错误输出都保存到同一个文件中。 | |
命令 &>>文件 | 以追加方式,把正确输出和错误输出都保存到同一个文件中。 | |
命令 >>文件1 2>> 文件 | 以追加方式,把正确输出文件1,错误输出文件2。 |
2)输入重定向
[root@localhost ~]wc [选项] [文件名]
-c 统计字节数
-w 统计单词数
-l 统计行数
3)多命令顺序执行
多命令执行符 | 格式 | 作用 |
; | 命令1;命令2 | 多命令顺序执行,命令之间没有逻辑关系 |
&& | 命令1 && 命令2 | 命令1正确执行($?=0),命令2才会执行反之都不执行 |
|| | 命令1 ||命令2 | 当命令1不正确执行($? != 0),则命令2才会执行 |
4)管道符“|”
[root@localhost ~]# ll –a /etc/ | more
5)find与grep的区别
说明:find完全匹配、grep包含匹配。
6)bash中其他特殊符号
符号 | 作用 |
‘’ | 单引号。 |
“” | 双引号。 |
`` | 反引号。引用系统命令 |
$() | 引用系统命令 |
() | 用于一串命令的执行 |
{} | 用于一串命令的执行 |
[] | 用于变量的测试 |
# | 用于注释 |
$ | 用于调用变量的值 |
\ | 转义符 |
三、bash的变量和运算符(增删查改)
1、变量值的叠加
1)变量名=”$变量名”123
2)变量名=${变量名}123
2、变量的分类
1)用户自定义的变量
2)环境变量(export)
3)位置参数变量
4)预定义变量
3、变量查看
[root@localhost ~]# set [选项]
-u 调用未声明的变量会报错
-x 命令执行前,会把命令先输出一遍
[root@localhost ~]# env (查看变量)
4、变量删除
[root@localhost ~]# unset 变量名
5、环境变量
PATH变量:系统查找命令的路径
PS1变量:命令提示符设置
LANG语言变量(查询当前支持语系local)
en_US.UTF-8
zh_CN.UTF-8
6、位置参数变量
位置参数变量 | 作用 |
$n | n为数字,$0代表命令本身,$1-$9代表第一个到第九个参数 |
$* | 代表命令行所有的参数,$*把所有的参数看成一个整体 |
$@ | 代表命令行的所有参数,不过$@把每个参数区分对待 |
$# | 这个变量代表命令行中的所有参数的个数 |
7、预定义变量
预定义变量 | 作用 |
$? | 最后一次执行的命令的返回状态,返回0,正确执行,非0,执行不正确。 |
$$ | 当前进程的进程号(PID) |
$! | 后台运行的最后一个进程的进程号(PID) |
8、接收键盘输入
[root@localhost ~]# read [选项] [变量名]
-p “提示信息”
-t 秒数
-n 控制输入字符
-s 输入隐藏
四、shell的运算符
1、数值运算的方法
1)使用declare声明变量类型
[root@localhost ~]# declare [+/-] [选项] 变量名
-:给变量名设定类型属性
+:取消变量的类型属性
-a:将变量声明为数组型
-i:将变量声明为整数型(integer)
-r:讲变量声明为只读变量
-x:将变量声明为环境变量
-p:显示指定变量的被声明的类型
2)使用expr或let数值运算工具
valuer=$(expr $a + $b)
let valuer=$a+$b
3)使用“$((运算式))”或“$[运算式]”方式运算(推荐)
valuer=$(($a + $b))
valuer=$[ $a + $b ]
说明:以上三种运算式,推荐使用$((运算式))的方式。
2、shell常用运算符(略)
3、变量的测试与内容置换
变量置换方式 | 变量y没有设置 | 变量y为空值 | 变量y设置值 |
x=${y-新值} | x=新值 | x为空 | x=$y |
五、环境变量配置文件
1、source命令
source 配置文件 或 . 配置文件(加载可执行文件或加载/etc/profile文件)
2、环境变量配置文件
说明:登录时生效的环境变量配置文件。
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
注意:注销时生效的环境变量配置文件。在用户退出登录时,只会调用一个环境变量配置文件,就是~/.bash_logout。
3、其他配置文件
~/bash_history
4、shell登录提示信息配置文件
1)/etc/issue
2)/etc/issue.net
注意:需要打开/etc/ssh/sshd_config,才能打开banner /etc/issue.net
3)/etc/motd
5、定义bash快捷键命令
[root@localhost ~]# stty –a
#查看所有快捷键
[root@localhost ~]# stty 关键字 快捷键
#设置快捷键ctrl+字母
说明:教程学习参考自尚硅谷,有兴趣的同志可以通过谷网下载视频学习。