shell的运行模式

一、什么是登陆shell?什么是非登陆shell?

1、登陆shell是指:

(1)用户登陆时,输入用户名和密码后启动的shell;

(2)通过带--login参数的命令:bash  --login而启动的shell。

2、非登录shell指:

用户登录后,直接运行bash命令启动的shell。

3、对于用户来说,登陆shell和非登陆shell的主要区别是:启动shell时所执行的startup文件不同。

(1)登录shell的启动文件是/etc/profile、~/.bash_profile

(2) 非登录shell的启动文件是~/.bashrc

二、bash的运行模式

交互式shell

交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。

这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。

交互式模式又分为四种类型: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中不包含

受限模式.

非交互式shell

shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,

而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。这种

模式主要用来运行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

时间: 2024-10-05 08:33:08

shell的运行模式的相关文章

Hive基础之Hive体系架构&运行模式&Hive与关系型数据的区别

Hive架构 1)用户接口: CLI(hive shell):命令行工具:启动方式:hive 或者 hive --service cli ThriftServer:通过Thrift对外提供服务,默认端口是10000:启动方式:hive --service hiveserver WEBUI(浏览器访问hive):通过浏览器访问hive,默认端口是9999:启动方式:hive --service hwi 2)元数据存储(Metastore):启动方式:hive -service metastore

在当前shell下运行emacs 出现 fontset 'tty' does not exist.

在终端下执行以下命令进入,shell模式的 emacs,出现如下错误 $ emacs -nw error: Fontset `tty' does not exist 解决办法: 修改.emacs 中关于字体的设置. (defun s-font() (interactive) ;; font config for org table showing. (set-default-font "monospace-11") (dolist (charset '(kana han symbol

【Spark深入学习-11】Spark基本概念和运行模式

----本节内容------- 1.大数据基础 1.1大数据平台基本框架 1.2学习大数据的基础 1.3学习Spark的Hadoop基础 2.Hadoop生态基本介绍 2.1Hadoop生态组件介绍 2.2Hadoop计算框架介绍 3.Spark概述 3.1 Spark出现的技术背景 3.2 Spark核心概念介绍 4.Spark运行模式 4.1.Spark程序组成 4.2.Spark运行模式 5.参考资料 --------------------- 1.大数据基础 1.1 大数据平台基本框架

MR程序Debug调式或者运行模式

问题描述:在开发MR程序中会遇一些问题需要通过Debug调式,那么本文将介绍描述配置eclipse如何在Windows或者Linux下启动Debug调式. MR程序的Debug调式换言之就是MR程序的运行模式,MR程序有三种运行模式:本地模式(local).集群模式(cluster) Linux环境下: 1.本地模式:直接通过eclipse右键进行Debug即可 2.集群模式: 2.1.将hadoop的配置文件:core-site.xml/hdfs-site.xml/mapreduce-site

pig的各种运行模式与运行方式详解

一.pig的运行模式: Pig 有两种运行模式: Local 模式和 MapReduce 模式.当 Pig 在 Local 模式运行的时候, Pig 将只访问本地一台主机:当 Pig 在 MapReduce 模式运行的时候, Pig 将访问一个 Hadoop 集群和 HDFS 的安装位置.这时, Pig 将自动地对这个集群进行分配和回收.因为 Pig 系统可以自动地对 MapReduce 程序进行优化,所以当用户使用 Pig Latin 语言进行编程的时候,不必关心程序运行的效率, Pig 系统

windows下建立文件的换行符^M导致linux下的shell脚本运行错误的解决方案

经常在windows下编辑的文件远程传送到linux下的时候每行末尾都会出现^M,这将导致shell脚本运行错误,主要是因为dos下的编辑器和linux下的编辑器对文件末行的回车符处理不一致导致. 主要解决如下: (1)在VI编辑器中将^M删除: 将VI编辑器切换到命令模式下,输入 :%s/^M//g (注意^M 不是shift ^ +M 而是ctrl+v 加上ctrl+m)  s///g是shell的替换命令 此命令必须是手动打上,不可复制. (2)dos2unix 命令 dos2unix f

Spark internal - 多样化的运行模式(上)

Spark的运行模式多种多样,在单机上既可以以本地模式运行,也可以以伪分布式模式运行.而当以分布式的方式运行在Cluster集群中时,底层的资源调度可以使用Mesos 或者是Hadoop Yarn ,也可以使用Spark自带的Standalone Deploy模式 Spark处于活跃的开发过程中,代码变动频繁,所以本文尽量不涉及具体的代码分析,仅从结构和流程的角度进行阐述. 运行模式列表 基本上,Spark的运行模式取决于传递给SparkContext的MASTER环境变量的值,个别模式还需要辅

理解Spark运行模式(二)(Yarn Cluster)

上一篇说到Spark的yarn client运行模式,它与yarn cluster模式的主要区别就是前者Driver是运行在客户端,后者Driver是运行在yarn集群中.yarn client模式一般用在交互式场景中,比如spark shell, spark sql等程序,但是该模式下运行在客户端的Driver与Yarn集群有大量的网络交互,如果客户端与集群之间的网络不是很好,可能会导致性能问题.因此一般在生产环境中,大部分还是采用yarn cluster模式运行spark程序. 下面具体还是

常见的PHP五大运行模式详解

1)CGI(通用网关接口/ Common Gateway Interface) 2)FastCGI(常驻型CGI / Long-Live CGI) 3)CLI(命令行运行 / Command Line Interface) 4)Web模块模式(Apache等Web服务器运行的模式) 5)ISAPI(Internet Server Application Program Interface) 备注:在PHP5.3以后,PHP不再有ISAPI模式,安装后也不再有php5isapi.dll这个文件.要