shell编程基础二

profile bashrc 混合命令行展开

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

(0)
parrotparrot
上一篇 2018-04-11 14:05
下一篇 2018-04-11 19:54

相关推荐

  • Linux基础知识(1)

    N31
    第一周

    Linux笔记 2018-06-23
  • 主机经过三路由通信

    网络规划 主机 A IP/# 172.16.0.1/16 gatway 172.16.0.2 网段 vm10 172.16.0.0 eth0 IP/# 172.16.0.2/16 路由 R1 eth1 IP/# 10.0.0.1/8 网段 vm11 10.0.0.0 eth0 IP/# 10.0.0.2/8 路由 R2 eth1 IP/# 172.31.0.…

    Linux笔记 2018-05-04
  • linux第三周

    总结

    Linux笔记 2018-04-15
  • 第二周作业

    Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 ls命令 显示目标列表 ls 选项 参数 -a 显示所有目录文件 -A 显示所有文件目录除了 “.” “..” -d 仅显示目录名 -i 显示文件索引节点号(inode) cp命令 复制命令,将一个文件或目录复制到指定文件或目录、 cp 选项 参数 -f 强行复制文件或目录,不论目标文…

    Linux笔记 2018-07-29
  • 第二周作业

    第二周作业 一、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 pwd:  显示当前的工作目录 -P 显示真实物理路径 -L 显示链接路径(默认)   cd:  改变目录 使用绝对路径或者相对路径: cd /root/Desktop  cd Desktop/ 切换至父目录: cd .. 切换至当前用户主目录: cd 切换至…

    2018-07-06