@zhangyy
2020-01-17T09:34:40.000000Z
字数 7866
阅读 296
运维基础系列
中级:初级:系统基础中级: 系统管理,服务安全服务管理,shell脚本高级:mysql 数据库cache && storage集群:clusterlb:4 layer7 layer分布式:zookeeper分布式文件系统虚拟化技术:xenkvmOpenstack: IaaS 云:运维工具:ansible (ssh key)基于目标状态:puppet (ruby)slatstack (python)监控工具:zabbix大数据处理hadoopspark,storm日志处理:flume ELKdocker: 容器虚拟化工具python: 构建自动化运维工具一万小时定律Linux 认证:redhat:RHCSARHCERHCA-----------------------------------------------培训:加速知识获取过程:------------------------------------------------
现代计算机设备的组成部分:运算器、控制器、存储器、输入设备、输出设备。cpu : 运算器、控制器cpu 指令,指令集特权指令: os 运行特权指令普通指令: 应用常用的命令程序员: 写程序去实现bus: 数据总线控制总线地址总线memory: 内存单元 编程存储设备read ahead: 内存缓存IO: 与外部部件交互 性能交互设备磁盘:网卡:OS: operation System软件程序通用目的硬件驱动进程管理内存管理网络管理安全管理System callsyscall 系统调用编程层次:硬件规格: hardware specifiacation系统调用:syscall库调用: library callUI:GUI : Graphic User InterfaceCLI : Command Line InterfaceABI: Application Binary InterfaceAPI: Application Programming Interface十二、cpu 架构类型:x86x64armm68000,m68kpowerpowerpcultrasparcalpha安藤龙芯--------------------------------------------------------------十三、操作系统(os)windowsunixSysv (bell lab)aix (ibm)solaris (sun)hp-ux (hp)bsd (BSRG) Berkeley System distributionfreebsdopenbsdNetBsdlinux 是 UNIX likeMIT : Richard StallmanGNU : GNU is Not UnixGPL: General Public License----------------------------------------------------------------POS: Portable Operation SystemPOSIXAPI: 编程接口运行程序格式:windows: EXE ,DLL (dynamic link library)linux : ELF , SO (shared object)程序: 指令+ 数据指令: 只读数据:读写程序: 算法+数据结构库调用: 系统调用、运行被调用的程序:malloc(),free()编程语言:汇编语言: 维码编程系统中某些与硬件相关的特有代码,驱动程序开发高级语言 c, c++系统级应用,驱动程序应用开发语言: Java,Python,phpLinux 的发行版slackware:suseopensusesuse linuxdebianubuntu linuxmintredhatrhel: redhat enterprise linux每18个月发行一个新版本Centos : 完全兼容RHEL的格式fedora 主要新软件的测试,每6个月发行一个新版本ArchlinuxGentooLFS: linux from scratchAndroid : kernel + busybox + jvmGUN:GPLv2,GPLv3 LGPL (lesser)Apache:apacheBSD:bsdA: 1000,GPLB: 2000,20问题1: Centos 和 Linux 是什么关系? centos 与 RHEL 是什么关系问题2: 各种开源协议的具体内容细节?GPL , LGPL ,Apache ,BSD程序包管理器:rpmrhel ,fedora, centos susedptdebian,ubuntu自用软件:1. 自由使用2. 自由学习和修改3. 自由分发 自由创建衍生版
1. 一切皆文件几户所有资源,包括硬件设备都组织为文件格式:2. 由众多单一目的的小程序组成: 一个程序只实现一个功能,而且要做好:组合小程序完成复杂任务3. 尽量避免跟用户交互:目标: 实现脚本编程,以自动完成某些功能4. 使用纯文本文件保存配置信息:目标: 一款使用的文本编辑器即完成系统配置工作如何获取CentOS 的 发行版:http://mirrors.aliyun.comhttp://mirrors.sohu.comhttp://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,desktopDesktop :GNOME: (C ,GTK)KDE: (C++,QT)XFCE: (轻量级桌面)CLI:shell命令行工具窗口:sh (bourn)cshtcshksh (korn) --- 商业产品bash (bourn again shell),GPLzsh显示当前使用的shell:# echo $SHELL显示Linux下的所有shellchsh --listcat /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数据: data1. 文件名严格区分字符大小写:file1,File1.FILE1 是不同的文件2. 文件名可以使用除/以外的任意字符,不建议使用特殊字符/: 根目录,路径分隔符:3. 文件名长度最长不超过255个字符4. 所有以.开头的的文件,都是隐藏文件路径:绝对路径: 从根目录起始的路径相对路径: 从当前位置开始的路径(1)./: ./sysconfig/network-scripts(2) 省掉上述符号:sysocnfig/network-scripts..: 表示上级目录当前目录: current directory, 也称作 working directroy:pwd : printing working directoryLSB: 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) 程序自身的帮助文档READMEINSTALLChangeLog(5) 程序官方文档官方站点:Documentation(6) 发行版的官方文档(7) Google / baidu内部命令帮助:# help COMMANDhash 命令:shell 搜索寻找到外部命令的路径结过会缓存至key-values 对存储当中history命令:管理命令历史:登录shell时,会读取命令历史文件中记录下的命令:~/.bash_history登录进shell后新执行的的命令会记录在缓存中:这些命令会永红退出时候“追加”至命令历史文件中history:-a: 追加本次会话新执行的命令历史列表至历史文件中:-d:删除历史中指定的命令-c:清空历史命令快捷键:!#: 调用历史命令#条命令!string: 调用历史中最近一个一string 开头的命令!! : 重复上一条命令外部命令帮助获取:(1) COMMAND --help(2) man COMMAND手册页:/usr/share/manman1....man8man1: 用户命令man2: 系统调用man3: C库调用man4: 设备文件及特殊文件man5: 配置文件格式man6: 游戏man7: 杂项man8: 管理类的命令man 命令的配置文件: /etc/man.configMANPATH /PATH/TO/SOMEWHERE: 指明新的手册文件搜索位置#man -M /PATH/TO/SOMEWHERE COMMAND : 到指定位置下搜索COMMAND 命令的手册页注意: 有些关键字在不止一个章节在存在帮助中手册: man # COMMAND帮助手册中的段落说明:NAMESYNOPSISDESCRIPTIONOPTIONISEXAMPLESAUTHORREPORTING BUGSSEE ALSOSYSNOPSIS:[]: 可选内容<>: 必选内容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) infoinfo COMMAND(4) 程序安装后的帮助文档/usr/share/doc/COMMAND-VERSION(5) 程序官方文档(6) 发行版的官方文档http://www.redhat.com/docs/(7) www.google.comwww.slideshare.netdate 命令:-----------date [OPTION]....[+FORMAT]:显示FORMAT:格式符号%D%F%Tdate [MMDDhhmm][[CC]YY][.ss]]: 设置MM: 月份DD: 几号hh: 小时mm: 分钟YY:两位年份CCYY:四位年份.ss: 秒钟----Linux 的两种时钟:系统时钟: 由Linux内核通过cpu 的工作频率进行的计时硬件时钟:hwclock:显示硬件时钟-s, --hctosys-w, --systohc-------------------------------
1.目录相关的命令:当前目录或工作目录主目录: 家目录:HOMEroot: /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: 表示文件的owerroot: 文件的group44800: 文件的sizeaug 14 14:32: 文件最近被修改的时间install.log : 文件名称-h, --human-readable:单位换算-d: 显示目录自身的相关属性,通常要与-l一起使用-r : 以降序方式排序-R :递归显示stat /root/install.logstat /path/to/somefile: 获取当前文件的所有信息(3) 文件查看cat : 从头看到位-E 查看 换行符号-n 对显示出的每一行进行编号tac : 从尾看到头(4)文件内容类型查看命令: filefile /path/to/somewhere会显命令: echoecho '$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 filesystemLSB,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: 便携式一栋设备挂载点:cdromusb/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 filescache : 应用程序缓存目录lib : 应用程序存储状态信息local: 专应用与为/usr/local/ 下的应用程序的存储可变的数据信息lock: 锁文件log : 日志目录及文件opt : 专用于为/opt 下的用程序存储可变数据run: 运行中的进程相关数据,通常用于存储进程的PID 文件spool:应用程序池tmp :保存系统两次重启之间产生的临时数据/proc : 用于输出内核与进程信息相关的虚拟文件系统/sys : 用于输出当前系统上硬件设备相关信息的虚拟文件系统/misc 备用杂项文件/selinux: security enhanced linuxselinux 相关的安全策略 等信息的存储信息位置
二进制程序: /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 : 系统当前所有的登录会话及所做的操作