目录 应放置的内容
/bin 系统有很多放置执行文件的目录,但是/bin目录比较特殊。/bin放置的是在单用户维护模式下还能够被操作的命令。在/bin下面的命令可以被root与一般用户使用。
/boot 这个目录主要放置开机会使用到的文件,包括Linux内核文件以及开机菜单与开机所需配置文件等。
/dev 在Linux系统上,任何设备与结构设备都是以文件的形式存在于这个目录中的。只要通过访问这个目录下的某个文件,就等于访问某个设备。
/etc 系统主要的配置文件几乎都放置在这个目录里,例如人员的账号密码文件、各种服务的起始文件等。一般来说,这个目录下的各个文件属性是可以让一般用户查阅的。但只有root用户有权限修改。FHS标准建议不要放置可执行文件(binary)在这个目录中。
/home 这是系统默认的用户文件夹(home directory)。在创建一个一般用户时,默认的用户主文件夹都会放置到这里。主文件夹有两种代号:~:代表目前这个用户的主文件夹 ~ahao:代表用户ahao的主文件夹
/lib /lib放置的是在开机时会用到的函数库,以及在/bin或/sbin下面的命令会调用的函数库。
/media /media放置的是可删除的设备。包括软盘、光盘等设备都暂时挂载于此。
/mut 如果你想要暂时挂载某些额外的设备,一般建议可以放置到这个目录中。在比较早的时候,该目录的用途于/media相同。
/opt 这是给第三方软件放置的目录。
/proc 这个目录本身是一个虚拟文件系统(virtual filesystem)。它放置的数据都是在内存当中,例如系统的内核、进程、外部设备状态及网络状态等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间。
/root 系统管理员(root)的主文件夹。之所以放在这里,是因为如果进入单用户维护模式而仅挂载根目录时,该目录就能拥有root的主文件夹,所以将root的主文件夹与根目录放置在同一块分区内。
/sbin 放在/sbin下面的为开机过程中所需要的命令,里面包括开机、修复、还原系统所需要的命令。
/srv srv可视为“service”的缩写,是一些网络服务启动之后,这些服务所需要取用的目录数据。
/sys 这个目录跟/proc非常相似,也是一个虚拟文件系统,主要记录与内核相关的信息。包括目前已加载的内核模块与内核检测到的硬件设备信息等。该目录同样不占用硬盘容量。
/tmp 这是一般用户或者时正在执行的程序暂时放置文件的地方。这个目录任何人都能访问并且创建数据,但是只用root和数据的使用者才能删除所创建的数据。
●因为根目录与开机有关,在开机的过程中仅有根目录所在分区会被挂载,其他分区则是在开机之后才会持续进行挂载的行为。所以根目录下与开机有关的目录就不能与根目录放置在不同的分区:/etc(配置文件)、/bin(重要的执行文件)、/dev(所需要的设备文件)、/lib(执行文件所需的函数库与内核所需的模块)、/sbin(重要的系统执行文件)。
[root@localhost ~]#
Root :当前登录的系统用户
Localhost:主机名
~:当前所在位置(~代表当前用户的家目录)
#:用户身份(#:管理员 $:普通用户)
Linux简介
谈到linux 我们就会想到linux 的创始人林纳斯·托瓦兹(Linus Torvalds)
一个企鹅撑起了一个开源的帝国!可你们知道linux 的来历吗?他也是有故事的,下面带你去了解linux 的世界
Linux的前身-Unix,是美国贝尔实验室、麻省理工大学和通用电气共同开发的一个新型的操作系统,因为凭借着良好的稳定性和多用户,多任务模式。一经问世就被行业所青睐。
后来各大厂商,如HP ,苹果,IBM 根据其自身的硬件架构,并以unix 操作系统为基础,开发了自己家的操作系统,如HP 的hpux ,苹果公司的mac os
此时的贝尔实验室发现版权商机了,想从中大赚一笔。就停止了公布了unix 源代码,并禁止对大学生提供原代码。
于是在1984年,一个大学教授谭宁邦(Andrew tannenbaum-)为了方便教学,自己写了Minix的系统,并且和Unix 操作系统一样稳定。能很好的运行与教学环境。
而教授的一个学生,他觉得老师的minix系统做的不是很好,想着青出于蓝而胜于蓝。就自己自学了minx系统,并在众多网友的帮助和建议下,开发了linux 操作系统。而这位学生,也就是上面提到的linux 之父,林纳斯·托瓦兹(Linus Torvalds)
红帽系统与linux 的联系
1994年,联合创始人 Ewing 创建了自己的Linux发行版,并将其命名为红帽Linux操作系统,随后经过其不断发展,中间不断收购软件公司,日益壮大起来。红帽公司成为了全球最大的开源技术厂商,RHEL是全世界内使用最广泛的Linux系统。
红帽产品涉及5大技术领域:云计算、存储、虚拟化、中间件、操作系统。
操作系统是其最大的技术领域:我们都知道Linux 在全球有众多的Linux 发行版,可你知道众多的发行版中,红帽公司的Linux发行版的使用率是最高的,我们看看都有哪些发行版本:
RHEL(红帽企业版Linux ,Red Hat Enterprise Linux的缩写)
RHEL系统具有极强的性能与稳定性,并且在全球范围内拥有完善的技术支持。但每年需要支付服务费
Centos (社区企业操作系统)
克隆版的RHEL系统,和RHEL一样的Linux构筑系统环境,实际就是用来优先测试redhat 的Bug ,使用免费。两者的不同,在于CentOS并不包含封闭源代码软件
无论免费还是收费,红帽公司的linux 的发行版在企业中的地位都是什么重要的,企业用他来搭建自己企业的实际生产应用平台
Centoslinux 7.5介绍与安装部署
一、历史发展
Linux操作系统的鼻祖Unix
肯.汤姆逊和丹尼斯.里奇于1969年在贝尔实验室建立了Unix操作系统,一款同时支持多人登录的操作系统。为了开发此系统他们发明了C语言。并于1983年俩人获得了图灵奖。
GNU社区的建立
1983年,Richard M. Stallman创建了GNU计划,并制定了GPL协议。并以角马作为了社区LOGO。该社区的定义了一个非常重要的词“开源”。
MINIX操作系统悄悄诞生
一款类Unix操作系统,由塔能鲍姆教授为教学使用而创作。1987年发布,该系统的源代码,以磁片的形式出售给院校或学生。该系统启发了Linux操作系统的创作
LINUX内核诞生
1992年Linus Torvalds根据MINIX操作系统建立Linux内核。Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。由于其开源的特点结合了GNU社区的开源软件最终组成了如今大家所使用的Linux操作系统。
二.LINUX的发行版
Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Debian项目众多内核分支中以Linux宏内核为主,而且Debian开发者所创建的操作系统中绝大部分基础工具来自于GNU工程,因此“Debian”常指Debian GNU/Linux。
ubuntu基于linux的免费开源桌面PC操作系统,十分契合英特尔的超极本定位,支持x86、64
工信部软件与集成电路促进中心(CSIP)携手国防科技大学(NUDT)与国际著名开源社区UBUNTU的支持公司CANONICAL在京宣布合作成立开源软件创新联合实验室,发起开源社区操作系统项目UbuntuKylin。
Kali linux操作系统
Kali Linux是基于Debian的Linux发行版,设计用于数字取证和渗透测试和黑客攻防。
Kali Linux预装了许多渗透测试软件,包括nmap (端口扫描器)、Wireshark (数据包分析器)、John the Ripper (密码破解器),以及Aircrack-ng (一套用于对无线局域网进行渗透测试的软件). 用户可通过硬盘、live CD或live USB运行Kali Linux。Metasploit的Metasploit Framework支持Kali Linux,Metasploit一套针对远程主机进行开发和执行Exploit代码的工具。
红帽系列Linux操作系统
Red Hat 企业版
由红帽公司建立的一款企业级操作系统
最新版本为7.0
Fedora 社区版
由Red Hat资助的社区操作系统,定位为个人版操作系统
最新版可以从官网http://fedoraproject.org下载
CentOS 社区版
Community Enterprise Operating System(社区企业操作系统)
最新版为7.5
三、安装CentOS7.5系统
安装步骤
若出现上面的界面,表示要打开物理机的虚拟化功能。
初始化CentOS7系统
CentOS7系统安装后
对初学者的建议
关闭防火墙 systemctl enable/disable firewalld
查看防火墙的状态:
Systemctl status firewalld
临时关闭防火墙
systemctl stop firewalld
永久停止防火墙开机自启动
systemctl disable firewalld
临时打开防火墙
systemctl start firewalld
防火墙开机启动
systemctl enable firewalld
关闭Selinux vi /etc/selinux/config SELINUX=disabled
查看Selinux状态
Getenforce
enforcing:强制模式,代表 SELinux 运作中,且已经正确的开始限制 domain/type 了;
permissive:宽容模式:代表 SELinux 运作中,不过仅会有警告讯息并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;
临时关闭SELinux
setenforce 0
1. 2
临时打开SELinux
setenforce 1
2. 3
开机关闭SELinux
编辑/etc/selinux/config文件,将SELINUX的值设置为disabled
*必背:引导启动过程
MBR:master boot record
ps -ef
Centos7以前启动Init进程
由 Linux 内核加载运行 /sbin/init 程序
是系统中第一个进程
PID(进程标记)号永远为1
Centos7以后启动systemd进程
*必背:Systemed单元类型
单元类型 | 扩展名 | 说明 |
Service | .service | 描述一个系统服务 |
Socket | .socket | 描述一个进程间通信的套接字 |
Device | .device | 描述一个内核识别的设备文件 |
Mount | .mount | 描述一个文件系统的挂载点 |
Automount | .automount | 描述一个文件系统的自动挂载点 |
Swap | .swap | 描述一个内存交换设备或交换文件 |
Path | .path | 描述一个文件系统中文件或目录 |
Timer | .timer | 描述一个定时器(用于实现类似cron的调度任务) |
Snapshot | .snapshot | 用于保存一个systemd的状态 |
Scope | .scope | 使用systemd的总线接口以编程的方式创建外部进程 |
Slice | .slice | 描述居于Cgroup的一组通过层次组织的管理系统进程 |
Target | .target | 描述一组systemd的单元 |
运行级别所对应的Systemd目标
运行级别 | Systemd的target | 说明 |
0 | poweroff.target | 关机状态,使用该级别时将会关闭主机 |
1 | rescue.target | 单用户模式,不需要密码验证即可登录系统,多用于系统维护 |
2 | multi-user.target | 用户定义/域特定运行级别。默认等同于3 |
3 | multi-user.target | 字符界面的完整多用户模式,大多数服务器主机运行在此级别 |
4 | multi-user.target | 用户定义/域特定运行级别。默认等同于3 |
5 | graphical.target | 图形界面的多用户模式,提供了图形桌面操作环境 |
6 | reboot.target | 重新启动,使用该级别时将会重启主机 |
改变运行级别
Systemctl get-default
Systemctl set-default multi-user.target
Systemctl get-default
或者
Runlevel
Init 0-6
Init 0 -----关机===systemctl powoff
Init 6 ------重启==systemctl reboot
*必背Centos7系统服务控制
常用方式
systemctl
控制类型
start:启动
stop:停止
restart:重新启动
reload:重新加载
status:查看服务状态
……
systemctl status rsyslog.service
systemctl restart rsyslog.service
管理服务启动
ntsysv工具
提供一个交互式、可视化窗口
可以在字符终端运行
便于集中管理多个服务
systemctl工具
不提供交互式、可视化窗口
管理单个服务效率更高
Ntsysv 以图形界面设置服务启停
ntsysv --level 级别列表设置服务启停时指定级别
systemctl is-enabled 服务名称 查看指定的服务是否设置为永久启动状态(enable永久启动,disable不永久启动)
Systemct list-units --type=service 查看所有设置为自动启动服务的状态
Systemctl –all查看所有服务状态
systemctl enable 服务名称(永久设置启动)
systemctl disable服务名称(永久设置不启动)
systemctl start 服务名
systemctl stop 服务名
对比老版本(适用于7以前版本)
查看服务chkconfig –list
查看服务状态service 服务名 status
启动服务:service 服务名 start
停止服务:service 服务名stop
服务永久设置
Chkconfig 服务名 on
Chkconfig 服务名 off
*学习几个命令:
用户登录,提示符
[ 当前用户名@主机名 当前目录 ] 用户身份符
#代表用户是root;
$代表普通用户;
Cat /etc/centos-release ------查看具体的linux类型和版本
date显示日期
whoami显示登录用户名
hostname显示主机名
ifconfig显示ip
route -n显示路由
alias cls='clear'
alias ipconfig='ifconfig'
ping -c 2 172.18.199.1
reboot重启机器
halt -p或shutdown -h 0
单词表
Redhat 红帽子
Free 开源的
Enterprise 企业的
Root 根
Boot 启动
Terminal 终端
Localhost 本地主机
Info 信息
Total 总共
作业:
1、英文和中文安装LINUX;
2、写出下面命令功能:
Date、whoami、hostname、ifconfig、alias、ping、reboot 、halt 、shutdown
linux常用命令
linux命令
SHELL
文件位于/bin/bash
cat /etc/shells
常见的linuxshell有sh、bash、csh、tcsh、ash 其中bash shell是linux默认的shell
查看系统默认shell命令 $SHELL
LINUX命令分类
内部命令 | 外部命令 |
集成于 Shell 解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于 Shell 的一部分 | 属于 Shell 解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由 Shell 加载后才能执行 |
Echo $PATH
通用的命令行使用格式
命令字
是整条命令中最关键的一部分
唯一确定一条命令
选项
短格式选项:使用“-”符号引导
多个单字符选项可以组合在一起使用 ----ls -a ls -l ls -al
长格式选项:使用“--”符号引导
参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
编辑 Linux 命令行的辅助操作
Tab 键
反斜杠“\” ---如果输入一行命令内容过长,终端会自动换行,也可以通过插入反斜杠\强制换行
Ctrl+U 快捷键 -------快速删除光标之前的所有字符内容
Ctrl+K 快捷键-----快速删除从点前光标处到行尾的所有字符
Ctrl+L 快捷键-----快速清空屏幕显示
Ctrl+C 快捷键----取消当前命令
如何获得命令帮助
问题
如何能快速、正确使用命令完成操作?
取得帮助方法
使用help 命令
Help pwd
使用“--help”选项
使用man 手册页 (pageup pagedown翻页 q退出)
help:大多数GNU工具都有--help 选项,用来显示工具的一些信息,用法
man:--(manual)显示系统的手册页,也就是查看帮助文档,如果系统没有文档,是不会显示这些帮助信息的,比help要详细
info:是一个基于菜单的超文本系统,是由GNU项目开发并由Linux发布,包括一些关于Linux Shell,工具,GNU项目开发程序说明文档,不但显示一些选项,还会有一些范例
注:一般man用的比较多,比help细,比info简单
目录和文件基本操作
pwd 命令
cd 命令
ls 命令
du 命令
显示当前的工作目录
Pwd
将用户的工作目录更改到其他位置
格式 | 说明 |
cd 目标位置 | 切换到目标位置 |
cd ~ cd | 若不指定目标位置,切换到当前用户的宿主目录 |
cd - | 切换到上一次执行 cd命令之前所在的目录 |
目录操作
绝对目录:从根目录开始的路径表示方式
相对目录:从当前目录开始的路径表示方式
示例:cd .. 相对路径表示法进入上级目录。
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
显示目录中内容,包括子目录和文件相关属性信息
ls [选项] [文件或目录… ]
ls –l
标志
d代表目录
-代表文件
l代表链接
ls –a 连同显示隐藏文件,以.开头的文件或目录
ls –d 显示目录本身的信息
ls –h 以友好的表示方式显示信息
常用选项
-l 、 -a 、 -A 、 -d 、 -h 、 -g 、 --color
结合通配符
“?”:匹配文件名中的一个未知字符
“*”:匹配文件名中的任意多个字符
ls --color ---在字符模式中颜色区分文件类型
深蓝色----目录
白色-------文件
绿色----可执行文件
黄色---设备文件
红色------压缩文件
通过别名机制简化常用的、比较长的命令
alias 命令别名 = 命令
设置myls 为ls – alh 的别名
alias myls = ‘ls – alh’
永久保存定义别名的方式
编辑 ~/.bashrc -----个人配置文件
/etc/bashrc -----全局配置文件
alias la='ls -a -l'
统计指定目录(或文件)所占用磁盘空间的大小
du [选项] [文件或目录… ]
选项 | 示例 |
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 显示出目录或文件的大小(K、M),默认的大小单位为字节(KB) |
-s | 只统计每个参数所占用空间总的大小,而不是统计每个子目录、文件的大小 |
df –h显示剩余磁盘空间
mkdir rmdir
创建新的空目录
mkdir [选项] 目录位置及名称
-p:一次性创建嵌套的多层目录
Rmdir删除子目录时,必须是空的。
创建空文件– touch
更新文件的时间标记
经常用于创建多个新的空文件
touch 文件…
创建链接文件– ln
为文件或目录建立链接文件
文件类型
软链接,又称符号链接(理解为快捷方式)
硬链接
ln [-s] 源文件或目录… 链接文件或目标位置
| 软链接-s | 硬链接 |
删除原始文件后 | 失效 | 仍旧可用 |
使用范围 | 适用于文件或目录 | 只可用于文件 |
保存位置 | 与原始文件可以位于不同的文件系统中 | 必须与原始文件在同一个文件系统(如一个Linux分区)内 |
取消软链接
Unlink 链接名
如:unlink aa1.txt
查找指定inode号的硬链接文件
ll –i
find / -inum 16810953
将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
cp [选项]… 源文件或目录… 目标文件或目录…
选项 | 说明 |
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
注意:
复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在
复制文件的样式
Cp 文件名子目录中
如:cd /root
cp initial-setup-ks.cfg a1
cp 文件名 新文件名
在当前目录复制出一个新文件
支持通配符*?
复制一个目录及里面所有文件到另一个目录中
Cp –r b3 b34
删除指定的文件或目录
rm [选项] 要删除的文件或目录…
常用选项
-f(强制)、-i(友好提示)、-r(连同子目录)
其中rf可以组合使用
猜一猜:下面命令实现的功能
rm -rf public_html/grub/
rm -i public_html/apg.conf
注意:
不要直接删除系统中已有的目录或配置文件,以避免出现意外故障
移动文件或目录mv
mv [选项] … 源文件或目录… 目标文件或目录
将指定的文件或目录转移位置
如果目标位置与源位置相同,则相当于执行重命名操作
mv mytouch mkfile
mv mkfile public_html/
查找命令/文件存放目录
搜索范围由环境变量 PATH 决定(echo $PATH )
which 命令|程序名
which -a 命令|程序名
查找文件或目录-find
采用递归方式,根据目标的名称、类型、大小等不同属性进行精细查找
find [查找范围] [查找条件表达式]
查找类型 | 关键字 | 说明 |
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 find / -name "*.txt" -print #在当前目录中中查.txt文件并显示 find . -name "[A-Z]*" -print #在当前目录中查以大写字母开头的文件并显示
|
按文件大小查找 | -size | 根据目标文件的大小进行查找 find . -type f -empty #查找大小为0的文件或空目录 find . -type f -size +1000000c -print #查长度大于1Mb的文件 find . -type f -size +2k #搜索当前目录下大于2KB的文件 |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找 find . -type d -print #只列出当前目录所有的子目录 |
扩展 | Xargs | find . -type d -empty | xargs rmdir #删除当前目录下所有空文件夹 find . -type f -empty | xargs rm -rf #递归查找当前目录及子目录下所有空文件并删除,rm 的 -r参数表示递归,-f表示强制删除 find . -name "*.txt" | xargs rm -rf #查找当前目录下所有.txt文件并删除
|
例如:
find . -type f -atime +10 -name "*.txt" -exec cp {} /data \; #找到10天前访问的.txt文件并复制到/data目录中
find . -perm -007 -exec ls -l {} \; #查所有用户都可读写执行的文件同-perm 777
find . -type f -user root -exec chown ubuntu {} \; #将当前目录下所有root的文件改为属于ubuntu
find /haha -name “grep.txt” -exec rm -rf {}\
find . -name ap* -o -name may* #查找以ap或may开头的文件
find / -name "aa*.log" –ls
find / -size +100M –ls
find /etc -size -10k -ls
find / -user abc -ls
find /root/b35 -type f -ls
各表达式之间使用逻辑运算符
“-a”表示而且(and)
“-o”表示或者(or)
find /boot -size +1024k -a -name "vmlinuz*“
find /boot -size +1024k -o -name "vmlinuz*"
知识梳理
查看及切换目录(pwd、cd、ls、du、df)
创建目录和文件(mkdir、touch、ln)
复制、删除、移动目录和文件(cp、rm、mv)
查找目录和文件(which、find)
作业:
1、 建立子目录/root/abc,在下面分别建立新子目录a1,b1,c1和文件a1.txt,b1.txt,c1.txt,将/etc/resolv.conf文件复制到a1目录中名称为r1.conf,在/root/abc/b1目录软链接此文件。
2、 查找系统中hostname文件,复制到/root/abc/c1中,本目录复制出新文件h1.conf,然后删除/root/abc/c1/hostname文件。
文件操作
一、文件内容查看
查看文件内容 cat 命令
cat命令
用途:显示出文件的内容
cat [选项] 文件名…
cat –n 文件名
显示文件内容同时显示行号
more命令
用途:全屏方式分页显示文件内容
交互操作方法
按Enter键向下逐行滚动
按空格键向下翻一屏
按q键退出
Ctrl+f 下翻 Ctrl+b上翻
more [选项] 文件名…
less 命令
用途:与 more 命令相同,但扩展功能更多
交互操作方法
Page Up 向上翻页,Page Down 向下翻页
按“/”键查找内容,“n”下一个内容,“N”上一个内容
其他功能与 more 命令基本类似
less [选项] 文件名…
tail命令
用途:查看文件结尾的少部分内容(默认为10行)
tail -n 文件名…
显示尾部指定行数
tail -f 文件名:动态观察文件变化
wc命令
用途:统计文件中的单词数量(Word Count)等信息
常用命令选项
-l:统计行数
-w:统计单词个数
-c:统计字节数
wc [选项]... 目标文件...
wc -l /etc/passwd
wc -l /var/log/secure
grep命令(支持正则表达式)
用途:在文件中查找并显示包含指定字符串的行
常用命令选项
-i:查找时忽略大小写
-v:反转查找,输出与查找条件不相符的行
查找条件设置
要查找的字符串以双引号括起来
“^……”表示以……开头,“……$”表示以……结尾
“^$”表示空行
grep [选项]... 查找条件 目标文件
例如:grep -v “^#” /etc/yum.conf | grep -v “^$”
Grep “^root” /etc/passwd
压缩命令gzip、bzip2
gzip命令、bzip2命令
用途:制作压缩文件、解开压缩文件
常用命令选项
-9、-d
gzip [-9] 文件名… ------gzip工具压缩文件
bzip2 [-9] 文件名...-----bzip2工具压缩文件
gzip -d .gz格式的压缩文件 ------gzip工具解压文件
bzip2 -d .bz2格式的压缩文件------bzip2工具解压文件
请注意:
gzip和bzip2命令使用的压缩算法各不相同
一般来说bzip2的压缩效率要好一些
gunzip 命令
gunzip 等价于gzip –d
gzip -d mkfile.gz
或
gunzip mkfile.gz
bunzip2 命令
bzip2和bunzip2命令的用法与gzip、gunzip命令基本相同
tar命令
用途:制作归档文件、释放归档文件
tar [选项] ... 归档文件名 源文件或目录
tar [选项]... 归档文件名 [-C 目标目录]
常用命令选项
-c、-x、-v、-f、-p、-t、 -C、-z、-j
-c:创建.tar格式包文件
-C:解压时指定释放的目标文件夹
-f:表示使用归档
-j:调用bzip2程序进行压缩或是解压
-p:打包时保留文件及目录的权限
-P:打包时保留文件及目录的绝对路径
-t:列表查看包内的文件
-v:输出详细信息
-x:解压tar格式的包文件
-z:调用gzip程序进行压缩或是解压
压缩归档:
Tar zcvf 自定义压缩后的文件名.tar.gz 压缩的对象
Tar jcvf 自定义压缩后的文件名.tar.bzip2 压缩的对象
解压:
Tar zxfv 压缩文件.tar.gz -C 解压后存放的目录
Tar jxvf 压缩文件.tar.bzip2 -C 解压后存放的目录
作业:
1、英文和中文安装LINUX;
2、写出下面命令功能:
Date、whoami、hostname、ifconfig、alias、ping、reboot 、halt 、shutdown
========================================================================================================================================================================================================================================
文本编辑器 vi 命令
一、文件内容编辑
文本编辑器的作用
创建或修改文本文件
维护 Linux 系统中的各种配置文件
Linux中最常用的文本编辑器
vi:类UNIX操作系统的默认文本编辑器。
vim:vim是vi文本编辑器(一般简称为vi编辑器)的增强版本
vi vim
三种工作模式
命令模式、输入模式、末行模式
不同模式之间的切换
I插入式
a追加式
o插入新行后进行编辑
命令模式的基本操作
光标移动
复制、粘贴、删除
文件内容查找
撤销编辑及保存退出
末行模式的基本操作
保存文件及退出vi编辑器
打开新文件或读入其他文件内容
文件内容替换
dw删除一个单词
保存退出:
:s/old/new/gc在同一行进行替换确认
:%s/old/new/gc
作业:
1、VI中进行复制粘贴、移动粘贴、单行查找替换、全文查找替换练习;
程序安装及管理
一、应用程序基础
将软件传到LINUX中
yum install lrzsz
(注意:LINUX要能连入互联网,ping www.qq.com)
应用程序与系统命令的关系
文件位置
系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
应用程序:通常在/usr/bin和/usr/sbin目录中
主要用途
系统命令:完成对系统的基本管理工作,例如IP配置工具
应用程序:完成相对独立的其他辅助任务,例如网页浏览器
适用环境
系统命令:一般只在字符操作界面中运行
应用程序:根据实际需要,有些程序可在图形界面中运行
运行格式
系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式
典型应用程序的目录结构
文件类型 | 保存目录 |
普通执行程序文件 | /usr/bin |
服务器执行程序文件和管理程序文件 | /usr/sbin |
应用程序配置文件 | /etc |
日志文件 | /var/log |
应用程序文档文件 | /usr/share/doc |
应用程序手册页文件 | /usr/share/man |
常见的软件包封装类型
文件类型 | 保存目录 |
rpm软件包 | 扩展名为“.rpm” |
deb软件包 | 扩展名为“.deb” |
源代码软件包 | 一般为“.tar.gz”、“.tar.bz2”等格式的压缩包,包含程序的原始代码 |
绿色免安装的软件包 | 在压缩包内提供已编译好的执行程序文——解开压缩包后的文件即可直接使用 |
Centos软件包管理
rpm软件包
RPM
Redhat Package Manager
由 Red Hat 公司提出,被众多 Linux 发行版所采用
建立统一的数据库文件
详细记录软件包安装、卸载等变化信息
自动分析软件包依赖关系
RPM 软件包
软件素材参考:http://www.rpm.org
一般命名格式:
查询已安装的 RPM 软件信息
rpm -q[子选项] [软件名]
常用选项
-qa、-qi、-ql、-qf、-qc、-qd
Rpm –qa查询所有安装的rpm软件包
Rpm –qi 查询已安装的某软件包的信息
Rpm –ql查询已安装的某软件包安装路径
查询未安装的 RPM 软件包文件中信息
rpm - qp[子选项] RPM包文件
常用选项
-qpi、-qpl、-qpc、-qpd
使用rpm 命令只能查询通过RPM方式安装的软件包信息用,其他途径安装到系统中的软件包,rpm 命令将无法获取相关信息
安装或升级RPM 软件
rpm [选项] RPM包文件...
-i :在当前系统中安装一个新的RPM软件包
-e:卸载指定名称的软件包
-U:检查并升级系统中的某个软件包,若该软件包原来并未安装,曾等同于”-i”选项
-F:检查并更新系统中的某个软件包,若该软件包原来并未安装,则放弃安装
-h:在安装或升级软件包的过程中,以”#”号显示安装进度
-v:显示软件安装过程中的详细信息
--force:强制安装某个软件包,当需要替换已安装的软件包及文件,或者安装一个比当前使用的软件版本更旧的软件时,可以使用此选项
--nodeps:在安装或升级,卸载一个软件包时,不检查与其他软件包的依赖关系
常用选项
-i、 -U、 -F
安装 升级 强制
-vh显示安装进度
rpm -ivh 软件包
卸载指定的RPM软件
rpm -e 软件名
辅助选项
--force、--nodeps、-h、-v、
重建RPM 数据库
[root@localhost ~]# rpm --rebuilddb
或
[root@localhost ~]# rpm --initdb
导入验证公钥
root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release
解决软件包依赖关系方法
安装有依赖关系的多个软件
卸载有依赖关系的多个软件
忽略依赖关系
结合“--nodeps”选项,但可能导致软件异常
源代码编译概述
使用源代码安装软件的优点
获得最新的软件版本,及时修复bug
根据用户需要,灵活定制软件功能
应用场合举例
安装较新版本的应用程序时
当前安装的程序无法满足需要时
需要为应用程序添加新的功能时
源代码编译过程
―――――――――――――――――――下次讲―――――――――――――――――――――――――
二、YUM安装软件
YUM,Yellow dog Updater Modified
基于RPM包构建的软件更新机制
可以自动解决依赖关系
所有软件包由集中的YUM软件仓库提供
软件仓库的提供方式
FTP服务:ftp://......
HTTP服务:http://......
本地目录:file:///.......
RPM软件包的来源
CentOS发布的RPM包集合
第三方组织发布的RPM包集合
用户自定义的RPM包集合
构建CentOS 7 软件仓库
RPM包来自CentOS 7 DVD光盘
通过FTP、HTTP或本地目录提供给客户机
在软件仓库中加入非官方RPM包组
包括存在依赖关系的所有RPM包
使用createrepo工具建立仓库数据文件
YUM缓存目录
存放下载的软件包、仓库信息等数据
位于/var/cache/yum/$basearch/$releasever
[root@localhost ~]# yum clean all
为客户机指定YUM仓库位置
配置文件:/etc/yum.repos.d/*.repo
[root@localhost ~]# vi /etc/yum.repos.d/centos7.repo
[base]
name=CentOS 7.5
baseurl=ftp://192.168.4.254/centos7
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[other]
name=Other RPM Packages
baseurl=ftp://192.168.4.254/other
enabled=1
gpgcheck=0
直接以CentOS 7 光盘作软件仓库
1. 将CentOS 7 光盘放入光驱
2. 指定仓库位置,URL地址为 file:///media/cdrom
[root@localhost ~]# vi /etc/yum.repos.d/local.repo
……
[local]
name=CnetOS 7.3
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
关于yum命令
由软件包yum-3.4.3-150.el7.centos.noarch提供
用来访问YUM仓库,查询、下载及安装、卸载软件包
yum的配置文件
基本设置:/etc/yum.conf
仓库设置:/etc/yum.repos.d/*.repo
日志文件:/var/log/yum.log
查询软件包
yum list [软件名]...
yum info [软件名]...
yum search <关键词>...
查询软件包组
yum grouplist [包组名]...
yum groupinfo <包组名>...
安装软件
yum install [软件名]
yum groupinstall <包组名>
升级软件
yum update
yum groupupdate
卸载软件
yum remove <软件名>...
yum groupremove <包组名>...
yum安装:
- 1. yum源配置文件所在位置:/etc/yum.repos.d/
注意:此目录下有许多.repo的配置文件,可以全部移走,然后自己创建一个XXX.repo的源文件
- 2. 编辑XXX.repo的源文件
编辑内容:
- 1. [名字] -------自定义
- 2. Baseurl=file:///media ------定义yum源仓库为光驱的挂载点
- 3. enabled=1 -------0 :关闭源 1表示开启源
- 4. Gpgcheck=0 ------0:不去校验包 1:校验包效率低
- 3. 保存退出
- 4. 安装命令
Yum install 包名
源码包安装:(需要gcc)
- 1. 下载源码包
- 2. 解压源码包
tar zxvf 软件名.tar.gz -C /解压目录 --------解压压缩文件到指定目录里面
- 3. 配置
./configure --prefix=/软件放置目录 -------重新配置软件安装后文件存放的位置
- 4. 编译
Make ---------重新编译二进制
- 5. 编译安装
Make install --------编译安装
作业:
1.图示源代码编译安装程序的基本过程,并写出每个过程的作用?
2.在执行“./configure”配置时加“--prefix”选项的作用是什么?
3.安装nload,监控自己服务器流量一分钟内变化。
账号和权限管理
一. 用户和组账号概述
v 用户账号
(一)用户账号分类:超级用户普通用户和程序用户
超级用户:rootlinux中的默认的超级用户,和windows中的administrator类似,拥有至高无上的权限.(慎用) 日常事务处理建议使用普通用户
普通用户:是有管理员创建的用户,权限有限,只对自己的家目录拥有完整权限
程序用户:安装操作系统以及部分应用程序时,添加的一些低权限账户,这些用户不能登录系统
v 组账号
组账号是一组用户的集合.每一个用户至少属于一个基本组(私有组),可以同时属于多个附加组
组账号的分类:基本组(私有组)和附加组(公共组)
v UID
UID(用户表示符):用户的数字形式的唯一标识符
root的UID为0
程序账号的UID默认是1-499
普通用户的UID默认是500-60000
v GID
GID(组账户标识符):组的数字形式的唯一标识符
root组账号的UID为0
程序账户组的GID:1-499
普通用户组的GID:500-60000
二. 用户账户管理
(一)用户账号文件
与用户账户相关联的两个文件是/etc/passwd和/etc/shadow
/etc/passwd:保存用户账户名称,宿主目录,登录shell等信息
/etc/shadow:存放用户密码,账号有效期等信息
(1) Passwd文件格式解析Z
所有用户都有可以访问,但是只有root才可以更改.
root:x:0:0:root:/root:/bin/bash
Root | X | 0 | 0 | Root | /root | /bin/bsh |
账户名称 | 加密的密码占位符 | 用户账号的UID | 用户账号的GID | 用户全名 | 宿主目录 | 登录后使用的SHELL |
(2) Shadow文件格式解析
shadow文件又被称为”影子文件”,存放账号的信息和密码,非常重要,严格控制访问
root:$6$3uiu.ktWda5L4Zt6$wLH0GDH5I4uE0::0:99999:7:::
用户账号 | 使用sha-512加密后的密码 | 上次修改密码的时间,从1970.1.1到最近一次修改时间的间隔天数 | 密码的最短有效天数.0为不限制 | 密码的最长有效天数,默认为99999,表示为不限制 | 提前多少天警告密码过期,默认为7天 | 在密码过期后多少天禁用账号 | 账号失效时间,为空表示账号永久可用 | 保留字段备用 |
(二)添加修改删除用户账号
(1) useradd命令-----添加用户账户
① Useradd 用户名
Useradd zhangsan ---------创建用户zhangsan
② Useradd 选项参数
v -u:指定用户的uid
v -d:指定该用户的家目录
n -e:指定用户的失效时间(格式:yyyy-mm-dd)
v -g:指定用户的基本组名(或是GID)
v -G:指定用户的附加组名(或是GID)
v -s:指定用户的登录shell
例如:useradd -d /admin -g jishubu -G root admin
解析:创建用户admin 指定/admin目录为其家目录将其加入jishubu基本组,同时属于root附加组
(2) Passwd命令-----为账户设置密码
Passwd 用户名 ------------给指定用户设置密码
新密码: ---- ----过于简单会提示,但是可以使用
确认密码:
Passwd选项:
-d:清空指定用户密码
Passwd -d aa -------清空aa用户的密码
-l:锁定用户账户
-S:查看用户状态(是否被锁定)(大写)
-u:解锁用户
(3) usermod命令----修改已存在用户账号属性
Usermod是对已经存在的用户设置各种属性
usermod命令选项:
-u:修改用户的UID
-d:修改用户的宿主目录位置
-e:修改用户的账户失效时间
-g:修改用户的基本组
-G:修改用户的附加组
-s:指定用户的登录shell
-l:更改用户账户的登录名(usermod -l 新名称旧名称)
-L:锁定用户账户
-U:解锁用户账户
(4) userdel命令------删除用户账户
Userdel 用户名 ------删除指定用户
Userdel命令选项:
-r:删除用户是连同家目录一起删除
三. 用户账号的初始配置文件
添加一个用户后,useradd命令会在该用户的宿主目录中建立一些初始配置文件,这些文件都是隐藏的.
文件包括三个:
1. .bash_logout ----文件中的命令将会在每次退出登录时执行
2. .bash_profile -----文件中的命令将会在用户每次登录时被执行
3. .bash_bashrc -----文件中的命令将会在每次加载bash时候执行
/etc目录下也有bashrc这个文件,这里面的文件是面对所有用户(全局配置)
四. 组账号管理
(1) 组账号文件
与组行号相关的两个文件:/etc/group和/etc/gshadow
/etc/group:存放组账号名称,GID,组成员
/etc/gshadow:存放组账号的密码字符串等信息(很少用)
Grep “^root” /etc/group
(2) 添加管理删除组账号
① Groupadd命令----添加组账号
Groupadd jishubu ------------创建技术部组
② Gpasswd命令-----添加设置删除组成员
Gpasswd -a zhangsan root ---------将zhangsan加入root组
Gpasswd -d zhangsan root ---------将zhangsan从root组里删除
Groups 用户名 -----------------查看指定用户的所属组情况
Gpasswd -M aa,bb,cc,dd jishubu -------------将aa bb cc dd 四个用户同时加入jishubu组
③ Groupdel命令-----删除组账号
Groupdel jishubu --------------删除jishubu组
五. 查询账号信息
- 1. groups命令-----查询用户账号所属的组
Groups zhangsan -----查询张三同时属于那些组
- 2. Id -------查询用户账户的身份标识
Id root --------查询用户root的ID信息
- 3. finger命令 -------查询用户账户的登录属性
Finger root ------查询用户root的登录属性
- 4. w命令--------查询当前主机的用户登录情况
管理文件和目录的属性
一. 查看目录和文件属性
ls -ld 目录名 -----------查看指定目录的属性信息
Ls -ld 目录1 目录2 --------查看多个目录的属性信息
drwx-xr-x.
d | rwx | r-x | r-x | . |
表示文件类型 (-:文件 d:表示目录 l:表示连接文件) | 文件的属主用户权限 | 文件属组用户的权限 | 该文件其他任何用户权限 | SElinux权限 |
权限划分:
r:读取权限(查看文件内容) ----------数字”4”表示
W:写入权限(修改权限)------------数字”2”表示
X:执行权限(程序或是目录的双击打开权限) ------数字”1”表示
普通无法访问/etc/shaw文件 ls -l /etc/shadow
二. 设置目录和文件的权限
Chmod [ugoa] [+-=] [rwx] 文件/目录 -------调整权限的命令格式
u:文件属主
G:文件属组
O:其他用户
a:代表所有人(a=u+g+o)
Chmod u+w aa.txt ---------给aa.txt文件的属主增加写入权限
Chmod [][][] 文件/目录 -------数字的方式来设置权限
7=4+2+1 -------7就是r+w+x 读写执行权限(完全控制)
5=4+1 --------5就是读和执行(只读)
Chmod 755 aa.txt -------将aa.txt文件的权限设置为属主是7 属组是5 其他用是5
Chmod命令选线:
-R:权限递归
Chmod -R 755 /pub -------将/pub目录权限设置为755,同时递归此目录下的所有对象
三. 设置目录和文件的归属
文件和目录的归属就是属组和属主
Chown 属主:属组文件/目录 ---------更改指定目录的属主和属组
Chown 属主文件/目录 ----------更改指定目录的属主
Chown zhangsan:jishubu aa.txt ------将aa.txt文件的属主改为zhangsan 属组改为jishubu
Ls -l aa.txt ------查看验证文件的属主和属组是否改变
=================================================================================================================================================================================================
磁盘和文件系统管理
一、磁盘管理及分区
1. 检测并确认新磁盘
fdisk -l --------查看系统中硬盘设备及分区情况
A:部分展示的是sda 系统的第一个磁盘以及分区情况
B部分展示的是sdb 系统的第二个磁盘及分区情况
C部分展示的是lvm磁盘分区情况
解析:
:磁盘总容量为42949672960bytes 1k=1024b
:磁盘总共划分的扇区数量
:磁盘划分的每个扇区大小为512b
磁盘相关概念:
磁盘片面和磁头
硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头。受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在5片以内。盘片的编号自下向上从0开始,如最下边的盘片有0面和1面,再上一个盘片就编号为2面和3面。
磁盘的数据单位:
- 1. 磁道(track)
下图显示的是一个盘面,盘面中一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)
磁盘容量计算
存储容量=磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数
图3中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道)的磁盘,图3中每条磁道有12个扇区,所以此磁盘的容量为:
存储容量 6 * 7 * 12 * 512 = 258048
每个磁道的扇区数一样是说的老的硬盘,外圈的密度小,内圈的密度大,每圈可存储的数据量是一样的。新的硬盘数据的密度都一致,这样磁道的周长越长,扇区就越多,存储的数据量就越大。
- 2. 柱面(cylinder)
绕马达旋转轴旋转的多个磁盘,每个磁盘有两个盘面(片),每个盘面里有多个磁道(Track)。多个磁盘上相同大小的磁道在竖直空间上构成了一个柱面,类似于相同大小的一堆呼啦圈(磁道)从脚套到头,视觉上构成了一个空心筒(柱面)硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。如下图
- 3. 磁头
磁头的质量影响整个磁盘的性能,只有精密的磁头才能在高转速和高密度磁盘工作的情况下高效正确的读写数据
- 4. 扇区
事实上仅把数据分为磁道,还不能达到细分数据区的目的(一个磁道中的数据容量还是相当大,即使是最内圈最小的磁道也是一样),因此我们再把磁道分为许多的扇区。由于内圈磁道的数据容量较少,因此内圈磁道所分割出来的扇区数码会比外圈磁道要少。扇区是磁盘上能读取数据的最小单位,大小为 512Bytes,也就是说 1 个 Byte 的文件,无论如何都要占据一个扇区的大小,无论这个扇区的数据量是 2KB 还是 16KB 都是一样。每个扇区内部的数据被视为连续的数据,因此实际存取时,需要再指定扇区中数据的地址,就可以找到所需要的数据
补充:
硬盘在Linux中的表示
Linux 的所有设备都被抽象为一个文件,保存在 /dev 目录下。
根据接口可以分为:IDE、SATA、SAS、SCSI、USB。
硬盘名称一般为:设备类型 + [a-z],其中 [a-z] 表示第几块硬盘。
IDE 硬盘的名称一般是:hd[a-z]。SATA 硬盘、SAS 硬盘、SCSI 硬盘和 USB 硬盘的名称一般为:sd[a-z]。例如,第一块 SATA 硬盘名为 /dev/sda,第二块 SATA 硬盘名为 /dev/sdb,以此类推...
分区
把一块硬盘的磁盘逻辑地分为几个区,每个区当作独立磁盘,以方便使用管理。
不同的分区用:“设备名 + 分区号”来表示,如第一块 SATA 硬盘的两个分区 sda1,sda2。
主流的分区机制有 MBR 和 GPT。
MBR(Master Boot Record,主引导记录)
MBR 是传统的分区机制,应用于绝大多数使用 BIOS 引导的 PC 设备(苹果使用EFI的方式)
MBR 支持 32 位和 64 位的操作系统 MBR 支持的分区数量有限 MBR 支持不超过 2T 的硬盘,超过 2T 的硬盘只能使用 2T 空间(有第三方解决办法),因为MBR的寻址空间只有 32 位长 MBR 结构:
占用硬盘最开头的 512 字节,即 0 柱面 0 磁道 1 扇区。前 446 字节是引导代码,不同操作系统的引导代码不一样。然后是 4 个 16 字节的主分区表信息。最后 2 个字节 55 AA,是操作系统的启动标识。
MBR 分区:
主分区:最多只能创建 4 个主分区。
扩展分区:一个扩展分区占用一个主分区位置。
逻辑分区:逻辑分区是基于扩展分区创建出来的。Linux 最多支持 63 个 IDE 分区和 15 个 SCSI 分区。
GPT(GUID Partition Table,全局唯一标识分区表)
GPT 是一个较新的分区机制,解决了 MBR 的很多缺点。
GPT 支持超过 2T 的硬盘 GPT 向后兼容 MBR GPT 分区必须使用 64 位的系统 Mac、Linux 系统都支持 GPT 分区 Windows7 64位、WindowsServer2008 64位支持 GPT 分区
Device | Boot | Start | End | Blocks | ID | system |
分区设备文件名称 | 是否是引导分区 *代表是引导分区 | 该分区在硬盘中开始柱面位置 | 该分区在硬盘中结束柱面位置 | 块,最小的存储单位,默认每个块大小为1024字节 这里指该分区总共划分了多少个块
| 分区对应的文件系统ID 83:XFS系统 8E:表示lvm逻辑卷 82:表示swap 86:表示ntfs | 分区类型 |
磁盘块/簇(虚拟出来的)。块是操作系统中最小的逻辑存储单位。操作系统与磁盘打交道的最小单位是磁盘块。
通俗的来讲,在Windows下如NTFS等文件系统中叫做簇;在Linux下如Ext4等文件系统中叫做块(block)。每个簇或者块可以包括2、4、8、16、32、64…2的n次方个扇区。
为什么存在磁盘块?
读取方便:由于扇区的数量比较小,数目众多在寻址时比较困难,所以操作系统就将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作。
分离对底层的依赖:操作系统忽略对底层物理存储结构的设计。通过虚拟出来磁盘块的概念,在系统中认为块是最小的单位。
- 1. 扇区:硬盘的最小读写单元
- 2. 块/簇:是操作系统针对硬盘读写的最小单元
2.规划磁盘中的分区
Fdisk /dev/sda -------------对指定硬盘分区
进入”交互式分区管理”界面:
交互操作指令如下:
P:列出磁盘中的分区情况
n:新建分区
分区包括:主分区\扩展分区\逻辑分区(主分区+扩展分区<=4个)
选择分区类型:
------p:主分区
-----e:扩展分区
------l:创建逻辑分区 (注意:只有在有扩展分区的情况下,才会出现l选项,创建逻辑分区)
d:删除分区
w和q ---------fdisk分区工具
W:保存写入
q:退出分区工具
当磁盘的分区发生变化后,最好是重启或是执行partprobe /dev/sdb
Partprobe:使操作系统重新检测分区变化,如果不执行,可能会出现格式化时损坏数据,严重导致系统崩溃.
管理文件系统
一创建文件系统
- 1. mkfs
mkfs是一个前端工具,自动加载不同的程序来创建的各种不同的文件系统.
mkfs后端包括很多的相关命令,命令程序位于/sbin/目录中
ls /sbin/mkfs.*
mkfs命令的使用格式:mkfs -t 文件系统类型分区设备
系统文件对比:
| 文件系统类型 | 优点 | 缺点 |
Ext3:第三代扩展文件系统 Ext4:第四代扩展文件系统 1EB=1024PB 1PB=1024TB | Ext3(linux 5默认系统文件) | 带有fsck 效率低慢 支持32000个目录 |
|
Ext4(linux6默认系统文件) | 相对3 带有fsck 效率高快 对目录的支持无限制 最大支持文件系统容量为1EB,文件容量为16TB |
| |
Xfs:高性能日志文件系统 | Xfs(linux7默认系统文件) | 最大支持8EB文件系统容量 |
(1) 创建xfs文件系统
mkfs -t xfs /dev/sdb1 ---------将sdb1分区格式化为xfs文件系统
或mkfs.xfs /dev/sdb1
(2) 创建Ext4文件系统
Msfs -t ext4 /dev/sdb2
或mkfs.ext4 /dev/sdb2
(3) 创建fat32文件系统
mkfs -t vfat -F 32 /dev/sdb7
或mkfs.vfat -F 32 /dev/sdb7
- 2. mkswap
将/dev/sdb8创建swap文件系统
(1) mkswap /dev/sdb8 -----创建swap交换分区
(2) Swapon /dev/sdb8 -----启用swap分区
Swapoff /dev/sdb8 ------关闭swap分区
注释:swap分区大小应该是物理内存的1.5-2倍 现在内存足够可以不使用交换分区
二挂在卸载文件系统
临时挂载
- 1. 挂在文件系统
(1) mount (-t 文件系统) 设备名称
挂载mount命令的使用格式,文件系统可省
例如: mount /dev/sr0 /media --------将光驱挂载到/media (sr0 和 cdrom都代表光驱)
=mount /dev/cdrom /media
(2) 挂载.iso文件,可以直接查看.iso压缩文件的内容
mount -o loop /dev/CentOS-7.5-x86_64-DVD-1804.iso /media
-o loop:iso文件视为一种特属的回环文件系统
- 2. 卸载文件系统
Umount 挂载点或是设备名称 -------卸载挂载点的命令格式
例如:umount /dev/sr0 -------------卸载掉光盘的挂载点
=umount /dev/media
=umount /dev/sr0 /media
Mount 查看挂载情况
永久挂载 -------通过修改mount配置文件的方式永久挂载
- 3. 设置文件系统的自动挂在
/etc/fstab ----------(mount的配置文件)永久挂载的配置文件
Vim /etc/fstab文件格式
/dev/sdb1 | /media | Xfs | Defaults | 0 | 0 |
|
设备名 | 挂载点 | 文件系统类型(如:xfs swap) | 挂载参数 (是否在-o ) | 文件系统是否dump备份 1表示需要 0表示不需要 | 系统启动时检查磁盘的顺序 0:不检查 1:检查(根分区) 2:其次检查(其他分区) |
|
- 4. 查看磁盘的使用情况
df -Th ------查看磁盘的使用情况
-T:显示文件系统类型
-h:以友好的显示单位来显示
========================================================================================================================================================
LVM逻辑卷和磁盘配额
LVM逻辑卷
一、LVM概述
1.LVM是linux操作系统下一种逻辑管理磁盘分区的机制,可以在保持现有数据不变的情况下动态调整磁盘的容量.
2.LVM的基本术语
(1)PV(physical volume物理卷)
① 物理卷是LVM的基本存储设备.
② 创建物理卷时会在分区或是磁盘的头部创建一个保留区块,用于记录LVM的属性, 并把存储空间逻辑分割成默认4MB大小的基本单元(PE)从而构成物理卷
③ 将普通分区/dev/sdb1转成物理卷是需要先将分区类型ID改为8e
(2)VG(volume group 卷组)
①卷组是一个或多个物理卷的集合
②在卷组内可以动态添加或是删除物理卷
③卷组的名字可以自定义
(3)LV(logical volume 逻辑卷)
①逻辑卷是在卷组上逻辑划分的卷,与物理卷没有关系
②将逻辑卷的空间安装文件系统,挂载到挂载点就可以使用,相当于普通分区
③普通分区和逻辑分区的创建使用过程对比:
二、LVM管理命令
命令总结:
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
Scan 扫描 | pvscan | vgscan | lvscan |
Create 建立 | pvcreate | vgcreate | lvcreate |
Display显示 | pvdisplay | vgdisplay | lvdisplay |
Remove 删除 | pvremove | vgremove | lvremove |
Extend 扩展 |
| vgextend | lvextend |
Reduce 减少 |
| vgreduce | lvreduce |
(1) 物理卷管理
① pvsan -------扫面所有的物理卷
解析:/dev/sda2普通分区已经转为PV 属于centos 这个VG组 总空间是39G
总共1个PV 有1个PV正在使用 有0个PV不属于VG组
② pvcreate -----将分区或是整个硬盘转为物理卷
Pvcreate /dev/sdb1 sdb2 sdb5 -------将这三个分区转为PV,为创建VG做准备
解析:提示已经成功将这三个普通分区转为PV物理卷
③ pvdisplay -----显示物理卷的详细信息
pvdisplay
解析:三个分区已经转为PV,待用PV空间pvsize为分区的物理空间
④ pvremove -----将物理卷还原为普通分区
Pvremove /dev/sdb5 ------将/dev/sdb5转为普通分区
(2) 卷组管理
① vgscan ----扫描系统中已经建立的lvm卷组
② vgcreate ----将一个或是多个已存在的物理卷创建为一个卷组
解析:
先扫描有哪些PV pvscan命令
创建VG组名为:new_vgzu 并把sdb1,2,5三个PV加入到VG组内(VG组的空间=三个PV的总空间)
Vgcreat -s 16M vgzu /dev/sdb{1,2,5} ----创建vgzu(vg组的组名)并将sdb1 sdb2 sdb5三个pv加入VG组并指定大小为16MB}
③ vgdisplay -----查看系统中卷组的详细信息
④ Vgremove ----删除指定卷组
Vgremove new_vgzu -------删除名为new_vgzu这个VG组
⑤ Vgextend -----扩展卷组的磁盘空间--扩展卷组的空间的方式就是往里添加PV
Vgextend 组名 PV设备名
例如: vgextend new_vgzu /dev/sdb6 ------将/sdb6这个PV扩展到已存在的VG组new_vgzu
(3) 逻辑卷管理
VG组是把多个PV空间汇总到VG组,然后将VG组划分成LV,才可以创建文件系统,挂载使用.
从VG组分割LV:
① Lvscan ---------扫描已存在的LV逻辑卷
② Lvcreate ------从VG组创建LV
1) 格式:lv create -L 空间 -n 名称 VG组名
例如:lvcreate -L 10G -n games new_vgzu -----从new_vgzu中创建一个10G空间的名叫games的LV逻辑卷(也就是分区)
③ Lvdisplay------显示逻辑卷的详细信息
Lvdisplay
④ Lvextend-----用于在不损坏数据的情况,动态扩展逻辑卷的空间.
lvextend -L +空间 /dev/vg组/逻辑卷
例如:lvextend -L +1G /dev/new_vgzu/games --给games从VG组内增加1G空间
例如:lvresize -L -1G -f /dev/new_vgzu/games -----减掉games1G 的空间
=lvreduce -L -1G -f /dev/new_vgzu/games
⑤ Lvremove
LVremove /dev/new_vgzu/games -----删除games这个LV
三、LVM 的应用
公司准备在Internet中搭建FTP服务器(CentOS 7.3平台),面向全国各地的员工及部分VIP客户提供资料上传下载的空间。考虑动态扩容的需要,计划增加两块40G的SCSI硬盘并构建LVM逻辑卷(用xfs文件系统挂载到/date目录下)专门用于存放邮件数据
(1) 关闭服务器,增加两块硬盘
(2) 开启服务器,执行fdisk -l查看是否识别到新加的两块磁盘(sdb sdc)
(3) 创建普通分区 /dev/sdb1 /dev/sdc1,(fdisk )并查看是否已经创建成功.(fdisk -l /dev/sdb /dev/sdc)
(4) 将普通分区转换为PV(pvcreate 分区名)
(5) 将两个物理卷整合为VG组名为ftp_vg (vgcreat 组名 pv)
(6) 在ftp_vg组创建为ftp的LV (lvcreate -L 空间 -n lv名称 vg组名)
(7) 将ftp逻辑卷格式化(mkfs.xfs lv全名)
(8) 创建/date目录
(9) 将ftp逻辑卷(lv)挂载到/date (vim fstab或是mount)
(10) 查看结果 df -Th
=
磁盘配额
(一) 实现磁盘限额的条件
- 1. 需要 Linux 内核支持(7.0linux内核已经定制支持磁盘配额功能)
- 2. 安装 xfsprogs 与quota 软件包(磁盘配额管理工具)
- 3. 注意:xfs文件系统使用的是xfsgrogs工具中的xfs_quota(配额管理程序)管理
Ext3/4文件系统使用的是quota(配额管理程序)管理
(二) 磁盘配额的特点
1. 作用范围
针对指定的文件系统分区
2. 限制对象
① 用户账号
② 组账号
3. 限制类型
① 磁盘容量限制(默认单位为KB)
② 文件数量
4. 限制方法
① 软限制 -----超过限制条件,系统会给出警告信息(宽限期,宽限期内可以超出限制,继续使用,超过宽限期,只能减,不能加)
② 应限制-------超过限制条件,系统会给出警告信息,并禁止继续写入数据
③ 硬限制的值应该大于软限制的值,否则软限制无效.
(三) 磁盘配额的管理步骤
(四) 磁盘配额的操作命令
- 1. 挂载文件系统,并添加usrquota和grpquota的支持.
Usrquota:用户配额功能 grpquota:组配额功能
(1) 临时挂载,添加usrquota和grpquota的支持.
Mount -o usrquota,grpquota /dev/new_vgzu/games /date
临时挂载games(Lv)到/date(目录),并让该文件系统支持用户和组配额
挂载后将/date放开权限,以便测试 chmod 777 /date
(2) 自动挂载,添加usrquota和grpquota的支持.
Vim /etc/fstab
/dev/mapper/new_vgzu-games /date xfs defaults,usrquota,grpquota 0 0
Wr
- 2. 编辑用户和组账号的配额设置
(1) 编辑配额使用命令:xfs_quota
(2) 命令格式:
xfs_quota -x -c 'limit-ubsoft=N bhard=Nisoft=N ihard=N 用户名'挂载点
xfs_quota:关键字命令,表示编辑配额
-x:启动专家模式,才可以加-c
-c:表示直接调用管理命令,后面加的是调用的指令
‘’:引号里面就是-c的指令内容
Limit :限制
-u:用户(限制的对象类型:u:用户 g:组)
用户名:具体对象的用户名
bsoft和bhard:磁盘容量的软硬限制
Isoft和ihard:文件数量的软硬限制
挂载点:实现配额的目录
例如:xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan’ /games/
解析:对/date启用磁盘配额,限制用户zhangsan对/date目录空间使用80M会有系统提示,使用到100M时,zhangsan将不能再存数据,限制zhangsan使用文件存40个文件时,系统就提示警告,存到50个文件将不能再存放文件.
注意:不要给管理员配置磁盘配额,否则会影响系统的运行
- 3. 验证磁盘配额的功能
(1) dd转换工具(验证block(磁盘空间))
dd if=/dev/zero of=/date/ddtest.data bs=1M count=4
If=输入源(/dev/zero无穷大数据)
Of=输入目的(用来测试的存放数据的目录)
bs=输入每个数据块的大小
Count=输入数据块的数量
所以:
dd if=/dev/zero of=/date/ddtest.data bs=1M count=4
解析:向用来测试的/dat目录中输入数据块,每个块大小为1M,输入4个,相当于往/date目录中模拟存放4M的数据文件,来测试配额.
(2) 手动创建
创建指定数量的文件:使用 touch 命令,或 cp 命令
创建指定容量的文件:使用 dd 命令,或 cp 命令
- 4. 查看配额使用情况
xfs_quota -x -c ‘report选项‘挂载点 ----查看配额使用情况命令格式
① report选项:
② -a:查看所有分区的配额情况
宽限期:软限制可以超出,但是过了宽限期后就不能再写入数据,只能删除,直到占用空间降到软限制以下。
③ -u:查看指定目录的用户配额情况
④ -g:查看指定组的配额情况
⑤ -i:查看指定目录的磁盘配额情况
⑥ -b:查看指定目录的文件输出情况
例如:
Xfs_quota -x -c ‘report -aib’ -----查询系统中所有用户和组的空间和文件配额
进程和计划任务管理
一、概念理解
1.程序:保存在外部存储介质(如硬盘)中的可执行机器代码和数据的静态集合
2.进程:在cpu及内存中处于动态执行的计算机程序
3.程序和进程关系:
每个程序启动后可以创建一个或是多个进程.
进程是实现程序功能服务的实现过程和体现形式.
网站服务--------httpd程序------多个进程来接受和处理用户请求
二、查看进程
了解系统中进程的状态是对进程管理的前提,使用不同的进程多角度查看进程状态
1.ps命令-------查看静态的进程统计信息(processes statistic)
(1)Ps命令是最常用的进程查看工具,用于显示当前运行的个进程完整信息的静态快照
(2)Ps命令选项:
a:显示当前终端下所有用户的所有进程信息
u:使用以用户为主的格式输出进程信息.
x:显示当前用户所在终端下的进程信息
-e:显示系统内的所有进程信息
-l:使用长格式显示进程信息
-f:使用完整的格式显示进程信息
(3)常用PS命令组合
①Ps aux------以简单列表的形式显示出进程信息
USER 用户
PID 进程号
%CPU 执行命令时候进程占用的CPU百分比
%MEM 执行命令时候进程占用的CPU百分比
VSZ 虚拟内存集(swap空间大小)
RSS 常住内存集
TTY 终端号
STAT 当前进程状态
R:runing 运行态
S:可中断睡眠态 (休眠状态)
D:不可中断睡眠态
T:停止态
Z:僵死进程
s:表示这个进程是个领导者进程(父进程)
+:该进程为后台进程
l:该进程是多线程进程
N:低优先级进程
<:高优先级进程
[]:表示这个一个内核线程
START 启动日期
TIME 启动时间
COMMAND 执行的命令行
②Ps -lef-----长格式显示系统中的进程信息,内容更丰富完整.
③Ps
Ps 不加任何选项代表查询当前用户会话中打开的进程
④Ps 结合管道符”|”
Grep aux | grep 进程名 -------过滤vim这个程序的状态
2.Top
Top:动态实时显示进程状态信息(每个3s 刷新进程状态)
解析:
当前时间系统已运行时间当前登录用户数 最近5\10\15分钟平均负载
load average:0.24, 0.15, 0.19 — load average后面的三个数分别是5分钟、10分钟、15分钟的负载情况
主要看id空闲百分比 部分判断cpu是否忙
物理内存使用率(单位是k)
total — 物理内存总量, used — 使用中的内存总量, free — 空闲内存总量,buffers — 缓存的内存量
v top命令模式下的交互命令:
① M:根据内存占用情况进行排序
② N进程按照启动时间进行排序
③ h:获得top命令的在线帮助
④ q:正常退出top程序
⑤ K:结束进程交互界面,输入pid结束对应进程
PID进程id
USER进程所有者的用户名
PR优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态。(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND命令名/命令行
3.pgrep
程序管理中对PID的查询使用比较多,比如结束一个进程需要先知道其PID,然后在杀死,Ps 查询指定程序PID的时候需要用过滤才能查看
Grep 可以直接查看指定程序的PID信息,相对比较方便.
Pgrep 选项 --------pgrep使用的命令格式
Pgrep -l 程序名称 -----查询指定程序的PID
Pgrep -u 用户名 ------查询指定用户的所有进程ID
4.pstree
pstree命令可以输出linux系统中各种进程的树形结构,更好判断进程之间的关系(父子进程)
-a:列出完整命令信息
-u:列出对应的用户名
-p:列出对应的PID
Pstree -aup -----查看系统的进程树,包括进程对应的PID 用户名完整命令
Pstree -ap ------查看指定用户的进程树信息
三、控制进程
1.启动进程
(1)手动启动进程
①&(放在执行命令后面) ---将该执行命令放到后台执行
(2)调度启动进程
①at------一次性计划启动进程
②Crontab ------周期性计划启动进程
2.改变进程的运行方式
(1)挂起当前的进程
①Ctrl+Z(快捷键) ------将前台的任务调入后台暂停运行
(2)查看后台的进程
①Jobs -l
(3)将后台的进程恢复运行
bg 任务编号 ------将指定的后台暂停程序在后台继续执行
fg 任务编号 -------将制定的后台暂停程序调入前台继续执行
3.终止进程执行
(1)Ctrl + c -------强制中断正在执行或是未执行完的命令
(2)Kill ----终止进程(kill命令给指定PID程序发出正常退出信号,如不能正常退出 -9强制退出)
①Pgrep -l 程序名 -------得到指定进程的PID
②Kill PID --------正常退出PID对应的进程
③Kill -9 PID -------不能正常退出的程序,-9强制杀死
(3) Killall 进程名称-------退出同一个程序的多个进程
(vim aa.txt vim bb.txt vim cc.txt killall vim)
Killall -9 vim ------强制杀死指定进程
(4) Pkill ----终止进程
Pkill可以根据指定的用户进程名终端所运行的程序进行终止
Pgrep -l -U “zhangsan” --------查看指定用户执行的进程
Pkill -9 -U “zhangsan” -------强制关闭zhangsan用户的进程
四、计划任务管理
1.at一次性任务设置
(1)at命令设置的计划任务是在指定时间点执行一次
(2)必须开启atd系统服务
(3)执行at一次性计划的时间以系统时间为准,必须在系统时间之后,否则无法正确设置.
(4)命令
①date ----查看系统时间日期
②At 10:35 2019-02-21 -------创建10:354 2019-02-21时间点的计划任务
At>tail -2 /etc/passwd > /top.txt (‘>’ ‘>>’)
Crtl+d ------结束计划任务配置
③验证结果
Cat /top.txt
(5) atq -----查看未执行的一次性计划任务
(6) atrm 计划任务编号 ------删除指定未执行的一次性计划任务
(7) at 时间 ------常见当天的一次性计划任务(没有带日期就表示当天)
2.crontab周期性任务计划设置
(一)计划任务管理 crond
- crontab命令
– 按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作
– 属于周期性计划任务
– 主要设置文件
- 全局配置文件,位于文件:/etc/crontab
- 系统默认的设置,位于目录:/etc/cron.*/
- 用户定义的设置,位于文件:/var/spool/cron/用户名
- 管理cron计划任务
– 编辑计划任务
- crontab -e [-u 用户名] 编辑计划任务
- crontab -l [-u 用户名] 列出查看计划任务
- crontab -r [-u 用户名] 清空计划任务
crontab 任务配置的格式
- 时间数值的特殊表示方法
– * 表示该范围内的任意时间
– , 表示间隔的多个不连续时间点
– - 表示一个连续的时间范围
– / 指定间隔的时间频率
- 应用示例
– 0 17 * * 1-5 周一到周五每天17:00
– 30 8 * * 1,3,5 每周一、三、五的8点30分
– 0 8-18/2 * * * 8点到18点之间每2小时
– 0 * */3 * * 每3天
- 1. 每天早上05:29自动开启防火墙服务
29 05 * * * /usr/bin/systemctl start firewalld.service
- 2. 每个隔7天清空/ftproot/tmp
0 0 */7 * * /usr/bin/rm -rf /ftproot/tmp/*
- 3. 每周一23:59重启服务器
59 23 * * 1 /usr/sbin/reboot
- 4. 每周一三五下午23:30 使用tar命令压缩/ftp/root目录为ftproot.tar.gz
30 23 * * 1,3,5 /usr/bin/tar zcvf ftproot.tar.gz /ftp/root
网络管理
一、ip地址管理
hostnamectl set-hostname s1.test.com ------查看更改主机名
nmcli general hostname s1.test.com
Nmtui
用nmcli命令配置网络
NetworkManager是管理和监控网络设置的守护进程,设备既就是网络接口,连接是对网络接口的配置,一个网络接口可以有多个连接配置,但同时只有一个连接配置生效。
1 配置主机名
CentOS6 之前主机配置文件:/etc/sysconfig/network
CentOS7主机名配置文件:/etc/hostname,默认没有这个文件,通过DNS反向解析获取主机名,主机名默认为:localhost.localdomain
显示主机名信息
hostname
hostnamectl status
创建并修改文件并生效
hostnamectl set-hostname deskX.example.com
1 2 3 4 5 |
|
可以看到已经修改成功。
删除文件。回复默认主机名localhost.localdomain
2 常用命令
nmcli connection show 显示所有连接
nmcli connection show --active 显示所有活动的连接状态
nmcli connection show "ens33" 显示网络连接配置
nmcli device status 显示设备状态
nmcli device show ens33 显示网络接口属性
nmcli connection add help 查看帮助
nmcli connection reload 重新加载配置
nmcli connection down test2 禁用test2的配置,注意一个网卡可以有多个配置。
nmcli connection up test2 启用test2的配置
nmcli device disconnect ens33 禁用ens33网卡,物理网卡
nmcli device disconnect ens33 启用ens33网卡
图形工具
nm-connection-editor
字符工具
nmtui
nmtui-connect
nmtui-edit
nmtui-hostname
3 创建新连接配置
(1)创建新连接配置default,IP通过DHCP自动获取
1 2 |
|
删除连接
1 2 |
|
(2)创建新的连接配置test2,指定静态IP,不自动连接
1 2 |
|
参数说明:
con-name 指定连接名字,没有特殊要求,
ipv4.methmod 指定获取IP地址的方式
ifname 指定网卡设被名,既就是次配置所生效的网卡
autoconnect 指定是否自动启动
ipv4.addresses 指定IPv4地址
gw4指定网关
4查看/etc/sysconfig/network-scripts/目录
会看到多出一个文件ifcfg-test2。说明添加确实生效了。
/etc/sysconfig/network-scripts/ifcfg-test2
1 2 3 |
|
5 启用test2连接配置
1 2 3 |
|
看下是否生效
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
好了,基本的IP地址配置成功
6 修改连接设置
(1)修改test2为自动启动
1 |
|
(2)修改DNS为172.25.1.1
1 |
|
(3)添加DNS 114.114.114.114
1 |
|
看下是否成功
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
可以看到均已生效
(4)删除DNS
1 |
|
(5)修改IP地址
1 |
|
(6)还可以添加多个IP
1 |
|
7 nmcli 命令和/etc/sysconfig/network-scripts/ifcfg-*文件的对应关系
ipv4.method manual BOOTPROTO=none
ipv4.method auto BOOTPROTO=dhcp
ipv4.addresses "192.0.2.1/24 IPADDR=192.0.2.1
PREFIX=24
gw4 192.0.2.254" GATEWAY=192.0.2.254
ipv4.dns 8.8.8.8 DNS0=8.8.8.8
ipv4.dns-search example.com DOMAIN=example.com
ipv4.ignore-auto-dns true PEERDNS=no
connection.autoconnect yes ONBOOT=yes
connection.id eth0 NAME=eth0
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address . . . HWADDR= . . .
注意:centos7以后网卡命令规则
en 以太网 Ethernet
wl 无线局域网 WLAN
ww 无线广域网 WWAN
序号由系统变量生成
grub2-mkconfig -o /boot/grub2/grub.cfg
查看网卡信息
Ifconfig -------查看所有网卡信息
ifconfig ens33 ------查看指定网卡信息
禁用启动指定网卡
ifconfig ens33 down ------禁用指定网卡
ifconfig ens33 up -------启用指定网卡
临时配置ip地址(注意:重启后不生效)
ifconfig eth1 192.168.11.22 netmask 255.255.255.0 [ broadcast 192.168.11.255 ]---配置ip地址
ifconfig eth0 192.168.11.10 netmask 255.255.255.0 [broadcast 255.255.255.0]
设置MAC地址
ifconfig eth0 hw ether 00:11:22:22:11:00
添加子接口
ifconfig eth0:1 192.168.12.23 netmask 255.255.255.0
在接口禁用启用arp协议
ifconfig eth0 -arp
ifconfig eth0 arp
二、路由管理route
1、route -n
显示
2、添加路由
route add -net 目标网段 netmask x.x.x.x gw 下一跳路由地址 -------添加路由下一跳是接口ip
route add -net 目标网段 netmask x.x.x.x dev eth1 -------添加路由下一跳是接口
route add -net 172.18.11.0 netmask 255.255.255.0 gw 192.168.11.23
route add -host 172.18.11.67 gw 192.168.11.23 reject (拒绝路由的操作)
route -host 目标主机 gw 下一跳路由地址
route add -host 172.18.11.67 gw 192.168.11.23
默认网关
route add default gw 网关地址
route del default gw 192.168.11.23
删除路由
route del -net 172.18.11.0 netmask 255.255.255.0 gw 192.168.11.23
三、命令操作重启丢失,永存保存的设置方法
1、把这些命令写到/etc/rc.local;
2、更改配置文件
网卡:
vi /etc/sysconfig/network-scripts/ifcfg-eth[0,1,2....]
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.0
DNS1=8.8.8.8
GATEWAY=192.168.1.254
生效需重启服务systemctl restart network(注意:虚拟机要重启机器)
vi /etc/resolv.conf -------DNS指向的配置文件
nameserver 202.106.0.20
nameserver 222.222.222.222
路由表
vi /etc/sysconfig/network-scripts/route-eth[0,1,2....]--------路由表配置文件(在)
192.168.30.0/24 via 192.168.91.10 dev eth1
或
192.168.30.0 netmask 255.255.255.0 via 192.168.91.10 dev eth1
四、网络测试的命令
ping -c 次数 172.18.199.1
traceroute 目标 检测路由经过跳数
nslookup DNS检测解析
arp -n 检测arp解析
实验作业:
1、建立2台LINUX服务器,第一台有2块网卡,eth0为系统默认网卡不需要改动,eth1为192.168.学号.学号;
第二台机器只有1块网卡,默认为DHCP,另添加ip地址,192.168.学号+100.学号。在第1台机器上分别用动态和静态路由添加方法,实现ping通第2台机器的子接口IP。
作业:
1、英文和中文安装LINUX;
2、写出下面命令功能:
Date、whoami、hostname、ifconfig、alias、ping、reboot 、halt 、shutdown
Dhcp
(一)准备环境
1.服务器:
(1)配置ip
(2)关闭防火墙和selinux
(3)连接到vmnet1
(4)关闭vmnet上面的DHCP
2.客户端:
(1)连接到vmnet1
(2)Dhcp获取验证
(二)安装程序
1.挂载光盘
2.Rpm -ivh dhcp-4.xxXX.rpm
3.查看是否安装 rpm -q dhcp
(三)配置dhcpd配置文件
1.配置文件格式
(1)全局配置
(2)网段声明(区域配置)
(3)主机声明
(四)启动服务
1.启动服务 ------systemctl start dhcpd (如果服务没有起来,检查配置文件的格式\命令)
(五)测试
Samba
一、 Samba介绍
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享。
Samba由两个主要程序组成,它们是smbd和nmbd。这两个守护进程在服务器启动到停止期间持续运行,功能各异。Smbd和nmbd使用的全部配置信息全都保存在smb.conf文件中。Smb.conf向smbd和nmbd两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。
Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名称解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服务器。
注意:
- 1. windows使用的共享协议是NetBEUI(NetBIOS Extend User Interface)协议和IPX/SPX协议
a) SMB : SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445
i. Port 139 (TCP) - 文件和打印共享; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
ii. Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)
b) CIFS:它是SMB协议扩展到internet后,实现internet文件共享:
- 2. LINUX系统之间文件共享和 LIUNX与WINDOWS系统之间的文件共享:SMB,服务器信息块协议
程序:nmbd和smbd
1)Port 137 (UDP) - NetBIOS 名字服务; nmbd
2)Port 138 (UDP) - NetBIOS 数据报服务
3)Port 139 (TCP) - 文件和打印共享; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
4)Port 389 (TCP) - 用于 LDAP (Active Directory Mode)
5)Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)
6)Port 901 (TCP) - 用于 SWAT,用于网页管理Samb
二、 准备环境
a) 静态ip
b) 关闭防火墙selinux NetworkManager
三、 安装程序
Yum安装步骤:
- 1. 先找到yum的配置文件 /etc/yum.repos.d/xxx.repo
- 2. Vim xxx.repo
[自定义名字]
Baseurl=file:///media -------指定yum源,指的是光盘,光盘已经挂载到了/media
Enabled=1 -------启用yum源
Gpgcheck=0 -------不去校验
Wq -------保存yum源文件
Yum –y install 程序名 --------安装指定程序
- 3. Yum –y install samba
- 4. 启动smb和nmb
a) systemctl start smb
b) systemctl start nmb
四、 配置文件
a) 全局配置
- 1. Workgroup=工作组
- 2. server string=服务器注释
- 3. hosts allow=允许的主机网段 192.168.1. 192.168.100. (多个用空格隔开)
- 4. security=(访问级别)
1) share
---不需要提供用户名和密码。
2) user----需要提供用户名和密码,而且身份验证由 samba server 负责。
3) server--需要提供用户名和密码,可指定其他机器(winNT/2000/XP)或另一台 samba server作身份验证。
4) domain--需要提供用户名和密码,指定winNT/2000/XP域服务器作身份验证。
b) 默认家目录共享
使用者本身的"家"目录,当使用者以samba使用者身份登入samba server 后,samba server 底下会看到自己的家目录,目录名称是使用者自己的帐号。
c) 设置共享
[printers] –设置的共享名称
comment---------注释说明
path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对
browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
printable-------是yes/否no允许打印
guest ok--------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)
writable
--------是yes/否no不以只读方式共享当与read only发生冲突时,无视read only
read only-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准
deny hosts=指定IP本网段指定I
注意:samba使用的用户名和密码单独存在samba数据库,需要将普通用户加入samba数据库,并设置新的samba密码,才可以进行访问samba
Smbpasswd –a zhangsan -----将已存在的aa用户加入samba数据库
五、 启动服务
[root@localhost ~]# systemctl start smb.service
[root@localhost ~]# systemctl start nmb.service
查看端口:
netstat -anp | grep 端口 -------查看指定端口状态
六、 测试
Windows:映射网络驱动器
Linux: samba-c
ftp
1匿名访问的ftp
无需要登录用户名,可以直接访问,默认ftp根目录路径在/var/ftp/pub
2用户认证访问的ftp
需要用户登录验证,通过后才可以访问的ftp
3.虚拟用户访问的ftp(略)
一、 实验准备
a) 配置静态ip
b) 关闭防火墙
c) 关闭selinux
d) 关闭NetworkManager
二、 安装程序
- 1. 挂载光盘
- 2. 进入Packges
- 3. 安装vsftp程序
- 4. 查看vsftp的配置文件位置
- 5. 测试vsftp服务是否能够启动
systemctl start vsftpd ------临时启动
systemctl enable vsftpd ------永久启动
三、 修改配置文件(内容)
全局配置选项:
- listen=NO:是否以独立运行的方式监听服务;
- listen_address=0.0.0.0:设置监听f t p服务的ip地址;
- listen_port=21:设置监听ftp服务的端口号;
- write_enable=YES:启用任何形式的写入权限,(如上传、删除文件等)都需要开启此项;
- download_enable=YES:是否允许下载文件(建立仅限于浏览、上传的FTP服务器时,可将此项设置为“NO”);
- dirmessage_enable=YES:用户切换进入目录时显示 “.message”文件(如果已存在)的内容;
- xferlog_enable=YES:启用xferlog日志,默认记录到 /var/log/xferlog;
- xferlog_std_format=YES:启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式;
- connect_from_port_20=YES:允许服务器主动模式(从20端口建立数据连接);
- pasv_enable=NO:禁止被动模式连接;默认允许被动模式连接;
- pasv_max_port=24600:设置用于被动模式的服务器最大端口号;
- pasv_min_port=24500:设置用于被动模式的服务器最大端口号;
- pam_service_name=vsftpd.vu:设置用于用户认证的PAM文件位置(/etc/pam.d/目录中对应的文件名);
- userlist_enable=YES:是否启用userl_ist用户列表文件;
- userlist_deny=YES:是否禁用user_list列表文件中的用户账号;
- max_clients=0:最多允许多少个客户端同时连接(0为无限制);
- max_per_ip=0:对来自同一个ip地址的客户端,最多允许多少个并发连接(0为无限制);
- tcp_wrappers=YES:是否启用tcp_wrappers主机访问控制;
常用的匿名 FTP 配置项
anon_root=/var/ftp/ -----匿名登录的家目录
anonymous_enable=NO:关闭匿名访问
anon_root=/var/ftp:匿名用户的 FTP 根目录
anon_upload_enable=YES:允许上传文件
anon_mkdir_write_enable=YES:允许创建目录
anon_other_write_enable=YES:开放其他写入权
anon_max_rate=50000:限制最大传输速率(字节/秒)
常用的用户验证登录配置项
local_root=/home:设置本地用户的FTP根目录(默认为用户的宿主目录)
local_enable=YES 启用本地用户
write_enable=YES 具有写入权限,能够上传
ftpd_banner=Welcome to blah FTP service -------欢迎提示信息
chroot_local_user=YES:是否将FTP本地用户禁锢在宿主目录中
local_root=/var/ftp:设置本地用户的FTP根目录(默认为用户的宿主目录)
- ocal_max_rate=0:限制本地用户的最大传输速率(0为无限制),单位为字节/秒(B/s
allow_writeable_chroot=YES:允许被限制用户的主目录具有写权限
dirmessage_enable=YES
xferlog_enable=YES --------------à以上三项配置日志文件信息
xferlog_file=/var/log/vsftpd.log
四、 设置属主属组以及对应权限
设置down目录权限,只允许down可以进去只能下载
chown down:root down
chmod 570 down
设置up目录进去只写入,无法看到该目录中的一切内容
chown up:root up
chmod 370 up
结果如下图:
五、 重启服务
六、 测试
七、 Ftpuser 和user_list的介绍
a) Ftpuser --------相当于黑名单
b) User_list -------也可以是白名单,也可以是黑名单,取决于/etc/vsftpd/vsftpd.conf配置文件中的选项:
1) userlist_enable=YES ---------user_list内部的用户生效(具体是黑名单还是白名单由userlist_deny来决定)
2) userlist_enable=NO --------user_list表无效.
3) userlist_deny=YES ------user_list就是黑名单
4) userlist_deny=NO ------user_list就是白名单
5)
八设置用户只能做用户验证不能登录linux修通
1) usermod - -shell /usr/bin/nologin haha -------将haha用户的默认登录shell改为nologin,haha用户就不可以登录系统,但是可以做用户验证
2) usermod - -shell /usr/bin/bash haha --------将haha用户的默认登录shell改为bash,haha用户就可以登录系统,也可以做用户验证
grub 加密
Grub明文\密文加密和破解root密码
明文加密grub过程:
① 修改/etc/grub.d/00_header,在文件末尾添加以下命令
vim /etc/grub.d/00_header
保存并退出
② 重新编译生成grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
③ 重启,进入系统选择界面按”e”进入grub
进入grub成功会看到下面界面:
明文加密设置完成
密文加密grub过程:
一 将要设置的grub密码123.com生成密文
grub2-mkpasswd-pbkdf2 -------打开加密工具
输入口令:123.com
确认密码:123.com
二 给grub设置用户名和密码(以后进入grub需要输入用户名和密码)
vim /etc/grub.d/00_header ------打开文件00_header文件,在末行为grub设置用户名和加密后的密文密码<shift + g :跳转到行尾>
三重新编译生成grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg
四 测试
- 1. Reboot------重启系统,进入系统选择界面
- 2. 输入:e ----进入grub
---输入xianfeng用户名 密码:123.com
- 3. 成功进入grub
此时也可以更改密码:
按一下”下箭头”
将ro改为rw 并在quiet后面添加 ini=/bin/sh
Ctrl + X ---重启并修改root密码
由于selinux开启着的需要执行以下命令更新系统信息,否则重启之后密码未生效
touch /.autorelabel
重启系统
exec /sbin/init
忘记root密码,破解就完成!
Mbr grub故障修复
排除系统启动类故障
一、MBR扇区故障
v MBR位于物理硬盘的第一扇区(512字节),该扇区又称为主引导扇区=446字节引导程序部分+64字节分区表记录+2字节标识
v 主引导扇区损坏导致无法进入引导菜单,找到正确的位置无法加载系统,进入黑屏
- 1. 备份MBR扇区数据
(1) 创建用于存储MBR备份的新硬盘分区,并永久挂载
(2) 备份MBR扇区数据\
(3) 查看是否已经备份
- 2. 模拟MBR扇区损坏
(1)
(2) 重启看是否无法启动系统,无法启动代表mbr引导损坏
- 3. 从备份文件中恢复mbr扇区的数据
(1)
(2) 进去急救模式(救援模式)
(3)
(4) 选择继续
(5) 回车进入bash shell
(6) 因为mbr损坏,无法看到分区表
(7) 重新将/dev/sdb1 挂载到/sdb1(因为这里面有备份的mbr文件)
(8) 将从mbr.bak恢复到/dev/sda,mbr扇区的数据就回来了
(9) Exit退出临时bash shell 系统会自动重启
二、grub引导故障
原理:MBR ------grub引导程序-----/boot/grub2/grub.cfg引导文件----引导到系统
(一)引导文件丢失或是损坏
1.模拟引导文件损坏或是丢失
2.如何解决(最直接的方式就是写一个一模一样的grub.cfg的配置文件,但是进不去系统而且内容复杂)
(1)重启,调整bios光驱启动,进入急救模式
(2)继续进入临时bash shell
(3)重新挂载,找到备份的grub.cfg文件,
(4)将文件复制回去
(5) 退出当前环境,(exit exit)系统自动重启,调整bios为硬盘启动,验证
(二)Grub引导程序损坏
同上两步骤相同在第三部:
Chroot /mnt/sysimage
Grub2-install /dev/sda ------在当前环境下把grub2安装到/dev/sda,当前环境下还可以解决忘记密码,直接passwd root 给root设置密码
Exit
Reboot
三、排除文件系统类故障
(一)修复文件系统
1.模拟文件系统故障(每个分区有个超级块,是文件系统的核心档案,记录文件系统的类型 大小 空间使用情况等)
(1)Dd if=/dev/zero of=/dev/sdb1 bs=512 count=4 -------模拟冲掉超级块
(2)Mount /dev/sdb1 /mnt -----无法挂载,文件系统损坏
(3)损坏后的系统状态:
(4)修复(输入root密码进入系统,执行修复命令)
Xfs_repair /dev/sdb1
(二)磁盘资源耗尽故障
定期删除一些无用文件
(三)检测硬盘坏道
badblocks -sv /dev/sdb