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

命令执行时顺序

  1. 第一顺序执行用绝对路径或相对路径
  2. 第二顺序执行别名
  3. 第三顺序执行Bash的内部命令
  4. 第四顺序执行按照$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/stdin0标准输入
显示器/dev/stdout1标准输出
显示器/dev/stderr2标准错误输出

输出重定向

标准输出重定向

命令 > 文件 以覆盖方式,把命令的正确输出内容放在文件中
命令 >> 文件 以追加方式 ,,把命令的正确输出内容放在文件中

标准错误输出重定向

注意(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基本功能的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程Shell中Bash变量-环境变量

Shell编程Shell中Bash变量-环境变量

Shell编程Shell中Bash变量-预定义变量

Shell编程Shell中Bash变量-预定义变量

bash脚本编程基础及配置文件

Shell编程Shell中Bash变量-数值运算运算符变量测试和内容替换