最近更新时间: 2017/03/05
Linux 是操作系统,操作系统的目的是在管理硬件,因此你得要先了解一下什么是硬件?另外,Linux 操作系统到底有哪些东西?
而为什么 Linux 在操作上授权为免费?了解这些基本数据后,再来实际操作一下 Linux 的图形 (GUI) 与文本 (Command Line) 模式的运作~
同时查找一下一般用户家目录的数据吧!Linux 的学习确实稍微困难,请大家从这一章仔细的开始进行操作的行为喔!
1.1:Linux 是什么
Linux 是安装在电脑硬件系统上面的一套操作系统,目的是用来管理电脑硬件的!所以我们得要先了解一下硬件的常见组成,以及常见的硬件分类,
这样才好入门 Linux 喔!
1.1.1:硬件与操作系统
目前的电脑硬件系统主要经由底下的组件所组成:
输入单元:包括键盘、鼠标、读卡机、扫描仪、手写板、触摸屏幕等等一堆;
主机部分:这个就是系统单元,被主机机壳保护住了,里面含有一堆板子、CPU 与主内存等;
输出单元:例如屏幕、打印机等等
上述主机部份是整体系统最重要的部份,该部份的组成为:控制单元、算术逻辑单元以及内存单元(含主内存、外部保存设备)等。
例题:
请说明:
一般电脑硬件主机组成的五大单元,以及
图标出这五大单元的链接图。
最后说明哪个组件对于服务器来说,是比较重要的?
目前的电脑硬件架构主要均由中央处理单元 (CPU) 所定义的各项链接组件所组成,而目前世界上消费市场中,最常见到的 CPU 架构大概可以分为两大类:
X86 个人电脑:由 Intel / AMD 为主要制造厂商,此架构通用于个人电脑 (包括笔记本电脑) 以及商用服务器市场上 (亦即 x86 服务器)。
目前 (2017) Intel 在个人电脑市场推出单个 CPU 封装内含 4 核 8 绪的个人电脑 CPU,商用服务器则已经推出 10 核 20 绪以上的 Xeon 商用 x86 CPU。
ARM 手持式设备:由安谋公司所开发的 ARM CPU ,由于其架构较为精简,且可授权其他公司开发,因此目前很多厂商均针对
ARM 架构进行自身的 CPU 开发。ARM 通常使用于手持式设备,包括手机、平板等等,其他像是单板电脑 (Raspberry pi, Xapple pi 等) 亦使用此架构。
为了简化硬件的资源操作,因此后来有开发操作系统来管理硬件资源的分配。因此程序员仅须考量程序的运作流程,而无须考量内存配置、
文件系统读写、网络数据访问等,在程序开发上面较为简易。硬件、操作系统、操作系统提供的开发界面以及应用程序的相关性,可以使用底下的图标来说明:
图1.1-1、硬件与操作系统相关性
硬件:例如 x86 个人电脑以及 ARM Raspberry pi 即是两种不同的硬件。但 x86 个人电脑与 x86 笔记本电脑,两者则是相同的硬件架构喔!
内核:就是操作系统!该系统内部涵盖文件系统、网络系统、记忆单元管理系统、硬件驱动程序、数据加密机制等等的子系统
系统调用:可视为内核提供的一系列函数库,程序员只要参考此部份的系统调用即可设计相关的应用程序,而不用去考虑内核所提供的子系统。
应用程序:就是在该系统调用的环境中,撰写代码编译而成的 binary code 程序。
例题:
运用图 1.1-1 的四个同心圆,尝试说明当年为何从 windows XP 转到 Vista 时,很多应用程序无法运作?
例题:
除了云端软件之外 (一般云端软件,如 office 365) ,大部分的操作系统软件在贩售时,会告知适合的硬件等级,
而一般应用软件则会告知适用的操作系统,其主要的原因为何?
现代的操作系统主要的目的就是在控管硬件的资源,并且提供一组开发环境让其他第三方协力厂商可以方便的在该操作系统上面开发相关的软件。
故操作系统主要包含的部份是:『内核+系统调用』 。
现代的 Linux 操作系统主要以可跨硬件平台的 C 编程语言所写成,且 Linux 自从 3.x 以来的内核版本已经支持了 ARM 的 CPU 架构,
因此 Linux 可以轻松的在不同的硬件平台间编译后安装。但你依旧不可以直接拿 x86 架构的编译好的 Linux 去安装在 ARM 的平台上!
因为两者对个别硬件的设计还是不太相同的!
1.1.2:Linux 操作系统的发展沿革
Linux 并非凭空撰写而来,其发展有一定的历史背景。由于这些历史背景,目前 Linux 是自由软件,可以自由的使用、学习、修改、编译、再发行,
而且是相对稳定的操作系统。
1965年以前的电脑系统:
最早的硬件没有操作系统的概念,后来为了管理方便,因此有了『多元程序处理系统 』,
更于后来以多元程序处理系统的概念再开发出了分时兼容系统 。当时的硬件主要是通过大型主机系统,内含分时兼容系统,并提供大约
16 个文本终端机连接。不过当用户过多时,需要等待才能够使用电脑系统。
1969年以前:一个伟大的梦想--Bell,MIT与GE的『Multics』系统:
Multics 计划希望能够改善以前的大型主机系统,提供至少 300 个以上的文本终端机。最终虽然成功的开发出 Multics 系统,
但是相对于 Unix 而言,Multics 的使用率并不高。
1969年:Ken Thompson的小型file server system
参与过 Multics 计划的 Thompson 为了移植一套游戏,通过汇编语言程序撰写一套暱称 Unics 的软件,该软件可以控制 PDP-7 这个硬件主机,
提供了小型的文件系统管理功能等。
1973年:Unix的正式诞生,Ritchie等人以C语言写出第一个正式Unix内核
Thompson 与 Ritchie 合作,Ritchie 撰写 C 编程语言后,再以 C 改写 Thompson 的 Unics ,最后编译成为一套操作系统。
此系统就被称为 Unix。由于使用 C 高端编程语言撰写,人们很容易看得懂代码,因此改写、移植程序就变得很简单。
1977年:重要的Unix分支--BSD的诞生
柏克莱大学的Bill Joy 在取得了Unix的内核原代码后,着手修改成适合自己机器的版本,
并且同时增加了很多任务具软件与编译程序,最终将它命名为Berkeley Software Distribution (BSD)。
1979年:重要的 System V 架构与版权声明
Bell lab. (贝尔实验室) 的母企业为 AT&T 公司,AT&T 在 1979 开发最新的 SystemV 之 Unix 操作系统。这个系统最特别的地方是,
SystemV 可以支持当时没有多任务环境的 x86 个人电脑。此外,AT&T在1979年发行的第七版Unix中,特别提到了『不可对学生提供原代码』的严格限制!
1984年之一:x86架构的Minix操作系统开始撰写并于两年后诞生
因为 SystemV 之后,大学老师不可以教授 Unix 内核原代码,因此 Andrew Tanenbaum 自己动手写了 Minix 这个 Unix Like 的内核程序!
同时搭配 BBS 新闻群组与相关书籍来贩售 Unix Like 的代码。因为强调的是学习代码,因此改版的速度相当缓慢。
1984年之二:GNU计划与FSF基金会的成立
Richard Mathew Stallman(史托曼)在1984年发起的 GNU 计划,目的是想要恢复以前『知识分享的黑客文化』,因此强调代码需要公开以利学习的自由软件概念,
并开发出 bash, gcc, glibc, emacs 等脍炙人口的软件。Stallman 将所有的软件都上网,但是没有网络的朋友也能够通过邮件请 Stallman
寄送软件磁带,Stallman 经由这样贩售 emacs 的『服务费用』(Stallman 认为协助人们刻录软件,花费他很多的时间成本)
赚了点钱,然后成立了自由软件基金会 (FSF, Free Software Foundation),同时与律师共同签署了 GNU 的通用公共许可证(General Public License, GPL),
该授权让用户可以自由的使用软件,且软件的授权可以永续的存在。
1988年:图形接口XFree86计划
为了解决图形用户界面 (Graphical User Interface, GUI) 的需求,于是有 XFree86 这个组织的形成。XFree86 是由 X Window System + Free + x86
所组成的,目的在提供 server/client 的图形画界面。
1991年:芬兰大学生Linus Torvalds的一则短信
Torvalds 在 1991 年于 BBS 上面公告他通过 GNU 的 bash, gcc 等,通过学习 Minix 系统,在 x86 (386) 上面成功的开发一个小型的操作系统,
并且放在 Internet 上面提供提供大家自由下载。同时,还鼓励大家告知 Torvalds 自己,这个系统还有哪些部份可以值得继续修改等的消息。
这就是 Linux 的起源!
1992年:Linux distributions 发行:
为了让用户更方便安装与操作 Linux,于是有了 Linux 开发套件的软件发布,就称为 Linux distribution 了。
一开始于 1992 年就有 Softlanding Linux System(SLS), Yggdrasil Linux 等版本。
1994年:Linux kernel version 1.0 发布:
1994 年 Linux 内核发布 1.0 版本,同时目前世上最知名的 Linux 商业公司 Red Hat 也在当时成立。
2005年:Google 收购 Android 公司
从 2003 年开始,加州的一家公司开始发展 Android 系统在手机上面。后来 Google 于 2005 年收购该公司,并将 Android 在 Linux 内核上开发,
以发展可以让手持式设备使用的操作系统。首个商用手机 Android 操作系统则在 2008 年由 HTC 推出!
2012年:教育市场的 Raspberry pi
为了让小朋友能够轻松愉快的学习编程语言,一个小型的单板电脑制造基金会依据 ARM 的架构开发了一版大约与笔记型硬盘差不多大小的主板,
内嵌入所有电脑系统所需要的硬件,这就是树莓派 (Raspberry pi)。Raspberry pi 的缺省操作系统即是搭配 Linux 内核所开发的小型操作系统。
例题:
上网找出多元程序处理系统需要可以 I/O 与 CPU 分离运作的主要架构,是通过内存内的哪些进程状态达成的?
且这些进程的状态运作情况为何?
例题:
暱称『最纯种的 UNIX 』指的是那两套 Unix 操作系统?
例题:
上网找出: (1)GNU 计划的全名; (2)GNU 计划的官网; (3)GNU 的吉祥物; (4)GNU 的内核名称为何?
1.1.3:GNU 的 GPL 与 Opensource 开放原代码授权
GNU 的 GPL 授权主要强调自由的学习,Free Software(自由软件)是一种自由的权力,并非是『价格!』
举例来说,你可以拥有自由呼吸的权力、你拥有自由发表言论的权力,但是,这并不代表你可以到处喝『免费的啤酒!(free beer)』,
也就是说,自由软件的重点并不是指『免费』的,而是指具有『自由度, freedom』的软件,史托曼进一步说明了自由度的意义是:
用户可以自由的运行、拷贝、再发行、学习、修改与强化自由软件。
GNU 的 GPL 授权有底下的权力与义务:
取得软件与原代码:你可以根据自己的需求来运行这个自由软件;
拷贝:你可以自由的拷贝该软件;
修改:你可以将取得的原代码进行程序修改工作,使之适合你的工作;
再发行:你可以将你修改过的程序,再度的自由发行,而不会与原先的撰写者冲突;
回馈:你应该将你修改过的代码回馈于社群!
不可修改授权:你不能将一个GPL授权的自由软件,在你修改后而将他取消GPL授权~
不可单纯贩卖:你不能单纯的贩卖自由软件。
由于自由软件使用的英文为 free software,这个 free 在英文是有两种以上不同的意义,除了自由之外,免费也是这个单字!
因为有这些额外的联想,因此许多的商业公司对于投入自由软件方面确实是有些疑虑存在的!许多人对于这个情况总是有些担心~
为了解决这个困扰,1998 年成立的『开放原代码促进会 (Open Source Initiative)』提出了开放原代码 (Open Source,亦可简称开源软件)
这一名词! 另外,并非软件可以被读取原代码就可以被称为开源软件喔!该软件的授权必须要符合底下的基本需求,才可以算是 open source 的软件。
公布原代码且用户具有修改权:用户可以任意的修改与编译代码,这点与自由软件差异不大;
任意的再散布:该代码全部或部份可以被贩售,且代码可成为其他软件的组件之一,作者不该宣称具有拥有权或收取其他额外费用。
必须允许修改或衍生的作品,且可让再发布的软件使用相似的授权来发表即可。
承上,用户可使用与原本软件不同的名称或编号来散布。
不可限制某些个人或团体的使用权
不可限制某些领域的应用:例如不可限制不能用于商业行为或者是学术行为等特殊领域等等
不可限制在某些产品当中,亦即代码可以应用于多种不同产品中。
不可具有排他条款,例如不可限制本代码不能用于教育类的研究中,诸如此类。
例题:
如果你自己开发的软件未来可能会有商业化的可能,但目前你希望使用 Open source 的方式来提供大家使用。
另外,也希望未来能够有一支保有开放源码软件的分支,那最好使用 GPL 还是 BSD 呢?
1.1.4:Linux kernel
Linux kernel 主要由 http://www.kernel.org 维护,目前的版本已经出现到 4.x 版。Linux kernel 1.0 在 1994 年发布,
在 1996 年发布 2.0 版,在 2.0 之后,内核的开发分为两个部份,以广为使用的 2.6 来说明的话,主要的分类有:
2.6.x:所谓的偶数版,为稳定版,适用于商业套件上;
2.5.x:所谓的奇数版,为发展测试版,提供工程师一些先进开发的功能。
这种奇数、偶数的编号格式在 2011 年 3.0 内核推出之后就失效了。从 3.0 版开始,内核主要依据主线版本 (MainLine)
来开发,开发完毕后会往下一个主线版本进行。例如 4.9 就是在 4.8 的架构下继续开发出来的新的主线版本。
旧的版本在新的主线版本出现之后,会有两种机制来处理,一种机制为结束开发 (End of Live, EOL),亦即该代码已经结束,
不会有继续维护的状态。 另外一种机制为保持该版本的持续维护,亦即为长期维护版本 (Longterm)!例如 4.9
即为一个长期维护版本,这个版本的代码会被持续维护,若代码有 bug 或其他问题, 内核维护者会持续进行代码的更新维护。
例题:
使用 google 搜索引擎或 wiki 等,找出底下的相关数据:
Android 的版本搭配的 Linux 内核版本为何?
由 Linux kernel 官网的『Releases』相关说明,找出现阶段的 Linux Mainline, Stable, Longterm 版本各有哪些?
1.1.5:Linux distributions
为了让用户能够接触到Linux,于是很多的商业公司或非营利团体,就将Linux Kernel(含tools)与可运行的软件集成起来,
加上自己具有创意的工具程序,这个工具程序可以让用户以光盘/DVD或者通过网络直接安装/管理Linux系统。
这个『Kernel + Softwares + Tools + 可完整安装进程』的咚咚,我们称之为Linux distribution,
一般中文翻译成可完整安装套件,或者Linux发布商套件等。
常见的 Linux distributions 分类有:
RPM 软件管理 DPKG 软件管理 其他未分类
商业公司
RHEL (Red Hat 公司) SuSE (Micro Focus)
Ubuntu (Canonical Ltd.)
社群单位
Fedora CentOS OpenSuSE
Debian B2D
Gentoo
一般用途在个人电脑 (包括笔记本电脑) 的使用,建议可以使用 Ubuntu / Fedora / OpenSuSE 等,若用在 Server 上,
建议可以使用 CentOS 或 Debian。
CentOS 的产生较为有趣,他是取自 Red Hat 的 RHEL 操作系统,将原代码中与 Red Hat 相关的注册商标或其他著作相关的数据移除,
改以自己的『企业商用社群版本操作系统』取名,然后再次发行。因此 CentOS 的版本与 RHEL 是亦步亦趋的! (包括 Oracle Linux 与 Scientific Linux
也是同样的作法)。
例题:
为什么 CentOS 社群可以直接取用 RHEL 的代码来修改后发布?这样做有没有任何法律的保护呢?
1.1.6:Linux 的常见用途
用在企业环境与学术环境中,最常见到的应用有:
网络服务器
关键任务的应用(金融数据库、大型企业网管环境)
学术机构的高性能计算任务
个人的使用则有:
台式机
手持系统(PDA、手机、平板电脑、精简电脑等)
嵌入式系统 (如 raspberry pi / Xapple pi 等内置的 Linux 系统)
例题:
超级电脑可以说是一个国力的展现,而 top500 每年会有两次去调查全世界跑得最快的超级电脑。请上网查找后回答下列问题:
(1) top500 的官网网址? (2)超级电脑的比较排序方式,是以那一种计算来考虑的? (3)根据现在的时间,找到最近一次排序的结果,
第一名的超级电脑使用了多少个 CPU 内核 (cores), (4)该系统最快可达到多快的计算 (说明其单位)? (5)若以一度电 5 元台币计算,
该系统开机一天要花费多少钱?
例题:
前往 Dell 官网,调查其支持的 Linux distribution 主要是那几种?另外,请思考这个查找的意义为何? (http://linux.dell.com/files/supportmatrix/)
1.2:登录与操作 Gocloud 云端系统 (鸟哥教室专用)
为方便教师/学生可以在任何地方学习 Linux 操作系统,一个教学环境是需要事先建置的。除了使用实体机器原生的 Linux 之外,
虚拟化的环境更方便教师制作教学单元。因为虚拟化的环境软/硬件可以仿真的完全一致,对于教师与学生的实作练习以及错误重现,都有很大的帮助。
本教材缺省使用的 Gocloud 云端系统为鸟哥在自己的课堂上面搭建的小型云服务器,对于同学无间断的学习是很有帮助的。不过因为系统硬件资源太少了,
所以仅开放给鸟哥实际课程的同学们使用,实际并未对互联网开放,在此跟大家说声抱歉!如果您是自学的朋友,那只好请参考书上的光盘数据,
使用 VirtualBox 软件作为自学磁盘的系统了!
(ps. 除了 Gocloud 系统之外,老师们也可以选择 Ovirt (https://ovirt.org/ ) 作为教学训练的环境建置,
或者单纯在原有的教室 windows 系统上面建置 virtualbox 的环境来教学即可。关于 virtualbox 的建置,可以参考光盘附件。如果是预计使用 ovirt,
可以参考如下的链接:https://www.ovirt.org/documentation/install-guide/Installation_Guide.html )
1.2.1:注册 gocloud 与登录
除非贵单位有购买与安装 Gocloud 系统,否则请以光盘内容的 virtualbox 环境取代底下的说明。若有安装 Gocloud 系统,
请依据贵单位的环境设置 (互联网 IP 或 主机名称),直接以浏览器来连接到 Gocloud 系统,系统示意图如下所示:
图1.2.1、Goucloud 画面示意图
如果是第一次使用的学生,那就请先来注册一下!按下如上图的箭头指向的地方,点下去就会出现注册的项目了,如下所示:
图1.2.2、Goucloud 注册画面示意图
一般来说,如果是学校单位,鸟哥建议如上述画面所示,最好请学生依据自己的学号作为帐号,真实姓名作为姓名填写,
这样老师比较知道学生与帐号的对应,在考试出题与作答时,会比较清楚对应。如果没有强调这一点,那学生注册的姓名可能会比较伤脑筋。
等到注册完毕后,还要等老师将你的帐号开通之后才能够使用。因此,此时请稍微等待一小段时间喔!
等到老师将你的帐号开通,并且假设老师已经将硬盘制作好给你了,此时请回到图 1.2.1 去输入帐号与密码字段,
并按下登录系统或 [Enter],那就能够登录系统了。登录系统会出现如下的图标:
图1.2.3、Goucloud 登录后的画面示意图
画面中最上方为学生可以操作的系统功能,其中比较常用的是:
启动/关闭主机:让学生可以 (1)启动云端虚拟机,并打开 gocloud 的防火墙,取得连接的 URL; (2)虚拟机运作中,可以抽换光盘;
(3)可以强制关机 (直接断电)。
课程磁盘复原:在虚拟机关机的状态下,可以将个人的磁盘复原到最原始的状态,所以学生可以实际多操作数次,做完直接复原即可。
软件下载:其实主要是针对 Windows 系统喔!可以安装连接软件,如此你的 windows/Linux 就可以使用 remote-viewer 这套软件来取得云端虚拟机的终端界面。
例题:
除非贵单位有购买与安装 Gocloud 系统,否则请以光盘内容的 virtualbox 环境取代底下的说明。若有安装 Gocloud 系统,
请登录系统后,根据你自己家用 (或电脑教室中) 的操作系统,下载正确的 remote-viewer 软件,并且安装后启动该软件。
答:
Windows 操作系统:如果你目前操作的系统是 Windows 操作系统,那么可以直接到 Gocloud 的『软件下载』画面中,
选择『用户端 Windows 为 64 比特版本』的超链接来下载。最好不要使用 IE 来下载,因为 IE 会自动更改安装档的文件名,
所以下载后还需要更改扩展名成为 .msi 才能够安装。使用 chrome 或 firefox 则无此问题。
此外,你也可以自行到 internet 下载最新版的软件: https://virt-manager.org/download/
Linux 操作系统:如果是 Red Hat 系列的 (RHEL/Fedora/CentOS) ,直接安装 virt-viewer 软件即可。(yum install virt-viewer)
Mac OSX 操作系统:现在 remote-viewer 也支持 OSX 了!详情请参考底下的网址。目前 (2017) 最新版为 RemoteViewer-0.5.7-1.dmg,请自行下载安装。
Android 平板:目前 Android 平板也能够支持 gocloud 的连接了,不过需要于 play.google.com 下载 aSpice 才能够连接 (不是 remote-viewer 软件)。
这里假设学校的电脑大多为 windows 操作系统,因此当安装完软件后,可以在『开始』-->『所有程序』-->『VirtViewer』找到『 Remote Viewer 』这套软件。
点击此软件后,就可以得到如下的画面:
图1.2.4、学生端电脑连接到 Gocloud 的 remote viewer 软件示意图
当学生打开虚拟机后,将虚拟机所在的网址拷贝到上述箭头所指定的方框中,即可达成连接。
1.2.2:启动与管理虚拟机
除非贵单位有购买与安装 Gocloud 系统,否则请以光盘内容的 virtualbox 环境取代底下的说明。若有安装 Gocloud 系统,
在你登录 Gocloud 网站系统后,点击『启动/关闭主机』后,应该会得到如下的画面。如果一切顺利的话,那么你应该会取得至少一个以上的硬盘环境。
如下图的 2 号箭头处。如果找不到任何硬盘,请与您的授课教师联系。选择正确的磁盘后,请按下『打开机器』的按钮来启动云端虚拟机。
图1.2.5、利用 Gocloud 系统启动云端虚拟机的示意图
如果一切顺利,那么你就会得到如下的画面示意图,基本上,我们最重要的是取得如下图 1 号箭头指的方框处的 URL (spice 开头那项),
请拷贝该项目,并且将他粘贴 图1.2.4 所需要指定的 URL 方框中,按下连接 (Connect) 即可取得如
图1.2.7 的云端虚拟机窗口了!
图1.2.6、Gocloud 系统上面已经启动了云端虚拟机的示意图
图1.2.7、以 Remote viewer 软件取得 Gocloud 上的云端虚拟机
remote viewer 软件左上方主要有两个基本功能可以选择:
View:可以将整个画面放大到『全屏幕(Full Screen)』,要取消只要按下键盘功能键 [F11] 即可复原,也能够放大、缩小画面。
Send key:可以发送组合按键给虚拟机,避免由于直接按下按键导致 windows 或用户端自己其他操作系统的困扰。
另外请注意,由于目前你应该有两个完全独立的系统,一个是你自己的系统,一个是 Gocloud 的云端虚拟机,
若要操作 Gocloud 的云端虚拟机时,你应该要将鼠标移动到 remote viewer 的窗口内,这样才能够完整的使用虚拟机的资源!
1.3:第一次登录 CentOS 7
取得云端 Linux 机器后,就能够开始操作 Linux 系统了。接下来先来学习如何登录 Linux、了解图形界面、文本界面的操作差异,
并创建好『良好的操作行为』,这对于未来的帮助会很大的
本教材预计在训练学员们了解 Linux 在服务器的使用上,应该如何操作与学习,因此使用了 CentOS 这套 Linux 操作系统来学习。
请大家依据教材的内容慢慢实做练习,以理解整个系统的使用!
1.3.1:图形界面操作 CentOS
在图1.2.7 的画面中,使用鼠标左键将屏幕向上拉动,就会出现等待登录的画面,如下所示:
图1.3.1、CentOS 7 图形界面登录示意图
你可以:
点击出现的人名 (你的帐号),然后输入密码,即可登录系统;
点击『Not listed?』:接下来出现『Username』请填写帐号,按下 [Next] 出现『Password:』请输入正确的密码,
然后按下 [Sign In] 即可登录系统。
本教材提供虚拟机的帐号与密码为『student/student@linux』,请依据此帐号密码来登录系统。
例题:
请第一次登录系统,并且处理好中文的操作界面!同时,家目录底下的文件文件名,最好不要有中文存在。
答:
根据教材提供的帐号密码登录系统:选择 student 帐号,然后输入密码;
第一次登录时,会出现选择用户语系的画面,请点击最底下的未知(三个直立的小数点),然后将画面拉动到最下方,即可看到『汉语 台湾』,选择后,
在画面的右上方按下 [下一步];
选择缺省的输入法为『英语(美式)』即可按下 [下一步];
点击『开始使用 CentOS Linux』
出现第一次的使用说明 (Getting Started),可以直接忽略按下右上方的关闭 (X) 即可。
此时画面依旧是英文,请选择屏幕右上方的三角形按钮,点击『Student』这个身份按钮,画面会出现『 Log out 』的项目,点击『Log Out』注销;
再次以 student 帐号登录系统,即可取得正确的中文操作环境。
如果一切处理顺利,那就可以出现图形化窗口。你可以先到『应用程序』-->『喜好』-->『终端机』点击,点出一个终端机界面,
然后再到画面右上角的三角形点击,就能够看到一些设置值的项目,如下所示:
图1.3.2、CentOS 7 图形界面操作示意图
例题:
在图形界面下先尝试进行目录与文件的管理,这时请使用在最上方任务栏『应用程序』隔壁的『位置』菜单,点击『家目录』的项目,之后进行如下的动作测试:
改变显示的文件信息,在『缩略图』与『详细数据』当中切换测试;
在『详细数据』的画面中,如果要显示更多的数据,可以勾选哪些设置?
若需要离开家目录到其他目录,勾选左侧『电脑』的项目,看看有哪些基本的目录存在
依序点击『var』-->『spool』-->『mail』,看看出现什么数据呢?文件总管最上方出现的文件名方式排列为何呢?
尝试找到『电脑-->etc-->passwd』这个文件,将他拷贝后,变更路径到『电脑-->tmp』底下,然后粘贴去!
承上题,你能不能将『电脑-->etc-->shadow』拷贝到『电脑-->tmp』呢?
例题:
缺省的中文输入法似乎怪怪的,没有办法正确的输入中文。你该如何设置中文输入法呢?
点击右上方三角形按钮,出现的窗口中左下角的螺丝工具图案点击下;
在『个人』的项目中,点击『地区和语言』的项目;
一开始只会看到『英语(美式)』与『汉语』,点击『+』之后,选择『汉语(台湾)』,再选『汉语(Chewing)』,最终按『加入』
将原本的『汉语』项目移除
之后就可以正常的使用注音输入法了。
例题:
如何关掉进入屏幕保护程序的状态?
如何观察与启动网络?
将 student 注销系统
Tips 由于使用图形界面时,会在用户的家目录创建相当多的图形界面操作设置档与暂存盘。不过在系统管理员 (root) 的角色下,
我们希望不要有太多杂乱的数据,因此建议『不要在图形环境下使用 root 的帐号登录系统』喔!你可以在其他的登录界面使用 root 的帐号!
如下一个小节的纯文本模式介绍~
1.3.2:文本/图形界面的切换
Linux缺省的情况下会提供六个Terminal来让用户登录, 切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]的组合按钮。
系统会将[F1] ~ [F6]命名为tty1 ~ tty6的操作接口环境。 也就是说,当你按下[ctrl] + [Alt] + [F1]这三个组合按钮时
(按着[ctrl]与[Alt]不放,再按下[F1]功能键), 就会进入到tty1的terminal接口中了。同样的[F2]就是tty2!
按下[Ctrl] + [Alt] + [F1]就可以回到原本的 X 图形界面中。整理一下登录的环境如下:
[Ctrl] + [Alt] + [F2] ~ [F6] :文本接口登录 tty2 ~ tty6 终端机;
[Ctrl] + [Alt] + [F1] :图形接口桌面。
例题:
请使用 student 的身份在 tty2 的画面中登录系统
CentOS Linux 7 (Core)
Kernel 3.10.0-327.el7.x86_64 on an x86_64
localhost login: student
Password: <==这里输入你的密码
Last login: Thu Apr 14 19:46:30 on :0 <==上次登录的情况
[student@localhost ~]$ _ <==光标闪烁,等待你的指令输入
上面显示的内容为:
CentOS Linux 7 (Core)
显示Linux distribution 的名称 (CentOS) 与版本(7);
Kernel 3.10.0-327.el7.x86_64 on an x86_64
显示 Linux 内核的版本为3.10.0-327.el7.x86_64,且目前这部主机的硬件等级为x86_64。
localhost login:
localhost 是主机名称。至于login:则是一支可以让用户登录的程序。
你可以在login:后面输入你的帐号后,按下 [enter] 就可以开始准备下个动作。
Password:
这一行的出现必须要在上个动作按 [enter] 之后才会出现。
在输入密码的时候,屏幕上面『不会显示任何的字样! 』
这是为了担心用户输入密码时,被偷看到『输入的密码长度』之故。
Last login: Thu Apr 14 19:46:30 on :0
当用户登录系统后,系统会列出上一次这个帐号登录系统的时间与终端机名称!
[student@localhost ~]$ _ : 这一行则是正确登录之后才显示的消息,
最左边的 student 显示的是『目前用户的帐号』,而@之后接的 localhost 则是『主机名称』,至于最右边的『 ~ 』则指的是
『目前所在的目录』,那个 $ 则是『提示字符』
上述比较重要的数据在第 6 行,CentOS 的 bash 提示字符通常的格式就是『 [用户帐号@本主机名 工作目录]提示字符 』。
其中比较重要的项目是:
~ 符号代表的是『用户的家目录』的意思,他是个『变量!』。举例来说,root的家目录在/root,
所以 ~ 就代表/root的意思。而student的家目录在/home/student,
所以如果你以student登录时,他看到的 ~ 就会等于/home/student
提示字符方面,在Linux当中,缺省root的提示字符为 # ,而一般身份用户的提示字符为 $ 。
另外,文本界面等待登录画面的第一、第二行的内容其实是来自于/etc/issue这个文件!
那么如何离开系统呢?其实应该说『注销Linux』才对!注销很简单,直接这样做:
[student@localhost ~]$ exit
就能够注销Linux了。但是请注意:『离开系统并不是关机 !』
基本上,Linux本身已经有相当多的工作在进行,你的登录也仅是其中的一个『工作』而已,
所以当你离开时,这次这个登录的工作就停止了,但此时Linux其他的工作是还是继续在进行的!
例题:
请分别以图形界面以及文本界面登录系统 (使用 tty1 及 tty2 登录),登录后,请使用 w 这个指令查找谁在系统上?
并请以你看到的数据说明哪些用户通过哪些 tty 登录系统。(有个 :0 的终端机,那个是什么?)
1.4:简易的文本指令操作
站在服务器角度的立场来看,使用纯文本模式来进行系统的操作是很重要的!毕竟服务器通常不会激活图形界面。
因此,第一堂课接触过 Linux 与登录过 Linux 之后,让我们来使用简单的指令查找一下用户家目录里面有哪些数据,以及如何查找自己曾经下达过的指令吧!
1.4.1:ls 与 ll 检查自己目录的文件名数据
请使用一般用户的身份登录 Linux 系统,同时启动一个终端机在桌面上。现在让我们来运行两只指令,确认一下如何操作系统与观察输出的数据。
[student@localhost ~]$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
使用 ls 可以单纯的列出文件名,就是上面列出的『Desktop Documents Downloads...』等等的数据。
不过并没有显示这个文件名相关的各项文件权限信息,包括时间、容量等等。若需要查阅比较详细的信息,需要使用 ll (LL 的小写) 来处置。
[student@localhost ~]$ ll
drwxr-xr-x. 2 student student 6 3月 7 19:18 Desktop
drwxr-xr-x. 2 student student 6 3月 7 19:18 Documents
drwxr-xr-x. 2 student student 6 3月 7 19:18 Downloads
drwxr-xr-x. 2 student student 6 3月 7 19:18 Music
drwxr-xr-x. 2 student student 6 3月 7 19:18 Pictures
drwxr-xr-x. 2 student student 6 3月 7 19:18 Public
drwxr-xr-x. 2 student student 6 3月 7 19:18 Templates
drwxr-xr-x. 2 student student 6 3月 7 19:18 Videos
第一堂课的此时,你需要注意的是最右边的三个参数,分别是文件容量、文件最后被修改的日期、文件名信息。
以『Pictures』文件名为例,该文件名的容量有 6bytes,而最后被修改的日期为『 3月 7 19:18 』。至于年份则是本年度的意思。
如果想要查阅根目录 (类似 windows 的『电脑』项目),则使用如下的指令:
[student@localhost ~]$ ll /
总计 32
lrwxrwxrwx. 1 root root 7 2月 18 02:54 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 2月 18 03:01 boot
drwxr-xr-x. 20 root root 3320 4月 19 03:59 dev
drwxr-xr-x. 129 root root 8192 4月 19 03:59 etc
drwxr-xr-x. 3 root root 20 4月 14 19:46 home
lrwxrwxrwx. 1 root root 7 2月 18 02:54 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 2月 18 02:54 lib64 -> usr/lib64
......
此时屏幕上显示的为根目录底下的文件名,而不是 student 的家目录了。这个练习在让操作者了解到,指令后面可以加参数 (parameters)。
而如果想要知道 student 家目录底下有没有『隐藏档』时,可以使用如下的指令:
[student@localhost ~]$ ll -a
总计 24
drwx------. 14 student student 4096 3月 7 21:32 .
drwxr-xr-x. 3 root root 21 1月 3 22:27 ..
-rw-r--r--. 1 student student 18 8月 3 2016 .bash_logout
-rw-r--r--. 1 student student 193 8月 3 2016 .bash_profile
-rw-r--r--. 1 student student 231 8月 3 2016 .bashrc
drwx------. 11 student student 226 3月 7 22:12 .cache
drwxr-xr-x. 15 student student 276 3月 7 21:29 .config
drwxr-xr-x. 2 student student 6 3月 7 19:18 Desktop
......
可以发现多了相当多以小数点开头的文件名,这些文件名在 ls 或 ll 时并不会出现,但加上『 -a 』这个『 选项 (Option) 』之后,
就会开始出现了。这个练习在让操作者了解到,指令后面可以加『选项』来改变指令的处理行为。
最后,如果你想要知道根目录本身的权限,而不是根目录底下的文件名,则应该要使用底下的指令:
[student@localhost ~]$ ll -d /
dr-xr-xr-x. 17 root root 4096 2月 18 03:01 /
你将在屏幕上发现到只有根目录 (/) 这个文件名存在,而不像刚刚『 ll / 』出现一堆文件名数据。
亦即一般情况下,ll 是『浏览目录内的文件名信息』,而不是看目录本身。
Tips 以 windows 的文件总管来说,通常文件名的浏览画面中,左侧为『目录』而右侧为『该目录下的文件名』,所以,『 ll 』代表鼠标点左边的目录,
而屏幕输出右边的文件名数据之意。
例题:
在终端机界面中输入『 clear 』会有什么效果?
例题:
检查一下 /var/spool/mail 这个目录 (1)里面有几个文件? (2)这个目录本身所修改的时间是什么时候?
1.4.2:历史命令功能
Linux 的文本界面中,可以用几个简单的方式去检查你曾经下达过的指令,最简单的方法就是使用方向键『上与下』,
不但能够调用出之前的指令,也能够再通过方向键『左与右』,与键盘上的『home/end』按键,直接在一行指令的最前面与最后面直接再修改。
熟悉这个作法,可以让你快速的编辑一行指令。
但是如果是太久之前做的指令,此时就能够通过历史命令『 history 』来调用出来。
例题:
让 student 调用出历史命令,观察一下曾经运行过 ll / 的指令是『第几个』,若想要再次运行,应该如何处理?
除了『 !数字 』可以重复运行某个指令外,也能够直接通过底下的方式来重复运行历史命令:
例题:
student 曾经输入过 ls 这个指令,那我想要重新运行一次以 ls 为开头的指令该如何处理?
在 CentOS 7 底下,缺省历史命令会纪录 1000 笔,你下次登录后,系统会将上次的历史命令导入,亦即,上次你下达过 50 笔纪录,
则下次激活终端机后,第一个指令会纪录在 51 笔。因此,经常查找 history 可以让操作者了解以前曾经下达过哪些指令。
1.4.3:离开系统与关闭系统
离开系统,以终端机界面来说,直接输入 exit 或者 logout 都可以。以图形界面来说,画面中右上角三角形部份点击后,
出现登录者 (student) 的文本,点击后选择『注销』即可。但注销不是关机。关机时,最好能够确认系统上面没有其他工作的用户。
因此关机前,建议检查系统上面的用户状态。
[student@localhost ~]$ w
04:59:07 up 1:53, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
student :0 :0 03:59 ?xdm? 23.56s 0.14s gdm-session-worker
student pts/0 :0 03:59 59:31 0.03s 0.03s bash
上面表格中,『USER』字段为登录的用户,『TTY』就是前面小节谈到的终端机,通常为 tty1~tty6。但是在 tty1 使用图形界面登录时,
会显示为『 :0 』,亦即图形界面使用终端机名称为 :0 之意。另外,每行最后的『WHAT』为该终端机目前使用的指令为何。
所以图形界面为通过 gdm-session-worker 指令而来,而终端机则使用 bash 这个程序。
至于 pts/0 则可能是 (1)在图形界面启动的终端机,或 (2)通过网络连接进来的终端机。并非本机的 tty1~tty6 。
从上表看来,目前确实仅有 student 在在线,若本机器并非服务器,则此时应该可以进行关机的行为。关机可以使用如下的指令:
[student@localhost ~]$ poweroff
[student@localhost ~]$ halt
[student@localhost ~]$ shutdown -h now
[student@localhost ~]$ systemctl poweroff
上述的任何一个指令均可关机。但无论使用哪个指令关机,其实最终都是调用最后一个,亦即『 systemctl poweroff 』进行关机的行为。
Tips 在本机 tty1~tty6 登录系统的帐号,无论系统管理员或一般帐号,均可 poweroff 本机。但如果是通过网络连接进来的,则无法关闭 Linux ,
除非使用管理员帐号,才有办法通过网络关机。
1.5:课后练习操作
前置动作:请使用 unit01 的硬盘进入作业环境,并请先以 root 身分运行 vbird_book_setup_ip
指令设置好你的学号与 IP 之后,再开始底下的作业练习。
简答题:请使用 student 的身份登录系统,然后在应用程序中找寻一个名为 gedit 的指令,打开该软件之后,依据底下的题目写下答案。
保存时,请选择文件名为 /home/student/ans01.txt
电脑组成的五大单元中,(a)指的是哪五个单元?(b)CPU 主要包含那两个单元?
消费性市场的 CPU 当中,(a)台式机与(b)手机常用的 CPU 分别是哪种类型?
由图1.1-1 的数据中,请以『Linux』、『X86个人电脑』、『POSIX』、『Open
Office』说明个四个东西各属那一层?
用汇编语言开发出第一个 Unics 系统的,是贝尔实验室 (Bell lab.) 的那一位高级黑客?
贝尔实验室的那两个高级黑客用 C 写成了第一版的 unix 操作系统?
从那一个 Unix 版本开始,Unix 终于可以支持 x86 个人电脑?
号称自由软件之父是哪位先生?而自由软件 (free software) 又是那一个授权的名称?
Torvalds 是参考那一个 Unix-like 的系统而撰写 Linux 的?
查一下网络数据,列出三种以上的 Open source 授权
所谓的 Linux distributions 大概包括那四个组件?
Raspberry pi 的主要操作系统名称为 Raspbian,这个操作系统是基于哪一个 Linux distribution 改版而来?
在 CentOS 7 的缺省情况下,你可以输入哪些组合按钮来进入不同的终端界面 (TTY)
登录取得终端机后,要离开终端机应该使用哪些指令?(至少写两个)
查找列出隐藏档时,可以使用什么指令搭配什么选项?
想要查找自己输入的历史命令,可以使用什么指令?
关机可以使用哪些指令?(至少写两个)
在 /tmp/checking 目录下,有个隐藏档,(a)哪一个指令搭配选项与参数可以列出该文件名(写出完整指令),
(b)写下该文件名
作业结果传输:请以 root 的身分运行 vbird_book_check_unit 指令上传作业结果。
正常运行完毕的结果应会出现【XXXXXX;aa:bb:cc:dd:ee:ff;unitNN】字样。若需要查阅自己上传数据的时间,
请在操作系统上面使用: http://192.168.251.250 检查相对应的课程文件。
修改历史:
2016/04/18:第一堂课,原本还想要教很多东西~发现没时间耶~所以只能讲到这里!
2017/03/05:修改了课后习题,并与云端系统互相搭配处理了。
2019/04/08:很多朋友都来信询问 gocloud 的登录,在此跟大家说抱歉!那个系统是鸟哥上课专用的,没有对外提供注册喔!不好意思!
2019/04/08:根据上述说明,修改的项目定位:这里 ,这里 ,这里 ,这里 。
2016/04/18以来统计人数