首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

《Unix & Linux 高等学校教程》 - 第七、八章 学习笔记

2012-09-27 
《Unix & Linux 大学教程》 - 第七、八章 学习笔记学习笔记,内容基础,适合初学者。?阅读之前,请务必花30秒查看

《Unix & Linux 大学教程》 - 第七、八章 学习笔记

学习笔记,内容基础,适合初学者。

?

阅读之前,请务必花30秒查看前言说明(在第一、二章前面部分)

《Unix & Linux 大学教程》 - 第一、二章 学习笔记???Unix简介 & 什么是Linux?什么是Unix

《Unix & Linux 大学教程》 - 第三、四章 学习笔记? ?Unix连接 & 开始使用Unix

《Unix & Linux 大学教程》 - 第五、六章 学习笔记? ?GUI:图形用户界面 & Unix工作环境

《Unix & Linux 大学教程》 - 第七、八章 学习笔记? ?Unix键盘使用 & 能够立即使用的程序

《Unix & Linux 大学教程》 - 第九、十章 学习笔记? ?文档资料:Unix手册与Info & 命令语法

《Unix & Linux 大学教程》 - 第十一、十二章 学习笔记? ?shell & 使用shell:变量和选项

《Unix & Linux 大学教程》 - 第十三章 学习笔记? ?使用shell:命令和定制

?

?

第七章:Unix 键盘使用

基础知识

信号:

intr(interrupt):ctrl+c,用来终止程序,少数终端将delete映射到intr上。此映射可修改。

可以停止一个僵死的程序,一些程序封闭了intr信号,防止不小心按下^C。

取消shell中输入并没有执行的命令

?

quit:^\,同intr,并生成一个磁心文件(core file),用于调试程序。如果没有调试过程序,但是一个名为core的文件出现在一个目录中,那么意味着运行的程序出现严重错误而终止(最常见的是段故障segmentation fault,当程序试图访问不是为该程序分配的内存时就会发生这种故障,例如:不正确的使用指针)。

(关于磁心文件的来历和使用在书中第128页。)

?

stop:^S,发送stop信号,Unix暂停屏幕显示。

start:^Q(qontinue即continue),发送start信号,重新启动屏幕显示。

?

eof(end of file):文件结束信号,^D。

封闭eof信号

Bash:设置环境变量IGNOREEOF,例如

按下^D后会显示Use "exit" to leave the shell.

Korn Shell:设置ignoreeof,命令、提示不同而已

C-Shell:设置ignoreeof,命令、提示不同而已

?

erase:删除最后一个键入的字符。backspace或delete,取决于键盘及其映射。

^H与^?

backspace与^H相同,用来发送BS码。delete与^?相同,用来发送DEL码,^?只是缩写,并不是真正的键组合。其意味着:whichever key on your keyboard that sends the code that used to be called DEL(您的键盘上某一个用来发送DEL码的键)。

后来Unix系统被配置成backspace等同于^?而不是^H。这种情况下,^?映射到erase而不是^H。

远程连接Unix主机时,按下backspace可能发生意想不到的情况。在自己机器上面可以删除最后的字符,可是远程机器上却没有,而是显示的^H。

这是因为本地机器将^H映射到了erase而远程机器将^?映射到了erase,可以通过修改映射来解决。

stty erase ^H

?

werase:删除最后一个键入的单词。通常是ctrl+w

kill:删除整行。ctrl+x或ctrl+u,取决键盘映射(我的ubuntu64bit10.10是ctrl+u)。


换行与返回

换行:^J,等同换行字符,新行字符;发送LF(linefeed,换行)码。

返回:^M,发送CR(carriage return,托架返回)码。

一般而言,每行文本必须以新行字符结束。

当按下return键时将发送一个返回字符,Unix自动将返回字符改变为新行字符。

在终端上显示数据时,每行必须以字符序列“返回+换行”结束。Unix自动将每行末尾的新行字符改变为返回字符+新行字符。

windows使用^M^J标记每行结束,所以在Unix和Windows之间复制文件,必须进行转换,程序应该知道如何转换,如果不能自动改变,则需要工具完成)

?

程序/命令

tty:显示自己终端的名称,我的结果:/dev/pts/0

stty(set tty):用来显示或改变终端设置,如果不加参数和选项,则只显示默认值已经改变的映射。stty -a:显示键映射,我机器部分结果为:

x=202*x40

也可以改变进制,内容见bc帮助文档,或书中第160页。

?

?

名次解释:

儒略历(Julian calendar):儒略历是格里历的前身,由罗马共和国独裁官儒略·恺撒采纳埃及亚历山大的希腊数学家兼天文学家索西琴尼计算的历法,在公元前46年1月1日起执行,取代旧罗马历法的一种历法。一年设12个月,大小月交替,四年一闰,平年365日,闰年于二月底增加一闰日,年平均长度为365.25日。由于累积误差随着时间越来越大,1582年后被教皇格里高利十三世改善,变为格里历,即沿用至今的公历。

格里历(Gregorian calendar):儒略历1年平均长365.25日,比实际公转周期的365.2422日长11分14秒,即每400年约长3日。这样到公元16世纪时已经积累了有10天误差。可以明显感觉到两至两分提前了。在此情况下,教皇格里高里十三世于1582年宣布改历。先是一步到位把儒略历1582年10月4日的下一天定为格里历10月15日,中间跳过10天。同时修改了儒略历置闰法则。除了保留儒略历年数被4除尽的是闰年外。增加了被100除得尽而被400除不尽的则不是闰年的规定。这样的做法可在400年中减少3个闰年。在格里高里历历法里,400年中有97个闰年(每年366日)及303个平年(每年365日),所以每年平均长365.2425日,与公转周期的365.2422日十分接近。可基本保证到公元5000年前误差不超过1天。

?

代数式的表示:

例:34加上25的和再乘以15

中缀表示法:(34+25)*15

前缀表示法(波兰表示法,Polish notation):* + 34 25 15,将运算符放在操作数之前,使表达式更加紧凑。

后缀表示法(postfix notation)(逆波兰表示法RPN):34 25 + 15 *,将运算符放在操作数之后,适合自动计算。

dc:基于栈的计算器,dc的使用参见164页-166页。

栈:一种后进先出(last in first out,LIFO)的数据结构。

?

?

至此,160页已经过去了,终于感觉有点像unix教程了。历史内容似乎有所减少,作者依旧喜爱冷笑话和冷故事,汗阿!

从目录上看,大概从第十章开始才会出现大量技术内容,希望到时作者不要再讲历史了。估计他平时都是双份工资,一份是历史老师的工资。

?

?

?

转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

http://blog.csdn.net/su1216/

热点排行