第一周作业:计算机的组成及其功能

第一周作业

主要是对应了马哥视频前两天共八节课的内容,作业一共有六道题

01.描述计算机的组成及其功能

02.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别

03.描述Linux的哲学思想,并按照自己的理解对其进行解释性描述

04.说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述

05.如何在Linux系统上获取命令的帮助信息,请详细列出,描述man文档的章节是如何划分的

06.请罗列Linux发行版的基础目录名称命名法则及功用规定

 一.描述计算机的组成及其功能

 电子计算机,亦称电脑,是一种利用电子学原理,根据一系列指令对数据进行处理的工具

 计算机及其组成

计算机是什么

电子计算机,也叫做电脑(computer),是一种用于高速计算的电子计算机器。通过计算机,可以实现计算、存储等功能电子计算机,也叫做电脑(computer)

通过计算机,可以实现计算、存储等功能

计算机可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机等五类 对于我们日常的学习、生活而言,计算机已经是必不可少的组成部分 通常,对于我们而言,计算机指的就是PC(personal computer)个人计算机

计算机的组成

一般而言,计算机的组成应该分为两部分:

一部分指的是硬件部分。根据冯诺伊曼提出的计算机体系架构,一台计算机主要分为五个部分:控制器运算器存储器输入设备输出设备 

timg

二部分指的是计算机软件。包括汇编语言、系统软件及应用软件,他们不像硬件一样“有形”,但只有软件硬件互相配合,才是一台标准的计算机组成

各组成的功能

硬件部分

控制器(Control):CPU的组成部分之一。相当于计算机的中枢神经,通过控制器,可以有效的控制和协调整个计算机的如下动作

保障不同数率传输的数据可以得到缓冲

甄别IO设备传送数据的正错

实现数据与数据之间的交换

接收和识别命令

      运算器(Datapath):CPU的组成部分之一。包含算数逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等,主要作用如下

算数逻辑单元(ALU):进行二位元的算术运算,如加减乘(不包括整数除)、移位等

累加器(accumulator):储存计算产生的中间结果。保证ALU不用将计算结果写入内存

状态寄存器:存放两类信息

1)体现当前指令执行结果的状态信息

2)控制信息

通用寄存器组:可用于传送和暂存数据,也可以参与算术逻辑运算,保存运算结果,通用寄存器组包括以下几类:数据寄存器、变址寄存器、指针寄存器、段寄存器、指令指针寄存器

存储器(memory):存储程序和数据,并能在计算机运行过程中高速、自动地完成从程序或数据的存取,也就是俗称的内存RAM(Random Access Memory)

输入设备(Input):外部设备之一。作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据输入到计算机。常见的输入设备有:键盘、鼠标、磁带机、磁盘机、光盘机等

输出设备(Output):外部设备之一。作用是把计算机的中间结果或最后结果、机内的各种数据及文字等信息输出来。常见的输出设备有:CRT、打印机、绘图仪等

软件部分

汇编语言(assembly language):一种用于cpu的低级语言。它使用助记符代替二进制语言,方便人类的阅读及操作。但一种汇编语言只能与相对应的计算机系统结构对应,无法在不同平台移植

系统软件(system software):用来运行或控制硬件所开发的计算机软件,如操作系统、编译器、数据库等等

常见的系统软件包含

操作系统(Operating system):控制与管理硬件及软件资源,并提供用户操作接口,完成人机交互的软件,常见的有Unix、GNU/Linux、 MAC OS X、Microsoft Windows等

编译器(compiler):将使用汇编语言编写的代码,转换成计算机可识别的机器语言,常见的有GCC

解释器(interpreter):将高级编程语言一行一行解释运行。它的好处是可以消除编译整个程序的负担,缺点则是运行速度比较缓慢,且使用解释器的代码在运行过程中,不可脱离解释器。常见的使用解释器的语言包括Perl、Python、Ruby等

连接器(linker):将由汇编器或编译器产生的目标文件和外部程序库链接为一个可执行文件

加载器(loader):负责将程序加载到内存中,并配置内存与相关参数,使之能够运行

应用软件(application software):为了某种特定用途而被开发的软件。它可以是一个特定的程序,也可以是一个由众多独立程序组成的庞大的软件系统

 二.按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别

什么是Linux

Linux

是一种自由和开放源代码的类Unix操作系统。该操作系统的内核由Linus Torvalds于1991年10月5日首次发布。根据其发布的内核(kernel)搭配上GNU上的应用程序,成为了当今世界上运用领域最广泛、使用人数最多的操作系统。通常情况下,Linux被打包成供个人计算机和服务器使用的Linux发行版。

Linux发行版包含Linux内核和支撑内核的实用程序和库,通常还带有大量可以满足各类需求的应用程序。个人计算机使用的Linux发行版通常包含X Window和一个相应的桌面环境,如GNOME或KDE.

什么是Linux发行版

Linux发行版(Linux distribution)

是一种为一般用户预先集成好的Linux操作系统及各种应用软件。一般不需要用户重新编译,在直接安装之后,只需要作出小幅度的更改设置即可。Linux发行版通常包含了桌面环境、办公包、媒体播放器、数据库等应用软件。这些操作系统通常使用Linux、以及来自GNU计划的软件、和基于X Window的图形界面组成。

Linux发行版通常分为商业发行版和社区发行版。也有少部分既不属于发行版又不属于社区发行版,其中最有名的是Slackware.

著名的Linux发行版

按照程序包管理器的不同,通常Linux的发行版也被分成了不同的派系。

首先说一下什么是程序包管理器

程序本身是由二进制程序、配置文件、库文件以及帮助文件组成的。有时候我们发现,可能一个程序会有很多文件,非常不利于安装卸载管理,于是,又产生了程序包管理器。

程序包管理器的作用:

– 1)程序的组成文件打包成一个或有限几个文件;

– 2) 安装;

– 3) 卸载;

– 4) 查询;

因此,我们可以划分出如下的谱系

Redhat系

新建 Microsoft Visio 2绘图

| 名称 | 基于 | 特点 |

| ————                  |:————-:| —–:                                                                 |

| Red Hat Enterprise | RPM管理包 | 红帽的商业版本<br>提供10年服务支持高|

| CentOS | RedHat | 根据RHEL代码编译的社区版<br>文档充足 |

| Fedora | RedHat |红帽官方的社区版<br>RH公司新技术测试平台 |

**Slackware系**

新建 Microsoft Visio 绘图

| 名称 | 基于 | 特点 |

| ———— |:————-:| —–:|

| Slackware | SLS | UNIX风格的Linux发行版<br>KISS(简洁)的设计理念|

| SUSE | Slackware | 界面华丽<br>照顾欧洲人的使用习惯 |

| opensuse | SUSE |suse的社区版 |

**Debian系**

新建 Microsoft Visio 3绘图

| 名称 | 基于 | 特点 |

| ———— |:————-:| —–:|

| Debian | Dpkg管理包 | 一直为社区版<br>限制较少<br>功能较多<br>要求技术较高 |

| Adamantix | Debian | 关注安全 |

| Knoppix | Debian |对硬件支持极佳<br>对中日韩环境不够友好 |

| Gnoppix | Knoppix | Knoppix的GNOME版 |

| Ubuntu | Debian | 界面华丽<br>与Debian、GNOME开源社区关系紧密<br>有资金支持<br> |

| Linux Mint | Ubuntu | Ubuntu的衍生版<br>开箱即用 |

| Ubuntu Kylin | Ubuntu | 中文定制版 |

| BackTrack | Ubuntu | 专业安全检测操作系统<br>已不再维护 |

| Kali Linux | BackTrack | BackTrack替代者<br>安全渗透软件 |

其他

| 名称 | 基于 | 特点 |

| ———— |:————-:| —–:|

| Gentoo | Portage管理包 | 大量程序开放源代码<br>对硬件要求较高|

| ArchLinux | pacman管理包 | 软件更新速度快<br>包管理简易高效 |

| LFS(Linux From scratch) | |高端玩法<br>DIY系统 |

发行版之间的不同

在Linux发行版中,通常均使用软件包管理系统,不同的操作系统,软件包管理系统也不尽相同。比较常见的软件包管理系统有以下几种

– dpkg:一般为Debian系使用,前端管理工具为apt-get

– rpm(The RPM Package Manager):一般为Red Hat系使用,S.u.S.E也有使用,前端工具包含多种: 

 yum:作为RHEL及CentOS的前端工具

dnf:作为Fedora的前端工具

ZYpper:作为S.u.S.E及opensuse的前端工具

urpmi:作为Mandriva Linux及Mageia的前端工具 

三.描述Linux的哲学思想,并按照自己的理解对其进行解释性描述

一切皆文件

把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等 比如说:

物理终端:/dev/console

虚拟终端:/dev/tty#(#为1~6)

串行终端:/dev/ttyS#

伪终端:/dev/pts/#

把所有资源抽象成文件,不仅便于理解,且有助于管理

单一目的的小程序

一个程序只做一件事

组合小程序完成复杂任务

复杂的任务由多个程序组合完成

尽量避免跟用户交互

易于以编程的方式实现自动化任务

使用文本文件保存配置信息

文本是最易于实现的底层接口表现形式。通过文本保存,就可以使用文本编辑器实现大多数程序的管理工作

提供机制,而非策略

机制,是实现某个功能需要的原语操作和结构

策略,是某功能的具体实现

提供机制,而非策略,指的就是要给用户充分的自主可调配性

四.说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述

什么是命令

首先要了解命令格式 

COMMAND [OPTIONS] ARGUMENTS

COMMAND: 发起一个命令

命令请求kernel将某个二进制程序运行为一个进程。程序本身只是一个静态文件,只有通过这个请求,才会转化为有生命周期的动态进程。

命令本身是一个可执行的二进制格式程序文件(Linux哲学思想:一切皆文件),一般都存放在这些目录下

普通命令:`/bin``/usr/bin``/usr/local/bin`

管理命令:`/sbin``/usr/sbin``/usr/local/sbin`

命令往往会调用到许多库文件,这些库可能许多程序都会遇到,我们形象的称之为共享库。 这些共享库也是二进制文件,但是由于其没有程序执行入口,所以不能独立执行。只能被其他有执行入口的程序调用时才能执行,一般这些库都存放在这些目录下

32bits的库:`/lib``/usr/lib``/usr/local/lib`

64bits的库:`/lib64``/usr/lib64``/usr/local/lib64`

注意:并非所有的命令都有一个在某目录与之相对应的可执行程序文件

命令的格式: 命令必须遵循特定格式规范:比如说win的exe,msi,对于linux而言则是ELF

命令的分类: 由shell程序自带的命令:内置命令(builtin) shell程序是一种独特的程序,它的作用是负责解析用户提供的命令。

独立的可执行程序文件:文件名即命令名:外部命令

查看命令类型: `type COMMAND`

OPTIONS:

指定命令的运行特性

一般选项有两种表现形式:

短选项:-C

例如-l -d

注意:

有些命令的选项没有-

如果同一命令使用多个短选项,多数可以合并,比如说 -l -d就可以写作-ld

短选项一般使用“ ”(空格)来分割

长选项:`–word`

例如`–help –human-readable`

注意:长选项不能合并

长选项一般用“=”来表示

**ARGUMENTS**:

命令的作用对象,以及命令对什么生效

注意:有些命令可以同时带多个参数,多个参数之间以空白字符分割 下面详细列出命令

ifconfig

ifconfig(interface configuration)是在Unix-like系统中用于查看以及配置网络接口设备的系统管理工具。其作用等同于ip addr或ip link

作用:作用于类Unix系统中,用于配置、控制及查询TCP/IP网络接口的系统管理工具

语法:ifconfig [interface]

ifconfig interface options | address …

常用方法:

ifconfig:查看当前系统中存活的网络接口设备信息

ifconfig eth#:查看指定的网络接口设备的信息

ifconfig -a:查看所有网络接口设备(通过此命令,非运行状态的网卡也可显示)

ifconfig eth# up:启动指定网络接口设备

ifconfig eth# down:关闭指定网络接口设备

ifconfig eth# add 33ffe:3240:800:1005::2/64:为指定网络接口设备添加IPv6地址                            ifconfig eth# del 33ffe:3240:800:1005::2/64:为指定网络接口设备删除IPv6地址                            ifconfig eth# hw ether 00:16:3E:10:60:B5 : 修改指定网络接口设备MAC地址

               ifconfig eth# xxx.xxx.xxx.xx:给指定网络接口设备配置指定ip地址

                  ifconfig eth# xxx.xxx.xxx.xx netmask 255.255.255.0 :给指定网络接口设备配置指定ip地址及子网掩码      

                 ifconfig eth# xxx.xxx.xxx.xx netmask 255.255.255.0 broadcast 192.168.120.255:给指定网络接口设备配置指定ip地址及子网掩码、广播地址

ifconfig eth# mtu 1500:给指定网络接口设备设置最大传输单元

备注:使用此命令对于网络接口的所有操作,在系统重启后均会失效。若需永久生效,需要通过修改配置文件的方式,配置文件的路径一般为

` [root@test ~]# cd /etc/sysconfig/network-scripts/` `[root@test network-scripts]# ls`

echo

echo用来将字符串输出到终端上。它通常在shell脚本中使用,以将状态信息输出到屏幕或文件中 作用:显示文字

                   语法:echo [SHORT-OPTION]… [STRING]…

             echo LONG-OPTION

常用方法:

-n 不进行换行

-e 让转义符生效

转义符如下

\a 发出警告声

\b 删除前一个字符

\c 最后不加上换行符号

\f 换行但光标仍旧停留在本身的位置

\n 换行

\r 光标移至行首,但不换行

\t 制表符

\v 等同于\f

\\ 插入\字符

–help 显示帮助

–version 显示版本信息

备注:STRING可以使用引号,单引号双引号均可用

单引号:强引用,变量不执行替换

`[root@iZ25test ~]# echo ‘$SHELL’`

`$SHELL`

双引号:弱引用,变量引用会被替换

[root@iZ25test ~]# `echo “$SHELL”`

`/bin/bash`

tty

作用:查看当前的终端设备

语法:tty [OPTION]…

常用方法:`[root@test ~]# tty`

`/dev/pts/0`

startx

作用:用来启动X Window,实际上是启动X Window程序

常用方法:

 startx:在服务器上启动x会话

 startx -w:在服务器上强制启动x会话

export

作用:用于将shell变量输出为环境变量,或将shell函数输出为环境变量

语法:BASH BUILTIN COMMANDS

常用方法:

-f:代表【变量名称】中为函数名称

-n:删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中】

-p:列出所有shell赋予程序的环境变量

pwd

显示当前工作目录print name of current/working directory

作用:以绝对路径的方式显示用户当前工作目录。

语法: pwd [OPTION]..

常用方法:

–help:显示帮助信息

–version:显示版本信息

pwd命令用于显示当前工作目录,一般而言,涉及pwd,就会涉及到三个环境变量                  PATH:执行文件路径的变量

OLDPWD:表示前一次的工作目录

PWD:表示当前的工作目录

history

作用:

用于显示指定数目的指令命令

读取历史命令文件中的目录到历史命令缓冲区

将历史命令缓冲区写入命令文件

语法:BASH BUILTIN COMMANDS

常用方法:

 -c:清空当前历史命令

 -a:将历史命令缓冲区中命令写入历史命令文件中

 -r:将历史命令文件中的命令读入当前历史命令缓冲区

 -w:将当前历史命令缓冲区命令写入历史命令文件中

 n:打印最近n条历史命令(n为数字)

shutdown

作用:

系统关机

关闭所有程序

按照用户需要重启或关机

语法:shutdown [OPTION…] [TIME] [WALL…]

常用方法:

 -c:取消关机

 -f:重新启动时不执行fsck

 -F:重新启动时执行fsck

 -h:将系统关机

 -k:送出信息给所有用户,但不会实际关机

 -n:不调用init程序进行关机,而由shutdown自己控制

 -r:重启系统

 TIME:设置多久时间后执行shutdown指令

 WALL:要传送给所有登入用户的信息

 poweroff

作用:用来关闭计算机操作系统并且切断系统电源

语法: poweroff [OPTION]…

常用方法:

-n:关闭操作系统时不执行sync操作

-w:不真正关闭操作系统

-d:关闭操作系统时,不将操作写入日志文件

-f:强制关闭系统

-i:关闭系统之前关闭所有的网络接口

-h:关闭操作系统之前将系统中所有的操作设置为备用模式

reboot

作用:用来重新启动正在进行的Linux操作系统

语法:reboot [OPTION]…

常用方法:

-d:重新开机时不把数据写入数据文件/var/tmp/wtmp

-f:强制重新开机,不调用shutdown指令的功能

-i:在重开机之前,先关闭所有网络界面

-n:重开机之前不检查是否有未结束的程序

-w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件

hwclock

作用:是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可以设置系统时间为硬件时钟的时间

语法: hwclock [functions] [options]

常用方法:

–adjust:校正目前的硬件时钟

–debug:显示hwclock执行时详细的信息

–hctosys:将系统时钟调整与当前的硬件时钟一致

–set –date=<日期与时间>:设定硬件时钟

–show:显示硬件时钟的时间与日期

–systohc:将硬件始终调整为与当前的系统时钟一致

–test:测试程序

–utc:使用格林威治时间

–version:显示版本信息

date

作用:显示或设置系统时间与日期

语法:date [OPTION]… [+FORMAT]

常用方法:

-d<“字符串”>:显示字符串所指的日期与时间

-s<“字符串”>:根据字符串设置的日期与时间

+FORMAT:格式符

 %F:年月日

%T:小时分钟秒

%Y:年

%m:月

%d:日

%H:小时(24小时进制)

%S:秒

%s:秒(从1970-01-01 00:00:00 开始到命令执行那一刻的秒数 unix元年)

设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]

五.如何在Linux系统上获取命令的帮助信息,请详细列出,描述man文档的章节是如何划分的 由于Linux系统的命令繁多,无论是初学者还是资深人士,很多时候都需要查看帮助。

Linux的命令

Linux的帮助有多种方式,通过命令的不同,帮助的查看方式也不尽相同。 在学习帮助之前,首先我们需要了解一下Linux的命令。 Linux命令的执行必须依赖于Shell命令解释器。Shell实际上是在Linux系统中运行的一种特殊程序,它位于操作系统内核与用户之间进行交互。

内部命令与外部命令

Linux命令有内部命令(内建命令)和外部命令之分。内部命令和外部命令的功能基本相同,但存在的位置有差异。

内部命令:shell程序的一部分,其包含的往往是一些简单的linux系统命令。它们被shell程序识别并通过shell内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令是写在bashy源码里面的,其执行速度通常比外部命令快。

外部命令:linux系统中能够完成特定功能的脚本文件或二进制文件,每个外部命令对应了系统中的一个文件。这些文件通常比较强大,包含的程序量也很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。外部命令的实体通常并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。

外部命令是在bash之外额外安装的,通常放在`/bin``/usr/bin``/sbin``/usr/sbin`……等等。可通过`echo $PATH`命令查看外部命令的存储路径。 Linux系统默认会将存放外部命令、程序的目录添加到用户的“搜索路径”中,当使用位于这些目录中的外部们能够令时,用户不需要指定具体的位置。 对于shell来说,可以识别三种基本命令:内建命令、Shell函数以及外部命令 1)

内建命令:由Shell本身所执行的命令 内建命令分为两种:

           1)由于其必要性才内建的命令,比如cd(更改目录)

           2)为了提高效率而存在的命令,比如test(检查文件和比较值)

2)Shell函数:功能健全的一系列程序代码,由Shell语言写成,它们可以像命令一样被引用

3)外部命令:由Shell副本(新的进程)所执行的命令,基本进程如下:

1)创建一个新的进程,也就是Shell副本

2)在新的进程里,在PATH变量内所列出的目录中,寻找特定的命令

备注:`/bin: ` `/usr/bin: ` `/usr/X11R6/bin:` `/usr/local/bin`为PATH变量的典型默认值

3)在新的进程里,使用找到的新进程取代执行中的Shell程序并执行

4)程序完成后,最初的Shell会接着从终端(terminal)读取下一条命令,和执行脚本里的下一条命令 如何区分内部命令与外部命令 使用type(不带参数)会显示命令是内建命令还是外部命令

-t:file 外部命令;alias命令别名;builtin内置命令

-a:会将命令PATH路径显示出来 了解了什么是命令以后,下面我们正式说帮助命令 刚刚说了,linux命令分为内部命令和外部命令,相对应的,使用的帮助命令也不同

内部命令: help 作用:用于显示shell内部命令的帮助信息

语法:help(选项)(参数)

选项:-s:输出短格式的帮助信息。仅包括命令格式

外部命令: 1)可以使用man手册获取帮助

man 作用:Linux下的帮助指令

语法:man(选项)(参数)

选项:

-a:在所有的man帮助手册中搜索

-f:等同于whatis,显示给定关键字的简短描述信息

-P:指定内容时使用分页程序

-M:指定man手册搜索的路径

参数:

man1:用户命令

man2:系统调用

man3:c库调用

man4:设备文件及特殊文件

man5:文件格式(配置文件格式)

man6:系统游戏使用帮助

man7:杂项

man8:管理工具及守护进程

man9:含糊的内核规范和接口

使用方法: 翻屏操作: 空格键:向文件尾部翻一屏

b:向文件首部翻一屏

ctrl+d:向文件尾部翻半屏

ctrl+u:向文件首部翻半屏

回车键:向文件尾部翻一行

k:向文件首部翻一行

G:跳转至最后一行

数字G:跳转至指定行

1G:跳转至文件首部

文本搜索:

/keyword:从文件首部向文件尾部依次查找,不区分字符大小写

?keyword:从文件尾部向文件首部依次查找

n:与查找命令方向相同

N:与查找命令方向相反

2)使用info info

作用:Linux下info格式的帮助指令 info界面就内容比起man编写的更好、也更容易理解。但是man使用起来容易的多。一个manpage只有一页,而info页面几乎总是将它们的内容组织成多个区段,每个区段也可能包含子字段。

语法:info(选项)(参数)

选项:

-d:添加包含info格式帮助文档的目录;

-f:指定要读取的info格式的帮助文档;

-n:指定首先访问的info帮助文件的节点;

-o:输出被选择的节点内容到指定文件 参数: 帮助主题:指定需要获取帮助的主题,可以是指令、函数以及配置文件

实例: 在info后面输入命令的名称就可以查看该命令的info帮助文档

info info 命令: 下面介绍一下它的几个常用快捷键

?键:显示info的常用快捷键

N键:显示(相对于本字节的)下一节点的文档内容

P键:显示(相对于本字节的)上一字节的文档内容

U键:进入当前命令所在的主题

M键:M+COMMAND就可以查看该命令的帮助文档

G键:G+主题名称,进入该主题

L键:回到上一个访问的页面

空格:向前滚动一页

DEL:向后滚动一页

Q:退出info

3)很多应用程序会自带帮助文档,也可以用来查看帮助

位置:/usr/share/doc/APP-VERSION

README:程序的相关信息

INSTALL:安装帮助

CHANGES:版本迭代时的改动信息

4)主流的发行版都会有官方文档

例如Radhat:http://www.redhat.com/doc

5)程序官方一般也包含说明文档 一般都在官方站点上的“Document”内

6)善用搜索引擎 google是不二之选(需要科学上网)

提供两种帮助搜索的小tips: 1)keyword filetype: 2)keyword site:domain.tld

 

六.请罗列Linux发行版的基础目录名称命名法则及功用规定

inux操作系统中的主要目录及目录内容,是由文件系统层次结构标准(Filesystem Hierarchy Standard,FHS)定义的。在大多数情况下,它都是一个传统BSD文件系统层次结构的形式化与扩充。

| 目录/文件 | 用途 | 来源 |

| :——– | ——–: | :–: |

| / |/处于Linux文件系统树形结构的最顶端<br>它是Linux文件系统的入口<br>所有的目录、文件、设备都在/之下 | |

| /bin | 该目录存放着系统最常用的最重要的命令<br>是以独立的文件形式存在<br>这个目录中的文件都是可执行的并且是普通用户都可以使用的命令<br>作为系统最基础的命令都放在这里 | binary |

| /usr | 该目录是系统存放程序的地方<br>比如普通命令、帮助文件、安装的软件等<br>当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里<br>/usr目录下包括涉及字体目录/usr/share/fonts、帮助目录/usr/share/man或/usr/share/doc等 | unix shared resource |

| /var |该目录的内容是经常变动的<br>/var下有/var/log目录用来存放系统日志的目录<br>/var/www目录用来定义Apache服务器站点存放目录<br>/var/lib用来存放一些库文件 | variable |

| /sbin |大多数涉及系统管理的命令都存放在该目录中<br>它是超级权限用户root的可执行命令存放地<br>凡是目录sbin中包含的命令都是root权限才能执行的 | super user binary |

| /root |Linux超级权限用户(系统管理员)root的主目录 | |

| /home |普通用户的主目录都默认存放在该目录中 | |

| /etc |该目录是系统配置文件的所在地<br>一些服务器的配置文件也在这里 | etcetera |

| /dev |设备文件存储目录<br>该目录下是所有Linux的外部设备文件<br> | device |

| /boot |存放Linux的内核及引导系统的程序所需要的文件 | |

| /opt |该目录是可选的软件包安装目录 | optional |

| /tmp |该目录用于存放临时文件 | temporary |

| /lib |该目录用于存放库文件<br>这个目录里存放着系统最基本的共享库 | library |

| /mnt |该目录是用于存放挂载储存设备的挂载目录的 | mount |

| /proc |操作系统运行时进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放处<br>/proc目录是伪装的文件系统proc的挂载目录<br>我们可以通过直接访问这个目录来获取系统信息 | process |

2011110620371927

对于我们自身所创建的文件及目录,则需要按照如下的法则

文件名使用法则:

严格区分字符大小写:file1 File1 FILE1 并不是一个文件

目录也是文件,

在同一路径下,两个文件不能同名

支持使用除”/“以外的任意字符;

最长不得超过255个字符

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87011

(75)
上一篇 2017-09-11 22:06
下一篇 2017-09-12 12:13

相关推荐

  • 网络配置的常用工具

    一、网络配置的常用工具     例如:                ifcfg:ifconfig、route、netstat    &nb…

    Linux干货 2016-09-09
  • ☞SELinux

    ☞SELinux 概述 SELinux(Secure Enhanced Linux)是美国国家安全局(NSA)和SCC开发的Linux的一个强制访问控制的安全模块。2000年以GNU GPL发布,Linux内核2.6版本后集成在内核中。它能够限制权限,进程只能访问那些在他的任务中所需要文件。 Selinux是根据最小权限模型去限制进程在对象(如文件,目录,端…

    Linux干货 2016-09-18
  • 马哥教育网络班22期+第13周课程练习

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)   1)共享名为shared,工作组为magedu;   2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; &n…

    Linux干货 2016-12-05
  • Linux 之LVM

    一 LVM 简介:     LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。LVM的工作原理其…

    Linux干货 2016-03-01
  • 高级文件系统管理(swap,RAID,LVM)

    交换分区wasp swap文件系统:     linux上的交换分区必须使用独立的文件系统;         其文件系统的system ID必须为82 创建swap设备,文件系统,使用mkswap命令 创建步骤:   &…

    Linux干货 2016-08-30
  • Linux常用命令

    一、Linux常用命令(总) 二、Linux常用命令(分) 1、pwd – print name of current/working directory 2、cd – change directory 3、ls – list,dieplay directory content 4、date – pr…

    Linux干货 2016-09-19

评论列表(2条)

  • h
    h 2017-09-13 10:55

    记录非常仔细,转给了需要看基础的同学,注意排版!

  • 浮生
    浮生 2018-01-01 21:54

    很详细的入门资料,适合我们初学者看。感谢作者的分享。