Chinaunix首页 | 论坛 | 博客
  • 博客访问: 654402
  • 博文数量: 96
  • 博客积分: 2005
  • 博客等级: 上尉
  • 技术积分: 1061
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-21 13:59
文章分类

全部博文(96)

文章存档

2013年(11)

2012年(30)

2011年(55)

分类: LINUX

2013-01-15 17:34:19

第一章 Linux shell介绍

1.3.0系统启动
   1. 第一进程init启动,初始化系统
   2. init启动另一进程打开终端处理标准输入,标准输出以及标准错误
   3. 终端要求输入用户名<---/bin/login
   4. 验证密码
   5. /bin/login把环境变量传给shell,建立工作环境并通过/etc/passwd提取User, Home,Shell


1.3.1解析命令
1.把命令通过空格,制表符,拆分成令牌(单个字),回车作为结束符
2.判断命令是否内建命令,是就执行
3.在PATH查找这个命令,是就执行
4.返回退出状态

1.3.2输入命令
1.检查它是不是一个别名
2.如果不是,检查是否是一个内建命令或函数
3.如果不是,检查是不是存在磁盘上的可执行程序

1.4.1进程
进程是处在执行状态下,可以用唯一PID标识的程序

1.4.2Shell执行过程


1.5.4工作目录

工作目录可以被子进程继承,但子进程只能改变自己的工作目录,子进程退出后不影响父进程工作目录。


1.5.5变量
环境变量:继承父进程
局部变量:私用在进程内部创建

1.5.6重定向和管道
定义: 文件说明符分配给一个非终端时,它就成为I/O重新定向
例1. grep 'Tom' file
     1.父进程fock子进程,grep子进程包含pid,env,stdin.stdout以及stderror
例2. grep 'Tom' file >tmp
     1.父进程fock子进程
     2.其中标准输出为tmp文件
例3. grep 'Tom'      1.父进程fock子进程

     2.其中标准输入为tmp文件


定义:管道为进程之间的通信服务,前一个命令的输出作为后一个命令的输入。
本质:管道只是kernel内的一块可以被两个进程共享的缓冲区。
作用:管道简化了建立临时文件的麻烦。
例如: who|wc
1. 父进程呼叫pipe系统调用,创建写入管道和读取管道
2. 父进程为who和wc派生出两个进程,都继承了父进程
3. 第一个子进程关闭stdout,利用dup系统调用写入管道,当子进程结束时,输出就会定向到写入管道中
4. 第二个子进程关闭stdin,利用dup系统调用读取管道,stdin就会定向到读取管道中
结果: 当who子进程完成输出就会定向到写入管道,等待wc子进程的读取管道读取内容。
阅读(2245) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~