查看使用的shell种类
echo $SHELL
centos ubuntu使用的bash
echo输出命令
echo打印到屏幕上。
echo [选项] [输出内容]
选项: -e:支持反斜线控制的字符转换
控制字符 | 作用 |
---|---|
\a | 输出警告音 |
\b | 退格键,向左删除键 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符,Tab键 |
\v | 垂直制表符 |
\0??? | 按照八进制ASCII码表输出字符 |
\x?? | 按照十六进制ASCII码表输出字符 |
echo "hello world"
[root@bogon ~]# echo -e "hello\b"
hello
[root@bogon ~]# echo -e "hell o\b"
hell o
[root@bogon ~]# echo -e "hell o\b a "
hell a
[root@bogon ~]# echo -e "\x68\x65\x6c\x6c\x6f"
hello
输出颜色
# 30m:黑色 31m:红色 32m:绿色 33m:黄色 34m:蓝色 35m:洋红 36m:青色 37m:白色
echo -e "\e[1;31m哈哈哈\e[0m"
第一个脚本
vi hello.sh
然后编辑脚本
# !/bin/bash
# 这是第一个shell脚本
echo -e ”\e[1;34m 天上掉下个猪八戒\e[0m“
脚本执行
方法一:赋予执行权限,直接运行
chmod 755 hello.sh
./hello.sh
方法二:通过bash调用执行脚本
bash hello.sh
命名别名
# 查看系统中所有的命令别名
alias
# 设定命令别名,重启计算机之后失效
alias 别名 = '原命令'
alias ls = 'ls --color=never'
# 别名永久生效与删除别名
# 写入环境变量配置文件
vi ~/.bashrc
# 删除别名
unalis 别名(临时删除)
命令生效顺序:
- 第一顺位执行用绝对路径或相对路径执行的命令
- 第二顺位执行别名
- 第三顺位执行bash的内部命令
- 第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
常用快捷键
快捷键 | 作用 |
---|---|
ctrl+c | 强制终止当前命令 |
ctrl+l | 清屏 |
ctrl+a | 将光标移动到行首 |
ctrl+e | 将光标移动到行尾 |
ctrl+u | 将光标所在位置删除到行首 |
ctrl+z | 把命令放入后台 |
ctrl+r | 在历史命令中搜索 |
历史命令
查看历史命令
history [选项] [历史命令保存文件]
选项:
-c:清空历史命令
-w:将缓存中的历史命令写入历史命令保存文件~/.bash_history
历史默认命令会保存1000条,可以在环境变量配置文件/etc/profile中进行修改(HISZIZE字段)
历史命令的调用
- 使用上下箭头调用以前的历史命令
- 使用"!n" 重复执行第n条历史命令
- 使用"!!"重复执行上一条命令
- 使用"!字串" 重复执行最后一条以该字串开头的命令
命令与文件补全
在bash中,命令与文件补全使用tab键,一次或两次。
输出输入重定向
标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/stdout/1 | 标准输出 | |
显示器 | /dev/stderr/2 | 标准错误输出 |
输出重定向
类型 | 符号 | 作用 |
---|---|---|
标准输出重定向 | 命令 > 文件 | 以覆盖的方式,把命令的正确输出输出到指定的文件或设备当中 |
标准输出重定向 | 命令 >> 文件 | 以追加的方式,把命令的正确输出输出到指定的文件或设备当中 |
标准错误输出重定向 | 错误命令 2>文件 | 以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中 |
标准错误输出重定向 | 错误命令 2>>文件 | 以追加的方式,把命令的错误输出输出到指定的文件或设备当中 |
正确输出和错误输出同时保存 | 命令>文件 2>&1 | 以覆盖的方式,把正确输出和错误输出都保存在同一个文件当中 |
正确输出和错误输出同时保存 | 命令>>文件 2>&1 | 以追加的方式,把正确输出和错误输出都保存在同一个文件当中 |
正确输出和错误输出同时保存 | 命令&>文件 | 以覆盖的方式,把正确输出和错误输出都保存在同一个文件当中 |
正确输出和错误输出同时保存 | 命令&>>文件 | 以追加的方式,把正确输出和错误输出都保存在同一个文件当中 |
正确输出和错误输出同时保存 | 命令>>文件1 2>>文件2 | 把正确输出追加到文件1中,把错误输出追加到文件 |
2中
输入重定向
命令<文件,把文件作为命令的输入
命令<<标识符,把标识符之前的内容作为命令的输入
wc [选项] [文件名]
选项:
-c:统计字节数
-w:统计单词数
-l:统计行数
wc本身统计行数,单词数,字节数,ctrl+d
多命令顺序执行
多命令执行符 | 格式 | 作用 | |||
---|---|---|---|---|---|
; | 命令1;命令2 | 多个命令顺序执行,命令之间没有任何逻辑联系 | |||
&& | 命令1&&命令2 | 逻辑与 当命令1执行正确,命令2执行 当命令1执行不正确,命令2不执行 |
|||
命令1 | 命令2 | 逻辑或 当命令1执行正确,命令2不执行 当命令1执行不正确,命令2执行 |
# 命令正确执行打印yes,错误执行打印no
命令 && echo yse || echo no
ls && echo yes || echo no
管道符
# 命令1的正确输出作为命令2的操作对象
命令1 | 命令2
ll -a /etc/ | more
netstat -an |grep ESTABLISHED |wc -l
通配符
?,*,[abc],[0-9],[^0-9](非数字)
符号 | 作用 |
---|---|
'' | 单引号。单引号中的所有特殊符号都没有含义 |
"" | 双引号。双引号中特殊符号都没有特殊含义,"$","`",""是例外 |
`` | 反引号。反引号括起来的内容是系统命令,在bash中会先执行它。作用同$() |
$() | 引用系统命令 |
# | 注释 |
$ | 用于调用变量的值,格式为 $name |
转义符。跟在\之后的特殊符号将失去特殊意义,变为普通字符 |