交互式的Bourne shell
简介
当以交互的方式使用命令行时,shell有一些特殊的内置变量,这些变量中包含一系列选项。如果在选项中包含字母i,则表示shell以交互方式运行。
- # case "$-" in
> *i*) echo This shell is interactive;;
> *) echo This shell is not interactive;;
> esac
以上小脚本检测是否以交互方式运行。
如果Bourne shell是登录shell,它将跟在一系列进程之后启动,然后用户才能看到shell提示符,基本的启动过程如下:
- 系统要运行的第一个进程是init,他的PID是1。它从文件inittab文件读取指令(System V系统),或者派生一个getty进程(BSD系统)。这些进程打开终端端口,以提供标准输入来源、标准输出和标准错误输出的去处,并且在屏幕上显示一个登陆提示符。
- 接下来执行/bin/login程序。提示用户输入口令、加密并验证用户输入的口令、设置初始环境、启动用户的登录shell(登录shell是passwd文件的最后一项,对本章而言就是/bin/sh)。进程首先查找系统文件/etc/profile,并且执行其中的命令。然后在用户的主目录下查找名为.profile的初始化文件。执行完文件.profile中的命令后,屏幕上将显示默认的命令提示符$,然后Bourne shell等待用户输入命令。针对启动到图形界面、虚拟桌面、一个用来启动shell终端的子菜单这种情形比刚刚描述的启动过程要复杂的多。
环境
进程的环境包括:变量、打开的文件、当前的工作目录、函数、资源限制、信号等。它定义了可以从一个进程继承到下一个进程的特性,以及对当前工作环境的配置。用户shell的配置定义在shell的初始化文件中。
未完待续……
交互式的Bourne shell的更多相关文章
- 登陆shell与交互式非登陆shell的区别
登录shell 所谓登录shell,指的是当用户登录系统时所取的那个shell,登录shell属于交互式shell. 登录shell将查找4个不同的启动文件来处理其中的命令. bash shell处理 ...
- Bourne Shell:控制语句、条件判断、文本处理、常用命令
条件判断是一个程序获得智能的基础,而Bourne Shell脚本则通过命令 [ 来模拟大多数编程语言中的条件表达式. shell中支持的控制结构有: (1) if then else fi (2) f ...
- linux 9 -- 交互式使用Bash Shell
二十二. 交互式使用Bash Shell: 1. 用set命令设置bash的选项: 下面为set主要选项的列表及其表述: 选项名 开关缩写 描述 allexport -a 打开此开关 ...
- ubuntu 下非交互式执行远程shell命令
apt-get install sshpass sshpass -p **your_password** ssh -o StrictHostKeyChecking=no "root@$ip& ...
- 交互式shell和非交互式shell的区别
交互式模式就是shell等待你的输入,并且执行你提交的命令.这种模式被称作交互式是因为shell与用户进行交互.这种模式也是大多数用户非常熟悉的:登录.执行一些命令.签退.当你签退后,shell也终止 ...
- /etc/profile与/etc/bashrc、交互式与非交互式、login与non-login shell的差别
线上的memcached又挂了.仍然没有得到core文件. 排查原因,同事发现启动memcached的脚本存在可疑问题. 问题一:没有设置memcached工作文件夹,有可能core dump时没有工 ...
- Linux登录shell和非登录(交互式shell)环境变量配置
使用Jenkins执行shell脚本的时候, 碰到command not found. 比如java mvn, 这些环境变量配置在/etc/profile 中, 但jenkins执行的时候并没有加载. ...
- shell简介
Shell作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支. shell使用的熟练程度反映了用户对U ...
- [Bash Shell] Shell学习笔记
1. Shell简介 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的.Shell既是一种命令语言,又是一种程序设计语言.作为命 ...
随机推荐
- springmvc+spring+mybatis+sqlserver----插入一条新数据
<insert id="addOneMsg" parameterType="java.util.Map"> INSERT INTO PDA_JWL_ ...
- 从零开始的全栈工程师——js篇(cookie)
Cookie是由服务器端生成,发送给User-Agent,浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器,对cookie知识感兴 ...
- jQuery 浮动导航菜单(购物网站商品类型)
单页面网页内容较多,页面长度较大,需要方便快速的在页面的不同位置进行定位,所以浮动菜单逐渐流行了起来,如下图 男装.女装.美妆等. 这种菜单功能分为两部分: 1.点击菜单项,网页滚动到对应位置,可简单 ...
- Oracle数据表比较记录差异(转)
liuyx_know|七级 你可以参照一下Oracle的UNION [ALL], INTERSECT, MINUS操作符,至于你的问题你可以使用MINUS操作符,语句如下: SELECT * FROM ...
- HDFS文件操作(命令行)
HDFS是一种分布式文件系统,为MapReduce这种框架下的海量数据分布式处理而设计. Hadoop之HDFS文件操作常有两种方式,一种是命令行方式,即Hadoop提供了一套与Linux文件命令类似 ...
- 【转】C内存操作函数
一.malloc/calloc 名称: Malloc/calloc 功能: 动态内存分配函数 头文件: #include <stdlib.h> 函数原形: void *malloc(si ...
- 如何查看某个用户指定时间段的ABAP开发记录
输入用户名和想查询的时间段: 执行得到结果.双击可查看具体代码: 工具源代码: REPORT tool_dev_history. PARAMETERS: name TYPE usr02-bname O ...
- *389. Find the Difference (string + map(26)) read problems carefully
Given two strings s and t which consist of only lowercase letters. String t is generated by random s ...
- 安装和使用nmon监测hadoop集群性能
nmon是一个非常易用的监测Unix/Linux系统性能的小工具,可以在一个屏幕上通过指令切换,显示几乎你想要的所有指标,并且可以自动将指标周期性的保存成 .nmon格式文件,这个工具可以与nmon_ ...
- 返回json格式 不忽略null字段
返回json格式 不忽略null字段 发布于 353天前 作者 king666 271 次浏览 复制 上一个帖子 下一个帖子 标签: json 如题,一个实体的某个字段如果为null,在 ...