马哥:linux云计算从入门到精通笔记
前言Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。互联网Linux运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够7×24小时为用户提供高质量的服务。运维的职责覆盖了产品从设计到发布、运行维护、变更升级及至下线的生命周期。 ...
前言
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。
互联网Linux运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够7×24小时为用户提供高质量的服务。运维的职责覆盖了产品从设计到发布、运行维护、变更升级及至下线的生命周期。
运维团队的工作分类
1-应用运维(SRE):应用运维负责线上服务的变更、服务状态监控、服务容灾和数据备份等工作,对服务进行例行排查、故障应急处理等工作,工作职责如下:设计评审、服务管理、资源管理、例行检查、预案管理、数据备份。
2-系统运维(SYS):负责IDC、网络、CDN和基础服务的建设(LVS、NTP、DNS);负责资产管理,服务器选型、交付和维修,工作职责如下:IDC数据中心建设、网络建设、LVS负载均衡和SNAT建设、CDN规划和建设、服务器选型、交付和维护、内核选型和OS相关维护工作、资产管理、基础服务建设。
3-数据库运维(DBA):数据库运维负责数据存储方案设计、数据库表设计、索引设计和SQL优化,对数据库进行变更、监控、备份、高可用设计等工作,详细的工作内容如下:设计评审、容量规划、数据备份与灾备、数据库监控、数据库安全、数据库高可用和性能优化、自动化系统建设、运维研发、运维平台、监控系统、自动化部署系统。
4-运维安全(SEC):运维安全负责网络、系统和业务等方面的安全加固工作,进行常规的安全扫描、渗透测试,进行安全工具和系统研发以及安全事件应急处理,工作内容如下:安全制度建立、安全培训、风险评估、安全建设、安全合规、应急响应。
软件和技能
运维平台和工具包括:
-
Web服务器:apache、tomcat、nginx、lighttpd
-
监控:nagios、ganglia、cacti、zabbix
-
自动部署:ansible、sshpt、salt
-
配置管理:puppet、cfengine
-
负载均衡:lvs、haproxy、nginx
-
传输工具:scribe、flume
-
备份工具:rsync、wget
-
数据库:mysql、oracle、sqlserver
-
分布式平台:hdfs、mapreduce、spark、storm、hive
-
分布式数据库:hbase、cassandra、redis、MongoDB
-
容器:lxc、docker
-
虚拟化:openstack、xen、kvm
-
安全:kerberos、selinux、acl、iptables
-
问题追查:netstat、top、tcpdump、last
新时代运维
传统的运维该如何转型呢?这里给出一点小的建议: 大致需要学习下这四个部分:
- 自动化运维(Ansible,Puppet,Saltstack等)
- Devops(Docker,K8s,Jenkins,Jira等),
- 云服务技术(虚拟化、OpenStack、AWS及阿里云各种产品服务架构等)
- python
计算机的组成及其功能
冯.诺伊曼体系中,计算机有五大基本部件:控制器、运算器、存储器、输入设备、输出设备。(电子专业学过,哈哈)
实际应用中,计算机包括CPU(控制器和运算器)、存储器(Memory内存和Disk外存)、Input输入设备、Output输出设备。
CPU由运算器、控制器、寄存器、缓存、指令集组成。
a、运算器是实现算术运算和逻辑运算的部件
Linux发行版有三大主流分支:Debian、Slackware、Redhat,包含的主要发行版分别如下:
- Debian
- Ubuntu
Linux mint - Knopix
- Ubuntu
- Slackware
- S.u.S.E
SLES-SuSE Linux Enterprise
OpenSuSE
- S.u.S.E
- Redhat
- RHEL-RedHat Enterprise Linux
CentOS-Community ENTerprise - Fedore Core
- RHEL-RedHat Enterprise Linux
Linux的哲学思想
1. 一切皆文件
把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等,便于统一管理和定义;
对文件的操作有:open,read,write,close,delete,create
2. 由众多功能单一的程序组成
一个程序只做一件事,并且做好,保证了Linux内核的高效运行;
3. 组合小程序完成复杂任务
通过连接多个简单的程序实现复杂的功能;
4. 尽量避免和用户交互
更贴近编程,易于以编程的方式实现自动化任务;
5. 使用文本文件保存配置信息
修改配置信息只需要任意一款文本编辑器就可以进行。
Linux系统的启动过程可以分为5个阶段
内核的引导 运行 init 系统初始化 建立终端 用户登录系统
用户的登录方式有三种:
- (1)命令行登录
- (2)ssh登录
- (3)图形界面登录
正确的关机流程为:sync > shutdown > reboot > halt
不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
cache:为了解决读磁盘的效率 buffer:为了解决写磁盘的效率
linux系统为了提高读写磁盘的效率,会先将数据放在一块buffer中。在写磁盘时并不是立即将数据写到磁盘中,而是先写入这块buffer中了。此时如果重启系统,就可能造成数据丢失。
sync命令用来flush文件系统buffer,这样数据才会真正的写到磁盘中,并且buffer才能够释放出来,flush就是用来清空buffer。sync命令会强制将数据写入磁盘中,并释放该数据对应的buffer,所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘。
如果不去手动的输入sync命令来真正的去写磁盘,linux系统也会周期性的去sync数据。
shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:
shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟
后关机,并且会显示在登陆用户的当前屏幕中。
Shutdown –h now 立马关机
Shutdown –h 20:25 系统会在今天20:25关机
Shutdown –h +10 十分钟后关机
Shutdown –r now 系统立马重启
Shutdown –r +10 系统十分钟后重启
reboot 就是重启,等同于 shutdown –r now
Linux基础教程之基础命令总结
基本命令
清屏:clear 或者 ctrl+l
查看内存(free)
查看磁盘(df)
查看cpu占用率(top)
查看内核版本(uname)
uname命令用于查看系统内核与系统版本等信息, windows是systeminfo
cat命令用于查看纯文本文件(内容较少的)
more命令用于查看纯文本文件(内容较多的)
less查看课后退
ls命令 list 列出指定目录下的内容
pwd命令 printing working directory 显示当前工作目录
cd 命令 change directory 切换目录
cp命令 copy 用于复制源文件或者目录到
-f:强制覆盖目标文件;
-r, -R:递归复制目录;
mkdir命令 创建目录make directories
rm 删除命令remove ls删除前可以用来看下
-r 将参数中列出的全部目录和子目录均递归地删除
注意:删除命令是一个非常危险的操作,所有不用的文件建议不要直接删除,而是移动至某个专用目录;(模拟回收站),过段时间后,非常明确肯定不要了再删除。
权限
(1)user (2)group (3)others三种身份啦! 那么我们就可以藉由u, g, o来代表三种身份的权限! a 则代表 all 亦即全部的身份!
加权限
# touch test1 // 创建 test1 文件
# ls -al test1 // 查看 test1 默认权限
-rw-r--r-- 1 root root 0 Nov 15 10:32 test1
# chmod u=rwx,g=rx,o=r test1 // 修改 test1 权限
# ls -al test1
-rwxr-xr-- 1 root root 0 Nov 15 10:32 test1
减去权限:
<span style="color:#880000"># chmod a-x test1</span>
关机
shutdnow -h -now马上关机 shutdnow +30 :30分钟后关机
文本查看类命令
cat命令 concatenate查看文本文件内容
tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
less命令 翻屏查看文件
less file
more命令 从头到尾查看文件,不可以回头,不是很好用
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
- tail 只看尾巴几行
head命令 显示文件的前n行,默认是显示前十行
语法格式:head [参数]… [文件]…
-c<字节> 显示字节数。 head -c 50 /etc/rc.d/init.d/functions 显示前50字节,要是改为-50.则显示文件后50字节。
-n<行数> 显示的行数。显示文件的前50行:head -50 /etc/rc.d/init.d/functions
stat命令:显示文件和文件的系统熟性,包括文件名,大小,时间戳等信息,通俗地说就像我们看到windows右键,文件属性看到的信息类似。
网络相关类
ifconfig 或ip addr list 查看活动接口的ip地址
ss命令 ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
例如查看22端口状态 :ss -tnl
搜索和查询类
file命令 查看文件内容类型
type命令 判断一个命令是外部命令还是内部命令
语法格式 type COMMAND
help命令 用于shell内部命令的帮助信息
语法格式 help COMMAND
man 命令 帮助手册
语法格式 man COMMAND
tty 显示当前终端 虚拟终端tty,centos7启动后默认有6个tty1–tty6,alt+F1-F6键切换
伪终端是pty
echo命令 打印或输出内容,查询变量值,常用于编程
第二部分
文件管理类命令大全
1. mkdir – make directories,创建目录
2. rmdir – remove empty directories, 删除空目录,非空则无法删除 鸡肋
3. mv – move,移动或重命名文件
6. rm – remove,删除文件或目录
权限管理
r(read):可读取 w(write):可写入 x(execute):可执行 r:4 w:2 x:1
更改属主属组权限命令
chown:改变文件所属的用户组。
chgrp:改变文件的所有者。
chmod:改变文件的权限。
三种身份用user=u;group=g;others=o
1、chmod a=rwx
2、chmod g=rwx,u=rwx,a=rwx
3、chmod g+w,o+w
正则表达式小白读本
正则表达式分两类:
- 基本正则表达式
-
扩展正则表达式(正则表达式的优化版,元字符的表达更简洁,更方便。)
在Linux中,正则表达式通常会配合文本过滤工具grep使用。 grep的功能强大,且简单粗暴。
shell脚本使用入门
1、编程基础
- 程序:指令+数据 算法+数据结构
- 程序编程风格:
过程式:以指令为中心,数据服务于指令
对象式:以数据为中心,指令服务于数据
- shell程序:提供了编程能力,解释执行
2、程序的执行方式
- 计算机:运行二进制指令
- 编程语言:
低级:汇编
高级:
编译:高级语言– >编译器–> 目标代码
C,C++,C#,Go
解释:高级语言–> 解释器–> 机器代码
shell,perl , python , JAVA
JavaScript , ruby ,PHP
3、编程基本概念
- 编程逻辑处理方式:
顺序执行
循环执行
- shell编程 :过程式、解释执行
编程语言的基本结构:
各种系统命令的组合
数据存储:变量、数组
表达式:a+b
语句:if
4、shell脚本基础
- shell脚本:
包含一些命令或声明,并符合一定格式的文本文件
- 格式要求:首行shebang机制
#!/bin/bash
# ! /usr/bin/python
#!/usr/bin/perl
- shell脚本的用途有:
> 自动化常用命令
> 执行系统管理和故障排除
> 创建简单的应用程序
> 处理文本或文件
- 强类型:变量不经过强制转换,它永远是这个数据类型,不允许隐式的类型转换。一般定义变量时必须指定类型参与运算必须符合类型要求;调用未声明变量会产生错误 如 java,c#
- 弱类型:语言的运行时会隐式做数据类型转换。无须指定类型,默认均为字符型;
参与运算会自动进行隐式类型转换;变量无须事先定义可直接调用 python
Linux包管理:rpm/yum/编译安装
程序包管理器:
将编译好的应用程序的各个组成文件打包成一个或几个程序包文件,从而更方便地实现程序包的安装、升级、卸载和查询等管理操作
磁盘分区
优点:
1、隔离系统和程序 安全
2、安装多个0S
3、提高修复速度
4、实现磁盘空间配额限制
5、优化I/O性能
网络基础知识详解
以太网的网络接头:分为交叉和直连RJ-45,又因为每条芯线的对应不同,而分为568A和568B接头,这两款芯线内部的顺序为:
补脑:Dos 攻击 Ping –f 10.1.250.95 –s 65507泛洪 发送大量数据包给该ip,查看网卡利用率会很高,DDOS 成千上万台计算机给指定计算机发送大量数据包
ARP网络地址解析协议 RARP反向网络地址解析协议
当我们想要了解某个IP配置于哪张以太网卡上面,我们主机会对整个局域网发送出ARP数据包,对方接收到ARP数据包后就会返回他们的MAC给我们,知道对方的网卡地址后就可以传递数据了,当ARP协议取得目标IP与它的网卡卡号后,就会将其记录到ARPtable(内存中)中记录20分钟,linux中对应命令 arp –n.
ACK:为1代表这人数据包为响应数据包。
SYN:为1代表发送端希望双方建立同步连接,表示主动连接对方。
FIN:为1代表传送结束。
192.168.0.0/255.255.255.0就是属于网络地址,
192.168.0.255/255.255.255.0 就属于广播地址
Host_ID同时为0表示网络地址(Network_IP)
Net_ID同时为1表示广播地址(BroadcastIP)
IPV4中两种IP类别:
Public IP:公共IP,经由InterNIC统一规划的IP,只有这种IP才可链接到Internet
Private IP:私有IP或保留IP,不能直接连上Internet的IP,主要用于局域网络内的主机链接规划
私有IP网段:
Class A:10.0.0.0/8~10.255.255.255/8 移动
Class B:172.16.0.0/16~172.31.255.255/16 CIDR格式:172.16.0.0/12 学校
Class C:192.168.0.0/24~192.168.255.255/24 CIDR格式:192.168.0.0/16 家里
由于这三段Class的IP是预留使用的,所以并不能直接作为Internet上面的连接使用,否则会导致到处都有相同的IP。
A.B.C.D/n,表示32位IP地址的前n位与A.B.C.D的前n位相同。比如192.168.1.0/24,所有前24位与192.168.1.0相同的都是这个网段的IP,由于IP地址8位一分组,24位就是前三段,也就是192.168.1.x。符合规范的这段连续的IP段就叫做一个子网。这种子网的表示方法叫做CIDR。
路由的功能:跨网络通信时选择传输路径。(网关) 路由器(router):可以转发不是发给自己的 IP 包的设备
网关必须和ip在同一个网段
答:这个认知其实是不成立的,我觉得这更多的是一种误解。
网关没必要和你的IP在一个子网。和你IP在同一个子网只会是下一跳路由
更多推荐
所有评论(0)