Linux<小白>详细笔记

目录   应放置的内容

/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社区的建立

 

1983Richard M. Stallman创建了GNU计划并制定了GPL协议。并以角马作为了社区LOGO。该社区的定义了一个非常重要的词“开源

 

 

MINIX操作系统悄悄诞生

 

一款类Unix操作系统,由塔能鲍姆教授为教学使用而创作。1987年发布,该系统的源代码,以磁片的形式出售给院校或学生。该系统启发了Linux操作系统的创作

LINUX内核诞生

 

1992Linus Torvalds根据MINIX操作系统建立Linux内核。Linux最初是作为支持英特尔x86架构的个人电脑的一个自由操作系统。由于其开源的特点结合了GNU社区的开源软件最终组成了如今大家所使用的Linux操作系统。

 

二.LINUX的发行版

Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Debian项目众多内核分支中以Linux宏内核为主,而且Debian开发者所创建的操作系统中绝大部分基础工具来自于GNU工程,因此Debian常指Debian GNU/Linux

 

 

 

ubuntu基于linux的免费开源桌面PC操作系统,十分契合英特尔的超极本定位,支持x8664

 

工信部软件与集成电路促进中心(CSIP)携手国防科技大学(NUDT)与国际著名开源社区UBUNTU的支持公司CANONICAL在京宣布合作成立开源软件创新联合实验室,发起开源社区操作系统项目UbuntuKylin

 

Kali linux操作系统

Kali Linux是基于DebianLinux发行版设计用于数字取证和渗透测试黑客攻防。

Kali Linux预装了许多渗透测试软件包括nmap (端口扫描器)Wireshark (数据包分析器)John the Ripper (密码破解器),以及Aircrack-ng (一套用于对无线局域网进行渗透测试的软件). 用户可通过硬盘、live CDlive USB运行Kali LinuxMetasploitMetasploit Framework支持Kali LinuxMetasploit一套针对远程主机进行开发和执行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

 

常见的linuxshellshbash、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

反斜杠\  ---如果输入一行命令内容过长,终端会自动换行,也可以通过插入反斜杠\强制换行

CtrlU 快捷键 -------快速删除光标之前的所有字符内容

CtrlK 快捷键-----快速删除从点前光标处到行尾的所有字符

CtrlL 快捷键-----快速清空屏幕显示

CtrlC 快捷键----取消当前命令

如何获得命令帮助

 问题

如何能快速、正确使用命令完成操作?

 取得帮助方法

使用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

根据目标文件的大小进行查找
 
一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件
 
常用的容量单位包括 kB(注意 k 是小写)、M、G

find . -type f -empty            #查找大小为0的文件或空目录

find . -type f -size +1000000c -print    #查长度大于1Mb的文件

find . -type f -size +2k            #搜索当前目录下大于2KB的文件

按文件属主查找

-user

根据文件是否属于目标用户进行查找

按文件类型查找

-type

根据文件的类型进行查找
 
文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等
 
块设备是指成块读取数据的设备(如硬盘、内存等),字符设备是指按单个字符读取数据的设备(如键盘、鼠标等)

find . -type d -print     #只列出当前目录所有的子目录
find . ! -type d -print  #
只列出当前目录的非子目录(文件)
find . -type f -print     #
只列出当前目录所有的文件
find . -type l -print     #
只列出当前目录的所有符号链接
find . -type c -print    #
只列出当前目录的所有字符设备
find . -type b -print    #
只列出当前目录的所有块设备
find . -type s -print    #
只列出当前目录的所有套接字
find . -type p -print    #
只列出当前目录的所有Fifo

扩展

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*             #查找以apmay开头的文件

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*"

 

 知识梳理

查看及切换目录(pwdcdlsdudf

创建目录和文件(mkdirtouchln

复制、删除、移动目录和文件(cprmmv

查找目录和文件(whichfind

 

 

 

作业:

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工具解压文件

请注意:

gzipbzip2命令使用的压缩算法各不相同

一般来说bzip2的压缩效率要好一些

gunzip 命令

gunzip  等价于gzip d

gzip -d mkfile.gz

 

gunzip mkfile.gz

 

bunzip2 命令

bzip2bunzip2命令的用法与gzipgunzip命令基本相同

 

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操作系统的默认文本编辑器。

vimvimvi文本编辑器(一般简称为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安装软件

 

YUMYellow  dog Updater Modified

基于RPM包构建的软件更新机制

可以自动解决依赖关系

所有软件包由集中的YUM软件仓库提供

软件仓库的提供方式

FTP服务:ftp://......

HTTP服务:http://......

本地目录:file:///.......

 

RPM软件包的来源

CentOS发布的RPM包集合

第三方组织发布的RPM包集合

用户自定义的RPM包集合

 

构建CentOS 7 软件仓库

RPM包来自CentOS 7 DVD光盘

通过FTPHTTP或本地目录提供给客户机

在软件仓库中加入非官方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. 1.   yum源配置文件所在位置:/etc/yum.repos.d/

   注意:此目录下有许多.repo的配置文件,可以全部移走,然后自己创建一个XXX.repo的源文件

  1. 2.    编辑XXX.repo的源文件

   编辑内容:

  1. 1.              [名字] -------自定义
  2. 2.              Baseurl=file:///media  ------定义yum源仓库为光驱的挂载点
  3. 3.              enabled=1   -------0 :关闭源   1表示开启源
  4. 4.              Gpgcheck=0  ------0:不去校验包   1:校验包效率低
  5. 3.       保存退出
  6. 4.       安装命令

Yum install 包名

 

源码包安装:(需要gcc

  1. 1.       下载源码包
  2. 2.       解压源码包

  tar zxvf 软件名.tar.gz -C /解压目录  --------解压压缩文件到指定目录里面 

  1. 3.       配置

  ./configure --prefix=/软件放置目录   -------重新配置软件安装后文件存放的位置

  1. 4.       编译

  Make    ---------重新编译二进制

  1. 5.       编译安装

 Make install --------编译安装

 

 

 

 

作业:

1.图示源代码编译安装程序的基本过程,并写出每个过程的作用?

2.在执行“./configure配置时加“--prefix选项的作用是什么?

3.安装nload,监控自己服务器流量一分钟内变化。

 

 

 

 

账号和权限管理

一.  用户和组账号概述

用户账号

(一)用户账号分类:超级用户普通用户和程序用户

     超级用户:rootlinux中的默认的超级用户,windows中的administrator类似,拥有至高无上的权限.(慎用) 日常事务处理建议使用普通用户

 

普通用户:是有管理员创建的用户,权限有限,只对自己的家目录拥有完整权限

 

程序用户:安装操作系统以及部分应用程序时,添加的一些低权限账户,这些用户不能登录系统

 

    

组账号

   组账号是一组用户的集合.每一个用户至少属于一个基本组(私有组),可以同时属于多个附加组

   组账号的分类:基本组(私有组)和附加组(公共组)

UID

UID(用户表示符):用户的数字形式的唯一标识符 

rootUID0

程序账号UID默认是1-499

普通用户UID默认是500-60000

GID

GID(组账户标识符):组的数字形式的唯一标识符

root账号的UID0

程序账户组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 选项参数

-u:指定用户的uid

-d:指定该用户的家目录

-e:指定用户的失效时间(格式:yyyy-mm-dd)

-g:指定用户的基本组名(或是GID)

-G:指定用户的附加组名(或是GID)

-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   ---------zhangsanroot组里删除

   Groups 用户名   -----------------查看指定用户的所属组情况

  Gpasswd -M aa,bb,cc,dd jishubu  -------------aa bb cc dd 四个用户同时加入jishubu

③ Groupdel命令-----删除组账号

  Groupdel jishubu  --------------删除jishubu

 

 

 

五.  查询账号信息

  1. 1.              groups命令-----查询用户账号所属的组

  Groups zhangsan  -----查询张三同时属于那些组

  1. 2.              Id  -------查询用户账户的身份标识

  Id root --------查询用户rootID信息

  1. 3.              finger命令  -------查询用户账户的登录属性

   Finger root  ------查询用户root的登录属性

  1. 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. 1.              磁道(track)

下图显示的是一个盘面,盘面中一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区(图践绿色部分)。扇区是磁盘的最小组成单元,通常是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)

 

磁盘容量计算

存储容量磁头数 × 磁道(柱面) × 每道扇区数 × 每扇区字节数

3中磁盘是一个 3个圆盘6个磁头,7个柱面(每个盘片7个磁道)的磁盘,图3中每条磁道有12个扇区,所以此磁盘的容量为:

存储容量 6 * 7 * 12 * 512 = 258048

每个磁道的扇区数一样是说的老的硬盘,外圈的密度小,内圈的密度大,每圈可存储的数据量是一样的。新的硬盘数据的密度都一致,这样磁道的周长越长,扇区就越多,存储的数据量就越大。

 

  1. 2.              柱面(cylinder)

绕马达旋转轴旋转的多个磁盘,每个磁盘有两个盘面(片),每个盘面里有多个磁道(Track)。多个磁盘上相同大小的磁道在竖直空间上构成了一个柱面,类似于相同大小的一堆呼啦圈(磁道)从脚套到头,视觉上构成了一个空心筒(柱面)硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。如下图

 

  1. 3.              磁头

磁头的质量影响整个磁盘的性能,只有精密的磁头才能在高转速和高密度磁盘工作的情况下高效正确的读写数据

  1. 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)。每个簇或者块可以包括248163264…2n次方个扇区。

为什么存在磁盘块?

读取方便:由于扇区的数量比较小,数目众多在寻址时比较困难,所以操作系统就将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作。

分离对底层的依赖:操作系统忽略对底层物理存储结构的设计。通过虚拟出来磁盘块的概念,在系统中认为块是最小的单位。

  1. 1.      扇区:硬盘的最小读写单元
  2. 2.   /簇:是操作系统针对硬盘读写的最小单元

 

2.规划磁盘中的分区

Fdisk /dev/sda   -------------对指定硬盘分区

进入交互式分区管理界面:

交互操作指令如下:

P:列出磁盘中的分区情况

 

n:新建分区

分区包括:主分区\扩展分区\逻辑分区(主分区+扩展分区<=4)

选择分区类型:

------p:主分区

 

-----e:扩展分区

 

------l:创建逻辑分区 (注意:只有在有扩展分区的情况下,才会出现l选项,创建逻辑分区)

 

d:删除分区

 

wq   ---------fdisk分区工具

W:保存写入

q:退出分区工具

当磁盘的分区发生变化后,最好是重启或是执行partprobe /dev/sdb

Partprobe:使操作系统重新检测分区变化,如果不执行,可能会出现格式化时损坏数据,严重导致系统崩溃.

 

管理文件系统

创建文件系统

  1. 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

 

  1. 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.       挂在文件系统

(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文件视为一种特属的回环文件系统

  1. 2.       卸载文件系统

Umount 挂载点或是设备名称   -------卸载挂载点的命令格式

例如:umount /dev/sr0 -------------卸载掉光盘的挂载点

=umount /dev/media

=umount /dev/sr0 /media

      Mount 查看挂载情况

 

永久挂载  -------通过修改mount配置文件的方式永久挂载

  1. 3.       设置文件系统的自动挂在

/etc/fstab  ----------(mount的配置文件)永久挂载的配置文件

Vim /etc/fstab文件格式

/dev/sdb1

/media

Xfs

Defaults

0

0

 

设备名

挂载点

文件系统类型(:xfs swap)

挂载参数

(是否在-o

)

文件系统是否dump备份 1表示需要 0表示不需要

系统启动时检查磁盘的顺序

0:不检查

1:检查(根分区)

2:其次检查(其他分区)

 

 

  1. 4.       查看磁盘的使用情况

df -Th  ------查看磁盘的使用情况

-T:显示文件系统类型

-h:以友好的显示单位来显示

 

 

========================================================================================================================================================

LVM逻辑卷和磁盘配额

LVM逻辑卷

一、LVM概述

1.LVMlinux操作系统下一种逻辑管理磁盘分区的机制,可以在保持现有数据不变的情况下动态调整磁盘的容量.

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

     总共1PV  1PV正在使用    0PV不属于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扩展到已存在的VGnew_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空间的名叫gamesLV逻辑卷(也就是分区)

 

 

③ Lvdisplay------显示逻辑卷的详细信息

Lvdisplay

 

 

④ Lvextend-----用于在不损坏数据的情况,动态扩展逻辑卷的空间.

lvextend -L +空间 /dev/vg/逻辑卷

例如:lvextend -L +1G /dev/new_vgzu/games --gamesVG组内增加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客户提供资料上传下载的空间。考虑动态扩容的需要,计划增加两块40GSCSI硬盘并构建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组创建为ftpLV (lvcreate -L 空间 -n lv名称 vg组名)

(7)   ftp逻辑卷格式化(mkfs.xfs lv全名)

(8)   创建/date目录

(9)   ftp逻辑卷(lv)挂载到/date  (vim fstab或是mount)

(10)            查看结果 df -Th

 

 

 

=

 

磁盘配额

(一) 实现磁盘限额的条件

  1. 1.       需要 Linux 内核支持(7.0linux内核已经定制支持磁盘配额功能)
  2. 2.      安装 xfsprogs quota 软件包(磁盘配额管理工具)
  3. 3.      注意:xfs文件系统使用的是xfsgrogs工具中的xfs_quota(配额管理程序)管理

Ext3/4文件系统使用的是quota(配额管理程序)管理

(二) 磁盘配额的特点

1. 作用范围

   针对指定的文件系统分区

2. 限制对象

① 用户账号

② 组账号

3. 限制类型

① 磁盘容量限制(默认单位为KB)

② 文件数量

4. 限制方法

① 软限制 -----超过限制条件,系统会给出警告信息(宽限期,宽限期内可以超出限制,继续使用,超过宽限期,只能减,不能加)

② 应限制-------超过限制条件,系统会给出警告信息,并禁止继续写入数据

③ 硬限制的值应该大于软限制的值,否则软限制无效.

(三) 磁盘配额的管理步骤

 

(四) 磁盘配额的操作命令

  1. 1.       挂载文件系统,并添加usrquotagrpquota的支持.

Usrquota:用户配额功能   grpquota:组配额功能

(1)   临时挂载,添加usrquotagrpquota的支持.

Mount -o usrquota,grpquota /dev/new_vgzu/games /date

临时挂载games(Lv)/date(目录),并让该文件系统支持用户和组配额

挂载后将/date放开权限,以便测试  chmod 777 /date

(2)   自动挂载,添加usrquotagrpquota的支持.

Vim /etc/fstab

/dev/mapper/new_vgzu-games /date xfs defaults,usrquota,grpquota 0 0

Wr

 

 

  1. 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个文件将不能再存放文件.

 

注意:不要给管理员配置磁盘配额,否则会影响系统的运行

  1. 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 命令

 

 

 

 

 

  1. 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              当前进程状态

             Rruning 运行态 

             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 — 缓存的内存量

 

top命令模式下的交互命令:

① M:根据内存占用情况进行排序

② N进程按照启动时间进行排序

③ h:获得top命令的在线帮助

④ q:正常退出top程序

⑤ K:结束进程交互界面,输入pid结束对应进程

 

PID进程id

USER进程所有者的用户名

PR优先级

NI nice值。负值表示高优先级,正值表示低优先级

VIRT进程使用的虚拟内存总量,单位kbVIRT=SWAP+RES

RES进程使用的、未被换出的物理内存大小,单位kbRES=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. 1.       每天早上05:29自动开启防火墙服务

29 05 * * * /usr/bin/systemctl start firewalld.service

  1. 2.       每个隔7天清空/ftproot/tmp

0 0 */7 * * /usr/bin/rm -rf /ftproot/tmp/*

  1. 3.       每周一23:59重启服务器

59 23 * * 1 /usr/sbin/reboot

  1. 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

[root@centos73 ~]# hostnamectl set-hostname centos7.3.com

[root@centos73 ~]# hostname

centos7.3.com

[root@centos73 ~]# cat /etc/hostname

centos7.3.com

可以看到已经修改成功。

删除文件。回复默认主机名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

[root@centos73 ~]# nmcli connection add con-name defaulttype Ethernet ifname eth0

Connection 'default'(d62f98af-86ed-4735-80aa-2d80351765b2) successfully added.

删除连接

1

2

[root@centos73 ~]# nmcli connection delete default

Connection 'default'(d62f98af-86ed-4735-80aa-2d80351765b2) successfully deleted.

(2)创建新的连接配置test2,指定静态IP,不自动连接

1

2

[root@centos73 ~]# nmcli connection add con-name test2 ipv4.method manual ifname ens33 autoconnect no type Ethernet ipv4.addresses 172.25.100.100/24 gw4 172.25.100.1

Connection 'test2'(98385bf5-8cc3-47e3-a5f2-51e2d736be6d) successfully added.

参数说明:

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

[root@centos73 ~]# ls /etc/sysconfig/network-scripts/ifcfg-*

/etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-lo

/etc/sysconfig/network-scripts/ifcfg-ens34 /etc/sysconfig/network-scripts/ifcfg-test2

5 启用test2连接配置

1

2

3

[root@centos73 ~]# nmcli connection up test2

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

[root@centos73 ~]# systemctl restart network

看下是否生效

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[root@centos73 ~]# nmcli device show ens33

 

GENERAL.DEVICE: ens33

GENERAL.TYPE: ethernet

GENERAL.HWADDR: 00:0C:29:3A:00:82

GENERAL.MTU: 1500

GENERAL.STATE: 100 (connected)

GENERAL.CONNECTION: test2

GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/7

WIRED-PROPERTIES.CARRIER: on

IP4.ADDRESS[1]: 172.25.100.100/24

IP4.GATEWAY: 172.25.100.1

IP6.ADDRESS[1]: fe80::5a5b:2cc3:a448:e2e1/64

IP6.GATEWAY:

好了,基本的IP地址配置成功

6 修改连接设置

1)修改test2为自动启动

1

[root@centos73 ~]# nmcli connection modify test2 connection.autoconnect yes

(2)修改DNS为172.25.1.1

1

[root@centos73 ~]# nmcli connection modify test2 ipv4.dns 172.25.1.1

(3)添加DNS 114.114.114.114

1

[root@centos73 ~]# nmcli connection modify test2 +ipv4.dns 114.114.114.114

看下是否成功

1

2

3

4

5

6

7

8

9

10

11

12

13

[root@centos73 ~]# cat /etc/sysconfig/network-scripts/ifcfg-test2

 

TYPE=Ethernet

[……]

NAME=test2

UUID=98385bf5-8cc3-47e3-a5f2-51e2d736be6d

DEVICE=ens33

ONBOOT=yes

DNS1=172.25.1.1

IPADDR=172.25.100.100

PREFIX=24

GATEWAY=172.25.100.1

DNS2=114.114.114.114

可以看到均已生效

(4)删除DNS

1

[root@centos73 ~]# nmcli connection modify test2 -ipv4.dns 114.114.114.114

(5)修改IP地址

1

[root@centos73 ~]# nmcli connection modify test2 ipv4.addresses 200.100.100.100/24 gw4 200.100.100.1

(6)还可以添加多个IP

1

[root@centos73 ~]# nmcli connection modify test2 +ipv4.addresses 10.10.10.10/8

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是在LinuxUNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMBServer Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Samba最大的功能就是可以用于Linuxwindows系统直接的文件共享和打印共享,Samba既可以用于windowsLinux之间的文件共享,也可以用于LinuxLinux之间的资源共享。

Samba由两个主要程序组成,它们是smbdnmbd。这两个守护进程在服务器启动到停止期间持续运行,功能各异。Smbdnmbd使用的全部配置信息全都保存在smb.conf文件中。Smb.confsmbdnmbd两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。

Samba提供了基于CIFS的四个服务:文件和打印服务、授权与被授权、名称解析、浏览服务。前两项服务由smbd提供,后两项服务则由nmbd提供。简单地说,smbd进程的作用是处理到来的SMB软件包,为使用该软件包的资源与Linux进行协商,nmbd进程使主机(或工作站)能浏览Linux服务器。

注意:

  1. 1.     windows使用的共享协议是NetBEUINetBIOS Extend User Interface)协议和IPX/SPX协议

a)       SMB : SMB协议是基于TCPNETBIOS下的,一般端口使用为139445

                                     i.              Port 139 (TCP) - 文件和打印共享 smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)

                                   ii.              Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File SystemCIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)

b)      CIFS:它是SMB协议扩展到internet,实现internet文件共享:

  1. 2.     LINUX系统之间文件共享 LIUNXWINDOWS系统之间的文件共享:SMB,服务器信息块协议

程序:nmbdsmbd

1Port 137 (UDP) - NetBIOS 名字服务 nmbd

2Port 138 (UDP) - NetBIOS 数据报服务

3Port 139 (TCP) - 文件和打印共享 smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)

4Port 389 (TCP) - 用于 LDAP (Active Directory Mode)

5Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File SystemCIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)

6Port 901 (TCP) - 用于 SWAT,用于网页管理Samb

二、        准备环境

a)       静态ip

b)      关闭防火墙selinux NetworkManager

 

三、        安装程序

Yum安装步骤:

  1. 1.       先找到yum的配置文件 /etc/yum.repos.d/xxx.repo
  2. 2.       Vim xxx.repo

[自定义名字]

Baseurl=file:///media  -------指定yum,指的是光盘,光盘已经挂载到了/media

Enabled=1   -------启用yum

Gpgcheck=0  -------不去校验

Wq -------保存yum源文件

Yum –y install 程序名   --------安装指定程序

  1. 3.       Yum –y install samba
  2. 4.       启动smbnmb  

a)       systemctl start smb 

b)      systemctl start nmb

四、        配置文件

a)       全局配置

  1. 1.       Workgroup=工作组
  2. 2.       server string=服务器注释
  3. 3.       hosts allow=允许的主机网段  192.168.1. 192.168.100. (多个用空格隔开)
  4. 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. 1.       挂载光盘
  2. 2.       进入Packges
  3. 3.       安装vsftp程序
  4. 4.       查看vsftp的配置文件位置
  5. 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. 1.       Reboot------重启系统,进入系统选择界面
  2. 2.       输入:e  ----进入grub

 ---输入xianfeng用户名 密码:123.com

 

 

 

 

 

 

 

  1. 3.       成功进入grub

 

此时也可以更改密码:

按一下”下箭头”

 

将ro改为rw   并在quiet后面添加 ini=/bin/sh

 

 

Ctrl + X ---重启并修改root密码

 

由于selinux开启着的需要执行以下命令更新系统信息,否则重启之后密码未生效

touch /.autorelabel

 

重启系统

exec /sbin/init

忘记root密码,破解就完成!

 

 Mbr grub故障修复

排除系统启动类故障

一、MBR扇区故障

MBR位于物理硬盘的第一扇区(512字节),该扇区又称为主引导扇区=446字节引导程序部分+64字节分区表记录+2字节标识

主引导扇区损坏导致无法进入引导菜单,找到正确的位置无法加载系统,进入黑屏

  1. 1.         备份MBR扇区数据

(1)       创建用于存储MBR备份的新硬盘分区,并永久挂载

 

(2)       备份MBR扇区数据\

 

(3)       查看是否已经备份

 

  1. 2.         模拟MBR扇区损坏

(1)      

(2)       重启看是否无法启动系统,无法启动代表mbr引导损坏

 

 

  1. 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

 

 

转载于:https://www.cnblogs.com/xkozjian/p/10968574.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值