马哥教育网络班21期+第1周课程练习

(一)计算机的基础认识

      1. 冯诺依曼体系:

         运算器(ALU Arithmetic Logical Unit):完成算数和逻辑运算。

         控制器(CU Control Unit):发出各种控制信息,让计算机各部件协调工作。

         存储器(Memory):记忆程序和数据的部件

         输入设备(Inputdevice):将程序和数据输入的部件。

         输入设备(Outputdevice):将数据和其他信息输出

QQ截图20160704134358.jpg      

上图表明,计算机内部5大部件共有两类信息流动,数据类(原始数据,中间结果,程序指令等);控制类用单线表示,两类都是用二进制0或1组成。数据输入到存储器要经过运算器,输出时有运算器输出到输出设备,前提是有控制器发送控制信号完成的。计算机工作时将存放在存储器上的程序逐条输出到控制器,控制器执行指令发送到控制信号到其他4个部件。                   

   

      2.计算机的总线结构:

QQ截图20160704150051.jpg

      数据总线(DB):CPU与存储器,I/O接口设备之间传送数据信息(各种指令数据信息)的总线,双向传输。

      地址总线(AB):CPU向存储器,I/O接口设备发出的地址信息,寻址能力CPU特有,因此单向传输。

      控制总线(CB):CPU到存储器,I/O接口设备的控制信号,有存储器,I/O设备的应答,请求信号。

      控制信号包括:时序信号,状态信号,命令信号(读写,繁忙,中断)等。

     3.处理器架构(CPU所采用的指令系统)

       CISC的英文全称为“Complex Instruction Set Computer”,即“复杂指令系统计算机”程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。主要有Intel,Amd系列

       RISC的英文全称为“Reduced Instruction Set Computing”,中文即“精简指令集”,它的指令系统相对简单,它只要求硬件执行很有限且最常用的那部分执令,大部分复杂的操作则使用成熟的编译技术,由简单指令合成。目前在中高档服务器中普遍采用这一指令系统的CPU,特别是高档服务器全都采用RISC指令系统的CPU。在中高档服务器中采用RISC指令的CPU主要有Compaq(康柏,即新惠普)公司的Alpha、HP公司的PA-RISC、IBM公司的Power PC、MIPS公司的MIPS和SUN公司的Spare。

(二)操作系统的基础认识

      1. linux操作系统

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。

 QQ截图20160704165202.jpg

       用户进程:运行在linux系统内核(sh csh tcsh ksh bash zsh 等)之上,一个庞大软件集合。

       系统调用:内核的出口,用户程序通过系统调用使用内核提供的功能或者更高级一点C库调用。

       内核子系统:硬件驱动,进程管理,内存管理,网络管理,安全管理等

       硬件:计算机硬件。

程序的运行模式:          

      用户空间:用户空间中的代码指令运行在较低的特权级别ring3上,只能看到允许它们使用的部分系统资源,       并且不能使用某些特定的系统功能,也不能直接访问内核空间和硬件设备,以及其他一些具体的使用限制

      内核空间:Linux系统对自身进行了划分,一部分核心软件独立于普通应用程序,指令运行在较高的特权级别       上CPU ring0,它们驻留在被保护的内存空间上,拥有访问硬件设备的所有权限,Linux将此称为内核空间

运行程序格式ABI:

      Windows: EXE, dll(dynamic link library)

      Linux: ELF, so(shared object)

POSIX规范:Portable Operating System 只是规范了操作系统为应用级程序开发的API,没有规范程序的ABI,因此       Windows和Unix,Linux的应用程序编译成二进制后是不兼容的。

C程序运行过程:

      加深linux源码安装过程的认识

             c process.png

      预处理阶段(cpp):根据义字符#开头的命令,修改原始C程序,例如#include <stdio.h>,就是告诉于处理器读取系统头文件stdio.h,插入到程序文本,形成另一个C程序,通常是以.i结尾的扩展名。

      编译阶段:编译器(ccl)将hello.i文件翻译成.s文件,它包含了一个汇编语言程序,加入了汇编代码。

      汇编阶段:编译器(as)将.s文件翻译成机器语言指令,形成机器可读的二进制数据。

      链接阶段:假如hello程序条用了printf函数,C库,由编译器提供,而printf函数存在一个名为printf.o的单独的预编译目标文件中,这个文件必须以某种方式并入到hello.o程序中,连接器(ld)负责这种并入,结果得到hello文件,他是一个可执行目标文件,加载到存储器上,系统负责执行。

       2. linux操作系统不同发行版的区别和联系

QQ截图20160704222628.jpg

其中Gentoo,Archlinux,LFS可定制性很强,充分发挥硬件性能,但配置比较复杂,有时间单独研究安装使用下再总结了。

     3.linux的哲学思想

      一切皆文件:对所有文件(目录、字符设备、块设备、 套接字、打印机等)操作,读写都可用           fopen()/fclose()/fwrite()/fread()等函数进行处理(VFS)。屏蔽了硬件的区别,所有设备都抽象成文件,提供统一的 口给用户。

      由众多单一目的小程序组成:一个程序只实现一个功能,组合小程序完成复杂任务。

      尽量避免跟用户交互:使用脚本编程,以自动完成某些功能。

      使用纯文本文件保存配置信息:一款使用的文本编程器即能完成系统配置和软件配置工作。

(三)linux操作系统的FHS和基础命令

     1.Filesystem Hierarchy Standard(文件系统目录标准)

/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录;

/bin:供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序;

/sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序;

/lib:基本共享库文件,以及内核模块文件(/lib/modules);

/lib64:专用于x86_64系统上的辅助共享库文件存放位置;

/etc:配置文件目录(纯文本文件);

/home/USERNAME:普通用户家目录;

/root:管理员的家目录;

/media:便携式移动设备挂载点;

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

/dev:设备文件及特殊文件存储位置;

b: block device,随机访问

c: character device,线性访问

/opt:第三方应用程序的安装位置;

/srv:系统上运行的服务用到的数据;

/tmp:临时文件存储位置;

/usr: universal shared, read-only data;

bin: 保证系统拥有完整功能而提供的应用程序;

sbin:

lib:

lib64:

include: C程序的头文件(header files);

share:结构化独立的数据,例如doc, man等;

local:第三方应用程序的安装位置;

bin, sbin, lib, lib64, etc, share

/var: variable data files

cache: 应用程序缓存数据目录;

lib: 应用程序状态信息数据;

local:专用于为/usr/local下的应用程序存储可变数据;

lock: 锁文件

log: 日志目录及文件;

opt: 专用于为/opt下的应用程序存储可变数据;

run: 运行中的进程相关的数据;通常用于存储进程的pid文件;

spool: 应用程序数据池;

tmp: 保存系统两次重启之间产生的临时数据;

/proc: 用于输出内核与进程信息相关的虚拟文件系统;

/sys:用于输出当前系统上硬件设备相关信息的虚拟文件系统;

/selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置;

       2.基础命令

格式 : Command 选项 参数

       选项:长选项– 短选项-   参数:要处理的文件,有的命令可以有多个参数

命令帮助:

 man COMMAND

 手册页:/usr/share/man

 man1 … man8

 man1: 用户命令

 man2: 系统调用

 man3: C库调用

 man4: 设备文件及特殊文件   

 man5: 配置文件格式

 man6: 游戏

         man7: 杂项

 man8: 管理类的命令

         注意:有些关键在不止一个章节中存在帮助手册;

     要查看指定章节中的手册:man # COMMAND,1,5,8比较常用。

man命令的操作方法:

         Space, ^V, ^f, ^F: 向文件尾翻屏;

         b, ^B: 向文件首部翻屏;

         d, ^D: 向文件尾部翻半屏;

         u, ^U: 向文件首部翻半屏;

         RETURN, ^N, e, ^E or j or ^J: 向文件尾部翻一行;

         y or ^Y or ^P or k or ^K:向文件首部翻一行;

         q: 退出;

         #:跳转至第#行;

         1G: 回到文件首部

         G:翻至文件尾部

ifconfig命令:已被废弃的命令,建议以后使用ip命令

查看所有网卡

QQ截图20160705131530.jpg

查看网卡详细统计数据

QQ截图20160705131610.jpg

临时给网卡配ip

QQ截图20160705131742.jpg

禁用启用网卡

QQ截图20160705132027.jpg 

echo命令:

-e 允许转义符 -n 不允许自动添加换行符换行

QQ截图20160705133047.jpg

转义符:反斜线 报警 退格键 ESC键 换页符 换行符 回车键 Tab键

QQ截图20160705133144.jpg

pwd 命令:打印出当前工作目录(绝对路径)

QQ截图20160705134444.jpg

export命令:查看和临时更改登录shell的环境变量

QQ截图20160705140127.jpg

shutdown命令:

-r reboot -h halt -H halt -P poweroff -c清除shutdown相关任务 -k 警告,用户不能登录,不关机

QQ截图20160705141114.jpg

date命令:

常用FORMAT

%Y  YYYY格式的年份(Year)

%m  mm格式的月份(),01-12

%d   dd格式的日期(day of month),01-31

%H   HH格式的小时数(),00-23

%M  MM格式的分钟数(),00-59

%S   SS格式的秒数(),00-59

%F   YYYY-mm-dd格式的完整日期(Full date),同%Y-%m-%d

%T   HH-MM-SS格式的时间(Time),同%H:%M:%S

%s   自1970年以来的秒数。C函数time(&t) 或者Java中 System.currentTimeMillis()/1000, new Date().getTime()/1000

%w   星期几,0-6,0表示星期天

%u   星期几,1-7,7表示星期天

注意以上格式是可以任意组合的,还可以包括非格式串,比如 date "+今天是%Y-%d-%m,现在是$H:%M:%S"

格式:date -d STRING

格式:date –date=STRING

格式:date -d STRING +FORMAT

显示用STRING指定的日期时间(display time described by STRING, not ‘now’)

格式:date -s STRING

格式:date –set=STRING,date [MMDDhhmm[[CC]YY][.ss]]:设置来设置系统时间

更多格式 man date 或 date –help

 

hwclock命令:

-r 显示硬件时钟 -s 同步硬件时钟到系统时间 -w 同步系统时间到硬件时间

history命令:~/.bash_history 为命令历史记录文件,不退出不记录,只会记录在缓存中

-a: 追加本次会话新执行的命令历史列表至历史文件中;-d: 删除历史中指定的命令;-c: 清空命令历史

!#: 调用历史中第#条命令;!string:调用历史中最近一个以string开头的命令;!!: 上一条命令

tty命令:查看当前登录终端 物理终端/dev/console 虚拟终端/dev/tty# 模拟终端/dev/ps/#

startx命令:读取/etc/X11/xorg.conf进入图形界面终端

原创文章,作者:Snoo,如若转载,请注明出处:http://www.178linux.com/21782

(0)
SnooSnoo
上一篇 2016-07-07
下一篇 2016-07-07

相关推荐

  • 网卡别名和bonding——让你的网络接口更加稳定

    网卡配置文件: 1、IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE     IFACE:接口名称 2、路由的相关配置文件(默认无此文件):/etc/sysconfig/network-scripts/route-IFACE 3、配置文件/etc/sy…

    Linux干货 2016-09-05
  • N22-第二周作业

    1、linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。    文件管理命令        mkdir     创建目录         &…

    Linux干货 2016-08-22
  • N22-第十周作业

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) (1)POST:加电自检,利用COMS里记录的配置信息检测硬件是否都工作正常 (2)Boot Sequence: 按次序查找各引导设备,第一个有引导程序的设备即为本次启动要用到的设备 Grub引导程序:提供一个菜单,允许用户选择要启动的系统或不同的内核版本, 把用户选定的内…

    Linux干货 2016-10-25
  • MySQL入门命令知识

    简单介绍下吧,MySQL应用的场景大多数互联网公司第一次卖身是卖个了sun好像是10亿,第二次是连同sun自己,以74亿美元被卖给了Orecle~后面MySQL原作者站出来说,MySQL会存在闭源风险,整了个MariaDB~我也是醉了,也不考虑下我们的痛苦!下面简要介绍下MySQL的入门知识。    一、MySQL有三种定义语言 &nbs…

    2016-12-05
  • linux多网卡绑定

    为了增加网络牢固性,linux服务器通过多块网卡来实现网卡冗余或链路聚合、负载均衡的技术。网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6常用的有三种mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援…

    系统运维 2016-06-23

评论列表(1条)

  • 马哥教育
    马哥教育 2016-07-07 11:11

    写的很好,排版还可以在漂亮一点,加油