bash
shell 和 bash
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
bash 是一种 shell
bash基本特点
1、命令历史、命令补全
2、管道、重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名通配
7、变量
8、编程
命令行编辑
光标跳转:
Ctrl+a:跳到命令行首
Ctrl+e:跳到命令行尾
Ctrl+u: 删除光标至命令行首的内容
Ctrl+k: 删除光标至命令行尾的内容
Ctrl+l: 清屏
命令别名
alias CMDALIAS='COMMAND [options] [arguments]'在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程;
取消命令别名:ualias CMDALIAS
命令别名和一个命令重名时,使用该命令:\CMD
命令替换
把命令中某个子命令替换为其执行结果的过程
echo "The current path is $(pwd)"
bash支持的引号:
``: 命令替换
"": 弱引用,可以实现变量替换
'': 强引用,不完成变量替换
文件名通配
*: 任意长度的任意字符
?:任意单个字符
[]:匹配指定范围内的任意单个字符
[abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]: 大写字母
[:alpha:]: 大小写字母
[:digit:]: 数字
[:alnum:]: 数字和大小写字母
[^]: 匹配指定范围之外的任意单个字符
[[:alpha:]]*[[:space:]]*[^[:alpha:]]
man 7 glob可以获得这些命令的使用说明
bash的配置文件
全局配置
/etc/profile, /etc/profile.d/*.sh, /etc/bashrc个人配置
~/.bash_profile, ~/.bashrc功能
profile类的文件:设定环境变量
运行命令或脚本
bashrc类的文件:
设定本地变量
定义命令别名
设定本地变量
定义命令别名
站在用户登录的角度来说,SHELL的类型:
登录式shell:
正常通常某终端登录su - USERNAME
su -l USERNAME
非登录式shell:
su USERNAME图形终端下打开命令窗口
自动执行的shell脚本
登录式shell如何读取配置文件?
/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非登录式shell如何读取配置文件?
~/.bashrc --> /etc/basrc --> /etc/profile.d/*.sh