第1页:第8章能够立即使用的程序
本页为第8章能够立即使用的程序的章节封面,标示本章讲解的日期日历、系统信息查询与bc、dc计算器。
第2页:本章需要解决的几个问题
- 3种停止程序的方式?
- 哪个程序可以用来显示时间?日期?
- cal程序和calendar程序之间有什么区别?
- 如何显示正在使用的计算机的名称?操作系统的名称?用户标识?
第3页:8.1在系统中查找程序
- 查找某个程序是否可用:which-使用方式例子:$ which date$ which date less vi emacs第一个命令的输出:/bin/date
第4页:在系统中查找程序:查找某个程序是否可用
- 查找某个程序是否可用:which-which找不到提示什么信息?跟shell的版本有关,大致有两种提示(1)没有任何输出(2)提示一个错误信息$ which harley/usr/bin/which: no harley in(/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/harley/bin
第5页:在系统中查找程序:查找某个程序是否可用
- 查找某个程序是否可用
- which-which的查找范围是什么?全局变量PATH指定的路径
第6页:在系统中查找程序:which的备用命令
- which的备用命令:type、whence-Bash中提供了which的备用命令type$ type date-Korn shell中提供了which的备用命令whence$ whence date
第7页:8.2如何停止程序
- 停止程序的3种方式-1.使用程序提供的退出命令,如quit、q-2.发送eof信号(按^D键)-3.发送intr信号(按^C/<Delete>键)
第8页:8.3显示时间和日期
- date命令
- 命令格式:date-输出内容:日期和时间
- 显示UTC时间:date-u特别注意:time命令并不显示时间,它用于测量程序的运行时间
第9页:8.3显示时间和日期:GMT
- GMT、UTC和本地时间-GMT (Greenwich Mean Time)格林威治标准时间:本初子午线(即经度0度)上的平均太阳时-UTC(Coordinated Universal Time)协调世界时间:GMT的现代名称-本地时间:主机所在时区的时间。整个地球分为二十四时区,每个时区都有自己的本地时间。
第10页:
第11页:8.3显示时间和日期:date命令
本页为课件图示页,源文件仅保留小节标题“8.3显示时间和日期”,配合图形讲解date命令、命令格式、显示UTC时间等内容,建议对照原图补充细节。
第12页:8.3显示时间和日期:命令格式
本页为课件图示页,源文件仅保留小节标题“8.3显示时间和日期”,配合图形讲解date命令、命令格式、显示UTC时间等内容,建议对照原图补充细节。
第13页:8.4显示日历
- cal命令-显示当月的日历:cal-显示指定月份的日历:calmonth-显示指定年份的日历:calyear-显示指定年份和月份的日历:calmonth year-日历中显示的不是月份的日期序号,而是年份的日期序号:cal-j[month] [year]
第14页:8.4显示日历示意图
本页为课件示意图,配合图形说明8.4显示日历小节的结构与流程。
第15页:8.5 Unix提醒服务
- calendar命令-功能:从名为calendar的文本文件中读取未来三天的提醒信息-calendar文件的格式:October 21<Tab>Tom’s birthdayOctober 22<Tab>Unix&Linux-在启动系统时进行提醒:(1)将calendar命令放在.profile文件中(Bash或Kornshell)(2)将calendar命令放在.login文件中(C-Shell)
第16页:8.6查看系统信息
- uptime命令
- 例子:$ uptime11:00AM up 103 days, 6:13, 3 users,load averages: 1.90, 1.49, 1.38截止到上午11点,共运行了103天6小时13分
- 功能:显示系统连续运行的有关信息
第17页:8.6查看系统信息:uptime命令
- uptime命令
- 例子:$ uptime11:00AM up 103 days, 6:13, 3 users,load averages: 1.90, 1.49, 1.38当前有3个用户标识登录
- 功能:显示系统连续运行的有关信息
第18页:8.6查看系统信息:uptime命令
- uptime命令
- 例子:$ uptime11:00AM up 103 days, 6:13, 3 users,load averages: 1.90, 1.49, 1.38之前1分钟、5分钟、15分钟等待执行的进程数量
- 功能:显示系统连续运行的有关信息
第19页:8.6查看系统信息:hostname命令
- hostname命令
- 功能:查看计算机的名称
- 例子:$ hostnameMyComputer
第20页:8.6查看系统信息:uname命令
- uname命令
- 例子:$ unameLinux$ uname-aLinux nipper.harley.com 2.6.24-3.358 #1Mon Nov 9 09:04:50 EDT 2008 i686 i686 i338GNU/Linux
- 功能:查看操作系统的名称
第21页:8.7显示自己的信息
- whoami命令
- 功能:显示当前的用户标识
- 说明:如果系统上没有whoami,尝试输入who am i
第22页:8.7显示自己的信息:quota命令
- quota命令
- 功能:在共享系统中,查看自己可以的磁盘空间
- 说明:Unix以KB计算磁盘空间
第23页:8.8显示其他用户的信息
- users命令
- 功能:在共享系统中,查看当前登录的所有用户标识
- 例子:$ usersalex casey harley root tammy
第24页:显示其他用户的信息:users命令-功能
- users命令-功能:在共享系统中,查看当前登录的所有用户标识-例子:$ usersalex casey harley root tammy-说明:如果在自己的计算机上的每个控制台分别登录一次,那么使用users命令时,你的userid将不止显示一次。
第25页:8.8显示其他用户的信息:who命令
- who命令
- 例子:$ whotammy tty1Nov 10 21:25root tty2Nov 11 15:12casey pts/0Nov 11 10:07 (luna)root pts/1Nov 11 10:52 (nipper.harley.com)tammy pts/2Nov 11 14:39 (thing.tayloared.com)
- 功能:在共享系统中,查看当前登录的所有用户标识,比users显示的内容更多
第26页:8.8显示其他用户的信息:w命令
- w命令
- 例子:$ w8:44pm up 9 days, 7:02, 3 users, load averages: 0.11,0.02, 0.00USER TTYFROM LOGIN@ JCPU PCUP WHATtammy console-Wed9am 2:38 0.00s-bashharley pts/1-12:21 0.01s walexttyp0 luna 13:11 43:26s 1.52s vi
- 功能:在共享系统中,查看当前登录的所有用户标识,比who显示的内容更多
第27页:8.9终端临时上锁
- lock命令
- 例子:$ lockKey:(输入解锁口令)Again:(再次输入解锁口令)-说明:1. lock有时间限制,默认冻结15分钟,也可以通过参数指定:lock-minute2.在解锁时,总是可以接受root口令
- 功能:临时锁住终端
第28页:8.10请求Unix提醒何时离开
- leave命令
- 例子:$ leaveWhen do you have to leave:15:33$ leave 15:33$ leave +15
- 功能:提醒自己时间到了
第29页:请求Unix提醒何时离开
- leave命令-说明:一旦成功执行leave命令,Unix会定期检查还剩多长时间,在指定时间前5分钟显示:You have to leave in 5 minutes.还剩下1分钟时显示:Just one more minute.到达指定时间时显示:Time to leave.
第30页:请求Unix提醒何时离开
- leave命令-说明:从这时起,每隔1分钟提醒一次:You’re going to be late.最后,提醒10次之后显示:You’re going to be late.That was the last time I’ll tell you. Bye.
第31页:8.11内置计算器:bc
- bc的特征
- 基于文本,支持键盘输入和文本文件存储的数据
- 完全可编程,语法与C语言类似
- 提供扩展精度,小数点右边可以达到100位
- 支持2到16的各种进制的数据
- 预定义了sin、cos、arctan、ln、指数函数、贝塞尔函数等数学函数
第32页:8.12使用bc进行计算
- 开始计算
- 输入bc或bc-l(使用内置函数库)-启动bc后,没有任何提示
- 输入数学表达式
第33页:8.12使用bc进行计算:开始计算
- 开始计算
- 输入bc或bc-l(使用内置函数库)-启动bc后,没有任何提示
- 输入数学表达式,按<Enter>键,给出计算结果例子:$ bc1+2+3 <Enter>610+10; 20+20 <Enter>2040
第34页:8.12使用bc进行计算:bc的基本运算
第35页:8.12使用bc进行计算:bc常用函数
第36页:使用bc进行计算:设置精度因子
- 设置精度因子-scale =factor如:scale=3-输入scale可以查看精度因子-输入bc,自动将精度因子设为0-输入bc-l,自动将精度因子设为3
第37页:8.13在bc中使用变量
- 变量的定义-命名
- 小写字母,也就是a-z中的一个如: x=100
- 变量的值的获取输入
- x=100x=x*2x输出:200
第38页:8.14在bc中使用不同的进制
- 进制的设定-输入进制的设定
- ibase如: ibase=16-输出进制的设定: obase如: obase=8
第39页:在bc中使用不同的进制
- 进制的取值-取值范围:2-16-特别注意:对于大于9,小于16的进制,使用大写字母A-F表示,代表10-15如:obase=A
第40页:8.14在bc中使用不同的进制
- 例子1
- 16进制数相加输入:obase=16ibase=16F03E+3BAC <Enter>输出:12BEA
第41页:8.14在bc中使用不同的进制:2
- 例子2:16进制数转换为2进制输入:obase=2ibase=16FFC1 <Enter>输出:111111111000001
第42页:8.15逆波兰表示法
- 数学表达式的三种表示法
- 数学表达式表示法中缀表示法前缀表示法后缀表示法
第43页:逆波兰表示法:中缀表示法-操作符位
- 中缀表示法-操作符位于操作数的中间如
- (34 + 25) * 15
第44页:逆波兰表示法:前缀表示法-操作符位
- 前缀表示法-操作符位于操作数的前面如前面的表达式:(34 + 25) * 15可以表示为:+ * 34 25 15-1920年,由波兰数学家Jan Lukasiewicz发明,所以又称为“波兰表示法”
第45页:逆波兰表示法:后缀表示法-操作符位
- 后缀表示法-操作符位于操作数的后面如中缀表达式:(34 + 25) * 15可以表示为:34 25 + 15 *-1957年,由奥地利科学家Carles Hamblin首先提出,是“波兰表示法”的一种变体,被称为“波兰表示法”或RPN。
第46页:8.16基于栈的计算器:dc
- dc是Unix中早期的计算器-1970年,Bell实验室的Robert Morris开发的基于RPN的计算器程序-dc是bc的前身,由Morris和Lorinda Cherry在dc基础上开发了bc。-bc基于GNU进行了重写。
第47页:基于栈的计算器:dc
- 基于栈的RPN计算34 25 + 15 *(1)读取34,压栈34
第48页:基于栈的计算器:dc
- 基于栈的RPN计算34 25 + 15 *(2)读取25,压栈3425
第49页:基于栈的计算器:dc
- 基于栈的RPN计算34 25 + 15 *(3)读取+,弹出25和343425
第50页:基于栈的计算器:dc
- 基于栈的RPN计算34 25 + 15 *(4)计算25+34,将结果59压栈59
第51页:基于栈的计算器:dc
- 基于栈的RPN计算34 25 + 15 *(5)读取15,压栈5915
第52页:基于栈的计算器:dc
- 基于栈的RPN计算34 25 + 15 *(6)读取*,弹出15和595915
第53页:基于栈的计算器:dc
- 基于栈的RPN计算34 25 + 15 *(7)计算15*59,将结果885压栈885