基础(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
计算机系统结构图:
问题一:windows下可执行文件能不能在linux系统下执行
由上图可知,windows和linux系统主要的差别是在于两个系统的库不相同,以及两个系统对于可执行文件的定义格式不同,即ABI,application binary interface,二进制文件格式中的魔术不同,即使两个操作系统的库文件相同,但是ABI的接口不同, 可执行文件还是不能在两个系统执行。
特殊应用程序shell(人机接口):GUI和CLI
问题二:当用户在不同的应用程序中发出中断时,比如按键盘, cpu如何得知是哪个应用程序的中断??
中断的响应过程:应用程序发出:--> 中断处理器--> cpu --> 内核处理,响应
可以看出cpu收到中断后, 将请求发送到内核进行处理。
内存的组织:
碎片
内核功能:
进程管理
内存管理
文件系统
网络功能
硬件驱动
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: 命令