一、shell类型 /etc/shells
Shell类型 | 易学性 | 可移至性 | 编辑性 | 快捷性 |
---|---|---|---|---|
Bourne shell(sh) | 容易 | 好 | 较差 | 较差 |
Bourne Again shell(bash) | 难 | 较好 | 好 | 好 |
C shell(csh) | 较难 | 差 | 较好 | 较好 |
TC shell(tcsh) | 难 | 差 | 好 | 好 |
二、shell执行方式
1、echo命令
格式:echo 选项 输出内容
选项:-e 支持反斜线控制的字符转换
-n 取消输出后行尾的换行符号
<1> -e支持的特殊符号
\t 制表符,也就是tab键 例:echo -e “a\ta\ta”
\n 换行符 例:echo -e “a\na\na”
\ \ 输出\本身
\a 输出警告音
\b 退格键,也就是向左删除键
\c 取消输出行末的换行符,和“-n”选项一样
\e ESAPAE键
\f 换页符
\r 回车键
\v 垂直制表符
\0nnn 按照八进制ASCII码表输出字符,其中0为数字零,nnn是三位八进制数
例:echo -e “\0141\t\0142\t\0143\n\0144\t\0145\t\0146”
\xhh 按照十六进制ASCII码表输出字符,其中hh是两位十六进制数
例:echo -e “\x61\t\x62\t\x63\n\x64\t\x65\t\x66”
<2>颜色显示
格式:echo -e "\e[颜色号m文本\e[39/49/0m"
文字颜色: 30=黑色,31=红色,32=绿色,33=黄色,34=蓝色,35=紫色,36=天蓝色,37=白色,39=结束
底纹颜色: 40=黑色,41=红色,42=绿色,43=黄色,44=蓝色,45=紫色,46=天蓝色,47=白色,49=结束
特殊的显示: \e[0m 关闭所有属性
\e[1m 设置高亮度
\e[4m 下划线
\e[5m 闪烁
\e[7m 反显
\e[8m 消隐
**注意:**多个条件之间用分号( ; )分隔开,同时生效。例: echo -e “\e[33;44;1;4;5mhello world\e[0m”
2、shell脚本执行方式
<1>创建脚本,一般以 .sh 作为脚本后缀,也可以不写。
<2>脚本执行方式:1. 添加 x 执行权限 例:chmod +x hello.sh ./hello.sh
2. 用bash命令,调用脚本文件 例:bash hello.sh
三、Bash基本功能
1、 历史命令的查看
命令:history [选项]
-c 清空历史命令
-w 把缓存中的历史命令保存到历史命令配置文件
2、 历史命令的调用
<1>使用上、下光标键调用
<2>使用 “!n”,重复执行第n条历史命令
<3>使用 “!!”,重复执行上一条命令
<4>使用 “!字符”,重复执行最近一条以此字符开头的命令
3、命令与文件名的补全
使用tab按钮,提供了如命令补齐、路径补齐等功能
注意:补齐功能有时候会将目录结尾处自动补上 / 符号,导致系统识别出现问题,从而报错。
4、命令别名 alias
格式:alias 别名=’ 原命令 [选项] ’
别名相关配置文件(永久保存别名)
单个用户生效:~/.bashrc
所有用户生效:/etc/bashrc
注:别名命令的优先级更高,如:执行ls,优先执行的ls的别名
5、不同类型的命令执行的顺序
NO.1 用绝对路径或相对路径的方式执行命令
NO.2 别名命令
NO.3 bash 内置命令
NO.4 根据环境变量定义的目录查询找到的命令
6、Bash 常用快捷键
7、输入输出重定向
bash的标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/stdout | 1 | 标准正确输出 |
显示器 | /dev/stderr | 2 | 标准错误输出 |
输出重定向
命令 &> 文件 &: 表示标准正确输出1 和 标准错误输出2
命令 &>> 文件
输入重定向(cpio/wc/…)
命令:wc [选项] [文件名]
-c 统计字数(字符)
-w 统计单词数(字符串)
-l 统计行数
8、多命令顺序执行
多命令执行符 | 格式 | 作用 |
---|---|---|
; | 命令1 ; 命令2 | 多个命令顺序执行,命令之间没有任何逻辑联系 |
&& | 命令1 && 命令2 | 当命令1正确执行( ? = 0 ) , 命 令 2 才 会 执 行 < b r / > 当 命 令 1 执 行 不 正 确 ( ?=0),命令2才会执行 <br />当命令1执行不正确( ?=0),命令2才会执行<br/>当命令1执行不正确(?≠0),命令2不会执行 |
|| | 命令1 || 命令2 | 当命令1执行不正确( ? ≠ 0 ) , 命 令 2 才 会 执 行 < b r / > 当 命 令 1 正 确 执 行 ( ?≠0),命令2才会执行<br />当命令1正确执行( ?=0),命令2才会执行<br/>当命令1正确执行(?=0),命令2不会执行 |
`反引号` 把某命令的结果取出来等于某变量
== 判断
= 赋值
9、grep 命令
格式:grep [选项] “关键词” 文件名 #行提取命令
-A 数字:列出符合条件的行,并将连续列出后续n行
-B 数字:列出符合条件的行,并将连续列出前面n行
-c :统计包含字符串的行一共几行!
-i :忽略大小写
-n :输出行号
-v :反向查找(取反)
10、find与grep
find 是在系统中查找符合条件的文件名,默认是完全匹配,如果需要模糊查找使用通配符。
grep 是在文件中查找符合条件的字符串,是包含匹配,如果需要精确查询,需要使用正则表达式
# grep查询关键词时,只要包含关键词的行都被显示
通配符:
通配符 | 作用 |
---|---|
? | 匹配一个任意字符 |
* | 匹配0个或多个任意字符 |
[] | 匹配中括号中任意一个字符 例:[abc] 匹配一个a或b或c |
[-] | 匹配中括号中任意一个字符,- 代表一个范围 |
[^] | 逻辑非,表示匹配一个不是中括号内的一个字符 |
11、管道符 |
格式一:命令1 | 命令2
格式二:命令1 |xargs 命令2 将命令1的标准输出当做命令2的执行参数,逐个处理
12、Bash中的特殊符号
1、引号类:" " ’ ’
单引号:所有的字符都是普通字符,没有任何的特殊功能{取消了所有符号的特殊功能}
双引号:仅保留了一部分符号的特殊功能( $ \ ),绝大多数的符号被取消了特殊含义
调用变量时用双引号引起来:echo “$PATH”
2、调用命令的结果:`` 、 $( )
反引号:将命令执行,并保存其结果,可以将结果保存到某变量中
$() :作用与反引号一样
3、大小括号的功能:( ) { }
小括号:在小括号内执行的动作,是在一个独立的bash解析器中执行的,并不会对当前的bash解析器造成影响。 就相当于两个不用的用户都登录后,各自的操作只对当前自己的环境生效。
小括号所开启的bash解析器只用来临时执行某命令,执行完成后,关闭解析器。
格式