Linux就该这么学笔记
由最新的Linux系统RHEL 7编写而成,从零基础带领读者入门Linux系统,然后渐进式地提高内容难度,使其匹配生产环境对运维人员的要求。
第0章 咱们先来谈谈学习方法和红帽系统。
开源共享精神
GNU GPL(GNU General Public License,GNU通用公共许可证)
BSD(Berkeley Software Distribution,伯克利软件发布版)许可协议
Apache许可证版本(Apache License Version)许可协议
MPL(Mozilla Public License,Mozilla公共许可)许可协议
MIT(Massachusetts Institute of Technology)许可协议
为何学Linux:因为Linux不会蓝屏呀!
第1章 部署虚拟环境安装linux系统。
桥接模式:相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。
NAT模式:让VM虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网,在真机中NAT虚拟机网卡对应的物理网卡是VMnet8。
仅主机模式:仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅主机模式模拟网卡对应的物理网卡是VMnet1。
密码忘记操作
第2章 新手必须掌握的Linux命令。
Shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。
标准年月日显示: date "+%Y-%m-%d %H:%M:%S"
查看是今年第几天(必须有加号):date "+%j"
echo date ps命令用于查看系统中的进程状态
top命令相当强大,能够动态地查看系统运维状态,完全将它看作Linux中的“强化版的Windows任务管理器”
ifconfig uname命令用于查看系统内核与系统版本等信息 free -h用于显示当前系统中内存的使用量信息(为了保证Linux系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。)
pwd命令用于显示用户当前所处的工作目录 cd ls
cat命令用于查看纯文本文件(内容较少的) more命令用于查看纯文本文件(内容较多的)
head命令用于查看纯文本文档的前N行 tail命令用于查看纯文本文档的后N行或持续刷新内容
wc命令用于统计指定文本的行数、字数、字节数 stat命令用于查看文件的具体存储信息和时间等信息
diff命令用于比较多个文本文件的差异(不仅可以使用--brief参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处,这绝对是判断文件是否被篡改的有力神器)
stat命令可以用于查看文件的存储信息和时间等信息
touch命令用于创建空白文件或设置文件的时间 mkdir命令用于创建空白的目录 cp命令用于复制文件或目录
mv命令用于剪切文件或将文件重命名 rm命令用于删除文件或目录 file命令用于查看文件的类型
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件
tar命令用于对文件进行打包压缩或解压 grep命令用于在文本中执行关键词搜索,并显示匹配的结果
find命令用于按照指定条件来查找文件
第3章 管道符、重定向与环境变量。
输入重定向是指把文件导入到命令中,而输出重定向则是指把原本要输出到屏幕的数据信息写入到指定文件中。
使用输入重定向把readme.txt文件导入给wc -l命令,统计一下文件中的内容行数。
[root@linuxprobe ~]# wc -l < readme.txt
管道命令符的作用也可以用一句话来概括“把前一个命令原本要输出到屏幕的标准正常数据当作是后一个命令的标准输入”
grep文本搜索命令时,我们通过匹配关键词/sbin/nologin找出了所有被限制登录系统的用户。在学完本节内容后,完全可以把下面这两条命令合并为一条:
1、找出被限制登录用户的命令是grep "/sbin/nologin" /etc/passwd;
2、统计文本行数的命令则是wc -l。
[root@linuxprobe ~]# grep "/sbin/nologin" /etc/passwd | wc -l
实用:[root@linuxprobe ~]# ls -l /etc/ | more
变量是计算机系统用于保存可变值的数据类型。
经典的问题:“为什么不能将当前目录(.)添加到PATH中呢? ” 原因是,尽管可以将当前目录(.)添加到PATH变量中,从而在某些情况下可以让用户免去输入命令所在路径的麻烦。但是,如果黑客在比较常用的公共目录/tmp中存放了一个与ls或cd命令同名的木马文件,而用户又恰巧在公共目录中执行了这些命令,那么就极有可能中招了。
第4章 Vim编辑器与Shell命令脚本。
4.1 Vim文本编辑器
在Linux系统中一切都是文件,而配置一个服务就是在修改其配置文件的参数。
命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作。
输入模式:正常的文本录入。
末行模式:保存或退出文档,以及设置编辑环境。
有实战
4.2 编写Shell脚本
Shell脚本命令的工作方式有两种:交互式和批处理。
1、交互式(Interactive):用户每输入一条命令就立即执行。
2、批处理(Batch):由用户事先编写好一个完整的Shell脚本,Shell会一次性执行脚本中诸多的命令。
4.3 流程控制语句
实战:计划任务分为一次性计划任务与长期性计划任务,大家可以按照如下方式理解。
一次性计划任务:今晚11点30分开启网站服务。
长期性计划任务:每周一的凌晨3点25分把/home/wwwroot目录打包备份为backup.tar.gz。
第5章 用户身份与文件权限。
Linux是一个多用户、多任务的操作系统,具有很好的稳定性与安全性
力荐root管理员权限,原因很简单。因为在Linux的学习过程中如果使用普通用户身份进行操作,则在配置服务之后出现错误时很难判断是系统自身的问题还是因为权限不足而导致的;这无疑会给大家的学习过程徒增坎坷。
su命令可以解决切换用户身份的需求
sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务
第6章 存储结构与磁盘划分。
Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误。然而,当硬盘容量较大时,所需的修复时间也会很长,而且也不能百分之百地保证资料不会丢失。它会把整个磁盘的每个写入动作的细节都预先记录下来,以便在发生异常宕机后能回溯追踪到被中断的部分,然后尝试进行修复。
Ext4:Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录。另外,Ext4文件系统能够批量分配block块,从而极大地提高了读写效率。
XFS:是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地恢复可能被破坏的文件,而且强大的日志功能只用花费极低的计算和存储性能。并且它最大可支持的存储容量为18EB,这几乎满足了所有需求。
首先需要在虚拟机中模拟添加入一块新的硬盘存储设备,然后再进行分区、格式化、挂载等操作,最后通过检查系统的挂载状态并真实地使用硬盘来验证硬盘设备是否成功添加。
管理硬盘设备最常用的方法就当属fdisk命令了。fdisk命令用于管理磁盘分区
在Linux系统中存在硬链接和软连接两种文件。
硬链接(hard link):可以将它理解为一个“指向原始文件inode的指针”,系统不为它分配独立的inode和文
件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的inode连
接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向
原文件inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。需要注意的是,由于技术的局
限性,我们不能跨分区对目录文件进行链接。
软链接(也称为符号链接[symbolic link]):仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越
文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与Windows系统中的“快捷
方式”具有一样的性质。
RAID技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。
RAID不仅降低了硬盘设备损坏后丢失数据的几率,还提升了硬盘设备的读写速度,所以它在绝大多数运营商或大中型企业中得以广泛部署和应用。
比如有一天您正在家里看电视,突然听到有人敲门,您透过防盗门的猫眼一看是推销商品的,便会在不需要的情况下开门并拒绝他们(REJECT)。但如果您看到的是债主带了十几个小弟来讨债,此时不仅要拒绝开门,还要默不作声,伪装成自己不在家的样子(DROP)。
SSH(Secure Shell)是一种能够以安全的方式提供远程登录的协议,也是目前远程管理Linux系统的首选方式。
目前能够提供Web网络服务的程序有IIS、Nginx和Apache等
IIS(Internet Information Services,互联网信息服务)是Windows系统中默认的Web服务程序,这是一款图形化的网站管理工具
如果每台运行Linux系统的服务器上只能运行一个网站,那么人气低、流量小的草根站长就要被迫承担着高昂的服
务器租赁费用了,这显然也会造成硬件资源的浪费。在虚拟专用服务器(Virtual Private Server,VPS)与云
计算技术诞生以前,IDC服务供应商为了能够更充分地利用服务器资源,同时也为了降低购买门槛,于是纷纷启用
了虚拟主机功能。
不同设备,个人计算机,也可能会装有Windows、Linux、UNIX、Mac等不同的操作系统。为了能够在如此复杂多样的设备之间解决问题解决文件传输问题,文件传输协议(FTP)应运而生。
FTP协议的本质是传输文件,而非共享文件,因此要想通过客户端直接在服务器上修改文件内容还是一件比较麻烦的事情。
Samba服务程序现在已经成为在Linux系统与Windows系统之间共享文件的最佳选择。
DNS(Domain Name System,域名系统)技术应运而生。这是一项用于管理和解析域名与IP地址对应关系的技术,简单来说,就是能够接受用户输入的域名或IP地址,然后自动查找与之匹配(或者说具有映射关系)的IP地址或域名,即将域名解析为IP地址(正向解析),或将IP地址解析为域名(反向解析)。这样一来,我们只需要在浏览器中输入域名就能打开想要访问的网站了。
动态主机配置协议(DHCP)是一种基于UDP协议且仅限于在局域网内部使用的网络协议,主要用于大型的局域网环境或者存在较多移动办公设备的局域网环境中,其主要用途是为局域网内部的设备或网络供应商自动分配IP地址等参数。
第15章 使用Postfix与Dovecot部署邮件系统。
第16章 使用Squid部署代理缓存服务。
第17章 使用iSCSI服务部署网络存储。
第18章 使用MariaDB数据库管理系统。
MariaDB和MySQL在性能上基本保持一致,两者的操作命令也十分相似。从务实的角度来讲,在掌握了MariaDB数据库的命令和基本操作之后,在今后的工作中即使遇到MySQL数据库,也可以快速上手。
搭建出一套可批量安装Linux系统的无人值守安装系统
LNMP动态网站部署架构是一套由Linux + Nginx + MySQL + PHP组成的动态网站系统解决方案,具有免费、高效、扩展性强且资源消耗低等优良特性。
安装软件:一般来讲,在安装软件时,如果能通过Yum软件仓库来安装,就用Yum方式;反之则去寻找合适的RPM软件包来安装;如果是在没有资源可用,那就只能使用源码包来安装了。
选购服务器主机
虚拟主机:在一台服务器中划分一定的磁盘空间供用户放置网站信息、存放数据等;仅提供基础的网站访问、数据存放与传输功能;能够极大地降低用户费用,也几乎不需要用户来维护网站以外的服务;适合小型网站。
VPS(Virtual Private Server,虚拟专用服务器):在一台服务器中利用OpenVZ、Xen或KVM等虚拟化技术模拟出多台“主机”(即VPS),每个主机都有独立的IP地址、操作系统;不同VPS之间的磁盘空间、内存、CPU、进程与系统配置完全隔离,用户可自由使用分配到的主机中的所有资源,为此需要具备一定的维护系统的能力;适合小型网站。
ECS(Elastic Compute Service,云服务器):是一种整合了计算、存储、网络,能够做到弹性伸缩的计算服务;使用起来与VPS几乎一样,差别是云服务器是建立在一组集群服务器中,每个服务器都会保存一个主机的镜像(备份),从而大大提升了安全性和稳定性;另外还具备灵活性与扩展性;用户只需按使用量付费即可;适合大中小型网站。
独立服务器:这台服务器仅提供给用户一个人使用,其使用方式分为租用方式与托管方式。租用方式是用户将服务器的硬件配置要求告知IDC服务商,按照月、季、年为单位来租用它们的硬件设备。这些硬件设备由IDC服务商的机房负责维护,用户一般需要自行安装相应的软件并部署网站服务,这减轻了用户在硬件设备上的投入,适合大中型网站。托管方式则是用户需要自行购置服务器硬件设备,并将其交给IDC服务供应商进行管理(需要缴纳管理服务费)。用户对服务器硬件配置有完全的控制权,自主性强,但需要自行维护、修理服务器硬件设备,适合大中型网站。
选择服务器主机供应商时请一定要注意查看口碑,并在综合分析后再决定购买。某些供应商会有限制功能、强制添加广告、隐藏扣费或强制扣费等恶劣行为,请各位读者一定擦亮眼睛,不要上当!
更多推荐
所有评论(0)