shell基础
shell是一个命令解释器,主流shell是bash
linux内etc/shells内由主要支持的shell类型
shell执行方式
echo [选项] [输出内容]#输出命令
-e 支持反斜线控制的字符转换
echo -e "\e[1;31m abcd \e[0m"#进行颜色输出
\e[1;#进行颜色输出
\e[0m#结束颜色输出
30m = 黑色 31m = 红色 32m = 绿色 33m = 黄色
34m = 蓝色 35m = 洋红 36m = 青色 37m = 白色
| 控制字符 | 作用 |
|---|---|
| \\ | 输出\本身 |
| \a | 输出警示音 |
| \b | 退格键,也就是向左删除键 |
| \e | ESCAPE键 |
| \f | 换页符 |
| \n | 换行符 |
| \r | 回车符 |
| \t | 制表符,也就是Tab键 |
| \v | 垂直制表符 |
| a | |
| \0nnn | 按照八进制ASCII码表输出字符,其中0为数字零,nnn是三位八进制 |
| \xhh | 按照十六进制ASCII码表输出字符,其中hh是两位十六进制数 |
| \c | 取消输出行末的换行符,和“-n”选项一致 |
第一个脚本
#!/bin/Bash
#不是命令,标识自己是shell脚本,表明以下命令是shell命令
#The first program
echo -e "Mr.liu is the most honest man"
脚本执行
赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
通过Bash调用执行脚本
bash hello.sh
将window的代码转换为linux的执行代码
dos2unix 文件名
bash的基本功能
历史命令与命令补全
history [选项] [历史命令保存文件]
-c 清空历史命令
-w 把缓存中的历史命令写入历史命令保存文件
~/.bash_history
历史命令默认保存1000条,可以在/etc/profile中修改
使用上下箭头调用以前的历史命令
使用"!n"重复执行第n条命令
使用"!!"重复执行上一条命令
使用"!字串"重复执行最后一条以该字串开头的命令
可以使用Tab键补全
命令别名与常用快捷键
命令别名
alias 别名='原命令' #设置别名,命令行定义只会临时生效
alias #查询别名
命令执行顺序
1.第一顺序执行用绝对路径或者相对路径执行的命令
2.第二顺序是别名
3.第三顺序执行Bash的内部命令
4.第四顺序执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
#永久生效
vi /root/.bashrc
unalias 别名
常用快捷键
| 快捷键 | 作用 |
|---|---|
| ctrl+A | 光标移动到开头 |
| ctrl+E | 光标移动到结尾 |
| ctrl+C | 强制终止当前命令 |
| ctrl+L | 清屏和clear命令类似 |
| ctrl+U | 删除或剪切光标前的命令 |
| ctrl+K | 删除或剪切光标后的命令 |
| ctrl+Y | 粘贴 |
| ctrl+R | 在历史命令中查看 |
| ctrl+D | 退出终端 |
| ctrl+Z | 暂停,并放入后台 |
| ctrl+S | 暂停屏幕输出 |
| ctrl+Q | 恢复屏幕输出 |
输入输出重定向
1.标准输入输出
| 设备 | 设备文件名 | 文件描述符 | 类型 |
|---|---|---|---|
| 键盘 | /dev/stdin | 0 | 标准输入 |
| 显示器 | /dev/sdtout | 1 | 标准输出 |
| 显示器 | /dev/sdterr | 2 | 标准错误输出 |
2.输出重 定向
| 类型 | 符号 | 作用 |
|---|---|---|
| 标准输出重定向 | 命令 > 文件 | 以覆盖的方式,将命令的正确输出到指定文件或则设备 |
| 命令 >> 文件 | 以追加的方式,把命令的正确输出到指定文件或设备 | |
| 标准错误输出命令重定向 | 错误命令 2> 文件(‘2’与’>'中间不能有空格,以下相同) | 以覆盖的方式,将命令的错误输出到指定文件或则设备 |
| 错误命令 2>> 文件 | 以追加的方式,把命令的错误输出到指定文件或设备 | |
| 正确输出和错误输出同时保存 | 命令 > 文件 2>&1 | 以覆盖的方式,将命令的输出到指定文件或则设备 |
| 命令 >> 文件 2>&1 | 以追加的方式,把命令输出到指定文件或设备 | |
| 命令 &>文件 | 以覆盖的方式,将命令的输出到指定文件或则设备 | |
| 命令 &>>文件 | 以追加的方式,把命令输出到指定文件或设备 | |
| 命令>>文件1 2>>文件2 | 以追加的方式,把命令正确输出到指定文件1或设备1,把命令的错误输出到指定文件2或设备2 |
ls &>/dev/null #丢入垃圾箱
3.输入重定向
命令<文件 把文件作为命令的输入
wc [选项] [文件名]#统计命令 ctrl + D 退出
-c 统计字节数
-w 统计单词数
-l 统计行数










