Linux系统的大致的学习框架
Linux系统的大致的学习框架
Linux系统入门
1.Linux中用户及组的管理,软件包的管理,磁盘管理,磁盘的规划,系统启动流程
2.Linux操作系统简介,Windows操作系统简介,Windows与Linux操作系统的差异,VM虚拟机软件的安装和配置,
3.Linux网络配置管理,Linux服务器IP命名规范,Linux服务器主机命名规范,Linux服务器上网DNS设置,管理和维护Linux服务器,
4.Linux系统文件与目录的管理,Vi编辑器的使用,Vi编辑器的增删改查,
5.Linux系统用户及组的管理,用户与组的创建于删除,
6.Linux权限的管理
7.Linux软件包的管理,tar命令,yum命令,
8.Linux系统磁盘的管理,mount命令,磁盘故障的修复方法,Linux系统的启动流程(面试必考的内容),Linux系统的进程的管理
服务的管理
1.必须要会用的服务:NTP,DHCP,Samba,NFS,Vsftpd,Apache
2.构建LAMP架构,Redis数据库,TFP服务器,
3.MysQL数据库:mysql数据库的引擎,Mysql数据库索引,MySql数据库的安装方式,Mysql数据库密码的破解
Shell编程
1.Shell四剑客(find,sed,awk,grep),变量的使用,if语句,for循环,while循环,case选择语句,select选择语句,
2.Shell实例的编写:一键系统备份,一键收集系统信息,一百台服务器IP地址的修改,zabbix批量的安装,apache虚拟主机,vsftpd虚拟用户,一键Nginx和tomcat配置,Shell编程的核心思想,docker核心脚本,一键bind管理脚本
Web架构
1.负载均衡软件
2.构建Nginx Web服务器,Nginx虚拟主机的配置,Nginx性能优化,Nginx参数的深入理解,Nginx日志切割,Nginx location规则,Nginx Rewrite规则,
3.构建Rsync同步服务器,Rsync服务端配置,Rsync基于SSH同步,Rsync实时同步的配置,
4.构建DNS域名解析服务,DNS服务器的工作原理,DNS服务器的种类,DNS服务器的安装和配置,DNS主配置文件,
5.LVS负载均衡,LVS负载均衡的工作原理,LVS负载均衡NAT模式的工作图解,LVS负载均衡DR模式的工作图解,
安全相关
1.Iptables, IPtables 内核及原理剖析,firewalld 防火墙,firewalld 防火墙配置文件,ddos安全
其他:
1.TCP三次握手原理,CPU,内存,硬盘IO,数据抓包,TCP/IP报文详解,
2.Docker虚拟化,Docker虚拟化的特点,Docker镜像的原理,Docker虚拟化网络的通信原理
3.云计算Openstack,Openstack云计算Glance镜像原理,Openstack云计算Nova原理剖析,
Linux运维面试的题目:
1.传统运维方式,
2.自动化运维,IT自动化运维工具(Puppet,Saltstack,Ansible),IT自动化运维体系,
3.KVM虚拟化,KVM虚拟化安装,KVM网桥配置,KVM虚拟化硬盘扩容,KVM虚拟机批量克隆,基于Shell的批量添加KVM虚拟机,
4.虚拟化技术的原理,
学会了基础的Linux后还需要更深入的学习就需要,一边工作一边从工作中总结、学习和进步。这样做的优点是,学习稳扎稳打、现学现卖、知识掌握牢固,印象深刻!如果你有这样的工作机会,
Linux的高级技术:
nagions 监控
zabbix监控
DNS服务搭建
邮件服务搭建
HA高可用集群
LB负载均衡集群
自动化工具puppet
Linux下的虚拟化
-------------------------
top 命令查看系统进程占用资源情况。类似于Windows任务管理器,定时刷新,按键Q退出
ps aux 查看进程详细信息
需要搞定的技术
kvm
xen
lvm
RAID
文件系统挂载
ext文件系统
read命令
find命令
if语句
磁盘管理
文件系统管理
egrep bash环境配置
文件管理 管道 用户和组管理 用户和权限管理
pxe
tftp
dhcp
lvs
=========================================
shell脚本的基础
编写Shell脚本的好处:批量的处理,自动化的完成维护,减轻管理员的负担
Shell脚本是Linux中的一种特殊的应用程序
/etc/shells 列出当前系统中所支持的Shell解释器
chsh -l 列出当前系统中所支持的Shell解释器
/bin/bash 是大多数Linux系统中默认的shell解释器
写一个简单的shell脚本:将操作的Linux命令放在一个文件中,赋予文件执行权限依次执行
写一个脚本first.sh
vim first.sh
#! /bin/bash 脚本的声明,表示用的是bash脚本语言写的,用bash解释器执行
# 脚本的注释信息
mkdir /root/shell
ifconfig
默认写好的脚本是没有执行权限的
chmod +x first.sh
./first.sh 执行一下脚本
sh和source命令执行脚本的时候不需要权限
变量
network=/etc/sysconfig/network-scripts/ifcfg-eno
echo $? 返回的结果是0表示上一条命令的执行结果是Ok的
查看一下变量的值
echo $network
cat $network
变量就是,可以存放一个值,这个值是可变的
常见的shell变量有:自定义变量,环境变量,位置变量,预定义变量,
使用echo来打印输出一个变量的值
变量的名称的格式:$变量名
数值变量


自定义变量:
自定义变量是用户根据自己的环境自己定义的变量
变量的赋值格式:变量名=变量值 等号两边不能有空格
变量的名称只能从字母或者下划线开头的名称
Linux中变量严格区分大小写,Linux与linux是不同的变量
用echo一次打印多个变量的值
echo $变量1 $变量2 多个变量之前需要有空格
当变量名跟后面的字符很容易混淆的时候使用{}将变量名括起来
echo打印一个变量的内容后加一个字符串、
echo ${变量名}字符串
"" 双引号:可以用来打印输出空格
linx=7.1
system="RHEL $linux"
echo $system
输出结果是:RHEL 7.1
'' 单引号,单引号中的内容会作为普通的字符串处理,单引号的作为内容的时候用\' 来进行转义避免冲突
`` 反撇号 ,括号中的内容当做命令来执行
rpm -qf /usr/bin/pwd 效果等同于rpm -qf `which pwd` 或者 rpm -qf $(which pwd)
或者
rpm -q $(rpm -qf $(which pwd))
反撇号只能将包含的内容当做一条命令来执行,不支持多个嵌套和并列,可以用$()来解决多个内容并列和嵌套命令的执行,来替换反撇号
read命令,用来提示用户要输入的信息,从而实现简单的交互过程,
read xxx sss
值1 值2
Ctrl+D 结束输入
read -p "输入一个密码:" passwd
123456
echo $passwd
123456
read -p 用来设置指定的提示信息
局部定义的变量只在当前的bash环境下生效
set查看当前所有变量
env查看全局变量
exit
export Linux linux 设置全局变量
export XXX=www.xxx.com
echo $XXX
bash 切换一个环境
echo $XXX
位置变量:$1-$9
$1 $2
vim weizhi.sh
#!/bin/bash
# 注释
SUM=$(expr $1 + $2 )
echo "$1 + $2 = $SUM"
执行一下这个脚本
source weizhi.sh 1 2
$0是预定义的变量而不是位置变量
预定义变量:
$# 位置变量的个数
$* 具体的内容
$? 返回值正确0 非0表示上条命令执行失败,取值在0-127之间
$0 当前执行的命令或程序的名称
写一个备份的脚本
vim backup.sh
#!/bin/bash
# 注释
file=beifen-$(date +%s).tar.gz
tar zcf $file $* &>/root/tar.log
echo "已执行$0脚本"
echo "共完成$#备份对象"
echo "具体的内容是$*"
执行一下这个脚本
source backup.sh /home
source backup.sh /home /opt
[ ] 条件判断
文件测试:判断是一个文件还是目录,判断是都具有读写执行权限,判断文件目录是否存在
-d 是否是一个目录directory
-e 判断文件或目录是否存在
-f 判断文件File是否存在
-r 判断当前用户是否有读的权限read
-w 判断当前用户是否有写的权限write
-x 判断当前用户是否有执行的权限excute
判断一个目录cdrom是都存在
[ -d /media/cdrom ]
echo $? 返回结果非0表示不存在
或者:
test -d /media/cdrom
echo $? 返回结果非0表示不存在
&& 表示前面的命令之执行成功后才执行后面的命令
[ -d /media/cdrom ] && echo "Yes"
环境变量是指系统已经定义好的变量,环境变量的值由操作系统本身自己维护,
env命令可以查看当前系统的环境变量
环境变量的配置文件在 /etc/profile 全局变量
环境变量的局部变量 /home/yonghuming/./bash_profile 个人目录的局部环境变量
$PWD
$PATH
$USER
$SHELL
$HOME
作业
1. 如何编写一个正确的脚本(脚本的格式)?
2. #!/bin/bash 什么意思?
3. 列出执行脚本的三中常用的方法;
4. shell脚本的变量分类;
5. 自定义变量中的单引号,反撇号的作用;
6. read 的作用 –p选项的作用;
7. 怎样设置和查看全局变量?
8. 将局部变量转化为全局变量的命令是?
9. 环境变量中$PATH的用处?
10. 预定义变量的作用.$#代表什么意思?

浙公网安备 33010602011771号