第一周 计算机/Linux基础入门

1、描述计算机组成及其功能

计算机组成主要分为五个部分:控制器、运算器、存储器、输入设备、输出设备

ENIARC:

CPU:运算器、控制器、寄存器、缓存

存储器:内存,RAM(Random Access Memory)        

Input:下指令,提供数据等

Output:输出数据加工的结果

图片1

 

 

 

 

 

数据在控制器输入命令的控制下,通过输入设备送入计算机的存储器存储。其次当计算开始时,在取指令作用下把程序指令逐条送入控制器。控制器对指令进行译码,并根据指令的操作要求向存储器和运算器发出存储、取数命令和运算命令,经过运算器计算并把结果存放在存储器内。在控制器的取数和输出命令作用下,通过输出设备输出计算结果

各组件的功能

控制器(Control):计算机的中枢神经,控制部件之间的协调,也包括寻址操作

  – 保障不同数率传输的数据可以得到缓冲、甄别IO设备传送数据的正错、实现数据与数据之间的交换、接收和识别命令

运算器(Datapath):包含算数逻辑单元(ALU)、累加器、状态寄存器、通用寄存器组等,通常只做运算

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

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

  – 状态寄存器:存放两类信息– 体现当前指令执行结果的状态信息、控制信息

  – 通用寄存器组:可用于传送和暂存数据,也可以参与算术逻辑运算,保存运算结果

       通用寄存器组包括以下几类:数据寄存器、变址寄存器、指针寄存器、段寄存器、指令指针寄存器

存储器(memory):具有存储数据和读写数据的功能,每一个存储单元为cell,8位二进制为一个存储单元,也就是一个字节

  – 最小存储单元   1024*1024*1024*4 Bytes   1024*1024*4 KB   1024*4 MB   4 GB——32位CPU最多只能使用4GB内存

输入设备(Input):作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据输入到计算机

  – 常见的输入设备有:键盘、鼠标、磁带机、磁盘机、光盘机等

输出设备(Output):作用是把计算机的中间结果或最后结果、机内的各种数据及文字等信息输出来

  – 常见的输出设备有:CRT、打印机、绘图仪等

 

2、描述罗列Linux的发行版,并描述不同发行版之间的联系和区别

linux版本

红帽企业系统(RedHatEnterpriseLinux,RHEL.

全球最大的开源技术厂商,全世界内使用最广泛的Linux发布套件。

提供性能与稳定性极强的Linux套件系统并拥有完善的全球技术支持。

社区企业操作系统(Community Enterprise Operating System,Centos

最初是将红帽企业系统“重新编译/发布”给用户免费使用而广泛使用。

当前已被红帽公司收购。

Fedora最初由红帽公司发起的桌面版系统套件(目前已经不限于桌面版)

用户可免费体验到最新的技术或工具,而功能成熟后加入到RHEL中。

openSUSE

德国著名的Linux系统,全球范围内有着不错的声誉。

Gentoo

具有极高的自定制性,操作复杂,因此适合有经验的人员使用。

Debian提供超过37500种不同的自由软件(2015年数据)且拥有很高的认可度。

对于各类内核架构支持性良好,稳定性、安全性强更有免费的技术支持。

Ubuntu

Ubuntu是一款基于Debian派生的产品,对新款硬件具有极强的兼容能力。

普遍认为UbuntuFedora都是极其出色的LINUX桌面系统

图片2

**Redhat系**

名称

基于

特点

Red Hat Enterprise

RPM管理包

红帽的商业版本<br>提供10年服务支持高

CentOS

RedHat

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

Fedora

RedHat

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

**Slackware系**

名称

基于

特点

Slackware

SLS

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

SUSE

Slackware

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

opensuse

SUSE

suse的社区版

**Debian系**

名称

基于

特点

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系统

 

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

1、一切皆文件:把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等

   open(), read(), write(), close(), delete(), create()

2、由众多功能单一的程序组成;一个程序只做一件事,并且做好

   组合小程序完成复杂任务;

3、尽量避免跟用户交互(任何程序启动开始到结束,中间不需要用户不参与)

   目标:易于以编程的方式实现自动化任务;

4、使用文本文件保存配置信息;

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

5、提供机制,而非策略

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

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

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

 

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

命令使用格式

#

COMMAND  OPTIONS ARGUMENTS
命令提示符 命令 选项 参数

 

COMMAND: 在命令提示符下,把这个命令启动为一个进程,而命令运行过程中的特性由选项进行修正,并且这个命令将作用

  在所给定的参数值上

  发起一命令:请求内核将某个二进制程序运行为一个进程;

  程序 –> 进程

  静态 –> 动态(有生命周期)

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

  期的动态进程

  命令本身是一个可执行的程序文件(内部直接调用了CPU指令集中的所允许库):二进制格式的文件,有可能会调用共享库

  文件;

  多数系统程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin/usr/local/bin, /usr/local/sbin

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

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

  共享库(二进制文件,但不能独立执行,没有程序执行入口):/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local

  /lib64

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

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

  命令运行有可能会用到库文件——只要命令以动态形式进行编译并链接至库文件,将在运行时调用库

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

  命令必须遵循特定格式规范:exe, msi, ELF(Linux)

 ~]# file /bin/ls

  命令分为两类:

  由shell程序的自带的命令:内置命令(builtin)

  shell自带的命令是没有程序文件的

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

  shell程序是独特的程序,负责解析用户提供的命令;

  环境变量:

  PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;

 ~]# echo $PATH

 /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

  路径查找次序:自左而右

  查看命令类型——type COMMAND

  内置命令在各个路径下是不可能与之匹配的文件名

OPTIONS:指定命令的运行特性,或者调整命令时所要执行的代码和实现的功能

  选项有两种表现形式:

 短选项:-C, 例如-l, -d

 注意:有些命令的选项没有

 如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld

 长选项:–word, 例如–help, –human-readable

 注意:长选项不能合并;

 注意:有些选项可以带参数,此称为选项参数;

     长选项通常是由等号来等于,短选项通常是由空格分隔

ARGUMENTS:命令的作用对象;命令对什么生效;

注意:不同的命令的参数,格式是不一样的;有些命令可同时带多个参数,多个之间以空白字符分隔;

例如:ls -ld /var /etc

 

ifconfig——查看网络接口配置

语法: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 [SHORT-OPTION]… [STRING]…

   echo LONG-OPTION

常用方法:

  -n: 不进行换行;

  -e:让转义符生效;

    \n:换行

    \t:制表符

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

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

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

 `$SHELL`

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

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

    `/bin/bash`

    注意:变量引用的正规符号

    ${name}

实例1

[root@localhost ~]# echo “abcdefg”

abcdefg

[root@localhost ~]# echo -n “abcdefg”    #不换行直接输出

abcdefg[root@localhost ~]#

实例2

[root@localhost ~]# echo -e “abcdef\bg”   #可以理解为删除前一个

abcdeg

[root@localhost ~]# echo -e “abcdef\cg”   #不换行直接输出

abcdef[root@localhost ~]#

[root@localhost ~]# echo -e “abcdef\ng”   #换行输出

abcdef

g

[root@localhost ~]# echo -e “abcdef\tg”   #相当于键入一个tab键

abcdef        g

实例3

[root@localhost ~]# echo “$SHELL”   #echo “$VAR_NAME”: 变量会替换,双引号表示弱引用

/bin/bash

[root@localhost ~]# echo ‘$SHELL’   #echo ‘$VAR_NAME’:变量不会替换,单引号表示强引用

$SHELL

 

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——显示当前工作目录

语法: pwd [OPTION]..

 

history——命令历史

语法:BASH BUILTIN COMMANDS

常用方法:

  -c: 清空命令历史

  -d offset:删除指定命令历史

  304位置开始删除5条历史记录

   ~]# history -d 304 5

  -r: 从文件读取命令历史至历史列表(内存)中

  -w:把历史列表中的命令追加至历史文件(内存)中

  history #:显示最近的#条命令

 

shutdown——关机或重启命令

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

常用方法:

  OPTIONS:

  -h:halt——将系统关机

  -r:reboot——重启系统

  -c:cancel——取消关机  

  shutdown -r 重启

  shutodwn -h 关机

  shutdown -c 取消计划关机

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

  now

  hh:mm

  +m

  +0

  shutdown +0 马上关机

  shutdown +1 一分钟后关机

  shutdown -X X分钟后关机

  shutdown 20:00 今天20:00关机

 

poweroff——关机

语法: poweroff [OPTION]…

常用方法:

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

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

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

  -f:强制关闭系统

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

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

 

reboot——重启

语法: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:格式符      

参数

作用

%t

跳格[TAB键]

%H

小时(00-23)

%I

小时(00-12)

%M

分钟(00-59)

%S

秒(00-59)

%X

相当于%H:%M:%S

%Z

显示时区

%p

显示本地AM或PM

%A

星期几 (Sunday-Saturday)

%a

星期几 (Sun-Sat)

%B

完整月份 (January-December)

%b

缩写月份 (Jan-Dec)

%d

日(01-31)

%j

一年中的第几天(001-366)

%m

月份(01-12)

%Y

完整的年份

%F

相当于%Y-%m-%d

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

实例1

[root@localhost ~]# date 111017002017.30  #格式为date [MMDDhhmm[[CC]YY][.ss]],M表示月,D表示日,h表示时,m表示分,C和Y表示年份,s表示秒

实例2

[root@localhost ~]# date +%F        #显示当前年月日,格式与%D不一样

2017-11-10

[root@localhost ~]# date +%D        #显示当前年月日

11/10/17

实例3

[root@localhost ~]# date +%H-%M-%S     #显示当前时间

17-11-10

Note:date命令显示的是系统时间

 

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

内部命令:help COMMAND

外部命令:

  (1) 命令自带简要格式的使用帮助

    # COMMAND –help

  (2) 使用手册:manual

    位置:/usr/share/man

    # man COMMAND  图片3

  SECTION:

   NAME:功能性说明

   SYNOPSIS:语法格式

   DESCRIPTION:描述

   OPTIONS:选项

   EXAMPLES:使用示例

   AUTHOR: 作者

   BUGS: 报告程序bug的方式

   SEE ALSO: 参考

   …

  SYNOPSIS:

   []:可选内容;

   <>:必须提供的内容;

   a|b|c:多选一;

   …:同类内容可出现多个;

  使用手册:压缩格式的文件,有章节之分;

   /usr/share/man

   man1, man2, …

 

  1:用户命令(普通管理员和管理员都可以运行的命令);

  2:系统调用;

  3:C库调用;

  4:设备文件及特殊文件;

  5:文件格式;(配置文件格式)

  6:游戏使用帮助;

  7:杂项;

  8:管理工具及守护进行;

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

 

  ~]# man CHAPTER COMMAND

  注意:并非每个COMMAND在所有章节下都有手册;

 

  查看命令在那些章节有帮助:

  ~]# whatis COMMAND

  注意:whatis其执行过程是查询数据库进行的;

 

  手动更新数据库:

  ~]# makewhatis

 

   man命令打开手册以后的操作方法:

翻屏

文本搜索

退出

选项

空格键:向文件尾翻一屏;

b: 向文件首部翻一屏;

Ctrl+d:向文件尾部翻半屏;

Ctrl+u:向文件首部翻半屏;

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

k: 向文件首部翻一行;

G:跳转至最后一行;

#G: 跳转至指定行;

1G:跳转至文件首部;

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

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

n: 与查找命令方向相同

N: 与查找命令方向相反

q: quit

-M /PATH/TO/SOMEDIR:

到指定目录下查找命令手册并打开之;

6、请罗列Linux发行版的基础目录名称命名法则及功能规定

Linux是以树形目录结构的形式来构建系统的。虽然本质上无论是目录结构还是操作系统内核都是存储在磁盘上的,但从逻辑上来说 Linux的磁盘是“挂在”(挂载在)目录上的,每一个目录不仅能使用本地磁盘分区的文件系统,也可以使用网络上的文件系统。

1.FHS 标准(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准)

FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。 FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等等。 第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。

11

 /bin:所有用户可用的基本命令程序文件;

 /sbin:供系统管理使用的工具程序;

 /boot:引导加载器必须用到的各种静态文件:kernel, initramfs(initrd), grub等;

 /dev:存储特殊文件或设备文件;

    设备有两种类型:字符设备(线性设备)、块设备(随机设备);

 /etc:系统程序的配置文件,只能为静态;

 /home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;

 /root:管理员的家目录;可选;

 /lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块

    libc.so.*:动态链接的C库;

    ld*:运行时链接器/加载器;

    modules:用于存储内核模块的目录;

 /lib64:64位系统特有的存放64位共享库的路径;

 /media:便携式设备挂载点,cdrom, floppy等;

 /mnt:其它文件系统的临时挂载点;

 /opt:附加应用程序的安装位置;可选路径;

 /srv:当前主机为服务提供的数据;

 /tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

 /usr:usr Hierarchy,全局共享的只读数据路径;

    bin, sbin

    lib, lib64

    include:C程序头文件;

    share:命令手册页和自带文档等架构特有的文件的存储位置

    local:另一个层级目录;

    X11R6:X-Window程序的安装位置

    src:程序源码文件的存储位置

 /usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;

 /var:/var Hierarchy,存储常发生变化的数据的目录;

    cache             Application cache data

    lib                     Variable state information

    local                     Variable data for /usr/local

    lock                     Lock files

    log                Log files and directories

    opt                Variable data for /opt

    run                Data relevant to running processes

    spool                     Application spool data

    tmp                Temporary files preserved between system reboots

 /proc:基于内存的虚拟文件系统,用于为内核及进程存储其相关信息;它们多为内核参数,例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/, 因此其完整路径为/proc/sys/net/ipv4/ip_forward;  /sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理Linux设备提供一种统一模型的的接口;

2.目录路径

路径

使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录, – 表示上一次所在目录,~ 通常表示当前用户的”home”目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。

(注意,以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件)

绝对路径:以根”/”目录为起点的完整路径,以你所要到的目录为终点,表现形式如: /usr/local/bin

相对路径:相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点,表现形式如: usr/local/bin (这里假设你当前目录为根目录)。

提示:在进行目录切换的过程中请多使用 Tab 键自动补全,可避免输入错误,连续按两次Tab可以显示全部候选结果

 

 

 

 

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

(0)
N28_noonN28_noon
上一篇 2017-12-02
下一篇 2017-12-02

相关推荐

  • bash特性

    一、命令历史     概念:shell进程能够将之前执行过的命令保存记录下来     存储位置:         1、命令历史的文件             使用以下环境变量查看相关参数:     &…

    Linux干货 2016-09-19
  • 马哥教育网络班22期+第5周课程练习 忍者乱太郎喻成

    1、显示当前系统上root、fedora或user1用户的默认shell;   以root为例 awk -F':' '$1 ~ /root/ {print $7} ' /etc/passwd 2、找出/etc/rc.d/…

    Linux干货 2016-10-09
  • Bind配置和基本应用

    BIND的安装配置:    BIND: Berkeley Internet Name Domain,  ISC.org        dns: 协议      &nbsp…

    Linux干货 2017-05-30
  • LVS类型及其调度算法

    LVS类型:     NAT:–>(DNAT) (多目标的DNAT)     DR:     TUN:     FULLNAT: LVS NAT的特性  &nbs…

    Linux干货 2016-10-29
  • bash中的变量

        对任何一门编程语言来说,最基础的部分就是变量。那什么事变量呢?变量就是把一个已知的可以变动的值,赋给一个固定名字的,用固定的名字代表这个可变动的值。在bash中也不例外,跟大多数编程语言一样,它也有一些自己的语法和规则 bash变量:     1.规则设置:变量和变量的值中间用=连接,=的两…

    Linux干货 2016-08-15

评论列表(1条)

  • 马哥教育
    马哥教育 2017-12-16 12:18

    赞,图文并茂~特别是思维导图的总结,对后续复习很有帮助,继续加油。