《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手册与Info
基础知识
命令/程序
Unix手册: 分为8节,分别为:
1命令、2系统调用、3库函数、4特殊文件、5文件格式、6有戏、7杂项、8系统管理
每一节又分很多小节。 比如在一些linux系统上,第三节有一下一些小节:
3c:标准C函数、3f:Fortran函数、3m:数学函数、3s:标准I/O函数、3x:特殊函数。

man (+命令):查看此命令文档。阅读文档时想执行命令,可以使用“!”,比如查看日期,那么可以输入“!date”,然后回车。
Java代码 复制代码  收藏代码
  1. -u, --utc, --universal   
  2.        print or set Coordinated Universal Time   
  3. --help display this help and exit   
  4. --version   
  5.        output version information and exit   
  6. FORMAT controls the output.  Interpreted sequences are:   
  7. %%     a literal %   
  8. -utc  
       -u, --utc, --universal
              print or set Coordinated Universal Time
       --help display this help and exit
       --version
              output version information and exit
       FORMAT controls the output.  Interpreted sequences are:
       %%     a literal %
!date --utc
执行结果如下
Java代码 复制代码  收藏代码
  1. $ man date   
  2. 2012年 08月 07日 星期二 02:25:20 UTC   
  3. !done  (press RETURN)  
$ man date
2012年 08月 07日 星期二 02:25:20 UTC
!done  (press RETURN)
之后按下return回返回到date的文档中。

Bang字符:即上面提到的叹号。

man中也可以指定节号,比如:
Java代码 复制代码  收藏代码
  1. man 2 kill 3f kill  
man 2 kill 3f kill
每节和其中小节都包含一个intro的页面,充当简介。
Java代码 复制代码  收藏代码
  1. man intro   
  2. man 1 intro   
  3. man 1c intro  
man intro
man 1 intro
man 1c intro

说明书页的引用方式:手册中经常出现命令后面跟着圆括号括起来的数字。比如:
man git 写道
See gittutorial(7) to get started, then see Everyday Git[1] for a useful minimum set of commands, and "man git-commandname" for documentation of each command. CVS
users may also want to read gitcvs-migration(7). See the Git User’s Manual[2] for a more in-depth introduction.
 See gittutorial(7)的意思是参看gittutorial的第七节说明。man 7 gittutorial即可。

说明书页的格式:
标题 含义
Name 命令的名称和用途(摘要)
Synopsis 命令语法(摘要)
Description 完整描述
Environment 命令使用的环境变量
Author 作者
Files 对该命令重要的文件列表
See also 查看相关的信息的位置
Diagnostics 可能的错误和警告
Bugs 错误、缺点、警告
Environment:根据上下文的不同,这些变量还有其他几个不同的名称:环境变量
全局变量或者shell变量。根据约定,环境变量和全局变量的名称完全由大写字母构成。 (这里书中说到“这些变量还有其他几个不同的名称”,我觉得正常应该理解为他们是同一种变量,只是叫法不一样了,但是后面又说“环境变量和全局变量的名称”,似乎说他们不是同一种类型的变量,并且只提到了两个名称没有提到第三个,作为初学者的我极其迷惑。。。希望后面章节中能解释清楚)
Diagnostics:包含两种信息:对可能的错误消息进行解释;命令结束时返回的错误代码。

man也可以只查看手册中的NAME,比如:
Java代码 复制代码  收藏代码
  1. $ whatis date time   
  2. date (1)             - print or set the system date and time   
  3. time (7)             - overview of time and timers   
  4. time (2)             - get time in seconds   
  5. time (1)             - run programs and summarize system resource usage  
$ whatis date time
date (1)             - print or set the system date and time
time (7)             - overview of time and timers
time (2)             - get time in seconds
time (1)             - run programs and summarize system resource usage
显示了date和time的NAME内容,括号为所在小节。
此命令等同于
Java代码 复制代码  收藏代码
  1. man -f date time  
man -f date time

搜索命令:apropos(s不发音)
如果知道自己要做什么,但是不知道命令,那么man也提供搜索功能,可以在MANE中搜索。
man -k(keyword) +关键字:搜索带有关键字的NAME
Bash代码 复制代码  收藏代码
  1. $ man -k copy   
  2. AuSoundCreateDataFromBucket (3nas) - copy the data from a bucket into local memory.   
  3. AuSoundCreateFileFromBucket (3nas) - copy the data from a bucket into a file.   
  4. bcopy (3)            - copy byte sequence   
  5. bf_copy (1)          - shell script to copy a bogofilter working directory   
  6. bf_copy-bdb (1)      - shell script to copy a bogofilter working directory   
  7. copysign (3)         - copy sign of a number   
  8. copysignf (3)        - copy sign of a number   
  9. copysignl (3)        - copy sign of a number   
  10. copywin (3ncurses)   - overlay and manipulate overlapped curses windows   
  11. cp (1)               - copy files and directories   
  12. ……  
等同
Bash代码 复制代码  收藏代码
  1. apropos copy  

xman:man的备选方案。(x暗含该程序基于GUI的X-Window编写),ctrl+s为搜索。(个人觉得很难用。。。)
whatis:等同于man -f
命令后的&:例如xman&,告诉shell将程序启动为后台运行。

大多数命令就是程序,但是也有一些最基本的命令由shell本身来执行,这些命令称为内置命令这些命令记录在shell的说明说中,手册中没有单独条目


3个分屏显示程序:
less、more(搜索默认不是正则模式)、pg
下面是他们通用的命令
通用命令
q 退出
h 显示帮助信息
阅读说明书页
space 显示下一屏
pagedown 显示下一屏
f(forward) 显示下一屏
pageup 显示上一屏
b(backward) 显示上一屏
搜索
/pattern 向下搜索特定的模式
?pattern 向上搜索特定的模式
/ 向下搜索上一个模式
n(next) 向下搜索上一个模式
? 向上搜索上一个模式
N(next) 向上搜索上一个模式
在说明书页中移动
return 向下移一行
down 向下移一行
up 向上移一行
g(go to top) 移到页的顶部

G(go to bottom)

移到页的底部


Info系统:独立于Unix手册,用来记录GNU实用工具,许多Linux说明书页指向Info。Info文件需要用Info程序打开。
Info不仅包含信息,还包含连接到其他文件的链接。
查看Info有很多命令可以用,比联机手册多的多。
Info是Textinfo的一部分,有时也称Info为Textinfo

书中介绍了一些树的知识,由于我是数学专业的,所以这部分就略过了
有兴趣的同学最好看看图论,而不是拿本离散数学。

Info的数据结构为树。需要掌握:
1.使用info启动Info
2.为了阅读整个文件,从一个节点跳到下一个节点
3.使用链接从一个文件跳到另一个文件
链接的格式:“*”开始,然后是主题名,后面跟着冒号“:”,然后是简短描述

info (+命令):查看此命令的信息。不加参数,则显示目录节点(Directory Node)
通用命令
q 退出
h 启动帮助向导
? 显示命令摘要列表
阅读节点
PageDown 显示下一屏
Space 显示下一屏
Space (在节点底部)跳转到下一个节点
PageUp 显示上一屏
Backspace 显示上一屏
Delete 显示上一屏
Backspace (在节点顶部)跳转到上一个节点
Delete (在节点顶部)跳转到上一个节点
在节点中移动
b 跳转到当前节点的开头
Up 将光标向上移动一行
Down 将光标向下移动一行
Right 将光标向右移动一个位置
Left 将光标向左移动一个位置
在同一个文件中从一个节点跳转到另一个节点
n 跳到同一个文件中的下一个节点
p 跳到同一个文件中的上一个节点
t 跳到顶节点(Top Node,文件中的第一个节点)
从一个文件跳到另一个文件
Tab 将光标移动到下一个链接上
M-Tab 将光标移动到上一个链接上
Retun 到达链接指向的新节点或者文件
l(字母L) 跳转到上一个(刚才浏览的)节点
d 跳转到目录节点(主菜单)
M-x表示法:M-代表Meta键,Meta键是Emacs中重要概念,通过如下两种方式使用
1.(同时按下)
2. (分别按下)


名次解释
RTFM(Read the fucking manual):动词,表示需要信息或解决问题时,在请求他人帮助之前,应该花一些时间尝试自己去寻找所需要的东西。委婉的解释:Read the fine manual。
foo、bar、foobar:表示讨论或讲解中没有命名的项。
foobar:取自FUBAR(fouled/fuck up beyond all recognition,搞的一团糟而无法识别)。


第十章:命令语法
基础知识:
一次输入多条命令:用分号隔开,结尾分号可省略

命令语法(command syntax):Unix命令语法可以表示为:键入命令的名称,后面是选项(option)(也称开关Switches或标志Flags),再后面是参数(arguments)
Bash代码 复制代码  收藏代码
  1. $  ls -l -F email\ Notes.txt    
  2. -rw-r--r-- 1 su1216 su1216 6432 2012-03-29 13:18 email Notes.txt   
  3. $ ls -lF email\ Notes.txt    
  4. -rw-r--r-- 1 su1216 su1216 6432 2012-03-29 13:18 email Notes.txt  
上面的例子中,l和F是ls的两个选项,选项区分大小写。他们可以分别写,也可以放到一起。(“-”读作dash)

短选项“-”和长选项“--”
短选项输入方便,长选项方便记忆,例如:ls -r与ls -reverse等价
两个长选项需要记住: --help和--version
如果写成-help,则解析为-h -e -l -p

空白符(whitespace)
在命令行中,空白符是指一个或多个连续的空格或者(对于一些shell来说)制表符。其他情形中, 空白符是指一个或多个连续的空格、制表符或者新行字符。
命令的每个部分之间必须至少有一个空格或者制表符,Unix命令的名称中没有空格。

命令的形式描述:语法
Unix中,命令语法遵循7条规则,其中前5条是最基本的规则。
1.方括号中的项是可选的
2.不在方括号中的项是必选项
3.黑体字必须按原样准确键入
4.斜体字必须用适当的值代替(不显示斜体字的系统上通常用下划线代替)
5.后面接省略号(…)的参数可以重复任意次
6.如果一个单独的选项和一个参数组合在一起,那么该选项和参数必须同时使用
7.右|(竖线)字符分开的两个或多个项,表示可以从这个列表中选择一个项

passwd (+用户标识):修改此用户标识的口令



前十章到此结束,希望作者不要再大量传授历史知识了,不然这真就变成了一本历史书了!


转贴请保留以下链接

本人blog地址

http://su1216.iteye.com/

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

你可能感兴趣的:(Unix,&,Linux,大学教程)