第1周课程练习
1、描述计算机的组成及其功能。
1.1、计算机简介
电子数字计算机(通常简称为计算机) 是按照一系列指令来对数据进行处理的机器。
根据Church–Turing理论, 任何一台具有最基本功能的计算机,原则上都能够执行任何其他计算机可以执行的任务;只要不考虑时间和存储容量,性能和复杂度均相差甚远的各种计算机,都能够执行相同的运算任务。
通用计算机分为6类,区别在于体积、复杂度、功耗、性能指标、数据存储容量、指令系统规模、价格
超级计算机(Supercomputer):用于科学计算 运算速度快,数据存储容量大,结构复杂,价格昂贵;
大型机(Mainframe)
服务器(Server)
工作站(Workstation)
微型机(Microcomputer)
单片机(Single-Chip Computer):单片集成电路(Integrated Circuit,IC)做成 体积小,结构简单,性能指标较低,价格便宜;
计算机由硬件(Hardware)和软件(Software)组成,两者缺一不可。
硬件是基础,是软件活动的舞台,由物理元器件构成的有形实体
软件是灵魂,使硬件最大限度发挥作用,是由计算机程序构成的无形的东西,需要存储在有形的硬件中,可以实现更高层次的逻辑功能。
1.2、计算机的组成及功能
现代计算机依照冯·诺伊曼体系结构,由五大部件组成:运算器、控制器、存储器、输入设备、输出设备
主要特点:使用二进制数和存储程序
设计思想:存储程序并按地址顺序执行
程序及操作数据一同存储
1.2.1、CPU
中央处理器(CPU):Central Processing Unit,控制器和运算器的合称,早期由许多分立元件组成,现在通常被制作在单片集成电路上,称为微处理器(Microprocessor)
(1)控制器:控制器是计算机的管理机构和指挥中心
按照预先确定的操作步骤,协调控制计算机各部件有条不紊地自动工作
控制器工作的实质就是解释程序,逐条读取、分析、执行指令,控制各部件动作
程序计数器(Program Counter),是一个特殊的寄存器,记录着将要读取的下一条指令在存储器中的位置
(2)运算器:用于信息加工的部件,对数据进行算术运算和逻辑运算
算术逻辑单元(Arithmetic Logic Unit,ALU):具体完成算术与逻辑运算的单元,运算器的核心
寄存器:存放参与运算的操作数
累加器:特殊的寄存器,存放中间结果和最后结果
1.2.2、存储器
存储器的主要功能是存放程序和数据
程序和数据都用二进制数表示,统称为信息
向存储器存入或从存储器取出信息,都称为访问存储器
存储器由一系列存储单元组成,每个存储单元的编号称为地址,要按给定的地址来寻找所选择的存储单元
存储容量 :存储器中所有存储单元的总数 KB(Kilobyte,千字节)、MB(Megabyte,兆字节)、GB(Gigabyte,千兆字节) 1KB=1024B,1MB=1024KB,1GB=1024MB
存储器分类
按照在计算机中的作用,可分为主存储器、寄存器、闪速存储器、高速缓冲存储器、辅助存储器
1.2.3、输入输出设备
(1)输入设备
将人们熟悉的信息形式,变换成计算机能接受并识别的二进制信息形式
理想的输入设备应该是“会看”和“会听”的
键盘、鼠标、扫描仪等,以及用于文字识别、图像识别、语音识别的设备
(2)输出设备
将计算机输出的处理结果信息,转换成人类或其他设备能够接受和识别的信息形式
理想的输出设备应该是“会写”和“会讲”的
激光打印机、绘图仪、CRT/LCD显示器等,以及输出语言的设备(如语音合成产品)
(3)适配器
外围设备通过适配器(Adapter)部件与主机相连接
作用相当于转换器,保证外围设备按照计算机系统特性所要求的形式发送或接收信息
使主机和外围设备并行协调地工作
1.2.4、总线
计算机系统通过总线(Bus)将CPU、主存储器及I/O设备连接起来
总线是构成计算机系统的骨架,是多个系统部件之间进行数据传送的公共通路
按照信号类型,可分为:
数据总线:传送数据,双向,可输入输出
地址总线:传送地址,单向,决定数据或命令传送给谁
控制总线:传送各种控制信号
2、按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。
Linux发行版也被叫做 GNU/Linux 发行版,是基于Linux内核的类Unix操作系统。
Linux发行版通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件。
这些操作系统通常由Linux内核、以及来自GNU计划的大量的函数库,和基于X Window的图形界面。有些发行版考虑到容量大小而没有预装 X Window,而使用更加轻量级的软件,如:busybox, uclibc 或 dietlibc。现在有超过300个Linux发行版,大部分都正处于活跃的开发中,不断地改进。
由于大多数软件包是自由软件和开源软件,所以Linux发行版的形式多种多样——从功能齐全的桌面系统以及服务器系统到小型系统 (通常在嵌入式设备,或者启动软盘)。除了一些定制软件 (如安装和配置工具),发行版通常只是将特定的应用软件安装在一堆函数库和内核上,以满足特定用户的需求。
这些发行版可以分为商业发行版,比如Fedora (Red Hat),openSUSE (Novell),Ubuntu (Canonical公司),和 Mandriva Linux,它们由自由软件社区提供支持,如Debian和Gentoo;也有发行版既不是商业发行版也不是社区发行版,其中最有名的是Slackware。
2.1、linux redhat发行版
Red Hat Linux是由Red Hat公司发布的一个Linux发行包。
Red Hat最早由Bob Young和Marc Ewing在1995年创建。而公司在最近才开始真正步入盈利时代,归功于收费的Red Hat Enterprise Linux(RHEL,Red Hat的企业版)。而正统的Red Hat版本早已停止技术支持,最后一版是Red Hat 9.0。于是,目前Red Hat分为两个系列:由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux,及由社区研发的免费的Fedora Core。
Red Hat Linux中的RPM软件包格式可以说是Linux社区的一个事实标准,被广泛使用于其他Linux发行包中。
2.1.1、RHEL
即Red Hat Enterprise Linux的缩写,是Red Hat公司的Linux系统。每18个月发行一个新版本。
2.1.2、CentOS
它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成,而且在RHEL的基础上修正了不少已知的 Bug。新版本的 CentOS 大约每两年发行一次,而每个版本的 CentOS 会定期(大概每六个月)更新一次,以便支持新的硬件。这样,建立一个安全、低维护、稳定、高预测性、高重复性的 Linux 环境。
2.1.3、Fedora Core
它是一套从Red Hat Linux发展出来的免费Linux系统。Fedora Core 的前身就是Red Hat Linux。Fedora是一个开放的、创新的、前瞻性的操作系统和平台,基于Linux。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora 项目由 Fedora 基金会管理和控制,得到了 Red Hat, Inc. 的支持。Fedora 是一个独立的操作系统,是Linux的一个发行版,可运行的体系结构包括 x86(即i386-i686), x86_64 和 PowerPC。
2.2、Slackware Linux发行版
Slackware 走了一条与其他的发行版本不同的道路,它力图成为“UNIX风格”的Linux发行版本。它的方针是只吸收稳定版本的应用程序,并且缺少其他linux版本中那些为发行版本定制的配置工具。
2.2.1、SUSE
SUSE是德国最著名的Linux发行版,SUSE Linux原是以Slackware Linux为基础,并提供完整德文使用界面的产品。在全世界范围中也享有较高的声誉。SUSE自主研发的软件包管理系统YaST也大受好评。SUSE于2003年年末被Novell收购。
在SUSE 操作系统下,可以非常方便地访问Windows磁盘,这使得两种平台之间的切换,以及使用双系统启动变得更容易。SUSE的硬件检测非常优秀,该版本在服务器和工作站上都用得很好。SUSE拥有界面友好的安装过程,还有图形管理工具,可方便地访问Windows磁盘,对于终端用户和管理员来说使用它同样方便,这使它成为了一个强大的服务器平台。
2.2.2、open SUSE
openSUSE 项目是由 Novell 发起的开源社区计划。 旨在推进 Linux 的广泛使用,提供了自由简单的方法来获得世界上最好用的 Linux 发行版之一openSUSE。openSUSE 项目为 Linux开发者和爱好者提供了开始使用 Linux 所需要的一切。该项目由SUSE等公司赞助,2011年Attachmate集团收购了Novell,并把Novell和SUSE做为两个独立的子公司运营。openSUSE 操作系统和相关的开源程序会被SUSE Linux Enterprise(比如 SLES 和 SLED)使用。
2.3、Debian Linux发行版
Debian以其坚守Unix和自由软件的精神,以及其给予用户的众多选择而闻名。现时Debian包括了超过37,500个软件包并支持12个计算机系统结构。
Debian是一个大的系统组织框架,在这个框架下有多种不同操作系统核心的分支计划,主要为采用Linux核心的Debian GNU/Linux系统,其他还有采用GNU Hurd核心的Debian GNU/Hurd系统、采用FreeBSD核心的Debian GNU/kFreeBSD系统,以及采用NetBSD核心的Debian GNU/NetBSD系统。甚至还有应用Debian的系统架构和工具,采用OpenSolaris核心构建而成的Nexenta OS系统。在这些Debian系统中,以采用Linux核心的Debian GNU/Linux最为著名。众多的Linux发布版,例如Ubuntu、Knoppix和Linspire及Xandros等,都建基于Debian GNU/Linux。
2.3.1、Ubuntu
Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有多个版本可供选择,比如基于unity的Ubuntu,基于Gnome的Ubuntu Gnome,基于KDE的Kubuntu,基于LXDE的Lubuntu以及基于Xfce的Xubuntu等。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。
2.3.2、mint
Linux Mint是一份基于Ubuntu的发行版,其目标是提供一种更完整的即刻可用体验,这包括提供浏览器插件、多媒体编解码器、对DVD播放的支持、Java和其他组件。它与Ubuntu软件仓库兼容。Linux Mint 是一个为pc和X86电脑设计的操作系统。
因此,一个可以跑得动Windows的电脑也可以使用Linux Mint来代替Windows,或者两个都跑。既有Windows又有Linux的系统就是传说中的“双系统”。同样,MAC,BSD或者其他的Linux版本也可以和Linux Mint 共存。一台装有多系统的电脑在开机的时候会出现一个供你选择操作系统的菜单。Linux Mint可以很好的在一个单系统的电脑上运行,但是它也可以自动检测其他操作系统并与其互动,例如,如果你安装Linux Mint在一个安装了Windows版本的(xp,vista或者其他版本),它会自动检测并建立双启动以供您在开机的时候选择启动哪个系统。并且你可以在Linux Mint下访问Windows分区。Linux是更安全,更稳定,更有效并且日益易于操作的甚至可以和Windows相媲美的系统,它越来越让人感到难以抉择了。
2.4、其他linux版本
2.4.1、Gentoo
Gentoo是一个基于Linux的自由操作系统,它能为几乎任何应用程序或需求自动地作出优化和定制。追求极限的配置、性能,以及顶尖的用户和开发者社区,都是Gentoo体验的标志特点。 Gentoo的哲学是自由和选择。得益于一种称为Portage的技术,Gentoo能成为理想的安全服务器、开发工作站、专业桌面、游戏系统、嵌入式解决方案或者别的东西——你想让它成为什么,它就可以成为什么。
Gentoo的出名是因为其高度的自制定性:因为他是个基于原始码的(source-based)发行版。尽管安装时能选择预先编译好的软件包,不过大部分使用Gentoo的用户都选择自己手动编译。这也是为什么Gentoo适合比较有Linux使用经验的老手使用的原因。不过要注意的是,由于编译软件需要消耗大量的时间,所以如果你所有的软件都自己编译,并安装KDE桌面系统等比较大的软件包,可能需要几天时间才能编译完。
2.4.2、ArchLinux
Arch Linux(或称Arch)是一种以轻量简洁为设计理念的Linux发行版。其开发团队秉承简洁、优雅、正确和代码最小化的设计宗旨。Arch Linux 项目受 CRUX 启发,由 Judd Vinet 于2002年启动。
Arch Linux是起源于加拿大的一份致力于使用简单、系统轻量、软件更新速度快的GNU/Linux发行版。创始人Judd Vinet出于对Debian以及Red Hat的包管理器不满,以及受CRUX影响而创立。最初针对i686,但是如今对x86_64也支持良好,而且还派生出了针对ARM平台的Arch Linux ARM以及针对HURD内核的Arch Hurd(发展缓慢)。
2.4.3、FreeBSD
首先要强调的是:FreeBSD不是个Linux系统! FreeBSD的用户相当多,其许多特性都和Linux相类似。事实上,Linux和BSD(Berkeley Software Distribution)均是UNIX的演化分支。并且,Linux中相当多的特性和功能(比如用于设置DNS的Bind软件)都是取自于BSD的。而FreeBSD便是BSD家族中最出名,用户数量最多的一个发行版。MEZOC之前所采用的便是FreeBSD系统。
FreeBSD除了作为服务器系统外,也适合桌面用户。不过,考虑到软件方面的兼容性,一般用户选择FreeBSD作为桌面系统不是非常明智。作为服务器而言,FreeBSD是相当优秀的。原来有人说过,同样的服务器硬件设置,运行同样的一个vBulletin论坛,FreeBSD所用的资源要比Linux少。这也是为什么许多空间商极力推崇FreeBSD的原因。
3、描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。
1)一切皆文件;把几乎所有资源,包括硬件设备都组织为文件格式;
2)由众多单一目的小程序组成;一个程序只实现一个功能,组合小程序完成复杂任务;
3)尽量避免跟用户交互;用脚本编程,以自动完成某些功能;
4)使用纯文本文件保存配置信息;使用的文本编程器即能完成系统配置工作;
4、说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。
4.1.1、ifconfig
查看和配置系统的网络信息
格式
ifconfig [interface]
ifconfig interface [aftype] options | address …
常用用法:
[ethX]:显示某个网卡信息
-a:显示所有的网卡信息
ifconfig ethx IP/MASK :配置网卡地址(子网掩码必须指定)
ifconfig ethx [up|down]:开启或者禁用网卡
配置Ip地址是立即生效,但重启网络服务或重启主机,都失效
4.1.2、echo
输出信息,内部命令
-n: 禁止自动添加换行符号;
-e: 允许使用转义符;
\n: 换行
\t: 制表符
echo "$VAR_NAME": 变量会替换,双引号表弱引用
echo '$VAR_NAME': 变量不会替换,强引用
4.1.3、tty
显示终端连接到标准输入的文件名;外部命令
格式:
tty [OPTION]…
4.1.4、startx
启动图形终端界面
Startx &=ctrl+alt+F7
4.1.5、export
设置或显示环境变量。(比如我们要用一个命令,但这个命令的执行文件不在当前目录,这样我们每次用的时候必须指定执行文件的目录,在代码中先执行export,这个相当于告诉程序,执行时,需要的文件这些目录里)。内部命令
选项:
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
在shell中执行程序时,shell会提供一组环境变量。 export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。
4.1.6、pwd
显示当前工作目录,内部命令
4.1.7、history
显示命令历史列表,内部命令
登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history;登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中;
常用选项:
-a: 追加本次会话新执行的命令历史列表至历史文件中;
-d: 删除历史中指定的命令;
-c: 清空命令历史;
4.1.8、shutdown
关机命令,以一种安全的方式关闭系统。外部命令
使用格式:
shutdown [OPTION]… TIME [MESSAGE]
常用选项:
-r now:立即重启
-t sec:几秒之后
-h now:立即关机
-c:取消关机(可以设置定时关机,使用此选项取消)
可选参数:TIME
now: 立刻
+m: 相对时间表示法,从命令提交开始多久之后;例如 +3;
hh:mm: 绝对时间表示,指明具体时间;
4.1.9、poweroff
关机命令,在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应。外部命令
使用格式:
poweroff [OPTION]…
4.1.10、reboot
重启命令。外部命令
使用格式:
reboot [OPTION]…
4.1.11、hwclock
查询和设置系统硬件时间。外部命令
在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。
常用选项:
-s, –hctosys:将硬件时钟同步到系统时钟
-w, –systohc:将系统时钟同步到硬件时钟
4.1.12、date
显示和设置系统日期和时间
使用格式:
date [OPTION]… [+FORMAT]
FORMAT: 格式符号
%D:显示日期 (mm/dd/yy)
%F显示日期 (yy-mm-dd)
%T:显示时间
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
MM: 月份
DD:几号
hh: 小时
mm: 分钟
YY: 两位年份
CCYY: 四位年份
.ss: 秒钟
设置系统时间
5、如何在Linux系统上获取命令的帮助信息,请详细列出,并描述man文档的章节是如何划分的。
Linux命令分为内部命令和外部命令,内部命令是shell自带的基本管理工具;外部命令是由外部可执行程序文件命令,位于Linux文件系统一些目录下。
格式:COMMAND [OPTIONS…] [ARGUMENTS…]
使用type命令可以查看命令类型:
使用whereis查看命令的二进制文件,源码文件,手册页
使用which命令显示命令对应的程序文件路径
5.1、内部命令帮助:
# help COMMAND
5.2、外部命令帮助
5.2.1、help
# COMMAND –help
5.2.2、信息页info
# info COMMAND
5.2.3、程序自身的帮助文档
例如:/usr/share/doc/file-5.04
README
INSTALL
ChangeLog
5.2.4、程序官方文档
官方站点:Documentation
5.2.5、发行版的官方文档
5.2.6、Google和slideshare
5.2.7、man手册
man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。
使用格式:man COMMAND
手册页存放在/usr/share/man
man有 8个类型分类
有些关键在不止一个章节中存在帮助手册;要查看指定章节中的手册:man # COMMAND
man命令的配置文件:/etc/man.config
可以为命令指明新的手册文件搜索位置路径:MANPATH /PATH/TO/SOMEWHERE
到指定位置下搜索COMMAND命令的手册页并显示之:# man -M /PATH/TO/SOMEWHERE COMMAND
帮助手册中的段落说明:
关于SYNOPSIS的一些说明:
[]:里边的内容可选
<>: 必选内容
a|b:二选一
…: 同一内容可出现多次
man命令的操作方法:
6、请罗列Linux发行版的基础目录名称命名法则及功用规定
6.1、根文件系统(rootfs)
Windows分区后,每一个分区是一个独立的文件系统,彼此没有关系。Linux中所有的文件都必须从根开始。文件系统是对一个存储设备上的数据和元数据进行组织的机制。这种机制有利于用户和操作系统的交互。
Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。成功之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。
6.2、LSB组织的 FHS:(FileSystem Heirache Standard)文件系统层级标准
/boot:这个目录主要在放置开机会使用到的文件,包括Linux核心文件以及开机选单与开机所需配置文件等等. Linux kernel常用的档名为:vmlinuz,如果使用的是grub这个开机管理程序, 则还会存在/boot/grub/这个目录。引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录。
/bin:系统有很多放置执行文件的目录,但/bin比较特殊,因为/bin放置的是在单人维护模式下还能够被操作的指令. 在/bin底下的指令可以被root与一般账号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。不能关联至独立分区,OS启动即会用到的程序;
/sbin:Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来『设定』系统,其他用户最多只能用来『查询』而已.。放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些服务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件(system binary), 则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等;不能关联至独立分区,OS启动即会用到的程序;
/lib:系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库, 以及在/bin或/sbin底下的指令会呼叫的函式库而已.。函式库可以理解为『外挂』,某些指令必须要有这些『外挂』才能够顺利完成程序的执行之意。尤其重要的是/lib/modules/这个目录, 因为该目录会放置核心相关的模块(驱动程序)。
/lib64:专用于x86_64系统上的辅助共享库文件存放位置;
/etc:配置文件目录(纯文本文件);系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、 各种服务的启始档等等。一般来说,这个目录下的各文件属性是可以让一般使用者查阅的,,但是只有root有权力修改。FHS建议不要放置可执行文件(binary)在这个目录中。
/home:这是系统默认的用户家目录(home directory).在你新增一个一般使用者账号时, 默认的用户家目录都会规范到这里来.比较重要的是,家目录有两种代号喔:
~:代表目前这个用户的家目录
~username:则代表 username的家目录
/root:管理员的家目录;
/media:便携式移动设备挂载点,包括软盘、光盘、DVD等等装置都暂时挂载于此。常见的档名有:/media/floppy,,/media/cdrom,/media/usb等等。
/mnt:临时文件系统挂载点。暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。这个目录的用途与/media相同,只是有了/media之后,这个目录就用来暂时挂载用了。
/dev:在Linux系统上,任何装置与接口设备都是以文件的型态存在于这个目录当中的.。只要透过存取这个目录底下的某个文件,就等于存取某个装置。比较重要的文件有/dev/null、/dev/zero、/dev/tty、/dev/lp*、/dev/hd*、 /dev/sd*等等。
b: block device,随机访问
c: character device,线性访问
/opt:第三方应用程序的安装位置;例如KDE这个桌面管理系统是一个独立的系统,不过他可以安装到Linux系统中,因此KDE的软件就建议放置到此目录下了。另外,如果你想要自行安装额外的软件(非原本的distribution提供的),那么也应将软件安装到这里来。不过,以前的Linux系统中,还是习惯放置在/usr/local目录下。
/srv:系统上运行的服务用到的数据。是一些网络服务启动之后,这些服务所需要取用的数据目录。常见的服务例如WWW、FTP等等。举例来说,WWW服务器需要的网页数据就可以放置在/srv/www/里面。
/tmp:这是让一般使用者或者是正在执行的程序暂时放置文件的地方。这个目录是任何人都能够存取的,所以需要定期的清理一下。当然,重要数据不可放置在此目录。因为FHS甚至建议在开机时,应该要将/tmp下的数据都删除。
/proc: 用于输出内核与进程信息相关的虚拟文件系统;这个目录本身是一个虚拟文件系统(virtual filesystem),他放置的数据都是在内存当中,,例如系统核心、行程信息(process)、周边装置的状态及网络状态等等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间!比较重要的文件例如:/proc/cpuinfo、/proc/dma,、/proc/interrupts、 /proc/ioports、/proc/net/* 等等。
/sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统;这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录与核心相关的信息。包括目前已加载的核心模块与核心侦测到的硬件装置信息等等。这个目录同样不占硬盘容量。
/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置;
/usr: universal shared, read-only data:FHS建议所有软件开发者,应该将他们的数据合理的分别放置到这个目录下的次目录,而不要自行建立该软件自己独立的目录。所有系统默认的软件(distribution发布者提供的软件)都会放置到/usr底下,因此这个目录有点类似Windows 系统的(C:\Windows\ + C:\Program files\)这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。
bin: 保证系统拥有完整功能而提供的应用程序;绝大部分的用户可使用指令都放在这里!请注意到他与/bin的不同之处(是否与开机过程有关)
sbin:系统管理员
lib:包含各应用软件的函式库、目标文件(object file),以及不被一般使用者惯用的执行档或脚本(script).。某些软件会提供一些特殊的指令来进行服务器的设定,这些指令也不会经常被系统管理员操作,,那就会被摆放到这个目录下。
lib64:X86_64的Linux系统存放目录
include:c/c++等程序语言的头文件(header)与包含头文件(include)放置处,当以tarball方式 (*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多include头文件。
share:结构化独立的数据,放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据,在此目录下常见的还有这些次目录:
usr/share/man:联机帮助文档
/usr/share/doc:软件杂项的文件说明
/usr/share/zoneinfo:与时区有关的时区文件;
local:第三方应用程序的安装位置;系统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录,,这样会比较便于管理。举例来说, distribution提供的软件较旧,想安装较新的软件但又不想移除旧版,,此时可以将新版软件安装于/usr/local/目录下,与原先的旧版软件分别, /usr/local目录下也是具有bin, etc, include, lib…的次目录。
/var: variable data files:var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件,,包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等.。所以/var在系统运作后才会渐渐占用硬盘容量的目录。
cache: 应用程序本身运作过程中会产生的一些暂存档;
lib: 应用程序状态信息数据;程序本身执行的过程中,需要使用到的数据文件放置的目录。在此目录下各自的软件应该要有各自的目录.。举例来说,MySQL的数据库放置到/var/lib/mysql/;rpm的数据库则放到/var/lib/rpm去。
local:专用于为/usr/local下的应用程序存储可变数据;
lock: 锁文件。某些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时,,就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用.。举例来说,刻录机正在刻录一块光盘,不可能有两个人同时在使用一个刻录机烧片。如果两个人同时刻录,那片子写入的是谁的数据?所以当第一个人在刻录时该刻录机就会被上锁,第二个人就得要该装置被解除锁定(就是前一个人用完了)才能够继续使用。
log: 日志目录及文件;里面比较重要的文件如/var/log/messages, /var/log/wtmp(记录登入者的信息)等。
opt: 专用于为/opt下的应用程序存储可变数据;
run: 运行中的进程相关的数据;某些程序或者是服务启动后,会将他们的PID放置在这个目录下
spool: 应用程序数据池:这个目录通常放置一些队列数据,所谓的“队列”就是排队等待其他程序使用的数据,这些数据被使用后通常都会被删除。举例来说,系统收到新信会放置到/var/spool/mail/中,,但使用者收下该信件后该封信原则上就会被删除。信件如果暂时寄不出去会被放到/var/spool/mqueue/中,,等到被送出后就被删除。如果是工作排程数据(crontab),就会被放置到/var/spool/cron/目录中。
tmp: 保存系统两次重启之间产生的临时数据;
/lost+found:这个目录是使用标准的ext文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,,将一些遗失的片段放置到这个目录下。这个目录通常会在分割槽的最顶层存在,例如加装一个硬盘于/disk中,那在这个系统下就会自动产生一个这样的目录/disk/lost+found。
原创文章,作者:N21_我爱罗,如若转载,请注明出处:http://www.178linux.com/19680