预习第一天上课笔记(2016年12月31日)
(一):桌面共享
- 使用vncviewer进行远程连接,vncviewer为客户端软件,服务端使用vncviewer
- vnc一共有三个常用的实现远程桌面连接的软件:realvnc,tightvnc和UItarvnc
(二):详细讲解马哥质料目录的使用方法
- 但是好像我们的资料里面没有这些目录
(三):老师推荐的PPT制作文档
- www.slideshare.net(但是好像被墙了),Twitter
(四):linux运维课程体系大纲
- linux入门
linux系统管理
linux服务及安全管理
- httpd,lamp,lnmp
- cache: memcached,varnish
- DB:mysql(mariadb)
- linux cluster
- LB cluster:nginx, lvs
- HA cluster: Keepalived
- linux ops:ansible
- linux monitoring: zabbix
- http:
- tomcat,lnmt,lamt,session replication cluster
- 分布式储存系统:
- MogileFS ,GlusterFS
- LB Cluster: haproxy
- HA Cluster :Corosync + pacemaker psc/crmsh
- Mysql:HA Cluster 、MHA、备份和恢复、MySQL Replication、Read-Write splitting
- NoSQL: redis,mongodb,Hbase
- 运维工具:puppet(自动化运维工具)【saltstack】cobbler
- 虚拟化:
- linux操作系统原理 ;虚拟化技术原理;
- kvm虚拟化的实现应用讲解;xen虚拟化
- 虚拟化网络:SDN
- OpenStack (云计算运栈)
- Docker: 虚拟化容器云的实现
- ELK Stack : ElasticSearch,Logstash,Kibana
- 大数据:Hadoop V2 (分布式集群)—分布式并行存储分析平台
- HBase,Hive
- Storm,Spark
- 系统优化:
- Python语言实现自动化,中间件
(五):RedHat
- 认证考试
– RHCSA:红帽认证助理工程师
– RHCE:红帽工程师
– RHCA:红帽架构师
(六)学习阶段
- 教室学习:4个月;
- 工作学习:8个月,不断看笔记;
(七)IT技术领域
- 研发:硬件:接口:
- CPU(计算器和控制器),内存,输入,输出;
- 机器语言:二进制命令,二进制数据
- 软件:
- 低级语言:汇编语言,汇编器
- 用于写驱动程序
- 高级语言:
- 系统级:C , C++;
- 操作系统,对性能有较高的要求的服务类程序
- 应用级:Java,Python,ruby
- 用于写应用程序
- 系统级:C , C++;
- 低级语言:汇编语言,汇编器
- 应用:
- linux运维:linux生态圈的各种应用程序的应用;
- shell脚本编程:让运维工作实现自动化;
- Python:专业变成语言
- ansible,openstack
- linux运维:linux生态圈的各种应用程序的应用;
- DevOps:
- Development;
- Operations;
(八)IT技术领域
- ENIARC: 具有五大部件
- CPU:运算器,控制器,寄存器(内部存储器,用于寄存数据),缓存(用于缓存数据);
- 存储器:内存(RAM–random access memory);
- Input:下指令,提供数据等;
- Output:输出数据加工后的结果
- 思考:计算机如何从存储器中取得数据
- 程序:
- 指令+数据
- 算法+数据结构
- 过程式编程语言:
- 顺序执行:依次
- 程序:
- OS的接口有两类:
- GUI:graphics user interface;
- GNone:gtk(C 语言研发)
- KDE : C++开发, QT
- FACE
- CLI:command line interface;
- bash
- zsh
- sh
- csh
- GUI:graphics user interface;
- 操作系统的功能
- 驱动程序
- 进程管理
- 安全
- 网络功能
- 内存管理
- 文件系统
- ……………
- API: Application Program Interface(程序员面对的编程接口)
- POSIX:可移植操作系统
- ABI: Application Program Interface(程序应用者面对的运行程序的接口)
- GNU
- 源码:编译成为二进制格式
(九)linux的放行版本(有数百中之多)
- Debian
- ubuntu
- mint
- knopix
- ubuntu
- Slackware
- s.u.se
- opensuse
- s.u.se
RedHat:
- RedHat 9.0
- RedHat Enterprise Linux: RHEL
CentOS : Community Enterprise OS
- Fedora Core: 6个月发行一个版本
- RedHat Enterprise Linux: RHEL
- RedHat 9.0
- Gentoo
- Archlinux
- 软件程序:版本号
- major.minor.release
- linux: 0.99,2.2,2.4,2.6,3.0,4.0
- www.kernel.org
-GNU - vi
- gcc
- ……
- www.kernel.org
- 发行版也有自己的版本号:
- RHEL: 5.x 6.x 7.x
- Fedora : 23
- Debian: 8.x
- Opensuse: 13.x
- RHEL: 5.x 6.x 7.x
- 常见的CPU架构
- x86
- x64
- m68k
- arm(移动端设备使用)
- ultrasparc solaris
- power(IBM生产,非常强大) aix
- MIPS
- alpha(惠普)hp-ux
- ……………………..
- 开源协定
- GPL
- BSD
- Apache : ASF
- 双线授权
- community:遵循开源协定
- Enterprise:商业授权,企业版本
- 程序管理
- 程序的组成部分
- 二进制程序
- 配置文件
- 库文件
- 帮助文件
- 程序包管理器
- 程序的组成文件打包成一个或有限几个文件
- 安装
- 卸载
- 查询
- Debian: dpkg, apt-get
- RedHat: rpm , yum, —>dnf
- S.u.S.E: rpm, zypper
- ArchLinux: port
- Gentoo:
- kali:
LFS: Linux From Scratch
—–>这个太美,但是很难
- 程序的组成部分
(十)安装linux
- 虚拟机:linux
计算机:CPU,内存,IO
- VMware
- virtualbox
ISO镜像:
- 硬盘分区:留出一些空间,实在不行,安装完成之后,可以新增一块硬盘
- 终端:terminal:
- GUI:
- GNome
- KDE
- CLI:
- bash, zsh, sh, csh, ksh
- GUI:
(十一)远程连接:
- ssh协议:secure shell
- ss -tnl
- 查看系统监听于TCP协议的22号端口
- ifconfig
- 查看本机的IP地址
- ip addr list
- 也能查看本机的IP地址
- iptables -L -n
- 查看本机的防火墙
- iptables -F
- 临时关闭防火墙
- systemctl disable firewalld.service(centos 7)
- 禁用防火墙
- systemctl stop firewalld.service (centos 7)
- 永久关闭防火墙
- service iptables stop(centos 6)
- 关闭防火墙
- chkconfig iptables off (centos 6)
- 开机自启动关闭防火墙
- echo $SHELL
- 查看接口程序
- systemctl poweroff
- 关机
- systemctl reboot
- 重启
- file /bin/ls
- 查看文件的类型
- ss -tnl
(十二)终端设备
- 多任务、多用户
- 物理终端,控制台:console
- 虚拟终端:6个
虚拟终端称为tty
- Ctrl+Alt+F[1-6]
- 图形终端
- centos 6
- Ctrl+Alt+F7
- centos 7
- 在哪个虚拟终端启动,即位于哪个虚拟终端
- centos 6
- 串行终端 :ttyS
- 伪终端 : pty
- linux的哲学思想
一切皆文件
- 表现之一:硬件设备也通过文件表示,通信管道
- 物理终端:/devconsole
- 虚拟终端:/dev/tty#[1,6]
- 串行终端:/dev/ttyS#
- 伪终端:/dev/pty
- 表现之一:硬件设备也通过文件表示,通信管道
由众多功能单一的程序组成,组合小程序完成复杂的任务:一个程序只做一件事,并且做好
尽量避免和用户交互:易于以编程的方式实现自动化任务
使用文本文件保存配置信息
- 思考:文件是什么?有众多的文件如何有效组织
基于层级方式管理文件的方式叫做:文件系统
- 目录:路径映射
- 文件:存储空间存储的一段流式数据,可以对数据做到按名存取
- 文件系统 :/dev/pts/2 —->路径映射方式,文件系统是层级结构
- 注意:在启动设备之后,在其上关联一个用户接口程序,既可以实现与用户交互
- 查看终端设备
- tty
- 查看接口程序
- echo $SHELL
- 启动GUI
- 在某一虚拟终端接口运行命令:startx &
- CLI 接口:
- 命令行接口:
- prompt
- root
- 主机名
- ~ 当前所在目录
- # 命令提示符root
- $ 普通用户的提示符
- 建议使用非管理员账号登入
- prompt
- 命令行接口:
(十二)系统结构
- 系统最底层是硬件
- 硬件上面是kernel
- kernel上面是librarys
- librarys上面是应用程序,
其中最特别的是shell(命令解释程序),其实现了用户可以和系统打交道的平台
(十三)回顾
- 开源协定
- GPL, LGPL, BSD, Apache
- 程序的组成部分
- 二进制程序文件
- 库文件
- 配置文件
- 帮助文件
- 二进制文件、库文件、可执行文件只能通过十六进制查看器查看
- 库文件:不能被独立执行,只能被调用时执行
- 配置文件、帮助文件:可以查看其内容的文件
推荐看的书:《穿越计算机的迷雾》、《量子物理史话》
- linux基础知识
- 发起一条命令实质是:请求内核将某个二进制程序运行为一个进程
- 程序—->进程
- 静态—->动态(有生命周期)
- 命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件
- 大多数程序文件都存放在:/bin /sbin(管理员才能执行), /usr/bin, /usr/sbin, usr/local/bin, /usr/local/sbin(第三方软件)
- 普通命令:
/bin, /usr/bin, /usr/local/bin
- 管理员命令:
/sbin, /usr/sbin, /usr/local/sbin
- 共享库:
/lib , /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/llib64
- 注意: 并非所有的命令都有一个可执行文件
- 32位的库:/lib,/usr/lib,/usr/local/lib
- 64位的库:/lib64,/usr/lib64,/usr/local/lib64
- 发起一条命令实质是:请求内核将某个二进制程序运行为一个进程
- 命令必须遵循特定规范: ELF格式
- 命令一共可以分为两类
由shell程序自带的命令:内置命令(builtin)
独立的可执行程序文件,文件名即为命令名:外部命令(也就是有对应的二进制文件的命令)
- shell程序是一个独特的程序,负责解析用户提供的命令;
- 环境变量
- PATH:从哪找命令对应的二进制文件
- 查找次序为:从左向右
- 环境变量
- 注意:shell自带的命令是无法再到对应的二进制文件的,因为shell自带的就有
- 那么如何知道哪些是内部命令哪些是外部命令呢?
- type COMMAND
- OPTIONS
- 指定命令运行的特性,运行的效果,不同的选项有不同结构
- 选项有两种表现形式:
- 短选项: -C ,例如 -l, -d
- 多个短选项可以合并在一起
- 长选项: –word –human-readable
- 长选项不能合并
- 短选项: -C ,例如 -l, -d
- 注意:有些选项可以带参数,称为选项参数
- ARGUMENTS
- 命令的作用对象
- 不同的参数以空格分开
- 如何获取命令的使用帮助
- 内部命令
- help COMMAND
- 外部命令
- COMMAND –help(简要帮助)
- man COMMAND(手册在/usr/share/man/)
- 内部命令
- 使用手册:压缩格式的文件,有章节之分
- /usr/share/man
- 1:用户命令
- 2:系统调用
- 3:C库调用
- 4:设备文件及特殊文件
- 5:文件格式(配置文件格式)
- 6:游戏使用帮助
- 7:杂项
- 8:管理工具及守护进程
- 通过whatis 命令来查看是命令位于哪一个章节
- 注意:其执行的过程是查询数据库进行的
- 手动跟新数据库 makewhatis
- man命令打开手册之后的使用方法
- 空格键:向文件尾部翻一屏
- b: 向文件首部翻一屏
(十四)常用命令
- cd相关的环境变量
- $PWD:当前工作目录
$PWD:上一次的工作目录
echo 命令
- -n 不进行换行
- -e 让转义字符生效
- 字符串(string)可以使用引号,单引号和双引号都可以
- 单引号:强引用 ,变量不被替换
- 双引号:弱引用,变量会被替换
- 但是一般来说,变量的引用的正规符号为:${SHELL}
date 命令(系统时钟)
linux启动以后从硬件启动日期和时间信息,读取完成以后,就不再与硬件相关联了
- 显示系统日期时间:date [OPTION]… [+FORMAT]
- FORMAT为格式符
- 设定时间日期:date [MMDDhhmm[[CC]YY][.SS]]
- clock(hwclock)命令(硬件时钟)
- 显示或设定硬件时钟
- -s –hctosys:以硬件为准,将系统的时间设置为和硬件一样
- -w –systohc:以系统为准,将硬件的时间设置为和系统一样
- cal 命令
- 显示日历
- cal + 月份或年份