@zhangyy
2020-01-17T17:34:40.000000Z
字数 7866
阅读 145
运维基础系列
中级:
初级:系统基础
中级: 系统管理,服务安全服务管理,shell脚本
高级:
mysql 数据库
cache && storage
集群:
cluster
lb:
4 layer
7 layer
分布式:
zookeeper
分布式文件系统
虚拟化技术:
xen
kvm
Openstack: IaaS 云:
运维工具:
ansible (ssh key)
基于目标状态:
puppet (ruby)
slatstack (python)
监控工具:
zabbix
大数据处理
hadoop
spark,storm
日志处理:
flume ELK
docker: 容器虚拟化工具
python: 构建自动化运维工具
一万小时定律
Linux 认证:
redhat:
RHCSA
RHCE
RHCA
-----------------------------------------------
培训:
加速知识获取过程:
------------------------------------------------
现代计算机设备的组成部分:
运算器、控制器、存储器、输入设备、输出设备。
cpu : 运算器、控制器
cpu 指令,指令集
特权指令: os 运行特权指令
普通指令: 应用常用的命令
程序员: 写程序去实现
bus: 数据总线
控制总线
地址总线
memory: 内存单元 编程存储设备
read ahead: 内存缓存
IO: 与外部部件交互 性能交互设备
磁盘:
网卡:
OS: operation System
软件程序
通用目的
硬件驱动
进程管理
内存管理
网络管理
安全管理
System call
syscall 系统调用
编程层次:
硬件规格: hardware specifiacation
系统调用:syscall
库调用: library call
UI:
GUI : Graphic User Interface
CLI : Command Line Interface
ABI: Application Binary Interface
API: Application Programming Interface
十二、cpu 架构类型:
x86
x64
arm
m68000,m68k
power
powerpc
ultrasparc
alpha
安藤
龙芯
--------------------------------------------------------------
十三、操作系统(os)
windows
unix
Sysv (bell lab)
aix (ibm)
solaris (sun)
hp-ux (hp)
bsd (BSRG) Berkeley System distribution
freebsd
openbsd
NetBsd
linux 是 UNIX like
MIT : Richard Stallman
GNU : GNU is Not Unix
GPL: General Public License
----------------------------------------------------------------
POS: Portable Operation System
POSIX
API: 编程接口
运行程序格式:
windows: EXE ,DLL (dynamic link library)
linux : ELF , SO (shared object)
程序: 指令+ 数据
指令: 只读
数据:读写
程序: 算法+数据结构
库调用: 系统调用、运行被调用的程序:
malloc(),free()
编程语言:
汇编语言: 维码编程
系统中某些与硬件相关的特有代码,驱动程序开发
高级语言 c, c++
系统级应用,驱动程序
应用开发语言: Java,Python,php
Linux 的发行版
slackware:
suse
opensuse
suse linux
debian
ubuntu linux
mint
redhat
rhel: redhat enterprise linux
每18个月发行一个新版本
Centos : 完全兼容RHEL的格式
fedora 主要新软件的测试,每6个月发行一个新版本
Archlinux
Gentoo
LFS: linux from scratch
Android : kernel + busybox + jvm
GUN:GPLv2,GPLv3 LGPL (lesser)
Apache:apache
BSD:bsd
A: 1000,GPL
B: 2000,20
问题1: Centos 和 Linux 是什么关系? centos 与 RHEL 是什么关系
问题2: 各种开源协议的具体内容细节?
GPL , LGPL ,Apache ,BSD
程序包管理器:
rpm
rhel ,fedora, centos suse
dpt
debian,ubuntu
自用软件:
1. 自由使用
2. 自由学习和修改
3. 自由分发 自由创建衍生版
1. 一切皆文件
几户所有资源,包括硬件设备都组织为文件格式:
2. 由众多单一目的的小程序组成: 一个程序只实现一个功能,而且要做好:
组合小程序完成复杂任务
3. 尽量避免跟用户交互:
目标: 实现脚本编程,以自动完成某些功能
4. 使用纯文本文件保存配置信息:
目标: 一款使用的文本编辑器即完成系统配置工作
如何获取CentOS 的 发行版:
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
终端:
用户与主机交互,必然用到的设备
物理终端: 直接接入本机的显示器和键盘设备:console
虚拟终端: 附加在物理终端之上的以软件方式虚拟实现的终端: CentOS 默认启动6个虚拟终端
Ctrl + alt + fn : n (1--6)
设备文件路径:/dev/tty#
图行终端:附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境
模拟终端: 附加在图形上命令行接口,基于ssh 协议或telnet协议 连接到Linux 都是 模拟终端
设备文件路径:/dev/pts/# [0,00]
查看当前的终端的命令: tty
交互式接口: 启动终端后,在终端设备附加一个交互式应用程序
GUI:
X protocol, windows manager,desktop
Desktop :
GNOME: (C ,GTK)
KDE: (C++,QT)
XFCE: (轻量级桌面)
CLI:
shell命令行工具窗口:
sh (bourn)
csh
tcsh
ksh (korn) --- 商业产品
bash (bourn again shell),GPL
zsh
显示当前使用的shell:
# echo $SHELL
显示Linux下的所有shell
chsh --list
cat /etc/shells
-------------------------------------
[root@flyfish01 ~]#
[root@flyfish01 ~]: ps1
# prompt:
管理员: #
普通用户: $
命令:
输入命令,回车
提请shell程序找到键入命令所对应的可执行程序或代码,并有其分析后提交给内核分配资源 将其运行起来
表现为一个或多个进程
在shell 中可执行的命令有两类
内建命令:由shell 自带的,而且通过命令形式提供:
外部命令:在当前系统的某文件系统路径下对应的可执行程序文件
外部命令: which , whereis
区别内部命令+ 外部命令
# type + 命令
运行命令:
命令格式:
command [options......] [arguments....]
选项: 用于启用或关闭的命令的某项功能
短选项: -c , -h , -s 可以写作 --lh
长选项: --word,例如:--long ,--huamn-readable
参数: 命令的作用对象
向命令提供数据
注意:
1.多选项,以及多参数和命令之间使用空白字符分隔
2.取消命令执行:Ctrl+c
文件系统:
C:\Program files\officell\work\word.exe
/etc/sysconfig/network-script/ifcfg-eth0
文件有两种类型:
元数据: metadata
数据: data
1. 文件名严格区分字符大小写:file1,File1.FILE1 是不同的文件
2. 文件名可以使用除/以外的任意字符,不建议使用特殊字符
/: 根目录,路径分隔符:
3. 文件名长度最长不超过255个字符
4. 所有以.开头的的文件,都是隐藏文件
路径:
绝对路径: 从根目录起始的路径
相对路径: 从当前位置开始的路径
(1)./: ./sysconfig/network-scripts
(2) 省掉上述符号:sysocnfig/network-scripts
..: 表示上级目录
当前目录: current directory, 也称作 working directroy:
pwd : printing working directory
LSB: linux Standard Base
命令总结: ls , cd , type , tty , cat ,which, whereis, pwd , echo
命令:
(1)文件系统相关
目录管理
文件管理
文件查看
文件编辑
(2) 系统管理相关
格式: COMMAND [OPTIOINOS...][ARGUMENTS....]
内部命令:
# help COMMAND
外部命令:
(1) # COMMAND --help
# COMMAND -h
(2) 使用手册(manual):
#man COMMAND
(3) 信息页:---支持超链接
# info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google / baidu
内部命令帮助:
# help COMMAND
hash 命令:
shell 搜索寻找到外部命令的路径结过会缓存至key-values 对存储当中
history命令:
管理命令历史:
登录shell时,会读取命令历史文件
中记录下的命令:~/.bash_history
登录进shell后新执行的的命令会记录在缓存中:这些命令会永红退出时候“追加”至命令历史文件中
history:
-a: 追加本次会话新执行的命令历史列表至历史文件中:
-d:删除历史中指定的命令
-c:清空历史命令
快捷键:
!#: 调用历史命令#条命令
!string: 调用历史中最近一个一string 开头的命令
!! : 重复上一条命令
外部命令帮助获取:
(1) COMMAND --help
(2) man COMMAND
手册页:/usr/share/man
man1....man8
man1: 用户命令
man2: 系统调用
man3: C库调用
man4: 设备文件及特殊文件
man5: 配置文件格式
man6: 游戏
man7: 杂项
man8: 管理类的命令
man 命令的配置文件: /etc/man.config
MANPATH /PATH/TO/SOMEWHERE: 指明新的手册文件搜索位置
#man -M /PATH/TO/SOMEWHERE COMMAND : 到指定位置下搜索COMMAND 命令的手册页
注意: 有些关键字在不止一个章节在存在帮助中手册: man # COMMAND
帮助手册中的段落说明:
NAME
SYNOPSIS
DESCRIPTION
OPTIONIS
EXAMPLES
AUTHOR
REPORTING BUGS
SEE ALSO
SYSNOPSIS:
[]: 可选内容
<>: 必选内容
a|b: 二选一
...: 同一内容可出现多次
man 命令的操作方法
space / ^f ^F ^v ^F : 向文件尾部翻屏
b, ^B : 向文件头部翻屏
d, ^D : 一次翻半屏
u, ^U : 向文件首部翻半屏
^N,e , ^E ,j ^J: 一次向尾部翻一行
y,^Y , k, ^K : 一次向首部 翻一行
q: 退出
#: 跳转至第 # 行
1G : 回到文件首部
G : 到文件的最后一行
文本搜索:
/keys world : 以keyworld 为关键字 ,从当前位置向文件尾部进行搜索: 不区分大小写
n: 下一个
N: 上一个
?key world 以keyworld 为关键字 ,从当前位置向文件尾首部进行搜索: 不区分大小写
n: 下一个
N: 上一个
(3) info
info COMMAND
(4) 程序安装后的帮助文档
/usr/share/doc/COMMAND-VERSION
(5) 程序官方文档
(6) 发行版的官方文档
http://www.redhat.com/docs/
(7) www.google.com
www.slideshare.net
date 命令:
-----------
date [OPTION]....[+FORMAT]:显示
FORMAT:格式符号
%D
%F
%T
date [MMDDhhmm][[CC]YY][.ss]]: 设置
MM: 月份
DD: 几号
hh: 小时
mm: 分钟
YY:两位年份
CCYY:四位年份
.ss: 秒钟
----
Linux 的两种时钟:
系统时钟: 由Linux内核通过cpu 的工作频率进行的计时
硬件时钟:
hwclock:显示硬件时钟
-s, --hctosys
-w, --systohc
-------------------------------
1.目录相关的命令:
当前目录或工作目录
主目录: 家目录:HOME
root: /root
普通用户: /home/USERNAME
~: 用户的当前目录
cd :
cd 或 cd ~:回当前用户的主目录
cd ~USERNAME: 切换到普通用户的目录
cd - : 在上一个目录和当前目录之间来回切换
2.相关环境变量:
pwd : 保存了当前目录路径的变量
oldpwd: 上一次所在的当前目录
ls : list 列出 指定 目录下的列表
ls [options] ...[DIR]...
-a --all:显示所有文件,包括隐藏文件:
-l : 长格式显示
-rw-r--r-- 1 root root 4030 Jul 10 13:45 sudoers
最左测的第一位: 文件类型
- : 普通文件
d : 目录
l : 链接
b : 块设备文件
c : 字符设备
p : 管道
s : 套接字
后九位: 文件访问权限
后面有个数字:
表示: 文件被硬连接的次数
root: 表示文件的ower
root: 文件的group
44800: 文件的size
aug 14 14:32: 文件最近被修改的时间
install.log : 文件名称
-h, --human-readable:单位换算
-d: 显示目录自身的相关属性,通常要与-l一起使用
-r : 以降序方式排序
-R :递归显示
stat /root/install.log
stat /path/to/somefile: 获取当前文件的所有信息
(3) 文件查看
cat : 从头看到位
-E 查看 换行符号
-n 对显示出的每一行进行编号
tac : 从尾看到头
(4)文件内容类型查看命令: file
file /path/to/somewhere
会显命令: echo
echo '$shell' 单引号强引用
echo "$shell" 双引号弱引用
-n : 禁止自动添加换行符号
-e : 允许使用转义符号
\n: 换行
\t: 制表符
(5) which: 显示命令对应的程序文件路径
which [options] command
--skip-alias:禁止显示别名
(6) whatis:
使用mkwhatis命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库:
系统管理命令:
关机:
halt ,poweroff ,shutdown,init 0
重启:
reboot ,shutdown,init 6
登录相关:
who ,whoami ,w
根文件系统(rootfs):
root filesystem
LSB,FHS:(FileSystem Heirache Standard)
/etc,/usr,/var,/root,/home,/dev
/boot: 引导文件存放目录,内核文件(vmlinuz), 引导加载器(bootloader,grub)都存放在此目录:
/bin: 供所有用户使用的基本命令:不能关联至独立分区:os 启动即会用到的程序会放在此处:
/sbin: 系统用户常用特权命令,管理类的命令 不能关联至独立分区:os 启动即会用到的程序
/lib: 基本共享文件,以及内核模块文件(/lib/modules):
/lib64: 基本兼容 /lib 专用于x64 系统上的的辅助共享库文件存放路径
/etc: 配置文件目录(纯文本文件)
/home/USERNAME:普通用户家目录
/root:管理员的家目录
/media: 便携式一栋设备挂载点:
cdrom
usb
/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 ....
/var: variable data files
cache : 应用程序缓存目录
lib : 应用程序存储状态信息
local: 专应用与为/usr/local/ 下的应用程序的存储可变的数据信息
lock: 锁文件
log : 日志目录及文件
opt : 专用于为/opt 下的用程序存储可变数据
run: 运行中的进程相关数据,通常用于存储进程的PID 文件
spool:应用程序池
tmp :保存系统两次重启之间产生的临时数据
/proc : 用于输出内核与进程信息相关的虚拟文件系统
/sys : 用于输出当前系统上硬件设备相关信息的虚拟文件系统
/misc 备用杂项文件
/selinux: security enhanced linux
selinux 相关的安全策略 等信息的存储信息位置
二进制程序: /bin,/sbin,/usr/bin,
/usr/sbin, /usr/local/bin,/usr/local/sbin
库文件: /lib, /lib64,/usr/lib,/usr/lib64,/usr/local/lib,/usr/local/lib64
配置文件:/etc/ ,/etc/Directory,/usr/local/etc/
帮助文件: /usr/share/man,/usr/share/doc/,/usr/local/share/man, /usr/local/share/doc
-(f): 普通文件
d: 目录文件
b: 块设备
c: 字符设备
l: 符号链接
p: 管道文件
s: 套接字文件,socket;
关机:
halt ,poweroff , shutdown, init 0
重启:
reboot ,shutdown ,init 6
-f : 强制,不调用shutdown
-p : 切断电源
shutdown:
shutdown [OPTNONS]...[TIME]
-r : reboot
-h : halt
-c : cancel 取消
time :
now : 立刻
+m: 相对时间表示法: 从命令提交开始多久之后,如: +3;
hh:mm:绝对时间表示,指定具体时间
whoami : 显示当前登录的用户
who : 显示当前所有用户的登录
w : 系统当前所有的登录会话及所做的操作