回顾:
- 开源协定
- GPL(v1,v2,v3共三个版本),LGPL
- BSD:1,如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定;2,如果二次发布的产品是二进制格式的库或者程序,则需要在发布的文档或者版权声明中说明包含原来的代码中的BSD协定;3,不可以用原来代码的作者或组织,以及原来产品的名字做市场推广
- Apache
- 文件系统,文件,目录
- 文件系统是一个倒置的树状结构,在树状结构中,可以继续分叉的叫做目录,不能继续分叉的叫做文件。
- 对于系统来说,目录和文件没有区别,都是文件。目录是路径映射,文件是存储在磁盘上的一段流式数据。
- 文件名严格区分大小写
- 路径分隔符为/
- 路径分为绝对路径和相对路径
- 程序的组成部分
- 二进制程序文件
- 库文件
- 配置文件
- 帮助文档
- 前两者为二进制格式,后两者为文本格式
- 前两者为可执行文件,后两者为可被查看其内容的文件。二进制文件可以独立被执行,而库文件不可以独立被执行,只能被调用执行。
- 推荐一本书,穿越计算机的迷雾
- 人机交互界面
- GUI
- CLI,bash命令提示符的格式为:[LoginName@HostName WorkingDirectory]#/$
Linux基础知识
- 命令
- 语法通用格式:Command Options Arguments
- 按回车发起命令:请求内核将某个二进制程序文件运行为一个进程。从静态到动态,有了声明周期。
- 命令本身是一个可执行的程序文件:二进制可执行文件,有可能会调用共享库文件
- 大多数系统自带的程序文件都放置在:/bin,/sbin (sbin表示只有管理员才能执行的二进制文件),/usr/bin,/usr/sbin。非系统自带的有可能会在/usr/local/bin,/usr/local/sbin
- 普通命令放置在:/bin,/usr/bin,/usr/local/bin
- 管理命令放置在:/sbin,/usr/sbin,/usr/local/sbin
- ls命令显示的结果中,绿色表示可执行文件,青色表示链接文件
- 大多数共享库文件都放置在:/lib(32位系统)/lib64(64位系统),/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
- 32位库放置在:/lib,/usr/lib,/usr/local/lib
- 64位库放置在:/lib64,/usr/lib64,/usr/local/lib64
- 64位系统为了兼容,可能会出现32位的库,但是32位的系统上不会出现64位的库
- 命令必须遵循特定的格式规范:比如windows中的exe格式,msi格式;Linux中的ELF格式
- 命令:file /bin/ls表示查看bin目录下的ls命令文件信息
- 命令分为两类
1,由shell程序自带的命令:内置命令/builtin
2,独立的可执行程序文件,在上面提到的目录中,文件名即命令名:外部命令
3,并非所有的命令都有一个在某目录与之对应的可执行程序文件,比如cd
15,shell程序是独特的程序,负责解析用户提供的命令
1,环境变量:PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件,查找的次序为自左而右;echo $PATH
2,如果PATH被清空了,就只能通过绝对路径来运行外部命令了
16,查看命令类型
1, type Command,比如type ls,type type
17,Options:指定命令的运行特性
1,选项有两种表现形式
1,短选项:- 加一个字符,例如-l,-d。注:某些命令的选项没有-。如果某个命令同时使用了多个短选项,多数可以合并,例如-l -d = -ld
2,长选项:--叫一个或多个单词,例如--help,--human-readable。长选项多数不能合并。
3,有些选项可以带参数,被称为选项参数
18,Arguments:命令的作用对象,即命令对什么生效,例如ls /var。某些命令可以带多个参数,以空格分隔。
19,获取命令的使用帮助
1,内部命令:help command
2,外部命令(使用type命令查看是内部命令还是外部命令)
(1)第一种方式,每个命令都自带简要格式的使用帮助:command --help
(2)第二种方式,使用手册。手册放在/usr/share/man/。使用方式:man command。man的显示结果分为以下几个section:
a,name
b,Synopsis:[]中的内容为可选内容,<>中的内容为必须内容,{}用来分组避免混淆,a|b|c为多选一,...表示同类内容可以出现多个
c,description
d,options
e,examples
f,author
g,bugs:报告bug的方式
h,see also
(3)使用手册:压缩格式的文件,有章节之分:/usr/share/man下的man1,man2,...
a,第一章节为用户命令
b,第二章节为系统调用:程序员用的
c,第三章节为C库调用
d,第四章节为设备文件及特殊文件
e,第五章节为文件格式说明:配置文件格式的说明
f,第六章节为系统自带的游戏使用帮助
g,第七章节为杂项
h,第八章节为管理工具及守护进程
i,在man命令的显示结果的左上角,会显示当前的章节
j,如果一个命令在多个章节里都有内容,可以在man命令里指定要查看哪个章节,比如:man 5 passwd。
k,可以使用whatis command查看一个命令在哪些章节下面有帮助文档。whatis的执行结果是查看数据库得到的,由于数据库内容不一定是最新的(比如新安装了一些文件),
所以我们要手动更新数据库:makewhatis
(4)man命令打开手册以后的操作方法
a,翻屏:空格键为向尾部翻屏;b键为向首部翻屏;ctrl+d为向尾部翻半屏;ctrl+u为向首部翻半屏;回车键为向尾部翻一行;k键为向首部翻一行;G为跳转至最后一行;#G为跳转至指定行(#为数字);
b,文本搜索:/keyword(从文件首部向尾部依次查找)或者?keyword(从文件尾部向首部依次查找),keyword为要查找的内容,不区分大小写;n为查看下一个找到的内容(与查找命令方向相同),
N为查看上一个找到的内容;
c,退出:q
(5)选项:-M,加上路径,指明到指定目录下查找命令手册并打开
练习:获取useradd命令的用法。1,添加用户gentoo;2,添加用户slackware,指明其用到的shell为/bin/tcsh
答案:1,添加:useradd gentoo;2,验证:id gentoo;3,添加:useradd -s /bin/tcsh slackware;4,验证:id slackware;只要可以id成功,说明添加完成了。5,验证:tail -1 /etc/passwd
(6)第三种方式,info command,获取命令的在线文档。命令的补充性文档,并不是每个命令都有,不常用。
(7)第四种方式,很多应用程序自带帮助文档,位置在/usr/share/doc/App-Version。App-Version表示软件或命令名称加版本号。在目录下有三个重要文件:
a,readme:程序的相关的信息
b,install:安装帮助
c,changes:版本迭代时的改动信息
(8)第五种方式,主流发行版官方文档
a,http://www.redhat.com/doc
(9)程序官方的文档
a,官方站点上的“Document”
(10)搜索引擎:google:keyword filetype:pdf,centos site:magedu.com(注:site后面加domain.tld,tld代表top level domain)
3,推荐的书籍出版社:O'Reiley,Wrox,机械工业出版社,电子工业出版社,人民邮电出版社,清华大学出版社,水利水电出版社