基础(RHCE)

3本书:RH033,RH133, RH253

架构师:RHCA

5本书:RH401, RH423, RH442, RH436, RHS333

Mysql

RH436

Nosql

运维工程师: 2w台服务器

             web 2000台

系统工程师

系统架构师

DBA

方法论: 思维方式

计算机体系机构:

5大部件:运算器 , 控制器, 存储器, 输入设备, 输出设备

post:BIOS, 将ROM-->RAM,由硬件逻辑完成

自举

程序:指令+数据

轮询:poll

中断:interrupt, 中断控制器

键盘-->电信号-->cpu

计算机系统结构图:

wKioL1O3Yn2ieDVbAACvi97sa20351.jpg

问题一:windows下可执行文件能不能在linux系统下执行

      由上图可知,windows和linux系统主要的差别是在于两个系统的库不相同,以及两个系统对于可执行文件的定义格式不同,即ABI,application binary interface,二进制文件格式中的魔术不同,即使两个操作系统的库文件相同,但是ABI的接口不同, 可执行文件还是不能在两个系统执行。

特殊应用程序shell(人机接口):GUI和CLI

问题二:当用户在不同的应用程序中发出中断时,比如按键盘, cpu如何得知是哪个应用程序的中断??

      中断的响应过程:应用程序发出:--> 中断处理器--> cpu --> 内核处理,响应

可以看出cpu收到中断后, 将请求发送到内核进行处理。

内存的组织:

wKiom1O3bi7hevAIAAA6QpX0NcQ720.jpg

碎片

内核功能:

        进程管理

        内存管理

        文件系统

        网络功能

        硬件驱动

linux发展史:

批处理系统, job1 ¥¥¥¥ job2


GE, bell, MIT -->研发多用户多任务(使用汇编进行研发)

名字: MainFrame


DEC:PDP-11, VAX

     IBM

unics --> unix

B语言--> c语言


BSD :Berkeley System Distribution

System V


Microsoft  XeniX

cp/m -- Dos 单用户单任务

jobs

park

伟大的企业家靠偷

FreeBSD

OpenBSD

NetBSD

sun MicroSystem

Sun os --> Solaris(商业版) 被收购(sun公司运作不行)

CSH

DEC

VMS

window NT基于VMS

荷兰:Andrew --> Minix

Linus: Linux

80年代:Stanllman, Freedom

GNU: GNU is not Unix

GPL: General Public License

Emacs: 文本编辑器

gcc: GNU C Complier

linux: glibc, gcc

bash : 命令行界面

GNU/Linux

源代码: C-->编译成二进制

ABI: Application Binary Interface


发行商:

    1、Redhat

    2、SLS

    3、Debian

    4、SUSE

Debian. dpt

RedHat. rpm

LGPL: lesser

GPLV2

GPLV3

自由获取,自由修改, 自由学习

Centos:Community Eeterpirse os(跟红帽完全兼容)

NetWare

Debian


Linux内的基本原则:

    1、有目的单一的小程序组成,组合小的程序完成复杂的任务

    2、一切皆文件

    3、尽量避免捕捉用户接口

    4、配置文件保存为纯文本格式

GUI类型:

    1、GNOME: c开发

    2、KDE: c++开发

    3、XFace

CLI类型:

    sh

    bash

    csh

    zsh

    ksh

    tcsh

CLI接口:

    命令提示符:prompt,bash(shell)

    # root

    $ 普通用户

shell 命令的请求将发送给内核

命令格式:

    命令  选项   参数

选项:

    短选项: -CHARACTER (多个选项可组合)

    长选项: --WORD (不能组合)

参数:

    命令的操作对象

login

logout

使用凭证:密码

虚拟终端: Ctrl + Alt + (F1-F6)

F7图形

F1字符

模拟终端: (图形界面下的终端)

su: switch user

su [-l] username

passwd 修改当前用户密码


密码复杂性规则:数字, 字母大小写, 特殊字符


学习安排:RHCE+RHCA+Shell编程+MySql+ web集群+Hadoop + Hbase + OpenStack


授权:

审计:

magic number: 魔数(标示二进制的执行格式)

目录和文件:

目录:路径映射文件

文件名: 是不是文件本身的数据

        inode

        数据

ls命令:

ls -h :做单位转换(文件大小)

ls -a : 显示所有文件

ls -A :  显示所有文件(不包含隐藏文件)

ls -d : 显示目录自身属性

文件索引, index node = inode

ls -i :显示文件inode,索引字节序,是个整数

ls -r:逆序显示文件

ls -R: 递归显示


cd命令:change directory

每个用户都有一个家目录

cd ~ username

cd - 切换到前一个目录


命令的类型:

    1、内置命令(shell内置)

    2、外部命令

type: 显示命令的类型

外部命令: 在文件系统的某个路径下有一个命令名称相应的可执行文件


环境变量: 命名的内存空间(定义当前工作用户的工作环境) printenv 命令查看

path : 以":"分隔的路径 (缓存: 命令<--> 路径, 查看的命令:hash)


date命令:

date: 时间管理(主板上的纽扣电池)

linux: rtc(real time clock)

        分为:

            1、硬件时钟(纽扣电池): 使用clock和 hwclock查看

            2、系统/软件时钟(模拟振荡器) date查看

ntp : 网络时间协议


获取命令的使用帮助:

内部命令: help COMMAND

外部命令: COMMAND --help


命令手册:man COMMAND

        man ls

        man cd


man 分章节:

1、 用户命令 (/bin, /usr/bin, /usr/local/bin)

2、 系统调用 

    man 2 read

    显示乱码:方法: export LANG=en

    查看章节: whatis COMMAND

3、库用户调用

4、特殊文件(设备文件)

    设备访问的入口

    man 4 tty

5、文件格式(某个命令对应配置文件的语法格式,例如:/etc/passwd)

    man 5 passwd

6、游戏

7、杂项

8、管理命令(/sbin, /usr/sbin, /usr/local/sbin)


man 文档说明:

<> 必须给

[] 可选

| 多选一

... 可以多次出现

{}: 分组,无特殊意义


man


NAME: 命令名字及功能简要说明

SYNOPSIS : 用法说明

DESCRIPTION :命令功能详尽说明

OPTIONS

FILES: 此命令相关的配置文件

EXAMPLES:实例

ALSO:另外参照


翻屏:

    向后翻一屏: space

    向前翻一屏:b

    向后翻一行: enter

    向前翻一行:k

查找:

    /keyword: 向后

    ?keyword:向前

N:前一个

n: 下一个


时间: 格林威治时间

hwclock: 显示硬件时钟

hwclock -w: 将硬件时间同步到系统时间

hwclock -s:  将系统时间同步到硬件时间


在线文档:info COMMAND

文档路径: /usr/share/doc


apache, hadoop

cal: 命令calendor

printf: 命令