命令硬盘安装linux

硬盘安装linux  时间:2021-04-01  阅读:()
第1章初次使用Linux与命令行模式初探Linux是操作系统,操作系统的目的是管理硬件,因此大家需要先了解一下什么是硬件、Linux操作系统到底有哪些东西以及为什么Linux在使用上授权为免费.
了解这些基本内容后,再来实际操作一下Linux的图形用户界面(GUI)与命令行(CommandLine)模式的运行方式,同时查询一下普通用户目录的数据.
Linux的学习确实稍微困难,请大家从这一章仔细地进行操作和实践!
1.
1Linux是什么Linux是安装在计算机硬件系统上的一种操作系统,目的是用来管理计算机硬件的,所以我们需要先了解一下硬件的常见组成部件(简称组件)以及常见的硬件分类,这样才好入门学习Linux.
1.
1.
1硬件与操作系统目前的计算机硬件系统主要是由下面的组件所组成:输入单元:包括键盘、鼠标、卡片阅读机、扫描仪、手写板、触控屏幕等.
鸟哥的Linux基础学习实训教程-2-主机部分:这个就是系统单元,被主机机箱"保护"起来了,里面含有一堆电路板、CPU与主存储器等.
输出单元:例如屏幕、打印机等.
上述主机部分是整体系统最重要的部分,由控制单元、算术逻辑单元以及存储单元(含主存储器、外部存储设备)等组成.
请说明:1.
一般计算机硬件系统组成的五大单元(包含主机部分的三大单元).
2.
标出这五大单元的连接图.
3.
哪个组件对于服务器来说是比较重要的.
目前的计算机硬件架构主要是由中央处理单元(CPU)所定义的各项连接组件所组成的,在目前世界上消费市场中,最常见到的CPU架构大概可以分为两大类:x86架构(用于个人计算机):以Intel/AMD为主要制造厂商,此架构通用于个人计算机(包括笔记本电脑)以及商用服务器(x86服务器)市场上.
2017年Intel在个人计算机市场推出了单个CPU封装内含4核8线程的个人计算机CPU,商用服务器则已经推出10核20线程以上的Xeon商用x86CPU.
ARM架构(手持式设备):由ARM公司所开发的ARMCPU架构,由于其架构较为精简,且可授权其他公司开发,因此当前很多厂商均参考ARM架构进行自身的CPU开发.
ARM通常使用于手持式设备,包括手机、平板电脑等,其他像是平板电脑树莓派(Raspberrypi)等也使用此架构.
为了简化对硬件资源的操作,因此开发了操作系统来管理硬件资源的分配.
故而一般应用程序的开发人员仅需要考虑程序的运行流程,而不必考虑内存的分配、文件系统的读写、网络数据的存取等,所以在程序开发上面更加简易.
硬件、操作系统、操作系统提供的开发接口以及应用程序的相关性,可以使用图1.
1所示的图示来说明.
硬件:例如x86个人计算机以及ARMRaspberrypi(树莓派)就是两种不同的硬件,但x86个人计算机与x86笔记本电脑则是相同的硬件架构!
内核:就是操作系统,该系统内部包含文件系统、网络系统、存储单元管理系统、硬件驱动程序、数据加密机制等子系统.
系统调用:可视为内核提供的一系列函数库,程序设计人员只要参考此部分的系统调用即可设计相关的应用程序,而不用去考虑内核所提供的子系统.
第1章初次使用Linux与命令行模式初探-3-图1.
1硬件与操作系统的关系应用程序:在该系统调用的环境中编写程序代码编译而成的二进制代码(binarycode)程序.
运用图1.
1的四个同心圆,尝试说明当年为何从WindowsXP转到WindowsVista时很多应用程序无法运行.
除了云计算系统软件之外(如office365),大部分的操作系统软件在销售时会告知用户适合的硬件等级,而一般应用软件则会告知用户适用的操作系统,其主要的原因是什么现代的操作系统主要的目的就是在控制和管理硬件资源,并且提供一组开发环境让其他第三方协作厂商便于在该操作系统上面开发相关的软件,故操作系统主要包含的部分是"内核+系统调用".
现代的Linux操作系统主要以可跨硬件平台的C语言所写成,且Linux自从3.
x以来的内核版本已经可以支持ARM的CPU架构,因此Linux可以轻松地在不同的硬件平台间编译后安装.
不过,我们仍然不可以直接把x86架构上编译好的Linux安装在ARM的平台上!
因为两者对各自硬件的设计还是不太相同的.
鸟哥的Linux基础学习实训教程-4-1.
1.
2Linux操作系统的发展历史Linux并非凭空编写而来,其发展有一定的历史背景.
由于这些历史背景,目前Linux是自由软件,可以自由地使用、学习、修改、编译、再发行,而且是相对稳定的操作系统.
1965年以前的计算机系统最早的硬件没有操作系统的概念,后来为了管理方便,有了"多元程序处理系统",之后以多元程序处理系统的概念再开发出了分时兼容系统.
当时的硬件主要是通过大型主机系统,内含分时兼容系统,并提供大约16台文字终端机与主机连接——联机.
当多个用户同时使用文字终端时,需要以分时方式使用主机系统.
1969年以前:一个伟大的梦想——Bell,MIT与GE的"Multics"系统Multics计划希望能够改善以前的大型主机系统,提供至少300台以上的文字终端.
最终虽然成功地开发出Multics系统,但是相对于UNIX而言,Multics的使用率并不高.
1969年:KenThompson的小型文件服务器系统(fileserversystem)参与过Multics计划的Thompson为了移植一套游戏,通过汇编程序编写了一套昵称为Unics的软件,该软件可以控制PDP-7这个硬件主机,提供了小型的文件系统管理功能等.
1973年:UNIX的正式诞生,Ritchie等人以C语言写出了第一个正式UNIX内核Thompson与Ritchie合作,Ritchie编写好C语言后,再以C语言改写Thompson的Unics,最后编译成为一套操作系统.
此系统就被称为UNIX.
由于使用C这个高级程序设计语言编写而成,人们很容易就能看懂程序代码,因此改写、移植程序就变得很简单.
1977年:重要的UNIX分支——BSD的诞生伯克利大学的BillJoy在取得了UNIX的内核源代码后,就着手将它修改成适合自己机器的版本,并且同时增加了很多工具软件与编译程序,最终将它命名为BerkeleySoftwareDistribution(BSD).
1979年:重要的SystemV架构与版权声明Belllab.
(贝尔实验室)的母公司为AT&T公司,AT&T在1979开发了最新的SystemV的UNIX操作系统.
这个系统最特别的地方是,SystemV可以支持当时没有多任务环境的x86个人计算机.
此外,AT&T在1979年发行的第七版UNIX中,特别提到了"不可对学生提供源代码"的严格限制!
1984年之一:x86架构的Minix操作系统开始编写并于两年后诞生SystemV之后,大学老师不可以教授UNIX内核源代码,因此AndrewTanenbaum自己动手写了Minix这个UNIXLike的内核程序!
同时搭配BBS新闻组与相关书籍来销售UNIXLike的程序代码.
因为强调的是学习用的程序代码,所以改版的速度相当缓慢.
第1章初次使用Linux与命令行模式初探-5-1984年之二:GNU计划与FSF基金会的成立RichardMathewStallman(理查德·马修·斯托曼)在1984年发起的GNU计划,目的是想要恢复以前"知识分享的黑客文化",因此强调程序代码需要公开以利学习的自由软件概念,并开发出bash、gcc、glibc、emacs等脍炙人口的软件.
Stallman将所有的软件都上传到网上,对于当时没有网络的朋友也能够通过邮件请Stallman寄送软件磁带,Stallman通过这样销售emacs的"服务费用"赚了点钱(Stallman认为协助人们刻录软件,花费他很多的时间成本),然后成立了自由软件基金会(FreeSoftwareFoundation,FSF),同时与律师共同签署了GNU的通用公共许可证(GeneralPublicLicense,GPL),该授权让用户可以自由地使用软件,而且软件的授权可以永续地存在.
1988年:图形用户界面XFree86计划为了解决图形用户界面(GraphicalUserInterface,GUI)的需求,于是有XFree86这个组织的形成.
XFree86是由XWindowSystem+Free+x86所组成的,目的在于提供server/client的图形化界面.
1991年:芬兰大学生LinusTorvalds的一则短信Torvalds在1991年于BBS上面公告他通过GNU的bash、gcc等,通过学习Minix系统,在x86(386)上面成功地开发了一个小型的操作系统,并且放在因特网(Internet)上面供大家自由下载.
同时,还鼓励大家告知Torvalds他自己,这个系统还有哪些部分可以值得继续修改等信息.
这就是Linux的起源!
1992年:Linuxdistributions发行版为了让用户更方便地安装与操作Linux,于是有了Linux开发工具包的软件发行,就称为Linuxdistribution(Linux发行版)了.
一开始在1992年就有SoftlandingLinuxSystem(SLS)、Yggdr、asilLinux等版本.
1994年:Linuxkernelversion1.
0发布1994年Linux内核1.
0版本发行,同时当前世上最知名的Linux商业公司RedHat也在当时成立了.
2005年:Google公司收购Android公司从2003年开始,加州的一家公司开始开发Android系统并用于手机上.
后来Google公司于2005年收购该公司,并将Android用于Linux内核的开发,以开发出可以让手持式设备使用的操作系统.
首个商用手机Android操作系统在2008年由HTC公司推出!
2012年:教育市场的树莓派(Raspberrypi)为了让小朋友能够轻松愉快地学习程序设计语言,一个小型的单板计算机制造基金会按照ARM的架构开发了一款大约与笔记本电脑用的硬盘差不多大小的主板,内嵌入了计算机系统所需要的硬件,这就是树莓派(Raspberrypi).
树莓派(Raspberrypi)的默认操作系统就是基于Linux内核所开发的小型操作系统.
鸟哥的Linux基础学习实训教程-6-上网找出可以将I/O与CPU分离运行多种程序处理系统,问:其主要架构是通过存储器内的哪些程序状态来实现的这些程序状态运行的情况是什么俗称为"最纯种的UNIX"指的是哪两套UNIX操作系统上网找出:(1)GNU计划的全名;(2)GNU计划的官网;(3)GNU的吉祥物;(4)GNU的内核名称.
1.
1.
3GNU的GPL与Opensource开放源码授权GNU的GPL授权主要强调自由地学习,FreeSoftware(自由软件)是一种自由使用的权利,并非是"价格!
"举例来说,你可以拥有自由呼吸的权利、你拥有自由选择生活方式的权利,但是,这并不代表你可以到处喝"免费的啤酒!
(freebeer)",也就是说,自由软件的重点并不是指"免费"的,而是指具有"自由度,freedom"的软件,史托曼进一步说明了自由度的意义是:用户可以自由地执行、复制、再发行、学习、修改与强化自由软件.
GNU的GPL授权有下面的权利与义务:获取软件与源代码:你可以根据自己的需求来执行这个自由软件.
复制:你可以自由地复制该软件.
修改:你可以将获取的源代码进行修改,使之适合你的工作.
再发行:你可以将你修改过的程序,再度自由发行,而不会与原先的编写者冲突.
反馈:你应该将你修改过的程序代码反馈给自由软件社区!
不可修改授权:你不能将一个GPL授权的自由软件,在你修改后而将它取消GPL授权.
不可单纯以销售为目的:你不能以销售为目的来销售自由软件.
由于自由软件使用的英文为freesoftware,这个free在英文里有两种以上不同的意义,除了自由之外,免费也是这个单词!
因为有这些额外的联想,所以许多的商业公司对于投入自由软件方面确实是有些疑虑存在的!
许多人对于这个情况总是有些担心.
第1章初次使用Linux与命令行模式初探-7-为了解决这个困扰,1998年成立的"开放源代码促进会(OpenSourceInitiative)"提出了开放源代码(OpenSource,亦可简称为开源软件)这一名词.
另外,并非软件可以被读取源代码就可以被称为开源软件!
该软件的授权必须要符合下面的基本条件,才可以算是开源(opensource)的软件.
公布源代码且用户具有修改权:用户可以任意地修改与编译程序代码,这点与自由软件差异不大.
任意地再散布:该程序代码全部或部分可以被销售,且程序代码可成为其他软件的组件之一,作者不该宣称具有拥有权或收取其他额外的费用.
必须允许修改或衍生的作品,且可让再发布的软件使用相似的授权来发表.
用户可使用与原本软件不同的名称或编号来散布.
不可限制某些个人或团体的使用权.
不可限制某些领域的应用:例如不可限制不能用于商业行为或者是学术行为等特殊领域等.
不可限制在某些产品中的使用,亦即程序代码可以应用于多种不同产品中.
不可具有排他条款,例如不可限制本程序代码不能用于教育类的研究中,等等.
如果你自己开发的软件未来可能会有商业化的可能,但目前你希望使用开源(Opensource)的方式来提供给大家使用,同时也希望未来能够有一个保有开放源码软件的分支,那最好使用GPL还是BSD呢1.
1.
4Linuxkernel(Linux内核)Linuxkernel(Linux内核)主要由http://www.
kernel.
org维护,目前的版本已经发展到4.
x版.
Linuxkernel1.
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的架构下继续开发出来的新的主线版本.
旧的版本在新的主线版本出现之后会有两种机制来处理:一种机制为终止开发(EndofLive,EOL),亦即该程序代码已经结束,不会有继续维护的状态;另外一种机制为保持该鸟哥的Linux基础学习实训教程-8-版本的持续维护,亦即长期维护版本(Longterm)!
例如,4.
9即为一个长期维护版本,这个版本的程序代码会被持续维护,若程序代码有bug或其他问题,内核维护者会持续进行程序代码的更新维护.
使用百度或谷歌(google)搜索引擎或wiki等,找出下面的相关资料:Android的版本搭配的Linux内核版本是什么从Linuxkernel官网的"Releases"相关说明,找出现阶段的LinuxMainline、Stable、Longterm版本各有哪些1.
1.
5Linuxdistributions(Linux发行版)为了让用户能够接触到Linux,于是很多的商业公司或非营利团体,就将LinuxKernel(含工具tools)与可运行的软件整合起来,加上自己具有创意的工具程序,这个工具程序可以让用户以光盘DVD或者通过网络直接安装和管理Linux系统.
这个"Kernel+Softwares+Tools+可完全安装程序"的组合,我们称之为Linuxdistribution,一般中文翻译成可完全安装套件,或Linux发布版,或Linux发行版套件等.
常见的Linuxdistributions分类如表1.
1所示.
表1.
1常见的Linuxdistributions分类RPM软件管理DPKG软件管理其他未分类商业公司RHEL(RedHat公司)SuSE(MicroFocus)Ubuntu(CanonicalLtd.
)社群单位FedoraCentOSOpenSuSEDebianB2DGentoo在个人计算机(包括笔记本电脑)上作为一般用途的使用,建议使用Ubuntu/Fedora/OpenSuSE等,若用在服务器上,则建议使用CentOS或Debian.
CentOS的产生较为有趣,它是取自RedHat的RHEL操作系统,将源代码中与RedHat相关的注册商标或其他著作相关的信息删除,改以"社区企业操作系统"为名,然后再次发行.
因此CentOS的版本与RHEL是亦步亦趋的!
(包括OracleLinux与ScientificLinux也是同样的作法.
)第1章初次使用Linux与命令行模式初探-9-为什么CentOS社区可以直接取用RHEL的程序代码来修改而后发布呢这样做有没有任何法律的保护呢1.
1.
6Linux的常见用途用在企业环境与学术环境中,最常见到的应用有:网络服务器.
关键任务的应用(金融数据库、大型企业网络管理环境).
学术机构的高性能运算任务.
个人的使用则有:台式计算机.
便携系统(PDA、手机、平板电脑、掌上电脑等).
嵌入式系统(如树莓派raspberrypi等内建的Linux系统).
超级计算机可以说是一个国力的展现,而Top500每年会有两次调查全世界运行最快的超级计算机.
请上网查询后回答下列问题:(1)Top500的官网网址是什么(2)超级计算机的排名方式是以哪一种计算性能来排名的(3)根据现在的时间,找到最近一次排名的结果,第一名的超级计算机使用了多少颗CPU内核(cores)(4)该系统最快可达到多快的计算性能(说明其单位)(5)若以1度电0.
5元来计算,该系统开机一天要花费多少钱前往戴尔(Dell)官网,调查其支持的Linuxdistribution主要是哪几种另外,请思考一下这个查询的意义是什么(http://linux.
dell.
com/files/supportmatrix/)鸟哥的Linux基础学习实训教程-10-1.
2使用虚拟环境学习Linux操作系统为方便教师/学生可以在任何地方学习Linux操作系统,一个教学环境是需要事先设置好的.
除了使用实体计算机原生的Linux之外,虚拟化的环境更便于教师制作教学单元.
因为虚拟化的环境软/硬件可以仿真得完全一致,对于教师与学生的实践练习以及错误重现都有很大的帮助.
大家可以使用Oracle(甲骨文)公司的VirtualBox环境来建立训练环境.
VirtualBox是Oracle公司根据GPL授权所发布的虚拟化软件,所以我们可以自由地从网络上面下载最新的软件来安装.
安装并设置好虚拟机教学环境对于不同学校或单位以及个人的情况,可以有以下三种情况来安装并设置好虚拟机教学环境.
(1)如果可以使用学校或单位的计算中心来进行教学,就可以让计算中心的管理员替老师们设置好这个Linux操作系统的教学环境,而不必进行多重操作系统的规划,只要将VirtualBox安装妥当,并且将镜像文件(img)放置好,同时设置好整个VirtualBox启动虚拟机的流程,直接将学生上机用的Windows系统做成恢复硬盘,之后学生们就可以在系统开机启动后直接使用了.
(2)假设参加学习的个人已经具有LinuxServer,并且自己的计算机硬件系统(包含BIOS)也已经设置好了虚拟化的支持,此时只需要安装libvirtd这个服务,同时加上qemu-kvm这个软件,以及qemu-img这个软件,就可以开始进行Linux练习和实践系统的设置了.
这样的操作系统会跟本训练教材的内容一模一样,跟着教材做也会比较顺畅.
如果手边有一台支持虚拟化的主机可以用于本书的学习,就直接从网络上下载CentOS7的DVD镜像文件,然后跟着本书的章节,使用支持GUI的服务器安装方式,安装完毕之后,立刻就能够使用LinuxKVM的虚拟化软件了!
(3)如果大家只有支持虚拟技术的Windows系统,就要在Windows系统中启用虚拟机的支持功能,就是在Windows系统上虚拟化Linux系统来提供给学生们上机练习和实践,因此主机系统(host)就是Windows操作系统,虚拟机(VM)内的guestOS(虚拟操作系统)就是Linux操作系统.
下载并安装VirtualBox虚拟机软件.
VirtualBox的官网网址为https://www.
virtualbox.
org/.
VirtualBox安装完成后,就可以设置我们的教学环境了.
在VirtualBox中创建虚拟机,第1章初次使用Linux与命令行模式初探-11-进行相应的设置,比如虚拟机的名称和操作系统、内存大小、硬盘大小等.
最关键的是选用正确的Linux镜像文件.
如果我们未来想要重复操作这个训练系统,请自行将这个文件复制多份,出错了将"硬盘"复制或者恢复"硬盘"即可.
如果一切顺利,Linux虚拟机就创建完毕了.
有关VirtualBox下载和安装的详细步骤不是本书的重点,请大家参考相关的书籍或者上网查阅相关的资料.
本书使用的是Linux发行版之一CentOS,可从CentOS的官网(https://www.
centos.
org/download/)下载.
1.
3第一次登录CentOS7本节就来学习如何登录Linux、了解图形用户界面、文本用户界面的操作差异,并建立好"良好的操作习惯".
本教材选用了Linux发行版之一的CentOS操作系统来教授大家学习Linux在服务器上的使用,请大家按照教材的内容慢慢实践和练习,以便熟练掌握Linux整个系统的操作!
1.
3.
1在图形用户界面中使用CentOS启动CentOS虚拟机后,就会出现等待登录的界面,如图1.
2所示.
图1.
2CentOS7的登录界面鸟哥的Linux基础学习实训教程-12-单击出现的人名(账号),然后输入密码,即可登录系统.
单击"Notlisted":接下来出现"Username",请填写账号,单击"Next"按钮后出现"Password:",请输入正确的密码,然后单击"SignIn"即可登录系统.
本教材在教学范例中所提供的虚拟机账号与密码为"student/student@linux",请根据此账号密码来登录系统.
请在第一次登录系统时处理好中文的操作界面!
同时,根目录下的文件名最好不要有中文.
1.
根据教材提供的账号密码登录系统:选择student账号,然后输入密码.
2.
第一次登录时,会出现选择用户语言的界面,请单击最下面的未知(三个直立的小数点),然后将界面拉动到下方,即可看到"汉语(中国)",选中后,在界面的右上方单击"下一步"按钮.
3.
选择默认的输入法为"英语(美式)",然后单击"下一步"按钮.
4.
单击"开始使用CentOSLinux".
5.
出现第一次的使用说明(GettingStarted),可以直接忽略,单击右上方的"关闭"(X)按钮即可.
6.
此时界面依旧是英文的,请选择屏幕右上方的三角形按钮,单击"Student"这个身份按钮,界面中会出现"Logout"的选项,单击"LogOut"从系统注销.
7.
再次以student账号登录系统,即可看到正确的中文操作环境.
如果一切处理顺利,就会出现图形化的窗口.
依次选择"应用程序"→"偏好"→"终端",就会显示一个终端程序的界面,然后单击界面右上角的三角形,就能够看到一些设置值的选项,如图1.
3所示.
第1章初次使用Linux与命令行模式初探-13-图1.
3CentOS7图形用户界面的示意图在图形用户界面下先尝试进行目录与文件的管理,这时请使用最上方任务栏"应用程序"旁边的"位置"菜单,单击"根目录"选项,之后进行如下的操作测试:改变显示的文件信息,在"缩图"与"详细信息"当中切换测试.
在"详细信息"的界面中,如果要显示更多的信息,可以勾选哪些设置若需要离开根目录到其他目录,勾选左侧的"计算机"选项,看看有哪些基本的目录.
按序单击"var"→"spool"→"mail"选项,会出现什么信息呢文件管理器最上方出现的文件名方式的排列如何尝试找到"计算机→etc→passwd"这个文件,将它复制后,变更路径到"计算机→tmp"之下,然后把这个粘贴进去.
接上一步,能不能将"计算机→etc→shadow"复制到"计算机→tmp"目录中呢默认的中文输入法似乎怪怪的,没有办法正确地输入中文.
你该如何设置中文输入法呢鸟哥的Linux基础学习实训教程-14-1.
单击屏幕右上方的三角形按钮,在弹出的小窗口中用鼠标单击其左下角的螺丝工具图标.
2.
在"个人"选项中,单击"区域和语言"选项.
3.
一开始只会看到"英语(美式)"与"汉语",单击"+"按钮之后,选择"汉语(中国)",再选择"汉语(IntelligentPinyin)",最后单击"添加"按钮.
4.
将原本的"汉语"选项删除.
之后就可以正常地使用"智能拼音"输入法了.
1.
如何关掉进入屏幕保护程序的状态2.
如何查看与启动网络3.
将student从系统中注销.
在使用图形用户界面时,会在用户的根目录创建相当多的图形用户界面操作配置文件与暂存文件.
不过,在系统管理员(root)的角色下,我们希望不要有太多杂乱的信息,因此建议"不要在图形环境下使用root的账号登录系统".
你可以在其他的登录界面使用root的账号,如下一个小节介绍的纯文本模式.
1.
3.
2文本/图形用户界面的切换Linux在默认的情况下会提供六个终端(Terminal)来让用户登录,切换的方式为使用【Ctrl】+【Alt】+【F1】~【F6】的组合键.
系统会将【F1】~【F6】对应的终端程序命名为tty1~tty6的环境操作界面.
也就是说,当我们按下【Ctrl】+【Alt】+【F1】组合键时(按住【Ctrl】与【Alt】键不放,再按下【F1】功能键),就会进入tty1"终端"程序的界面中了.
同样的,【F2】对应的终端就是tty2.
按下【Ctrl】+【Alt】+【F1】组合键就可以回到原来的X图形用户界面中.
登录环境的界面切换功能如下:【Ctrl】+【Alt】+【F2】~【F6】:文本用户界面登录的tty2~tty6终端.
【Ctrl】+【Alt】+【F1】:图形用户界面的桌面.
第1章初次使用Linux与命令行模式初探-15-请使用student的身份在tty2的界面中登录系统:CentOSLinux7(Core)Kernel3.
10.
0-327.
el7.
x86_64onanx86_64localhostlogin:studentPassword:usr/bindr-xr-xr-x.
4rootroot40962月1803:01bootdrwxr-xr-x.
20rootroot33204月1903:59devdrwxr-xr-x.
129rootroot81924月1903:59etcdrwxr-xr-x.
3rootroot204月1419:46homelrwxrwxrwx.
1rootroot72月1802:54lib->usr/liblrwxrwxrwx.
1rootroot92月1802:54lib64->usr/lib64.
.
.
.
.
.
此时屏幕上显示的为根目录下的文件,而不是student的根目录了.
这个练习是让操作者了解:命令后面可以加参数(parameter).
如果想要知道student根目录下有没有"隐藏文件"时,可以使用如下命令:[student@localhost~]$ll-a总计24drwx------.
14studentstudent40963月721:32.
drwxr-xr-x.
3rootroot211月322:27.
.
-rw-r--r--.
1studentstudent188月32016.
bash_logout-rw-r--r--.
1studentstudent1938月32016.
bash_profile-rw-r--r--.
1studentstudent2318月32016.
bashrcdrwx------.
11studentstudent2263月722:12.
cache鸟哥的Linux基础学习实训教程-18-drwxr-xr-x.
15studentstudent2763月721:29.
configdrwxr-xr-x.
2studentstudent63月719:18Desktop.
.
.
.
.
.
可以发现多了相当多以小数点开头的文件,这些文件在ls或ll时并不会出现,但加上"-a"这个"选项(Option)"之后,就会开始出现了.
这个练习让操作者了解:命令后面可以加"选项"来改变命令的处理方式.
最后,如果我们想要知道根目录本身的权限,而不是查看根目录下的文件,则应该使用下面的命令:[student@localhost~]$ll-d/dr-xr-xr-x.
17rootroot40962月1803:01/我们将在屏幕上发现只显示出根目录(/)这个文件,而不像前面的"ll/"显示出一堆文件信息.
在一般情况下,ll命令的作用是"浏览目录内的文件信息",而不是查看目录本身.
以Windows的文件资源管理器来说,通常在显示文件的浏览界面中,左侧为"目录"而右侧为"该目录下的文件",所以,"ll"代表用鼠标单击左边的目录,而在屏幕右边输出文件信息.
在终端程序界面中输入"clear"命令会有什么效果检查一下/var/spool/mail这个目录,(1)里面有几个文件(2)这个目录本身所修改的时间是什么时候1.
4.
2历史命令的功能在Linux的文本用户界面中,可以用几个简单的方式去检查我们曾经下达过的命令,最简单的方法就是使用【↑】与【↓】方向键,这样不但能够调用出之前下达过的命令,也能第1章初次使用Linux与命令行模式初探-19-够再通过【←】与【→】方向键,以及键盘上的【home/end】键直接在一行命令的最前面与最后面进行修改.
熟悉这个方法,可以让我们快速地编辑一行命令.
如果是太久之前执行的命令,则可以通过历史命令"history"把它们调用出来.
在student账号中调用出历史命令,查看一下曾经执行过ll/的命令是"第几个",若想要再次执行,应该如何处理除了"!
数字"可以重复执行某个命令外,也能够直接通过下面的方式来重复执行历史命令:在CentOS7中,默认的历史命令会记录1000条,当我们下次登录后,系统会将上次的历史命令导入.
假如上次我们下达过50个命令,则下次启用"终端"程序后,第一个命令会记录在51条.
因此,用history可以让操作者查询以前曾经下达过哪些命令.
在student账户中曾经输入过ls这个命令,我们想要重新执行一次以ls为开头的命令该如何处理1.
4.
3从系统中退出与关闭系统从系统中退出(或离开系统),以"终端"程序的界面来说,直接输入exit或者logout都可以.
以图形用户界面来说,单击界面中右上角的三角形后,就会出现登录者(student)的文字,单击登录者后选择"注销"即可,但注销不是关机.
关机时,最好能够确认系统上面没有其他处于登录状态还在工作的用户.
因此在关机前,建议大家检查一下系统上面的用户状态.
[student@localhost~]$w04:59:07up1:53,3users,loadaverage:0.
00,0.
01,0.
05USERTTYFROMLOGIN@IDLEJCPUPCPUWHATstudent:0:003:59xdm23.
56s0.
14sgdm-session-workerstudentpts/0:003:5959:310.
03s0.
03sbash在上面的显示中,"USER"字段为登录的用户,"TTY"就是前面谈到的"终端"程序,通常为tty1~tty6.
但是,在tty1使用图形用户界面登录时会显示为":0",即表示图形用户界面使用"终端"程序名称为:0之意.
另外,每行最后的"WHAT"为该"终端"鸟哥的Linux基础学习实训教程-20-程序当前使用的命令是什么.
图形用户界面为通过gdm-session-worker命令而来,而"终端"程序则使用bash这个程序.
至于pts/0,则可能是在图形用户界面启动的"终端"程序,或通过网络连接登录进来的"终端"程序,并非本机的tty1~tty6.
从上面的用户状态来看,当前确实仅有student处于"在线"状态,若本台计算机并非服务器,则此时应该可以执行关机的操作.
关机可以使用如下命令:[student@localhost~]$poweroff[student@localhost~]$halt[student@localhost~]$shutdown-hnow[student@localhost~]$systemctlpoweroff上述的任何一个命令均可关机,但无论使用哪个命令关机,其实最终都是调用最后一条,即"systemctlpoweroff"执行关机的操作.
在本机通过tty1~tty6登录系统的账号,无论是系统管理员或普通账号,均可关闭(poweroff)本机.
但是,如果是通过网络连接登录进来的,则无法关闭Linux,除非使用管理员账号,才有权通过网络关机.
1.
5课后操作练习简答题:1.
计算机组成的五大单元指的是哪什么CPU主要包含哪两个单元2.
消费市场的CPU当中,台式计算机与手机常用的CPU分别是哪种类型3.
参考图1.
1,以"Linux""x86个人计算机""POSIX""OpenOffice"说明这四项各属哪一层.
4.
用汇编语言开发出第一个Unics系统的,是贝尔实验室(Belllab.
)的哪一位"高手"5.
贝尔实验室的哪两位"高手"用C语言写成了第一版的Unix操作系统6.
从哪一个Unix版本开始,Unix终于可以支持x86个人计算机7.
号称自由软件之父是哪位先生自由软件(freesoftware)又是哪一个授权的名称8.
Torvalds是参考哪一个Unix-like的系统而编写Linux的9.
查一下网络,列出三种以上的开源(Opensource)授权.
第1章初次使用Linux与命令行模式初探-21-10.
所谓的Linuxdistributions(Linux发行版)大概包括哪四个组件11.
树莓派(Raspberrypi)的主要操作系统名称为Raspbian,这个操作系统是基于哪一个Linuxdistribution改版而来的12.
在CentOS7的默认情况下,可以利用哪些组合键来进入不同的"终端"程序(TTY)13.
登录进入"终端"程序后,要退出"终端"程序应该使用哪些命令(至少写两条).
14.
查询并列出隐藏文件时,可以使用什么命令搭配什么选项15.
想要查询自己输入的历史命令,可以使用什么命令16.
关机可以使用哪些命令(至少写两条)17.
在/tmp/checking目录下有一个隐藏文件,哪一个命令搭配选项与参数可以列出该文件(写出完整的命令)写下该文件名.
第2章命令的执行与基本的文件管理前一章最后讲到在文本用户界面中执行命令,在本章中我们将更详尽地实践一下在文本用户界面中执行命令的操作.
另外,了解了命令的执行之后,接着就在bash环境下实践文件管理的操作.
2.
1在文本用户界面的"终端"程序中的操作其实我们都是通过"程序"与系统进行沟通.
以文本用户界面模式登录后所进入的程序被称为外壳(Shell),或称为命令行、命令解释器.
这是因为这个程序相对于系统内核而言,在最外层负责与用户(我们)进行沟通,所以俗称为外壳程序或壳程序.
CentOS7的默认外壳程序为bash,建议用户建立良好的操作习惯,以便更好地掌握Linux的使用.
2.
1.
1在文本用户模式中下达命令的方式在bashshell环境下,命令的下达需要注意几个地方:[student@localhost~]$command[-options][parameter1.
.
.
]第2章命令的执行与基本的文件管理-23-一行命令中第一个输入的部分是命令(command)或是可执行文件(例如script).
"command":为命令的名称,例如切换工作目录的命令为cd等.
中括号"[]"不在实际的命令中,仅作为一个提示,可有可无之意.
"-options":为选项,通常选项前面会带有减号(-),例如-h.
options有时会提供长选项,此时会使用两个减号,例如--help.
注意,选项-help通常代表-h-e-l-p之意,与--help的单一长选项不同.
"parameter1.
.
.
":参数,为依附在选项后面的参数,或者是command的参数.
命令、选项、参数之间都以空格或制表符(tab)隔开,无论空几格都视为一格,故空格符是特殊字符.
【Enter】按键代表一行命令开始启动.
在Linux中,是区分英文大小写的,例如cd与CD是不同的命令.
前一章我们使用过ls与ll这两个简易的命令来查看文件,如果想要知道当前的时间,或者是格式化输出的时间,可使用date这个命令来处理.
[student@localhost~]$date四4月2102:43:24CST2016因为student选择中文的关系,所以屏幕上出现的就是中文的星期四与月日.
若需要格式化的输出,就得加上特别的选项或参数,例如我们常用2016/04/21这样的日期输出格式,此时所下达的命令如下:[student@localhost~]$date+%Y/%m/%d2016/04/21上述的选项部分(+%Y/%m%d)基本上不太需要死记,可以使用在线查询的方式查看选项的细节.
最简单的处理方式就是通过--help这个长选项来查询各个选项的功能,如下所示:[student@localhost~]$date--helpUsage:date[OPTION].
.
.
[+FORMAT]or:date[-u|--utc|--universal][MMDDhhmm[[CC]YY][.
ss]]DisplaythecurrenttimeinthegivenFORMAT,orsetthesystemdate.
Mandatoryargumentstolongoptionsaremandatoryforshortoptionstoo.
-d,--date=STRINGdisplaytimedescribedbySTRING,not'now'-f,--file=DATEFILElike--dateonceforeachlineofDATEFILE-I[TIMESPEC],--iso-8601[=TIMESPEC]outputdate/timeinISO8601format.
TIMESPEC='date'fordateonly(thedefault),鸟哥的Linux基础学习实训教程-24-'hours','minutes','seconds',or'ns'fordateandtimetotheindicatedprecision.
-r,--reference=FILEdisplaythelastmodificationtimeofFILE-R,--rfc-2822outputdateandtimeinRFC2822format.
Example:Mon,07Aug200612:34:56-0600--rfc-3339=TIMESPECoutputdateandtimeinRFC3339format.
TIMESPEC='date','seconds',or'ns'fordateandtimetotheindicatedprecision.
Dateandtimecomponentsareseparatedbyasinglespace:2006-08-0712:34:56-06:00-s,--set=STRINGsettimedescribedbySTRING-u,--utc,--universalprintorsetCoordinatedUniversalTime(UTC)--help显示此帮助说明并退出--version显示版本信息并退出FORMATcontrolstheoutput.
Interpretedsequencesare:%%aliteral%%alocale'sabbreviatedweekdayname(e.
g.
,Sun)%Alocale'sfullweekdayname(e.
g.
,Sunday)%blocale'sabbreviatedmonthname(e.
g.
,Jan).
.
.
.
.
.
.
.
如此即可查询到有关%Y、%m、%d选项使用的说明.
1.
如果需要输出"小时:分钟"的格式,要如何执行命令2.
请直接输入命令"date+%s",参照--help功能,查询一下输出的信息是什么3.
查询一下--help的功能后,如果要显示两天以前的"+%Y/%m/%d",要如何下达命令4.
如果需要显示出"公元年-日-月小时:分钟"的格式,日期与时间中间有一个空格,该如何下达命令如果想要知道年历或者月历,可以通过cal这个命令来查询.
使用cal搭配cal--help查询相关选项,完成下面的题目.
1.
显示当前这个月份的月历.
第2章命令的执行与基本的文件管理-25-2.
显示今年的年历.
3.
显示前一个月、本月、下一个月的月历.
2.
1.
2身份切换命令su-的使用继续来执行一下date这个命令.
执行date--help后,可以发现语法有两种情况,如下所示:[student@localhost~]$date--helpUsage:date[OPTION].
.
.
[+FORMAT]or:date[-u|--utc|--universal][MMDDhhmm[[CC]YY][.
ss]]DisplaythecurrenttimeinthegivenFORMAT,orsetthesystemdate.
命令说明当中,可以是"Display(显示)"也可以是"set(设置)"日期.
语法(Usage)的第一行是显示日期,第二行当然就是设置日期了.
如果使用student身份来设置日期,会有什么情况呢[student@localhost~]$date042211072016date:cannotsetdate:OperationnotpermittedFriApr2211:07:00CST2016[student@localhost~]$dateFriApr2219:05:17CST2016可以发现并没有变更到正确的日期(第二个date命令用于确认有没有变更成功,因为两者日期不同,因此确认没有成功).
而且date也明白地告诉用户,当前的用户没有权限(Operationnotpermitted)!
因为日期的设置只有系统管理员才能够完成.
此时我们就得切换身份成为系统管理员(root)才行.
方法如下:[student@localhost~]$su-密码:上一次登录:四4月2102:42:42CST2016在tty2[root@localhost~]#本系统root的密码为centos7,因此在"密码:"后面输入centos7之后,我们就可以发现用户的身份变换成为root了!
此时再次使用date来查看日期能否被设置为正确的日期.
[root@localhost~]#date042211142016FriApr2211:14:00CST2016[root@localhost~]#date鸟哥的Linux基础学习实训教程-26-FriApr2211:14:02CST2016我们可以发现上面两个命令的执行相差约2秒钟,因此输出的信息就会有两秒钟的时间差.
不过,日期确实被变更成为当前的状态.
如果需要完整地设置系统时间,则需要使用hwclock-w命令写入BIOS时钟.
(由于虚拟机的BIOS也是虚拟的,因此不需要使用hwclock写入.
)另外,root的身份是作为系统管理所需要的身份(具有相应的权限),因此做完任何系统维护操作之后,最好回到普通用户的身份.
(这个习惯请务必养成!
)1.
为何当我们使用su-切换为root之后,想要使用【↑】和【↓】方向键去调用刚刚下达的date0421.
.
.
命令时会调用不出来呢2.
要如何退出root再次成为student2.
1.
3切换语言的功能由于我们的系统环境使用的是中文,因此在日期的输出方面可能就是以中文为主.
如果想要显示为英文的年月时,就要修改一个变量,如下所示:[student@localhost~]$date五4月2211:24:09CST2016[student@localhost~]$LANG=en_US.
utf8[student@localhost~]$dateFriApr2211:24:46CST2016我们可以发现日期输出已经变更为英文方式!
LANG是设置语言的变量.
我们经常使用的语言有中文与英文的万国码(Unicode)两种.
当然,比较旧的信息可能需要使用GB编码,所以我们常见的语言设置有:zh_CN.
utf8zh_CN.
GB2312zh_CN.
GB18030en_US.
utf8有关语言的变化其实有两个变量可以使用,除了常用的LANG之外,也可以通过LC_ALL来变更.
不过,一般建议使用LANG即可.
查阅当前语言的方法为:第2章命令的执行与基本的文件管理-27-[student@localhost~]$echo${LANG}en_US.
utf81.
将语言调整为默认的zh_CN.
utf8.
2.
输入locale,查阅一下当前系统上所有使用的各项信息输出的语言为何.
3.
使用locale--help,查询一下哪个选项可以列出当前系统所支持的语言.
4.
请列出所有语言,但是在纯文本模式(tty2~tty6)情况下,语言信息量太大,又没有鼠标滚轮可以使用,此时可以使用哪些组合键来显示之前的屏幕界面5.
若想要让命令提示符出现在第一行(屏幕最上方),可以输入哪一个命令来清空2.
1.
4常见的热键与组合键除了前面谈到的可以上下移动屏幕画面的组合键之外,在纯文本模式(bashshell)的环境下,建议读者一定要熟记经常应用的热键与组合键,列举如下:【Tab】键:可以用于命令补齐,可以用于文件名补齐,也可以用于变量名称补齐.
【Ctrl】+【C】:中断一个运行中的命令.
【Shift】+【PageUp】,【Shift】+【PageDown】:上下移动屏幕界面.
1.
系统中以if和ls作为开头的命令各有哪些2.
有一个以ifco为开头的命令,你可以找到这个命令名称吗3.
执行一个命令"find/",这个命令输出很乱,该如何中断这个命令的执行呢4.
执行一个命令"ls'",因为不小心多按了一个单引号,导致命令执行很怪异,如何中断它5.
想要"ll–d"查看一下/etc/sec开头的文件有哪些,该怎么做6.
到底有多少变量是由H开头的如何使用echo去查阅2.
1.
5在线求助方式Ll、ls、date、cal均可使用--help来查询语法与相关的选项、参数数据,但某些命令没有办法显示详细的信息.
例如下面的小算盘命令:鸟哥的Linux基础学习实训教程-28-[student@localhost~]$bcbc1.
06.
95Copyright1991-1994,1997,1998,2000,2004,2006FreeSoftwareFoundation,Inc.
ThisisfreesoftwarewithABSOLUTELYNOWARRANTY.
Fordetailstype`warranty'.
1+2+3+4101/30quitbc命令为Linux纯文本界面下的小算盘,我们可以使用bc--help查询到相关的选项信息,但是如上所示,加减乘除的符号,还有小数点位数,以及退出(quit)等信息,则没有显示在--help的输出界面中.
Linux提供了一个名为manualpage(手册页)的功能,我们可以将manual命令缩写为man来查询,如下所示:[student@localhost~]$manbcbc(1)GeneralCommandsManualbc(1)NAMEbc-AnarbitraryprecisioncalculatorlanguageSYNTAXbc[-hlwsqv][long-options][file.
.
.
]DESCRIPTIONbcisalanguagethatsupportsarbitraryprecisionnumberswithinter‐activeexecutionofstatements.
TherearesomesimilaritiesinthesyntaxtotheCprogramminglanguage.
Astandardmathlibraryisavailablebycommandlineoption.
Ifrequested,themathlibraryisdefinedbeforeprocessinganyfiles.
bcstartsbyprocessingcodefromallthefileslistedonthecommandlineintheorderlisted.
Afterallfileshavebeenprocessed,bcreadsfromthestandardinput.
Allcodeisexecutedasitisread.
(Ifafilecontainsacommandtohalttheprocessor,bcwillneverreadfromthestandardinput.
).
.
.
.
.
.
.
OPTIONS-h,--helpPrinttheusageandexit.
-i,--interactiveForceinteractivemode.
第2章命令的执行与基本的文件管理-29-.
.
.
.
.
.
.
VARIABLESTherearefourspecialvariables,scale,ibase,obase,andlast.
scaledefineshowsomeoperationsusedigitsafterthedecimalpoint.
Thedefaultvalueofscaleis0.
ibaseandobasedefinetheconversionbaseforinputandoutputnumbers.
Thedefaultforbothinputandoutputisbase10.
last(anextension)isavariablethathasthevalueofthelastprintednumber.
Thesewillbediscussedinfurtherdetailwhereappropriate.
Allofthesevariablesmayhavevaluesassignedtothemaswellasusedinexpressions.
.
.
.
.
.
.
.
-exprTheresultisthenegationoftheexpression.
++varThevariableisincrementedbyoneandthenewvalueistheresultoftheexpression.
--varThevariableisdecrementedbyoneandthenewvalueistheresultoftheexpression.
var++Theresultoftheexpressionisthevalueofthevariableandthenthevariableisincrementedbyone.
var--Theresultoftheexpressionisthevalueofthevariableandthenthevariableisdecrementedbyone.
expr+exprTheresultoftheexpressionisthesumofthetwoexpressions.
.
.
.
.
.
.
.
AUTHORPhilipA.
Nelsonphilnelson@acm.
orgACKNOWLEDGEMENTSTheauthorwouldliketothankSteveSommars(Steve.
Sommars@att.
com)forhisextensivehelpintestingtheimplementation.
Manygreatsug‐gestionsweregiven.
Thisisamuchbetterproductduetohisinvolvement.
GNUProject2006-06-11bc(1)鸟哥的Linux基础学习实训教程-30-通过这个man命令可以调出比较详细的信息,在该界面中,我们可以使用下面的按键来移动屏幕,以便显示整份文件的不同位置:【enter】:往文件后面移动一行.
【PageUp】/【PageDown】:往文件前/后移动一页.
【↑】【↓】方向键:往文件前/后移动一行.
【g】:移动到整份文件的第一行.
【G】:移动到整份文件的最后一行.
【q】:退出manpage(手册页).
有兴趣的话,可以自己慢慢地阅读manpage.
如果是短时间要查询重要的项目,例如我们需要调整输出的小数点位数(scale)时,可以"到整份文件的第一行,然后输入斜线/,再输入关键词",随后manpage就可以帮我们找关键词.
/keyword:这个命令用于在manpage中找到关键词.
n:往整份文件的后面继续找关键词.
N:往整份文件的前面继续找关键词.
1.
在bc的执行环境中,让1/3的计算结果可以输出.
3333这样的格式.
2.
在manbc中,查找关键词"pi=",然后在bc的环境中,算出pi的小数点后50位数的结果.
3.
在bc的环境下,算出1000/17的"余数(remainder)".
4.
在mandate中,找到第一个范例(Example),并说明该命令的意义.
manpage(手册页)除了上述的功能之外,其实manpage的第一行也显示了该命令/文件的功能,例如BC(1)代表的是1号manpage,大概共有9种manpage代号,其意义如表2.
1所示.
表2.
1manpage代号代号代表内容1用户在shell环境中可以执行的命令或可执行文件2系统内核可调用的函数与工具等3一些常用的函数(function)与函数库(library),大部分为C的函数库(libc)4设备文件的说明,通常在/dev下的文件5配置文件或者是某些文件的格式第2章命令的执行与基本的文件管理-31-(续表)代号代表内容6游戏(games)7惯例与协议等,例如Linux文件系统、网络协议、ASCII编码等说明8系统管理员可用的管理命令9与kernel有关的文件上面表格中的内容可以使用"manman"来获得更详细的说明.
我们知道与passwd有关的有两处,一个是配置文件/etc/passwd,一个是更改密码的命令/usr/bin/passwd,如何分别查询两个passwd的manpage呢2.
1.
6管道命令的应用从前几小节的练习中,有时候我们会发现几种情况:(1)命令输出的信息量常常很大,一整屏幕显示不下,就连使用【shift】+【pageup】组合键也没有办法全部看完;(2)在执行manbc命令时,找pi=项的范例,其中提到在文本用户界面下,通过某些方式可以不进入bc而能计算pi!
尤其是第2项,里面就谈到那个"|"的符号,这个符号称为"管道(pipe)".
它的作用是"将前一个命令输出的结果作为后面的命令的输入来处理".
下面我们来谈谈该命令的含义:[student@localhost~]$echo"scale=10;4*a(1)"|bc-l如果我们将上面的命令分成两个部分来看,第一部分先执行"echo"scale=10;4*a(1)"",就可以发现在屏幕上会输出"scale=10;4*a(1)"的字样,echo这个命令很直截了当地将后续的信息当成文字信息输出到屏幕上.
这些信息之后被带入bc命令中,即直接在bc的环境中进行scale=10;4*a(1)的运算.
有两个命令常用于大量信息输出时的片段展示,那就是more与less.
more会一页一页地翻看,但是无法向前回去查询之前的界面.
至于less,就类似于manpage操作环境中的使用方式.
1.
分别通过more与less将ll/etc的结果一页一页地翻看.
鸟哥的Linux基础学习实训教程-32-2.
尝试找到passwd相关的字样.
3.
使用find/etc的命令,但是将结果交给less来查询.
4.
使用的身份为student时,能否找到错误信息呢5.
通过管道的功能,计算出一年365天共有几秒钟并不是所有的命令都支持管道命令的,例如之前谈到的ls、ll、find或本章稍晚会提到的cp、mkdir等命令.
除了使用|less的功能加上斜线"/"来找到关键词之外,我们也可以通过grep来查找关键词!
如果要使用ll/etc/找出有passwd关键词的"那一行",可以执行如下命令:[student@localhost~]$ll/etc/|grep'passwd'1.
以ifconfig命令来查看系统中所有网卡的IP.
2.
使用管道命令搭配grep来查找关键词,以取出有IP的那行信息.
2.
2Linux文件管理初探在Linux系统中,文件管理的功能是必不可少的,包括创建目录与文件、复制与移动文件、删除文件与目录等.
另外,读者也应该要知道在Linux系统中,哪些目录是正规系统会存在的,以及该目录应该存放哪些信息和数据等.
2.
2.
1Linux目录树系统简介所有的Linuxdistributions(Linux发行版)理论上都应该遵循当初Linux开发时所规范的各项标准,其中之一就是文件系统层次标准(FilesystemHierarchyStandard,FHS).
不过,FHS只是一个基本建议,具体实现还是让各个发行版保有自由设计的权利.
无论如何,FHS还是规范了根目录、/usr和/var这三个目录内应该要存放的内容.
CentOS7的目录规范与以前的CentOS6差异颇大,详细的内容还请参考相关文件,第2章命令的执行与基本的文件管理-33-下面仅就各个目录中应该要存放的内容做个基本的说明.
请自行执行"ll/"命令并对照表2.
2和表2.
3的相关说明.
表2.
2必须了解的目录目录名称应存放的文件(必须了解这些)/bin/sbin/bin主要存放普通用户可执行的命令/sbin主要存放系统管理员可执行的命令这两个目录目前都是链接文件,分别链接到/usr/bin、/usr/sbin目录/boot与系统开机启动有关的文件,包括内核文件/启动管理程序与配置文件/dev是device的缩写,存放设备文件,包括硬盘文件、键盘鼠标终端文件等/etc一堆系统配置文件,包括账号、密码与各种服务软件的配置文件等大多在此目录内/home/root/home是普通账号的根目录默认的存放位置/root是系统管理员的根目录/lib/lib64系统函数库与内核函数库,其中/lib包含内核驱动程序,而其他软件的函数库若为64位,则使用/lib64目录中的函数库文件.
这两个目录目前也都是链接到/usr/lib、/usr/lib64/proc将内存中的数据做成文件类型,存储在这个目录中,连同某些内核参数也可以手动调整/sys与/proc类似,是与硬件相关的参数/usr是usr不是user!
是UNIXsoftwareresource(UNIX软件资源)的缩写,与UNIX程序有关.
从CentOS7开始,系统相关的所有软件、服务等均存放在这个目录中了,因此不能与根目录分离/var是一些可变数据,系统运行过程中的服务数据、暂存数据、登录数据等/tmp一些用户操作过程中会启用的暂存盘,例如X软件相关的数据等Linux是由工程师开发的,许多的目录也沿用了UNIX的规范,UNIX也是工程师开发的,所以许多目录的命名通常就与该目录要存放的数据有点相关性.
例如bin、sbin就是指binary(二进制程序)、systembinary(系统的二进制程序).
表2.
3用到后知道的目录目录名称应存放的文件(以后用到就知道了)/media/mnt/media主要是系统上临时挂载使用的设备(如即插即用USB)的惯用目录/mnt主要是用户或管理员自行暂时手动挂载的目录/opt/opt是optional(可选的)的意思,通常存放第三方厂商所开发的软件/run系统进行服务软件运行管理的功能,CentOS7以后,这个目录也存放在内存当中了/srv通常是给各类服务(service)存放数据的目录另外,在Linux环境下,所有的目录都是根目录(用/表示)衍生出来的,从根目录开始编写的文件名也就被称为"绝对路径".
在磁盘规划方面,若需要了解磁盘与目录树的搭配情况,可以使用df(DisplayFilesystem,显示文件系统)的软件来查阅:鸟哥的Linux基础学习实训教程-34-[student@localhost~]$df文件系统1K-区段已用可用已用%挂载点/dev/mapper/centos-root104755204024880645064039%/devtmpfs1008980010089800%/devtmpfs10244809610243841%/dev/shmtmpfs1024480898810154921%/runtmpfs1024480010244800%/sys/fs/cgroup/dev/sda2208691215021619366968%/boot/dev/mapper/centos-home31354884136830941202%/hometmpfs204900202048801%/run/user/1000上面最左侧为文件系统,最右侧是挂载点.
挂载点有点类似Windows系统的C:、D:、E:等驱动器.
在Linux中,所有的文件都是从目录树分出来的,因此文件系统也需要与目录结合在一起.
以上面的内容来说,"当我们进入/boot这个目录时,就可以看到/dev/sda2这个设备的内容".
此外,系统也已经将内存仿真成文件系统,让用户可以将暂存数据存放在高速的内存中.
只是这些数据在关机后就会消失.
1.
使用ll/查看文件,在出现的界面中,"链接文件"与"常规目录"有差别,它们最左边的字符分别是什么2.
/proc与/sys的文件大小分别是多少为什么3.
/boot/vmlinuz开头的文件为系统的"内核文件",CentOS7环境中这个内核文件大小是多少4.
使用manls和manifconfig两个命令查询完毕后,ls和ifconfig"可能"存放在哪些目录内5.
如果我们有一个暂时使用的文件需要经常存取,而且文件大小相当大,为了加速,我们可以将这个文件暂时存放于哪里来进行编辑只是编辑完毕后必须要重新复制回原来的目录去.
2.
2.
2工作目录的切换与相对/绝对路径在默认的情况下,用户进入shell的环境时通常是在自己的"根目录",例如Windows文件资源管理器打开后,出现在界面中的通常是"我的文档"之类的文件夹.
若要变更"工作目录",例如将工作目录切换到/var/spool/mail,可以执行以下命令:第2章命令的执行与基本的文件管理-35-[student@localhost~]$ls下载公共图片视频文件桌面模板音乐[student@localhost~]$cd/var/spool/mail[student@localhostmail]$lsrootrpcstudent如上所示,一开始读者会在student根目录下,因此只执行ls命令时会列出工作目录(根目录)下的内容,即显示出一堆中文文件的目录.
当我们执行"cd/var/spool/mail"命令之后,工作目录就会切换"/var/spool/mail"目录,所以提示符里面也将~变成了mail.
因此使用ls所列出的工作目录下的内容就会显示不一样的内容.
我们在执行命令时,要特别注意"工作目录",而列出当前工作目录的方法为执行pwd命令:[student@localhostmail]$pwd/var/spool/mail[student@localhostmail]$我们在系统中时,不要只看提示符下的文件,最好是查阅实际的目录,例如:[student@localhostmail]$cd/etc[student@localhostetc]$pwd/etc[student@localhostetc]$cd/usr/local/etc[student@localhostetc]$pwd/usr/local/etc[student@localhostetc]$我们可以发现,自从进入/etc之后,提示符内的目录位置一直是"etc",然而使用pwd就能够发现两者的差异.
这在系统管理时非常重要,若去错了工作目录,则会导致错误地更改其他文件!
除了系统根目录与用户自己的根目录之外,Linux中有一些比较特别的目录需要记忆,如表2-4所示.
表2-4需要记忆的目录目录名称目录含义/系统根目录,系统根只会存在一个~用户的根目录,不同用户的根目录均不相同.
一个小数点,代表的是"本目录",即当前的工作目录.
.
两个小数点,代表的是"上一层目录"-一个减号,代表"上一次的工作目录"鸟哥的Linux基础学习实训教程-36-用户应该要注意,根据目录写法的不同,可将路径(path)分为绝对路径(absolute)与相对路径(relative).
这两种文件的"/路径"的写法依据是这样的:绝对路径:从根目录(/)开始写起的目录名称/文件名,例如/home/student/.
bashrc.
相对路径:相对于当前路径的写法,例如.
/home/student或.
.
/.
.
/home/student/等.
开头不是/就属于相对路径的写法.
1.
前往/var/spool/mail并查看当前的工作目录.
2.
查看上一层目录中的文件内容,查询一下有没有"anacron"这个文件存在.
3.
请前往"上一层目录的那个anacron目录".
4.
在当前的目录中,如何查询/var/log这个目录的内容分别使用两种方式(相对/绝对路径)来查看.
5.
回到student根目录.
6.
分别使用"默认""相对路径""绝对路径""工作目录下"的方式来执行ifconfig.
2.
2.
3简易文件管理练习经过本章的学习,读者应该了解到/etc与/boot为两个相当重要的目录,其中/etc更是需要进行备份的目录.
若读者使用student的身份(账户)来暂时执行文件管理命令,例如将/etc完整备份时,可以如何进行呢1.
前往/dev/shm这个内存仿真的目录来执行后续的命令:[student@localhost~]$cd/dev/shm[student@localhostshm]$2.
创建一个名为backup的目录,等待备份数据:[student@localhostshm]$mkdirbackup[student@localhostshm]$lldrwxrwxr-x.
2studentstudent404月2621:32backup-rwx------.
1gdmgdm671089044月2617:48pulse-shm-1013772778-rwx------.
1studentstudent671089044月2617:49pulse-shm-1217036117.
.
.
.
.
.
.
第2章命令的执行与基本的文件管理-37-3.
进入backup目录:[student@localhostshm]$cdbackup[student@localhostbackup]$pwd/dev/shm/backup4.
将/etc完整地复制过来:[student@localhostbackup]$cp/etc.
cp:略过'/etc'目录因为cp会自动忽略目录的复制,因此需要如下命令来复制目录才行.
5.
开始执行复制目录(-r)的命令:[student@localhostbackup]$cp-r/etc.
cp:无法打开'/etc/crypttab'来读取数据:拒绝不允许的操作cp:无法存取'/etc/pki/CA/private':拒绝不允许的操作cp:无法存取'/etc/pki/rsyslog':拒绝不允许的操作.
.
.
.
.
.
.
因为系统有很多保密的文件是不许被普通用户所读取的,因此student有许多文件无法顺利复制也是正确的!
用户不必担心.
6.
再次复制文件,同时将错误信息传送到垃圾桶,而不要显示在屏幕上:[student@localhostbackup]$cp-r/etc.
2>/dev/null[student@localhostbackup]$ll-d/etc.
/etcdrwxr-xr-x.
129rootroot81924月2619:11/etcdrwxr-xr-x.
129studentstudent49604月2621:41.
/etc通过上面的练习,最终我们知道其实student身份复制的/dev/shm/backup/etc是没有完整备份的.
这是因为两者的容量大小、内容文件、权限都不相同.
至于相关的命令功能、选项功能等,请自行执行mancp、manmkdir命令来预先了解.
另外,在一些错误信息要丢弃的环境中,也可以在命令的最后面加上2>/dev/null来将错误的信息导向垃圾桶(/dev/null).
1.
先查看一下有没有/dev/shm/backup/etc/passwd*的文件存在.
2.
使用cp命令进行复制,而删除则可以使用rm命令.
尝试删除前一道例题的文件,并确认该文件已经不存在了.
鸟哥的Linux基础学习实训教程-38-3.
查看/dev/shm/backup/etc/X11是"文件"还是"目录".
4.
如何删除前一道例题谈到的目录5.
若想要删除/dev/shm/backup/etc/xdg这个目录,且"每个文件删除前均要询问进行确认",则要加上哪个选项2.
3课后操作练习一、简答题:请使用student的身份登录系统,然后在应用程序中寻找一个名为gedit的命令,打开该软件之后,依据下面的题目写下答案.
保存时,请选择文件名为/home/student/ans02.
txt(建议写下答案前,均在系统上实际操作练习一下).
1.
什么命令可以把系统语言切换为en_US.
utf8,如何确认系统语言正确地设置了2.
Linux的日期设置其实与UNIX相同,都是从1970/01/01开始累加时间的.
若有一个密码数据,该数据告诉你密码修改的日期是在16849,请问如何使用date这个命令计算出该日期其实是公元年月日(写下完整的命令)3.
用cal输出2016/04/29这一天的月历并查看该日为星期几(写下完整的命令)4.
当天是这一年中由1月1日算起来的第几天(注:该日期称为juliandate,即"儒略日".
)(a)写下完整的命令.
(b)执行结果显示第几天5.
若为root的身份,使用su-student切换成为student时,需不需要输入密码6.
调出HOME这个变量的命令是什么7.
使用哪一个命令可以查出/etc/group这个文件的第三个字段(写下命令)8.
/dev/null这个设备的意义是什么(写下命令)9.
如何通过管道命令与grep的功能,通过find/etc找出文件名中含有passwd的文件有哪些(a)写下命令.
(b)执行结果中的文件有哪几个10.
接上题,将一堆错误信息丢弃,我们只需要显示正确的文件名.
(写下命令)11.
在根目录下,哪两个目录主要用于存放用户与管理员常用的命令12.
在根目录下,哪两个目录其实是内存中的数据,本身并不占用硬盘空间13.
在根目录下,哪一个目录主要用于存放配置文件14.
上网找出/lib/modules/这个目录的内容主要存放了什么内容.
15.
有一个命令名称为/usr/bin/mount,请使用"绝对路径"与"工作目录下的命令"来执行该命令.
第2章命令的执行与基本的文件管理-39-二、实践题:直接在系统上面操作,操作成功即可,不需要写下任何答案.
1.
使用student身份,在自己的根目录下,创建名为.
/20xx/unit02的目录.
2.
使用student身份,将/etc/X11这个资料复制到上述目录中.
3.
使用root身份,删除/opt/myunit02文件.
4.
使用root身份,创建名为/mnt/myunit02的目录.
5.
使用root身份,通过find/etc命令,找出文件名中含有passwd的文件,并将这些文件复制到/mnt/myunit02目录中.

CUBECLOUD:香港服务器、洛杉矶服务器、全场88折,69元/月

CUBECLOUD(魔方云)成立于2016年,亚太互联网络信息中心(APNIC)会员,全线产品均为完全自营,专业数据灾备冗余,全部产品均为SSD阵列,精品网络CN2(GIA) CU(10099VIP)接入,与当今主流云计算解决方案保持同步,为企业以及开发者用户实现灵活弹性自动化的基础设施。【夏日特促】全场产品88折优惠码:Summer_2021时间:2021年8月1日 — 2021年8月8日香港C...

Nocser:马来西亚独立服务器促销$60.00/月

Nocser刚刚在WHT发布了几款促销服务器,Intel Xeon X3430,8GB内存,1TB HDD,30M不限流量,月付$60.00。Nocser是一家注册于马来西亚的主机商,主要经营虚拟主机、VPS和马来西亚独立服务器业务,数据中心位于马来西亚AIMS机房,线路方面,AIMS到国内电信一般,绕日本NTT;联通和移动比较友好,联通走新加坡,移动走香港,延迟都在100左右。促销马来西亚服务器...

快云科技:香港沙田CN2云服务器低至29元/月起;美国高防弹性云/洛杉矶CUVIP低至33.6元/月起

快云科技怎么样?快云科技是一家成立于2020年的新起国内主机商,资质齐全 持有IDC ICP ISP等正规商家。云服务器网(yuntue.com)小编之前已经介绍过很多快云科技的香港及美国云服务器了,这次再介绍一下新的优惠方案。目前,香港云沙田CN2云服务器低至29元/月起;美国超防弹性云/洛杉矶CUVIP低至33.6元/月起。快云科技的云主机架构采用KVM虚拟化技术,全盘SSD硬盘,RAID10...

硬盘安装linux为你推荐
网罗设计网络设计是什么专业8080端口如何关闭和打开8080端口硬盘工作原理硬盘是如何工作的比肩工场大运比肩主事,运行长生地是什么意思?嘀动网在炫动网买鞋怎么样,是真的吗百度关键词工具常见的关键词挖掘工具有哪些www.119mm.comwww.993mm+com精品集!www.hhh258comwww.tx88d.com 有这个网站吗?99nets.com制作网络虚拟证件的网站 那里有呀?m88.comwww.m88.com现在的官方网址是哪个啊 ?www.m88.com怎么样?
域名注册使用godaddy 云南服务器租用 hostmonster linkcloud idc测评网 域名优惠码 seovip 英文站群 免费网页空间 根服务器 阵亡将士纪念日 宿迁服务器 免费赚q币 zcloud 镇江高防服务器 蓝队云 windowsserver2008r2 时间服务器 大硬盘分区 监控主机 更多