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
原文地址:https://www.cnblogs.com/xumaomao/p/11878982.html