“为什么说Unix/Linux是自由的:
因为我们可以自己组装一个操作系统:Unix/Linux内核+其他实用工具+编程工具+GUI
因为我们可以自由地获取开源工作者们分享的各种自由软件
因为我们可以自由地修改、再发行自由软件,促进软件的完善
因为我们可以自由管理自己的电脑:通过群组与用户来管理电脑的使用者;通过文件系统、属性、权限来限制使用;通过查阅、编辑各种配置文件对电脑的各个部位了如指掌、指挥自如;通过shell script高效地管理主机;基于多用户多任务的模式提供高效的访问与系统使用。。。。。。”
1:Unix的含义
Unix = 类Unix内核 + 类Unix实用工具 组成的一种操作系统。
(我们称 类Unix ,是因为现在广泛使用的都不是原来的真正Unix,而是与原Unix兼容、开源的。原来的真正的Unix由于其公司的商业化策略,不开源。)
2:Linux的含义
Linux第一层含义:Linux内核。由Linus Torvalds开发并发起的项目,直到如今也只是一个内核。
Linux第二层含义:基于Linux内核组装起来的操作系统,我们称之为Linux发行版。一个Linux发行版至少由Linux内核、实用工具和编程工具(由GNU提供)、GUI组成。
3:FSF自由软件基金会
Stallman发起的开源软件组织,他编写并开源了大量自由软件。
为了让开源软件能够正常运行,他需要编写一个与Unix兼容的操作系统(因为Unix为AT&T公司所有,AT&T禁止公司以外的人阅读源码),他将这个新的操作系统命名为GNU。并且之后发表了GNU宣言,开启了“开放源代码运动”。GNU也成为了FSF组织成员以及很多开发者投身参与的项目,并且由此诞生了gcc、g++、gdb、Bash等一系列优秀的实用工具。
为了保障开源软件工作者的权利,Stallman发表了“通用公共许可证”(GPL协议),允许所有人基于GPL软件进行查看、修改、再发行,但不允许对GPL软件添加限制。
4:Unix的分支与Linux的诞生
伯克利分校对Unix进行改编移植,产生了BSD。
但由于AT&T公司对Unix的商业化策略,所有使用Unix的人都要向其购买许可证。这令BSD程序员被限制而感到抱怨,从而促使他们决心开发出一款与Unix完全独立的BSD版本。
之后一年半时间,BSD程序员把Unix的相关组件进行了改写替换,然而,Unix系统内核部分仍然未能找到替换方案。
4.1)此时(1991),Linus Torvalds站了出来,他编写了Linux内核。其他程序员根据GNU项目提供的众多实用工具,组装得到各种Linux发行版,Linux由此诞生。
4.2)1992年,BSD程序员终于开发出与Unix安全无关的操作系统——386BSD。此后,衍生出3个发行版:FreeBSD、NetBSD、OpenBSD。
自此,我们一般使用到的类Unix系统有:
BSD的发行版:FreeBSD、NetBSD、OpenBSD
Linux的发行版:Ubuntu、Red Hat、CentOS等等
5:Unix连接——终端与主机架构模型
终端:接收输入、生成输出,包括显示器、键盘、鼠标、音响、麦克风等。
主机:包含内存、CPU、硬盘等的综合设备。
小型终端与主机:我们日常使用时,屏幕+键盘等就相当于终端,而电脑的CPU等内置部件组成主机,终端与主机之间通过接线相连。
大型终端与主机:理论上,终端可以通过缆线、通过LAN、通过Wifi、通过Internet与主机相连,此时就可以有多台计算机连接到某一台起主机作用的计算机。通常,我们把该台主机成为“服务器”。
Unix多用户多任务的基础——多终端与主机连接模型:
每个用户有自己的终端(负责输入、输出);
每个终端与主机进行连接。
(控制台是系统管理员专门用来管理主机的一个特殊终端。在个人计算机上,默认使用的终端就是控制台。而对于Web服务器、路由器等无显示设备的主机,则通过其他终端远程连接,然后以管理员身份登陆主机,进行系统管理)
终端的种类:
字符终端:就是我们常用的命令行窗口。图形终端:带有图形界面的终端(不推荐)。
6:Unix使用
系统管理员:Unix系统需要专门的人员进行管理与维护。
普通用户:如果我们只是使用一台共享的Unix主机,那么我们需要使用系统管理员提供给我们的 用户标识 和 口令 登录系统即可。
提示符:Bash、Korn Shell提示符是 $ ,C-Shell提示符是 % ,超级用户提示符是 #
注销用户:logout、exit、Ctrl+D组合键
修改口令:passwd
7:GUI
Unix GUI都基于X Window,目前开源的Unix系统常用的两种桌面环境为:KDE和Gnome,商业的用CDE。
(大型企业选择商业软件的原因:方便后面维护,减少维护成本以及缩短出错的修复时间)
【附:桌面环境与实际操作系统是独立的!我们可以选择为自己的操作系统灵活搭配桌面环境!】
8:使用自由软件为计算机搭配一套的操作系统
计算机系统:Linux的发行版,推荐Ubuntu
桌面环境:Gnome或者KDE
浏览器:FireFox
办公软件:Open Office
文本编辑器:Vim
9:GUI与CLI
GUI:图形用户界面
CLI:命令后界面
10:Linux运行级别
【大多数情况下,默认引导至3或5】
【级别1通常用于系统维护,只有管理员能够登录】
改变运行级别:
sudo init n :n为运行级别
11:Terminal与Konsole
Terminal:Unix的传统命令行窗口
Konsole:一种多功能的仿真终端窗口,即使系统没有自带,我们也可以安装使用
12:su与su -
su:不改变工作环境
su - :改变工作环境
13:管道线 |
如果一个指令会输出很长、很多页的结果,或者结果打印太快根本来不及看,这个时候可以使用管道线,把指令结果输出到一个可以查看文本的指令(对应一个可执行程序),这样就相当于使用了查看指令来阅读前一条指令的结果了,可以进行翻页阅读。有长结果输出到指令 | 阅读指令eg:dmesg | less //查看系统启动信息
14:快捷键的由来——先有键盘组合键,后有操作系统快捷键
早起,Unix系统使用Teletype ASR33 键盘作为终端,该台设备主要用于接收和发送信息,并且其硬件设计中,Ctrl+C等组合键有特定的功能。
因此,为了适应所使用的硬件,Unix的两位作者就将这些功能集成到了操作系统中——将组合键事件 映射 为某种信号。
在标准的Unix键盘中,修饰键有Shift和Crtl,没有Alt,因此我们看不到带Alt的组合键。
Shift用于输入大写、输入按键顶部的符号。
Ctrl+字母:用于输入特殊信号,如:中断、撤销、剪切、粘贴、注销、擦除等等。
15:Unix文化
终端窗口的名称:tty。早期Unix使用Teletype设备作为终端,因此其缩写tty就保留了下来。
打印显示指令:print。因为早期的终端输出是依靠纸带来穿孔打印的,因此使用print来表示,现在虽然是在屏幕显示了,但仍然使用print。
同样,其他含打印显示意思的指令,都会含有p缩写,例如:pwd = “print working directory”
16:仿真终端的类型
Unix下的终端类型:常见VT100(文字)、xterm(图形),还有VT220和3270。
Linux下终端类型:linux
查看当前系统的终端类型:
echo $TERM
17:Unix的程序设计准则