Bash Shell 简介 gaunthan Posted on May 14 2016 ? Linux Shell ? ## 概述 **bash**(GNU Bourne-Again Shell) 是大多数Linux系统以及Mac OS X默认的shell,它能运行于大多数类Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。 ## Bash常用功能 ### Tab键自动补全 * 按下一次Tab键执行补全功能。 * 连续按下两次Tab键将显示可以匹配的命令。 ### 命令历史 * 执行`history`命令可以查看已键入的历史。如下图:  * `!序号`可以执行对应序号的历史命令。如`!1`会执行`ls`命令。 ### 命令别名 命令别名可以为使用频率较高的复杂命令行设置简单的调用名称,它存放在目录`~/.bashrc`下。 * `alias [别名]`可以查看命令别名。 * `alias 别名=实际执行的命令`可以设置命令别名。 * `unalias 别名`可以取消已设置的命令别名。 ### 重定向 |类型|操作符|用途| |--|--|--| |重定向标准输入|`<`或`0<`|将命令中接收输入的途径由默认的键盘更改为指定的文件| |重定向标准输出|`>`或`1>`|将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上| ||`>>`或`1>>`|将命令执行的结果追加输出到指定文件| |重定向标准错误|`2>`|清空指定文件的内容,并将标准错误信息保存到该文件中| ||`2>>`|将标准错误信息追加输出到指定的文件中| |重定向标准输出和标准错误|`&>`|将标准输出、标准错误的内容全部保存到指定的文件中,而不是直接显示在屏幕上| ||`&>>`|将标准输出、标准错误的内容全部追加到指定的文件中| ### 管道操作 管道操作符号`|`用于将一个命令的输出作为另一个命令的输入。 ## bash欢迎信息 bash欢迎信息的配置文件为`/etc/issue`与`/etc/motd`,其中issue内的非打印字符的含义如下表: |非打印字符|含义| |--|--| |`\d`|本地日期| |`\l`|终端机接口号| |`\m`|机器架构,相当于`uname -m`| |`\n`|主机名| |`\o`|域名| |`\r`|操作系统版本,相当于`uname -r`| |`\t`|本地时间| |`\s`|操作系统的名称| |`\v`|操作系统版本| ## bash默认组合键 |组合按键|作用| |--|--| |Ctrl+C|结束当前进程| |Ctrl+D|输入EOF| |Ctrl+M|Enter| |Ctrl+S|暂停屏幕的输出| |Ctrl+Q|恢复屏幕的输出| |Ctrl+U|删除光标前的全部内容| |Ctrl+W|删除光标前的内容,直到遇到空白符| |Ctrl+Z|挂起当前进程。可以使用命令`fg`恢复| |Ctrl+P|输入上一条执行的命令| ## References - 鸟哥. 鸟哥的 Linux 私房菜, 基础学习篇. 第 3 版 [M]. 人民邮电出版社, 2010. 赏 Wechat Pay Alipay Shell 命令提示符 Linux 系统工具使用