Shell编程Shell中Bash基本功能
Posted 林夕07
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell编程Shell中Bash基本功能相关的知识,希望对你有一定的参考价值。
目录
Bash基本功能-历史命令和补全
历史命令
正常来说。等用户退出,系统会自动保存历史命令
语法:history [选项][历史命令保存文件]
保存位置:/root/.bash_history
参数 | 说明 |
---|---|
-c | 清空历史命令 |
-w | 把缓存种历史命令写入历史命令保存文件~/.bash_history |
- 历史命令默认保存1000条,可以在环境配置文件/etc/profile中进行修改
历史命令的调用:
- 使用上、下箭头调用以前的历史命令
- 使用“!n”重复执行第n条历史命令
- 使用“!!”
- 使用“!字符串”重复执行最后一条以该字符串开头的的命令
命令和文件补全
- 在Bash中,命令与文件补全全是非常方便与常用的功能,我们只要在输入命令或文件时,按“Tab”就会自动补全A
Bash基本功能-别名与快捷键
命令别名
设定别名
语法:alias 别名=‘原命令’
查询别名
语法:alias
命令执行时顺序
- 第一顺序执行用绝对路径或相对路径
- 第二顺序执行别名
- 第三顺序执行Bash的内部命令
- 第四顺序执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令
让别名永久生效
语法:vim /root/.bashrc
写入文件
删除别名
语法:unalias 别名
Bash常用快捷键
ctrl+A | 把光标移动到命令行开头,如果我们输入的命令过长,想要把光标移动到命令行开头使用 |
---|---|
ctrl+E | 把光标移动到命令行结尾 |
ctrl+C | 强制终止当前的命令 |
ctrl+L | 清屏,相当于clear命令 |
ctrl+U | 删除或截切光标之前的命令,我输入了一行很长的命令,不用使用退格键一个个删除,直接使用快捷键 |
ctrl+K | 删除或截切光标之后的内容 |
ctrl+Y | 粘贴ctrl+U或者ctrl+K截切的内容 |
ctrl+R | 在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面 |
ctrl+D | 退出当前终端 |
ctrl+Z | 暂停,并放入后台。 |
ctrl+S | 暂停屏幕输出 |
ctrl+Q | 恢复屏幕输出 |
Bash基本功能-输入输出重定向
标准输入输出
设备 | 设备文件名 | 文件描述符 | 类型 |
---|---|---|---|
键盘 | /dev/stdin | 0 | 标准输入 |
显示器 | /dev/stdout | 1 | 标准输出 |
显示器 | /dev/stderr | 2 | 标准错误输出 |
输出重定向
标准输出重定向
命令 > 文件 以覆盖方式,把命令的正确输出内容放在文件中
命令 >> 文件 以追加方式 ,,把命令的正确输出内容放在文件中
标准错误输出重定向
注意(2和>>不能有空格)
命令 2> 文件 以覆盖方式,把命令的错误输出内容放在文件中
命令 2>> 文件 以追加方式 ,,把命令的错误输出内容放在文件中
实例-重定向输入
执行成功
执行失败
实例-覆盖
执行失败
执行成功
正确输出和错误输出同时保存
命令 > 文件 2>&1 以覆盖形式,把正确输出和错误输出都保存到同一个文件中
命令 >> 文件 2>&1 以追加形式,把正确输出和错误输出都保存到同一个文件中
命令 &>文件 覆盖,等同第一条,
命令 &>>文件 追加,等同第二条,
命令 >> 文件1 2>>文件2 把正确的输出追加到文件1,错误输出追加到文件2
黑洞
ls &>/dev/null
文件特殊,类似于黑洞,就是直接扔了,我不看
输入重定向
语法:wc [选项][文件名]
参数 | 说明 |
---|---|
-c | 统计字节数 |
-w | 统计单词数量 |
-l | 统计行数 |
实例-统计行数、字节数、单词数量
按ctrl+d 退出 3行 12个单词 51个字符 默认统计三个内容
命令<文件 把文件作为命令的输入
统计文件的信息
命令<<字符串
输入一些文本,最后输入上面的字符串就结束了
Bash基本功能-多命令顺序执行与管道符
多命令顺序执行
多命令执行符 | 格式 | 作用 |
---|---|---|
; | 命令1;命令2 | 多个命令顺序执行,命令之间没有任何逻辑关联 |
&& | 命令1&&命令2 | 逻辑与 当命令1正确执行,则命令二才会执行 当命令1执行不正确,则命令2不会执行 |
|| | 命令1||命令2 | 逻辑或 当命令1执行不正确,则命令2才会执行 当命令1正确执行,则命令2不执行 |
实例-多命令组合使用
dd命令
语法:dd if=输入文件 of=输出文件 bs=字节数 count=个数
参数 | 说明 |
---|---|
if=输入文件 | 指定源文件或源设备 |
of=输出文件 | 指定目标文件或目标设备 |
bs=字节数 | 指定一次输入/输出多少字节,即把这些字节看做一个数据块 |
count=个数 | 指定输入/输出多少个数据块 |
例如:
从zero文件向testfile文件一次写入1k的0写入10w次
date;dd if=/dev/zero of=/root/testfile bs=1k count=100000;date
逻辑与,用在命令之间需要依赖关系
如:./configure && make && make install
管道符
语法: 命令1|命令2
命令1的正确输出作为命令2的操作对象
实例
etc下目录太多了,我们可以使用more来分屏显示
grep
grep [选项] “搜索内容”
-i | 忽略大小写 |
---|---|
-n | 输出行号 |
-v | 反向查找 |
–color=auto | 搜索出的关键字用颜色显示 |
实例
以上是关于Shell编程Shell中Bash基本功能的主要内容,如果未能解决你的问题,请参考以下文章