Bash是什么?

Bash 全称为Bourne Again SHell,是Shell程序的一种,提供一个界面(也就是终端),可让用户通过调用各种命令来操作系统

查看Linux中的Shell

系统支持的Shell程序在 /etc/shells 文件中,Linux默认使用bash(替代了sh)
在这里插入图片描述
想要知道用户当前使用的Shell,可查看 /etc/passwd 文件
在这里插入图片描述

Bash的优点

命令记忆功能

上一次登陆所执行的命令记录在 ~/.bash_history,而这一次登陆所执行的命令暂存于内存,只有退出时才会写到该文件,可通过⬆⬇查看前后命令

命令 history 可查看输入的历史记录,n表示显示个数,-c 清除历史,-r 将~/.bash_history的内容读到内存,-w将目前新增的历史记录写到 ~/.bash_history
在这里插入图片描述

补全功能

使用 tab 可进行输入补全

命令别名

可通过 alias 简化命令,如下使用 lm 代替 ls -al,取消使用unalias
在这里插入图片描述

工作、前景背景控制

可让当前工作在背景中执行

脚本

可将一连串指令写成一个文件及采用交互式运行,用于完成一个大工程

通配符

符号意义
*0到多个任意字符
?1个任意字符
[][abcd]表示可能为abcd中的任意一个或多个字符
[-][0-9]表示有0-9的任意数字
[^][ ^a ] 除了a以外的字符

内置命令

除了在 /bin 外的系统命令,bash本身也自带了命令,可通过 type 查看当前命令类型

  • 不加参数显示其完整类型
  • -t 输出file表示系统命令,alias 表示命令为别名,builtin则为bash命令
  • -p 显示系统命令的路径
  • -a 显示出命令的搜索执行顺序,如下先使用的是ls --color=auto,而不是/bin/ls

可看到 ls 是 ls --color=auto 的别名,cd 为bash指令
在这里插入图片描述

Bash环境配置流程

Login Shell

Login Shell指通过完整流程获取Bash,列如在命令行界面登陆。首先读取/etc/profile配置环境变量、语言、命令别名等,然后读取个人配置~/.bash_profile( ~/.bash_login或 ~/.profile)
在这里插入图片描述
如下可看到其调用了bashrc,设置命令行提示符号等
在这里插入图片描述

Non-login shell

而Non-login shell指通过窗口界面等方式登陆后再打开终端,仅读取~/.bashrc,然后读取/etc/bashrc、/etc/profile.d/*.sh

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐