第四章 shell交互功能和变量 一. 简介 shell是UNIX系统中最重要的程序之一, 它具有两大功能:

Slides:



Advertisements
Similar presentations
A A A.
Advertisements

专题复习 --- 走进名著 亲近经典 读完《鲁滨孙漂流记》这本精彩的小说 后,一个高大的形象时时浮现在我的眼 前,他就是勇敢的探险家、航海家鲁滨 孙。他凭着顽强的毅力,永不放弃的精 神,实现了自己航海的梦想。 我仿佛看到轮船甲板上站着这样的一 个人:他放弃了富裕而又舒适的生活, 厌恶那庸庸碌碌的人生,从而开始了一.
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
國中教育會考說明 年 5 月 14 日(六) 105 年 5 月 15 日(日)  08:20- 08:30 考試說明  08:20- 08:30 考試說明  08:30-  09:40 社 會  08:30-  09:40 自 然 09:40- 10:20 休息 09:40-
第一节 人口的数量变化.
德 国 鼓 励 生 育 的 宣 传 画.
Teacher :唐加步.
控制方长投下的子公司,需要编制合并报表的演示思路
成才之路 · 语文 人教版 • 中国古代诗歌散文欣赏 路漫漫其修远兮 吾将上下而求索.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
上課教材 Database Slide Windows筆電 (32 bit)
8 企业信息管理的定量分析 第八讲 企业信息管理的定量分析 8.1 企业信息化水平的测评 8.2 企业信息管理绩效的测评.
义务教育课程标准实验教科书(人教版)语文七年级下册
前进中的山东省昌乐二中.
P2P金融信用调查服务 2015年4月 诚信为先 中道厚德.
成才之路 · 语文 人教版 • 中国古代诗歌散文欣赏 路漫漫其修远兮 吾将上下而求索.
小微企业融资担保产品介绍 再担保业务二部 贾天
臺北市國民小學101學年度第2學期 辦理祝妳好孕-課後照顧服務說明
UNIX的程序與工作控制 程序的定義與特性 程序的建立 相關指令 背景執行 調整程序優先權 signal與kill 工作控制
必修Ⅰ 地球上的水 第三章.
黄牛课件 中国首家新课标免费资源网(不必注册,免费下载) 请记住我们的网址:
物理精讲精练课件 人教版物理 八年级(下).
老師 : 製作 租稅申報實務.
Oh My God! 有四個信天主教的家庭婦女在一起聊天……
香港明愛 綜合家居照顧服務 PWD個案分享.
八年级下册 吆喝.
时政发布 制作:宋虹雷.
4.4流体微团运动分析 借助于流体微团的概念来分析流体运动的组成 流体运动不同于刚体的一个显著区别:
电在我们日常生活、现代化社会中的应用: 电 是 什 么?.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
成才之路 · 语文 人教版 • 中国古代诗歌散文欣赏 路漫漫其修远兮 吾将上下而求索.
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
第三讲 shell 程序设计.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
台灣大學計算機及資訊網路中心 教學研究組 張傑生
第五章 shell 编程 shell 编程的基本过程分为三步: 1. 建立 shell 文件 包含任意多行操作系统命令或shell命令的文本
第二天 计算机基础技能培训 (一)linux基础知识
如何寫工程計畫書 臺北市童軍會考驗委員會 高級考驗營 版.
SVN服务器的搭建(Windows) 柳峰
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
DM81X 视频采集处理 ——简单采集显示例程讲解 广州创龙电子科技有限公司
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
必修二 单元复习.
第四章 附件 (应用程序软件包).
Windows 7 的系统设置.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
第六章 shell 程序调试 一. 程序执行状态跟踪 程序: -n 读取命令, 但不执行. 主要用于跟踪程序流程是
第二章 登录UNIX操作系统.
C语言程序设计 主讲教师:陆幼利.
如何有效率的學習Linux 培養組合能力 多用程式, 少寫程式 從錯誤訊息中學習 養成略讀 “各種文件” 加強英文基本閱讀能力 勤作筆記
第二章 流编辑器sed 一. 什么是流编辑器? 流编辑器是一种流水线型的、非交互式
第六章 Shell基础.
UNIX指令-檔案與目錄操作.
基于UNIX操作系统的 编程技术 电子科技大学计算机学院 刘玓 联系方式:
分裂对象模型 C++ otcl.
UNIX Shell.
第九节 赋值运算符和赋值表达式.
实验一:编译运行Linux内核并使用gdb进行调试
3.16 枚举算法及其程序实现 ——数组的作用.
临界区问题的硬件指令解决方案 (Synchronization Hardware)
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
鏈球的力學分析 日本奧運鏈球冠軍(82米91) 室伏廣治因小腿肌肉受傷,退出杜哈亞運。 俄羅斯「鐵娘子」泰亞娜.李森科 九十五年八月八日在
第四章 UNIX文件系统.
顺序结构程序设计 ——关于“字符串”和数值.
高雄市104學年度國民中學 童軍教育聯團露營 活動組簡報
Primary introduction to docker
Presentation transcript:

第四章 shell交互功能和变量 一. 简介 shell是UNIX系统中最重要的程序之一, 它具有两大功能: • 命令解释器 解释执行所有的用户命令 • 程序设计语言 具有高级语言的所有功能 Bourne shell, 简称B_shell, 程序为/bin/sh, 是系统中 最基本的shell, 所有其它类型的shell(csh, ksh, vsh, rsh等)都是在sh的基础上扩充发展而来的. sh能向 上兼容其它类型的shell. 本课程基于B_shell来讲述.

二. Shell的启动和建立 boot 1号进程init 装入UNIX 执行/etc/inittab 硬件检测 初始化各端口 安装rootfs getty ….. getty 建立0号进程 用户注册 产生新进程 子 N Y 正确吗 建立shell进程 父 swap对换进程 B A

三. 命令行形式 1. 单条命令: $ cat file1 最常用命令形式 2. 多条命令: $ pwd; who; date 提高键盘命令输入效率 3. 复合命令: $ ps –e | grep student2 $ (ls ; cat file3 ; pwd) > run_log 方便灵活, 运行效率高 4. 后台命令: $ ls –lR > file_list & 多进程并发, 充分利用系统资源

四. Shell 环境 每一个shell都有一个用户可设置修改的独立的 运行环境, 使这个shell按照特定的方式来运行。 环境变量放在/etc/profile中, 用户环境变量放在用 户主目录下的.profile文件中, 用户shell启动时, 先 执行/etc/profile, 再执行用户的.profile。 环境变量可在shell运行时动态修改。

常用的shell环境参数(变量)及实例: HOME=/usr/computer/student6 用户主目录, 注册时的初始目录 PATH=/bin:/usr/bin:$HOME/bin:./ 键盘命令的搜索路径 SHELL=/bin/sh 当前运行的shell名称 TERM=vt100 当前所用的终端类型 PS1=$ shell的主提示符 IFS= 域分隔符, 通常为空白符, 用来分隔命令行各个域

五. shell变量 环境变量 常用的shell环境变量及实例: HOME=/usr/computer/student6 用户主目录, 注册时的初始目录 PATH=/bin:/usr/bin:$HOME/bin:./ 键盘命令的搜索路径 SHELL=/bin/sh 当前运行的shell名称 TERM=vt100 当前所用的终端类型 PS1=$ shell的主提示符 IFS= 域分隔符, 通常为空白符, 用来分隔命令行各个域

echo 命令的使用 echo命令的基本功能就是在标准输出上显示 后面的字符串,或变量的值。当字符串中带空白符 或其它控制字符时,用引号将其括起来。例如: $ echo 12345 12345 $ echo “department computer” department computer $ echo “My home directory is: $HOME” My home directory is: /usr/teacher/david $ echo “Input your choice (y/n) [ ]\b\b\c” Input your choice (y/n) [ _ ]

2. 系统变量 常用系统变量: $0 当前shell程序的名字 $1 ~ $9 命令行上的第一到第九个参数 $# 命令行上的参数个数 $1 ~ $9 命令行上的第一到第九个参数 $# 命令行上的参数个数 $* 命令行上的所有参数 $@ 分别用双引号引用命令行上的所有参数 $$ 当前进程的进程标识号(PID) $? 上一条命令的退出状态 $! 最后一个后台进程的进程标识号 系统变量只能引用不能修改! ( 参见pp199~200 )

例如: $ echo aa bb cc dd $$ aa bb cc dd 2391 $ cat file1 file2 > file3 2> errlog $ echo $? 1 (非0表示命令运行失败, 错误信息在 errlog 文件中) $ echo (空行, 即echo输出串尾隐含的换行符) $ echo This is a test. (单词间多个空格) This is a test. $ echo “This is a test.” (用引号包括时结果如何?)

3. 局部变量(用户变量) 局部变量是由用户根据需要任意创建的. 变量 名通常由一个字母后跟零个到多个字母、数字或 局部变量是由用户根据需要任意创建的. 变量 名通常由一个字母后跟零个到多个字母、数字或 下划线组成。引用变量的值时,在变量名前面加 上$符号. 例如: $ AA=123 $ echo $AA 123 (变量AA的值) $ B=“this is a string” (字符串中有空格时用引号) $ echo $B this is a string (变量B的值)

4. 单引号、双引号、反撇号和花括号 $ a=“he is a student” $ echo “She said: $a” She said: he is a student $ b=‘The value of a is $a’ $ echo $b The value of a is $a shell规定单引号禁止变量替换, 元字符$和*等保 持其符号本身; 而双引号允许元字符变量替换. $ c=“The value of a is $a” $ echo $c The value of a is he is a student

$ a=date $ echo $a date (变量a的值是字符串date) $ b=`date` $ echo $b Sat Feb 1 16:28:19 Beijing 2003 (变量b的值是反撇号中命令的执行结果) $ c=‘There is a teach’ $ echo “$cer reading room” reading room (无变量cer, 用空串替代) $ echo “${c}er reading room” There is a teacher reading room (花括号将变量名和后面的字符串区分开)

5. 变量输出命令 export shell变量定义后或修改值后, 如果未经export 个子shell、以及子shell的子shell起作用。例如: $ PATH=$PATH:./ ; export PATH 说明: 1. export后面的变量名前不加$符号 2. 经export输出给子shell的变量如果在子shell中被修改, 则只影响子shell, 不影响父shell; 如果 在子shell中被输出,则只影响子shell的子shell 3. export命令常用在.profile文件中

六. Shell的内部命令 : 空命令, 不作任何事情, 退出状态为真(0) cd 改变当前工作目录 pwd 显示当前工作目录 : 空命令, 不作任何事情, 退出状态为真(0) cd 改变当前工作目录 pwd 显示当前工作目录 read 读标准输入, 赋给后面的变量 time 显示当前shell运行命令所花费的时间 说明: shell 的内部命令包含在shell命令内部, 不是一 条单独的操作系统命令, 因此无法在文件系统中查 找到.