Linux 运维初级
一. Linux简介及版本介绍
1. Linux系统本质是一个kernel(内核)
2. Linux系统遵循GNU GPL 开源许可
3. Linux系统内核( Kernel ):是由Linus Torvalds 负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务的系统核心程序
4. Linux发行套件
(1). 本质:kernel+应用程序+工具程序+文档,组成的大的软件包
(2). 常见发行套件
a. RHEL:RED HAT 公司发布的企业级Linux系统
b. Centos:社区系统,与RHEL除了徽标其它完全一样。(http://mirrors.163.com/)
c. Ubuntu:应用于桌面级计算机,有丰富的应用软件
二. 虚拟安装及系统的部署
1. 实验工具
(1). 虚拟机:VMware 14 pro
(2). ISO镜像:Centos 7.4 x86_64
a. DVD版本:使用安装光盘制作,包括常用工具
b. Everything:Linux完整安装组件(9GB)
c. Minimal:最小化安装版,无桌面,无常用工具
d. 注意:
(a). i386 :适用于32位机
(b). x64及amd64 :适用于64位机
(c). desktop:桌面版 server:服务器版
2. 虚拟机安装
(1). 增强型键盘驱动需打勾
(2). 创建虚拟机
a. 典型安装
b. 稍后安装操作系统(创建空白盘)
c. 名称:见名知意,加上日期
d. 位置:必须有文件夹
e. 磁盘分配
(a). 默认20GB空间,此空间动态分配,最大为20 GB
(b). 将虚拟磁盘存储为单个文件(速度快,不便于移动),多个文件(速度慢,便于移动)
f. 网卡设置
(a). 桥接模式(VMnet0):复制物理机网络配置,通过物理机搭桥连接到外网,适用于网络环境不经常变动的环境下使用
(b). NAT模式:将物理机当做“路由器”连接外网,适用于网络环境经常变动的情况下使用(VMnet8)
(c). 仅主机模式:虚拟机仅与物理机通信(VMnet1)
3. Centos 的安装部署
(1). 软件包安装类型
a. 带有GUI的服务器:有图形界面及基本服务器端组件
b. 最小安装:基本组件,无图形界面,无常用工具(wget 等)
(2). 硬盘分区
a. 基本分区(三个)
(a). /boot (启动分区): 存储系统启动基本文件及参数,建议容量:200MB-400MB
(b). swap(交换分区):相当于windows中的虚拟内存,建议4GB
(c). /(根分区):存储文件系统及相关数据,建议:剩余容量
b. 实际应用分区
(a). /home :存放普通用户的数据,为家目录,建议4GB
(b). /usr:用来存放 Linux 系统中的应用程序,建议大于 3GB 以上。
(c). /var:用来存放 Linux 系统中经常变化的数据以及日志文件,建议大于 1GB 以上
4. 初次接触命令行
(1). 登录
a. root:为超级管理员账户
b. 其它为普通账户
(2). 终端
a. Centos启动后默认提供6个终端界面
(a). Ctrl+F1 :GUI界面
(b). Ctrl+F2~F6:提供5个命令行界面
b. tty:当前默认终端,后跟上数字,如tty2
c. who命令:显示当前登录的终端记录
(3). 网卡配置
a. 网卡配置文件位置:
/etc/sysconfig/network-scripts
b. 编辑网卡文件: vim 网卡文件名
c. 移动光标定位onboot,点击键盘i键,进入编辑状态,将onboot=no修改为noboot=yes,点击ESC键,点击shift+: 输入wq 保存退出
d. 重启网卡:service network start
e. 通过ping www.qq.com 检测网络连通性
(4). 清屏:ctrl+L 命令:clear
5. 本机yum仓库配置
a. yum仓库:网易yum仓库
b. 地址:http://mirrors.163.com/.help/CentOS7-Base-163.repo
c. 本机yum配置文件目录:/etc/yum.repos.d
d. 删除yum配置文件目录:rm -rf yum.repos.d
e. 新建目录:mkdir yum.repos.d
f. 进入目录: cd yum.repos.d
g. 下载网易yum配置文件:
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
h. 清除yum信息:yum clean all
i. 建立yum缓存: yum makecache
(1). 更新本机kernel及软件
a. 更新内核:yum update kernel
b. 更新所有软件:
6. 命令帮助命令:man
(1). 作用:查看命令的帮助文件,浏览参数名称及作用
(2). 格式:man 命令关键字
(3). 例如:man ls
(4). 注意:空格进行整体翻页,上下键行向滚动,点击q退出。
7. 正确关机重启
(1). 重启:reboot
(2). 关机
a. 定时关机: shutdown -h 10 十分钟后关机
b. shutdown now 立即关机(常用)
c. shutdown -h 21:00 系统在21点关机
d. shutdown -r now 系统重启
e. halt 关闭系统,等同于shutdown now
8. EPEL yum 扩展源的安装
(1). 作用:是由RHEL 发布的yum源仓库扩展包
(2). 命令: yum install epel-release
(3). 更新缓存:yum makecache
(4). 查看是否启用:yum repolist all
9. 安装gcc 及屏保
(1). 下载屏保工具:wget http://archive.ubuntu.com/ubuntu/pool/universe/c/cmatrix/cmatrix_1.2a.orig.tar.gz
(2). 解压缩:tar xvf cmatrix_1.2a.orig.tar.gz
(3). 进入屏保目录:cd cmatrix-1.2a
(4). 安装2个工具软件:
a. yum install -y ncurses-devel
b. yum install -y gcc
(5). 编译安装屏保:
./configure && make && make install
(6). 执行:任意目录下输入: cmatrix
10. root 超级用户密码修改
(1). 重启Linux: reboot
(2). 进入选择内核系统界面点击键盘上下键,之后点击键盘 e 键
(3). 使用键盘方向键向下移动寻找Linux16 所在行,将 ro 删除 ,同位置添加:rw init=/sysroot/bin/bash ,之后点击键盘ctrl+x
(4). 输入 chroot /sysroot
(5). 输入 passwd 后输入2遍密码,注意:新密码不回显
(6). 输入 :touch /.autorelabel 使密码生效
(7). 登录root账户,使用新密码登录
11. 使用 putty 进行远程登录
(1). 查看本机IP地址命名: ip addr
(2). 记录本机ip地址
(3). 打开putty,在左侧选择session目录,右侧在host name 中输入之前查看的ip 地址后进行命名并save
(4). 点击最下面的open进行远程登录
(5). 输入root及密码后进行登录
(6). 远程登录协议软件为:ssh ,端口号:22
(7). 三.Linux操作系统知识
(8). 1.操作系统基本概念:
(9). a)作用:管理计算机软硬件资源,向用户提供系统设备接口及使用界面。
(10). 2.分析
a)管理任务
(11). i)软件资源:软件安装、使用、卸载、更新等
(12). ii)硬件资源:管理CPU与内存(时间,空间)
(13). b)提供使用接口界面
(14). i)接口:
(15). *软件接口:一系列的功能函数及数据库
(16). *硬件接口:逻辑接口(识别)、物理接口
(17). ii)界面:
(18). *GUI:图形化界面,桌面、文件系统、菜单
(19). *CLI:命令行界面
(20). 3.操作系统基本功能
(21). 1).进程管理:管理CPU运行时间
(22). 2).内存管理:管理内存和储存空间
(23). 3).文件管理:使用文件系统管理外存的文件数据及储存空间。
(24). 4).设备管理:管理除了CPU、内存之外的所有I/O设备
(25). 5).网络管理:网络建立、缓冲、纠错、以及释放链接等。
(26). 4.Linux系统架构
(27). 1).组织图:
2)Linux系统构成
a)内核空间
i)系统调用
ii)内核
iii)硬件设备驱动程序
b)用户空间
i)用户程序
ii)系调用函数
3)内核构成:
a)进程管理(PM):负责创建和销毁进程,并处理他们与外部世界的联系(输入和输出)及不同进程间的通讯。
b)内存管理(MM):计算机的内存是主要的资源,处理他所用的策略对系统性能是至关重要。内核为所有进程的每一个都在有限的可用资源上建立了一个虚拟的空间。在有限的内存空间中,通过管理以达到较高的空间利用率(分页管理)。
c)虚拟文件系统内(VFS):为文件提供了一个通用的接口抽象,文件系统层之下的是缓冲区层,他为文件系统层提供了一个通用函数集,这个缓存层通过将数据保留一段时间,优化了对物理设备的访问。缓冲区缓存之下是设备驱动程序,实现了特定物理设备的接口(硬盘)。
d)网络堆栈,network stack(SC):遵循模TCP/IP本身的分层体系结构,提供和管理网络连接,提供对多种网络通信标准的访问并支持许多网络硬件。
e)dervice drivers:Linux 内核中有大量代码都在设备驱动程序中,他们能够运转特定的硬件设备,提供底层物理硬件驱动(识别、管理)。
f)系统调用(SCI):kernel提供一系列具备预订功能的内核函数,通过一组称为系统调用(system call)的接口呈现给用户。系统调用把应用程序的请求传给内核,调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。
4)shell(壳):
a.概念:将用户或者软件下达的指令解释成操作系统内能识别的命令,并提供相应的人机交互界面。
b.分类
i).GUI:GNOME KDE
ii).CLI:MS-DOS bash(Linux系统使用)
4.Linux系统的组成:
1).组成:kernel(内核)+根文件系统
2).功能组成:
a)内核空间:由内核代码组成,拥有系统级别的权限,可以直接更改硬件
b)用户空间:有各种应用程序组成,通过调用内核来完成各种复杂的命令。
5.Linux系统启动流程:
(1).宏观过程
a.通电自检->读取BIOS ROM->加载主引导记录->加载操作系统
(2).通电自检:
a)作用:物理设备通电,检查是否正常工作。
b)注意:内存设备一般问题较大,若接触不良或者故障则会中断自检过程
(3)读取BIOS:
a.BIOS:基本输入输出系统
b.BIOS时主板上一块ROM芯片,存储BIOS的程序。
c.CMOS:是主板上一块RAM芯片,存储BIOS的设置参数。
(4)加载主引导记录:
a.确定引导介质:(硬盘(HDD)、光盘(CD-ROM)、U盘(USB-HDD)、网络(Network))
b.使用Bootloader(引导加载器)进行引导:通过MBR(446字节只支持4和分区)或GUID(128个常用分区128个备份分区)进行加载引导分区。
(5)加载内核
a)kernel初始化 ,检测硬件设备
b)加载硬件驱动,以只读方式加载根(/)文件系统。
(6)启动初始化进程systemd:systemd是系统启动的第一个进程,其他进程都是从该进程衍生出来的,进程PID编号为1。
(7)加载终端:6个CLI命令行终端或5个CLI一个GUI。
(8)用户登录:
a)命令行登录
b)界面登录
c)ssh远程登录
(9)登录后加载环境变量
四.常见的Linux命令:
1.shell的简介:
(1)作用:Linux中shell(默认壳为:bash)是一个强大的命令行工具,shell也称为终端或壳,充当用户与kernel(硬件)的“翻译官”、“解释器”。
(2)特点:
a)使用键盘上下键翻看历史命令
b)使用tab键进行命令补全
c)强大的脚本处理功能
d)实用的环境变量
2.Linux系统下一切资源皆是文件
3.图形界面的登录:
a)快捷键:Ctrl+Alt+F1
b)命令:init 5进入图形页面
c)新建图形程序:startx
4.命令行界面登录
a)快捷键:ctrl+Alt+F2~F6
b).命令:init 3进入命令行的界面
5.命令提示符:[root@localhost ~]#
a)root:当前登录账户名,root为系统管理员账户
b)localhost:当前系统主机名
c)~:系统家目录
i)root:账户家目录:/root
ii)普通账户:/home/普通账户名:如:/home/zhanxu
d)提示符标志:
i.#:当前为root账户登录
ii.$:当前为普通账户登录
6.命令格式:
a)格式:命令名称+空格+参数+空格+目标
b)参数
i):长格式:--参数(全程)
ii):短格式:-参数(单个字母缩写)常用
7.文件系统路径:
a)绝对路径:从根目录(/)开始描述的文件或者目录
b)相对路径:从当前目录开始描述
8.pwd命令:
a)作用:查看当前绝对路径
b)格式:pwd
9.cd命令:
a)作用:切换工作目录
b)格式:cd 工作目录路径
c)例如:i.cd ~:切换到家目录
ii.cd ..:返回上一级
iii.cd /:返回根目录
10.ls命令:
a)作用:查看目录内容
b)格式:ls -命令参数首字母 路径
c)翻页查看目录: ls | more
d)查看隐藏文件(所有文件):ls -a(隐藏文件前会有字符点.)
11.date命令:
a)作用:查看或者设置日期时间
b)格式:date -参数首字母 +显示日期时间格式
c)参数:
i)-s:设置日期时间
ii)-d:显示描述日期时间
d)显示日期时间格式(date +%-):
i)%t 跳格【TAB键】
%H 小时(00-23)
%I 小时(01-12)
%M 分钟(00-59)
%s 秒 (00-60)
%X 相当于%H:%M:%S
%Z 显示时区
%A 星期几
%P 显示本地AM或者PM
ii)%d 日(01-31)
%j 一年中的第几天(001-366)
%m 月份(01-12)
%Y 完整的年份
e)例:显示指定的日期时间:
date +%Y-%m-%d
date +%H:%M:%S
date "+%Y-%m-%d %t %H:%M:%S"
注意:日期和时间串联需要加“”作为定界符
date +%j 查看当前日期为本年第几天,一般用于备份,备份文件中加入该参数,以此判断文件的新旧,数字越小越旧,数字越大越新。
f)例:日期时间的修改
date -s 20180707 修改日期为2018-07-07
date -s 12:02 修改时间为12:02
合并:date -s “20180707 12:02” 修改日期时间为:2018-07-07 12:02
g)例:显示指定的日期时间
date -d“+2 day” +%d 显示2天后日期
date -d “-5 day”+%d 显示5天前日期
12.cal查看日历
a)作用:显示日历
b)格式:cal 月份 年份
c)例如:cal; cal 08; cal -y;cal -y 2019
13.系统状态检测命令:
a)ps命令
i)作用:查看进程状态,一般用于获取进程的PID
ii)参数:
1.-u:显示用户及进程的详细信息
信息: PID
%CPU:CPU占用率
%MEM:内存使用率
VSZ:虚拟内存(SWAP)使用量KB
STAT:虚拟进程状态
状态:R(运行):正在运行
S(中断):进程休眠中
D(不可中断):进程不响应系统异步信号,使用kill命令也无法中断
Z(僵死):进程终止
T:(停止):运行停止
2.-a:显示所有进程
注意:常用 ps -au
b)top命令
i)作用:查看进程及进程负载信息,相当于加强版任务管理器
ii)格式:top
iii)显示内容解释(前五行)
1.第一行:
系统时间 运行时间 登陆的终端数 系统负载
注意:系统负载为:1分钟平均值 5分钟平均值 15分钟平均值(负载越小,系统运行越流畅)
2.第二行:
进程总数 运行数 睡眠数 停止数 僵死数
3.第三行:
用户占用资源百分比
系统内核占用资源百分比
改变过优先级的进程资源百分比
空闲的资源百分比
注意:数字 id 表示CPU空闲率
4.第四行:内存 单位:KB
物理内存总量
内存使用量
内存空闲量
作为内核缓存的内存量
5.第五行:虚拟内存(SWAP) 单位:KB
虚拟内存量
虚拟内存使用量
虚拟内存空闲量
已被提前加载的内存量
6.表格注意:%CPU %MEM 表示CPU占用率和内存使用率
c)pidof命令:
i)作用:查看进程的PID值
ii)格式:pidof 进程名 例:pidof sshd
e)kill命令:
i)作用:终止进程
ii)格式:kill 进程pid值
iii)注意:一般用于结束yum占用进程。
f)killall命令
i)作用:批量结束进程组
ii)格式:killall 参数 进程名称
g)ifconfig
i)作用:查看本机网卡信息
ii)格式:ifconfig
iii)显示意义:(ens33本机物理网卡)
1.inet:本机分配的ip地址
2.netmask:子网掩码
3.ether:本机MAC地址
4.RX:发送数据包个数,及数据量(KB)
5.TX:收到的数据包个数,及数据量(KB)
注意:NAT模式地址来源于虚拟网络编辑器中VMnet8选项中DHCP设置下的地址池
h)uname命令:
i)作用:查看本机系统版本信息
ii)格式:uname -a
m)uptime命令:
i)作用:查看本机状态,简化版top
ii)格式:uptime
iii)注意:load average,为1 5 15分钟系统平均负载率(负载率越低越好,平时不要超过1,生产环境下不要超过5)
n)free命令:
i)作用:显示内存及虚拟内存使用状态
ii)格式:free -h(以人性化单位显示)
o)who命令:
i)作用:显示当前登录终端的信息
ii)格式:who
(11).last 命令
a.作用:显示系统账户登录记录
b.格式:last
c.翻页查看:last | more
d.注意:
(a). : 0 图形界面
(b). tty2-tty6 :命令行阿界面
(c). pts/0 : 远程登录方式
(12).history
a.作用:查看历史命令
b.格式:history -参数
c.例如:
(a).history 查看所有历史记录命令
(b).history 5 查看前5条历史记录
(c).history c 清空历史记录
d.历史命令存储位置:/root/.bash _history
/账户名/home/bash_history
查看:cd ~ cat .bash_history
e.修改默认记录历史命令个数:
(a).配置文件路径:/etc/profile
(b).编辑该文件:vim /etc/profile
(c).找到HISTSIZE=1000 ,将1000改为指定值
(d).重启:reboot
(e).注意:默认存储1000条历史命令记录
14.echo 命令
(1).作用:将变量或常量显示到屏幕上
(2).格式:echo 字符串或变量名
(3).例: echo hello
echo "world"
echo $SHELL /bin/bash