《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的程序设计准则
《Unix&Linux大学教程》学习笔记一:历史与常识的更多相关文章
- 《Unix&Linux大学教程》学习笔记6——Unix文件系统
1:Unix文件类型——3种 普通文件(常规文件):文本文件(纯文本.脚本.源程序.配置文件.html等).二进制文件(多媒体文件.数据库等) 目录:用于组织文件 伪文件:不存储数据,目的是提供一种服 ...
- 《Unix&Linux大学教程》学习笔记5 :正则表达式
1:Unix下正则表达式规则
- 《Unix&Linux大学教程》学习笔记四:标准I/O 与 过滤器
1:标准IO Unix中的标准IO主要包括:标准输入.标准输出(正常输出).标准错误(异常信息) 2:重定向输出 内容 > 文件名 :将内容输出到文件,并且覆盖文件原来内容:文件不存在则新建 内 ...
- 《Unix&Linux大学教程》学习笔记三:Shell常识
1:全局变量与局部变量 全局:可以从父进程传递给子进程的变量,如:环境变量. 局部:只能在特定的子Shell中使用的变量. 局部变量变全局:使用 “export 局部” 指令将创建的局部变量导出到环境 ...
- 《Unix&Linux大学教程》学习笔记七:进程与作业控制
1:进程:一个内存中的程序+程序所需数据+管理程序的各种状态信息. 2:进程由内核进行管理,内核使用调度器,给予进程一个时间片来运行,然后切换到下一个进程. 3:进程分叉 fork :创建一个子进程 ...
- 《Unix&Linux大学教程》学习笔记二:指令常识
1:指令的本质——调用可执行程序 在Shell输入命令时,其实就是根据名称运行相应的程序. 2:在系统中查找程序 which 指令名 type 指令名 3:时间与日历 date [-选项] 参数 ca ...
- unix&linux大学教程 目录
第1章unix简介 第2章什么是linux?什么是unix 第3章unix连接 第4章开始使用unix 第5章gui:图形用户界面 第6章unix工作环境 第7章unix键盘使用 第8章能够立即使用的 ...
- 《嵌入式Linux基础教程学习笔记一》
常用书目下载地址:http://www.cnblogs.com/pengdonglin137/p/3688029.html 第二章 1.进程上下文和中断上下文(Page20) 当应用程序执行系统调用, ...
- 尚硅谷韩顺平Linux教程学习笔记
目录 尚硅谷韩顺平Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 定时任务调度 ...
随机推荐
- sublime text的扩展插件
sublime text用作开发编辑器,还缺省二个比较重要功能:跨文件跳转.返回最后一次编辑的位置: 这里有二个插件正好解决此问题:CTags.ChangeList 其它常用的插件,google一 ...
- 低版本系统兼容的ActionBar(六)用Fragment+ViewPager+Tab实现快速导航
Tab经常和Fragment结合使用,这一讲我们用3种方式来实现这种快捷导航. 0.重要的两个监听器 MyTabListener,这个我们之前已经接触过了 package com.kale.actio ...
- GridView和SimpleAdapter实现网格布局
android:horizontalSpacing 元素之间的水平间距 android:verticalSpacing 元素之间的垂直间距 android:numColumns ...
- Java正则表达式教程及示例
本文由 ImportNew - ImportNew读者 翻译自 journaldev.欢迎加入翻译小组.转载请见文末要求. [感谢 @CuGBabyBeaR 的热心翻译.如果其他朋友也有不错的原创或 ...
- ubuntu下如何批量修改文件后缀名
正确的方法是: 在命令行中输入 rename 's/\.JPG/.jpg/' *.JPG [注意] 在单引号中的最后一个'/'符号不能少! 意思是:把当前文件夹下的所有 .JPG文件 替 ...
- git clone报错:“server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none”
I can push by clone project using ssh, but it doesn't work when I clone project with https. it shows ...
- cannot import name 'main' 解决方案
error description: pip3 install numpy Traceback (most recent call last): File "/usr/bin/pip3&qu ...
- DAU预测
转自: http://www.kaixin001.com/repaste/80488684_6910412734.html 我们知道在所有的游戏运营数据中,最终要的两个数据莫过于DAU.ARPU了.| ...
- hyper-V下虚拟机连接外网,怎么才能将Hyper-V 的虚拟机接入互联网?
现在情况是这样的: windows hyper-V主机IP: 192.168.20.3 hyper-v虚拟网卡IP:192.168.20.13 虚拟机1IP:192.168.20.21 同一局域网主机 ...
- android adb源码分析(1)
ADB是Android debug bridge的缩写,它使用PC机可以通过USB或网络与android设备通讯. adb的源码位于system/core/adb目录下,先来看下编译脚本Android ...