zoukankan      html  css  js  c++  java
  • 《Unix&Linux大学教程》学习笔记一:历史与常识

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

  • 相关阅读:
    2. Redis哨兵、复制、集群的设计原理与区别
    1. 详解Redis的存储类型、集群架构、以及应用场景
    博客园主题优化
    【Java基础】Java面试题精选
    【Java集合】——集合类分析总结
    新零售供应链的三大闭环
    Comparable和Comparator比较实现排序 场景分析
    Java基础-枚举类
    Java基础-泛型
    微服务架构~BFF和网关
  • 原文地址:https://www.cnblogs.com/ygj0930/p/8056562.html
Copyright © 2011-2022 走看看