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 统计行数