1、bash如何展开命令行
把命令行分成单个命令词 展开别名 展开大括号的声明({}) 展开波浪符声明(~) 命令替换$() 和 ``) 再次把命令行分成命令词 展开文件通配(*、?、[abc]等等) 准备I/0重导向(<、>) 运行命令
由上到下顺序进行命令行展开
2、防止命令行扩展
反斜线(\)会使随后的字符按原意解释 $ echo Your cost: \$5.00 Your cost: $5.00 加引号来防止扩展 • 单引号(’)防止所有扩展 • 双引号(”)也防止所有扩展,但是以下情况例外: $(美元符号) - 变量扩展 `(反引号) - 命令替换 \(反斜线) - 禁止单个字符扩展 !(叹号) - 历史命令替换
3、bash的配置文件:
/etc/profile /etc/profile.d/*.sh /etc/bashrc
个人配置:
~/.bash_profile ~/.bashrc
4、shell登录的两种方式
交互式登录
(1)直接通过终端输入账号密码登录 (2)使用“su - UserName” 切换的用户 执行顺序:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc非交互式登录
(1)su UserName (2)图形界面下打开的终端 (3)执行脚本 (4)任何其它的bash实例 执行顺序: ~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
Profile类
profile类:为交互式登录的shell提供配置
全局:/etc/profile, /etc/profile.d/*.sh
个人:~/.bash_profile
功用:
(1)用于定义环境变量(2)运行命令或脚本
bashrc类:为非交互式和交互式登录的shell提供配置
全局:/etc/bashrc
个人:~/.bashrc
功用:
(1) 定义命令别名和函数 (2) 定义本地变量
5、编辑配置文件立即生效
修改profile和bashrc文件后需生效 ,两种方法:
1 重新启动shell进程 2 .或source
例:
. ~/.bashrc
Bash 退出任务
保存在~/.bash_logout文件中(用户) 在退出登录shell时运行 用于 • 创建自动备份 • 清除临时文件
6、$-变量
h:hashall,打开这个选项后,Shell 会将命令所在的路径hash下来,避免每次都要查询。通过set +h将h选项关闭 i:interactive-comments,包含这个选项说明当前的 shell 是一个交互式的 shell。所谓的交互式shell,在脚本中,i选项是关闭的。 m:monitor,打开监控模式,就可以通过Job control来控制进程的停止、继续,后台或者前台执行等。 B:braceexpand,大括号扩展 H:history,H选项打开,可以展开历史列表中的命令,可以通过!感叹号来完成,例如“!!”返回上最近的一个历史命令,“!n”返回第 n 个历史命令
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/95694