博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Linux学习笔记】Bash最常见的激活模式
阅读量:3030 次
发布时间:2019-05-15

本文共 1775 字,大约阅读时间需要 5 分钟。

Bash最常见的激活模式是交互式和非交互式:

1.交互式激活
指其标准输入和输出都连接在终端上.又分为三种类型:login,非login,posix 以及受限的shell.
确定一个shell是否是交互式的可以通过检测$PS1环境变量.
(1) 当Bash作为login shell被激活时,它将依次读取并执行以下文件:
/etc/profile,~/.bash_profile,~/.bash_login,~/.profile
使用--noprofile选项激活Bash可以禁止其读任何初始化文件 在退出时执行 ~/.bash_logout 文件
(2) 当Bash作为非login shell被激活时,它将读取并执行~/.bashrc
使用--norc选项激活Bash可以禁止执行任何初始化文件,使用 --rcfile file可以指定执行的初始化文件.
(3) 当Bash作为posix模式被激活时,它将先检查$ENV变量是否定义.
若定义,Bash读取并执行有$ENV变量扩展而得到的文件,否则不再 执行任何初始化文件。
(4) 当Bash作为受限模式被激活时,它除了禁止某些操作以外,其他行为于其他模式相同.受限操作有:改变目录,修改$SHELL和$PATH变量, 运行exec,以绝对路径运行程序以及使用重定向.Bash 1.x中不包含 受限模式.
2.非交互式激活
主要用来运行Shell脚本.启动后,Bash检查$BASH_ENV变量,若定义, 这执行该变量指定文件中包含的命令.
Bash 的激活选项
-c string 该选项表明string中包含了一条命令.如 bash -c ls ~
-i 使Bash以交互式方式运行
-r 使Bash以受限方式运行
--login 使Bash以登录Shell方式运行
--posix 使Bash遵循POSIX标准
--verbose 使Bash显示所有其读入的输入行
--help 打印Bash的使用信息
--version 打印版本信息
--noprofile
--norc
--rcfile file

Shell 的激活

在系统起动的时候,核心程序会被加载内存,负责管理系统的工作,直到系统关闭为止。它建立并控制着处理程序,管理内存、档案系统、通讯等等。而其它的程序,包括 shell 程序,都存放在磁盘中。核心程序将它们加载内存,执行它们,并且在它们中止后清理系统。Shell 是一个公用程序,它在您签入时起动。藉由解译使用者输入的命令(由命令列或命令档),Shell 提供使用者和核心程序产生交谈的功能。
当您签入(login)时,一个交谈式的shell 会跟着起动,并提示您输入命令。在您键入一个命令后,接着就是 shell 的工作了,它会进行:
1. 语法分析命令列
2. 处理万用字符(wildcards)、转向(redirection)、管线(pipes)与工作控制(job control)
3. 搜寻并执行命令
当您刚开始学UNIX/Linux系统时,您大部份的时间会花在于提示符号(prompt)下执行命令。
如果您经常会输入一组相同形式的命令,您可能会想要自动执行那些工作。如此,您可以将一些命令放入一个档案(称为命令档,script),然后执行该档。一个shell 命令档很像是 DOS 下的批次檔(如 Autoexec.bat):它把一连串的 UNIX 命令存入一个档案,然后执行该档。较成熟的命令档还支持若干现代程序语言的控制结构,譬如说能做条件判断、循环、档案测试、传送参数等。要写着写命令档,不仅要学习程序设计的结构和技巧,而且对 UNIX/Linux 公用程序及如何运作需有深入的了解。有些公用程序的功能非常强大(例如 grep、sed 和awk),它们常被用于命令档来操控命令输出和档案。在您对那些工具和程序设计结构变得熟悉之后,您就可以开始写命令档。当由命令档执行命令时,此刻,您就已经把 shell 当做程序语言使用了。

Shell 的功用

为了确保任何提示符号下输入的命令都能够适当地执行。shell 担任的工作包括有:
1. 读取输入和语法分析命令列
2. 对特殊字符求值
3. 设立管线、转向、和幕后处理
4. 处理讯号
5. 设立程序来执行

转载地址:http://sitic.baihongyu.com/

你可能感兴趣的文章
转载 sql 首字母大写
查看>>
IdentityServer4 简单使用,包括api访问控制,openid的授权登录,js访问
查看>>
探索性数据分析(EDA)
查看>>
项目积累——jQuery
查看>>
Jenkins pipeline概念理解
查看>>
iOS与JS交互
查看>>
Python Scrapy爬虫框架之初次使用
查看>>
struts2 拦截器【转】
查看>>
入驻校孵化园
查看>>
[NOI2000]算符破译
查看>>
排序算法2---简单选择排序
查看>>
剑指offer 07:斐波那契数列
查看>>
Linux系统目录(转载)
查看>>
将博客搬至CSDN
查看>>
git 常用命令
查看>>
jQ判断checked是否选中
查看>>
AngularJS Scope(作用域)
查看>>
js进阶 offset
查看>>
c语言判断打开文件是否为空的方法
查看>>
第三章 数据类型和运算符
查看>>