“为什么说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的程序设计准则

《Unix&Linux大学教程》学习笔记一:历史与常识的更多相关文章

  1. 《Unix&Linux大学教程》学习笔记6——Unix文件系统

    1:Unix文件类型——3种 普通文件(常规文件):文本文件(纯文本.脚本.源程序.配置文件.html等).二进制文件(多媒体文件.数据库等) 目录:用于组织文件 伪文件:不存储数据,目的是提供一种服 ...

  2. 《Unix&Linux大学教程》学习笔记5 :正则表达式

    1:Unix下正则表达式规则

  3. 《Unix&Linux大学教程》学习笔记四:标准I/O 与 过滤器

    1:标准IO Unix中的标准IO主要包括:标准输入.标准输出(正常输出).标准错误(异常信息) 2:重定向输出 内容 > 文件名 :将内容输出到文件,并且覆盖文件原来内容:文件不存在则新建 内 ...

  4. 《Unix&Linux大学教程》学习笔记三:Shell常识

    1:全局变量与局部变量 全局:可以从父进程传递给子进程的变量,如:环境变量. 局部:只能在特定的子Shell中使用的变量. 局部变量变全局:使用 “export 局部” 指令将创建的局部变量导出到环境 ...

  5. 《Unix&Linux大学教程》学习笔记七:进程与作业控制

    1:进程:一个内存中的程序+程序所需数据+管理程序的各种状态信息. 2:进程由内核进行管理,内核使用调度器,给予进程一个时间片来运行,然后切换到下一个进程. 3:进程分叉 fork :创建一个子进程 ...

  6. 《Unix&Linux大学教程》学习笔记二:指令常识

    1:指令的本质——调用可执行程序 在Shell输入命令时,其实就是根据名称运行相应的程序. 2:在系统中查找程序 which 指令名 type 指令名 3:时间与日历 date [-选项] 参数 ca ...

  7. unix&linux大学教程 目录

    第1章unix简介 第2章什么是linux?什么是unix 第3章unix连接 第4章开始使用unix 第5章gui:图形用户界面 第6章unix工作环境 第7章unix键盘使用 第8章能够立即使用的 ...

  8. 《嵌入式Linux基础教程学习笔记一》

    常用书目下载地址:http://www.cnblogs.com/pengdonglin137/p/3688029.html 第二章 1.进程上下文和中断上下文(Page20) 当应用程序执行系统调用, ...

  9. 尚硅谷韩顺平Linux教程学习笔记

    目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...

随机推荐

  1. NSObject的hash方法

    NSObject的hash方法 说明 本示例仅仅演示一个对象什么时候执行hash方法. 细节 1. 必要的Model类,重载了hash方法用以反映Hash方法是否被调用了 2. 测试 // // Vi ...

  2. 每天一个linux命令-用户之间切换

    怎么从root用户切换到普通用户 su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户.如果当前是root用户,那么切换成普通用户test用以下命令:su - ...

  3. ios成长之每日一遍(day 1)

    Hello world开始. 这里不讨论如何创建项目导入项目.由于趁上班时间打酱油所以也不谈细节, 只谈具体项目的实现与关键流程的解析, 只供本人实际程况使用.不喜请移驾. 首先来谈谈 AppDele ...

  4. LeakCanary,30分钟从入门到精通

    简述 在性能优化中,内存是一个不得不聊的话题:然而内存泄漏,显示已经成为内存优化的一个重量级的方向.当前流行的内存泄漏分析工具中,不得不提的就是LeakCanary框架:这是一个集成方便, 使用便捷, ...

  5. Android组件化之终极方案

    Android组件化项目地址:Android组件化项目AndroidModulePattern Fragment或View如何支持组件化 如何管理组件 Fragment或View如何支持组件化 距离 ...

  6. windows快速删除大量文件

    del /f/s/q dirname> nulrmdir /s/q dirname

  7. Material Designer的低版本兼容实现(十一)—— Switch

    5.0中的switch和之前完全不同了,漂亮不漂亮咱们另说,总之4.x上是没有这样的效果了.实现方式有两种,一种是用这个兼容包来做类似的效果,一种是用传统的checkbox来代替.我感觉兼容包的效果是 ...

  8. [Ubuntu] fg、bg让你的进程在前后台之间切换

    refer to  : http://man.linuxde.net/jobs Linux下的fg和bg命令是进程的前后台调度命令,即将指定号码(非进程号)的命令进程放到前台或后台运行.比如一个需要长 ...

  9. TFRecord文件的读写

    前言在跑通了官网的mnist和cifar10数据之后,笔者尝试着制作自己的数据集,并保存,读入,显示. TensorFlow可以支持cifar10的数据格式, 也提供了标准的TFRecord 格式,而 ...

  10. DICOM医学图像处理:WEB PACS初谈

    背景: 周末看到了一篇原公司同事的文章,讲的是关于新的互联网形势下的PACS系统.正好上一篇专栏文章也提到了有想搭建一个worklist服务器的冲动,所以就翻箱倒柜将原本学生时代做课题时搭建的简易We ...