磁盘分区介绍

分区基础知识

分区的方式:

MBR分区:
最多支持四个主分区
系统只能安装在主分区
扩展分区要占一个主分区
MBR最大只支持2TB,但拥有最好的兼容性

gtp分区:
支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)
最大支持18EB的大容量(1EB=1024 PB,1PB=1024TB)
windows7 64位以后支持gtp




Linux分区

原理介绍
Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。

Linux采用了一种叫“载入”的处理方法(mount 挂载),linux的文件系统中包含了一整套的文件和目录,且linux将一个分区和一个目录联系起来。
这时要载入(挂载)的一个分区将使它的存储空间在一个目录下获得。



硬盘说明
Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。

对于IDE硬盘,驱动器标识符为“hdx",其中“hd"表明分区所在设备的类型,这里是指IDE硬盘了。
”x“为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从s属盘);
前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。
例,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区。

对于SCSI硬盘则标识为“sdx”,SCSI硬盘是用“sd“来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样。

使用lsblk指令查看当前系统的分区情况

lsblk -f:查看系统的分区和挂载的情况
(lsblk--简记“老师不离开”)






给Linux添加一块新硬盘

说明

下面我们以增加一块硬盘为例来熟悉下磁盘的相关指令和深入理解磁盘分区、挂载、卸载的概念。



如何增加一块硬盘

虚拟机添加硬盘

一、

在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改成2GB,至到完成。然后重启系统reboot(才能识别)!







分区 fdisk /dev/sdb


注意最后填的W是让你写入磁盘里并退出用的
你看下图第一行



格式化 mkfs -t ext4 /dev/sdb1


挂载 先创建一个 /home/newdisk,
挂载mount /dev/sdb1 /home/newdisk

设置可以自动挂载(永久挂载,当你重启系统,仍然可以挂载到/home/newdisk)




vim /etc/fstab
添加内容 /dev/sdb1 /home/newdisk ext4 defaults 0 0
永久挂载:通过修改/etc/fstab实现挂载添加完成后
执行mount -a即刻生效。
reboot

磁盘查询实用指令

查询系统整体磁盘使用情况

基本语法


df -h

应用实例

查询系统整体磁盘使用情况





查询指定目录的磁盘占用情况


基本语法
du -h /目录

-h 带计量单位
-a 含文件
–max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值


应用实例

查询/opt目录的磁盘占用情况,深度为1
du -ach --max-depth=1 /opt



磁盘情况-工作实用指令

统计/home文件夹下文件的个数
ls -l /home | grep “^-” | wc -l
统计/home文件夹下目录的个数
ls -l /home | grep “^d” | wc -l
统计/home文件夹下文件的个数,包括子文件夹里的
ls -lR /home | grep “^-” | wc -l
统计文件夹下目录的个数,包括子文件夹里的
ls -lR /home | grep “^d” | wc -l
以树状显示目录结构
tree
(没有就安装)yum install tree








网络配置原理和说明


老师的电脑里有Linux系统和windows系统 ,windows 下有虚拟网卡和真实网卡,通过网关来ping外界网络
查看虚拟网络编辑器


修改IP地址(修改虚拟网络的IP)


查看网关



查看Windows环境中VMnet8网络配置(ifconfig指令)


ping测试主机之间网络连通性


获取IP

第一种方法(自动获取)

说明:登陆后,通过界面的来设置自动获取IP





特点:Linux启动后会自动获取IP,缺点是每次自动获取的ip地址可能不一样。
因此,这个不适用于服务器,因为我们的服务器的IP需要固定的。


修改配置文件指定IP

说明
直接修改配置文件来指定IP,并可以连接到外网(推荐),编辑
vi /etc/sysconfig/network-scripts/ifcfg-eth0
要求:将ip地址配置的静态的,ip地址为192.168.184.130

重启网络   reboot
ifconfig指令:查看网络配置


进程管理

进程介绍和查询

1.在Linux中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
2.每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。

3.每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的(你在终端操作的),
后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
4.一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。



查询系统执行的进程

PS命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。

PS显示的信息选项

ps -a:显示当前终端的所有进程信息
ps -u:以用户的格式显示进程信息
ps -x:显示后台进程运行的参数


指令说明:

System V展示风格
USER:用户名称
PID:进程号
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
T:终端名称,缩写
STAT:进程状态,其中:
S:睡眠,
s:表示该进程是会话的先导进程,
N:表示进程拥有比普通优先级更低的优先级,
R:正在运行,
D:短期等待,
Z:僵死进程,
T:被跟踪或者被停止
等等

STARTED:进程的启动时间
TIME:CPU时间,即进程使用CPU的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示


PS详解
指令: ps -aux | grep xxx
案例
比如我看看有没有sshd服务
ps -aux | grep sshd

ps -ef 可以显示父进程号


终止进程

终止进程kill和killall

介绍
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。
使用kill命令来完成此项任务。

基本语法
kill [选项] 进程号(功能描述:通过进程号杀死进程)

killall 进程名称(功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

区别
killall 用于杀死一个进程,与 kill 不同的是它会杀死指定名字的所有进程。

kill 命令杀死指定进程 PID,需要配合 ps 使用,而 killall 直接对进程对名字进行操作,更加方便。


常用选项
-9:表示强迫进程立即停止


查看进程树pstree
基本语法
pstree [选项] 可以更加直观的来看进程信息
常用选项
-p:显示进程的PID
-u:显示进程的所属用户
应用实例
案例1:请你树状的形式显示进程的pid
pstree -p

案例2:请你树状的形式进程的用户id
pstree -u



进程管理 服务管理

介绍
服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。



指令
service 服务名 start (启动)[stop(停止) | restart(重启) | reload(重载) | status(状态)
]
这里的重载是指将服务需要的资源重新加载后启动
在CentOS 7.0后不再使用service,而是systemctl
systemctl
使用案例

查看当前防火墙的状况,关闭防火墙和重启防火墙。
centOS的使用
systemctl status firewalld


关闭防火墙
systemctl stop firewalld

重启防火墙
systemctl restart firewalld
关闭或者启用防火墙后,立即生效。

[telnet测试某个端口即可]
telnet [ip地址] [端口号]
这种方式只是临时生效,当重启系统后,还是会回归以前对服务的设置。
如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令。

查看服务名
使用setup->系统服务就可以看到。


/etc/init.d/ 服务名称
ls -l /etc/init.d



服务的运行级别(runlevel):

查看或者修改默认级别: vi /etc/inittab
Linux系统有7种运行级别(runlevel):(常用的是级别3和5)
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS),不支持网络
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

chkconfig指令

介绍

通过chkconfig命令可以给各个运行级别设置自启动/关闭
基本语法

查看服务
chkconfig --list | grep 服务名
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
例如:请将sshd服务在运行级别为5的情况下,不要自启动
chkconfig --level 5 sshd off


应用实例

案例1:请显示当前系统所有服务的各个运行级别的运行状态
chkconfig --list

案例2:请查看sshd服务的运行状态
service sshd status
----------------
CentOs 用 systemctl status sshd

案例3:将sshd服务在运行级别5下设置为不自动启动,看看有什么效果?
chkconfig --level 5 sshd off
案例4:当运行级别为5时,关闭防火墙。
chkconfig --level 5 iptables off
案例5:在所有运行级别下,关闭防火墙
chkconfig iptables off
案例6:在所有运行级别下,开启防火墙
chkconfig iptables on

使用细节
chkconfig重新设置服务后自启动或关闭,需要重启机器reboot才能生效.



进程管理 监控服务

动态监控进程

介绍


top与ps命令很相似。它们都用来显示正在执行的进程。
top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程。
基本语法
top [选项]
选项说明


  • 交互操作说明







应用实例

案例1:监视特定用户
top:输入此命令,按回车键,查看执行的进程。
u:然后输入“u“回车,再输入用户名,即可




案例2:
终止指定的进程top:
输入此命令,按回车键,查看执行的进程
k:然后输入“k”回车,再输入要结策的进程ID号


案例3:指定系统状态更新的时间(每隔10秒自动更新,默认是3秒)
top -d 10

监控网络状态

查看系统网络情况netstat

基本语法
netstat[选项]
选项说明
-an 按一定顺序排列输出
-p 显示哪个进程在调用


应用案例
查看系统所有的网络服务
netstat -anp | more
请查看服务名为sshd 的服务的信息。
netstat -anp | grep sshd


RPM包管理

介绍
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有RPM扩展名的文件。
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。

Linux的分发版本都有采用(suse,redhat,centos等等),可以算是公认的行业标准了。

rpm包的简单查询指令

查询已安装的rpm列表rpm -qa l grep xx


rpm包名基本格式
一个rpm包名:firefox-60.2.2-1.el7.centos.x86_64
名称:firefox
版本号:60.2.2-1
适用操作系统:el7.centos.x86_64
表示centos7.x的64位系统
如果是i686、i386表示32位系统,noarch表示通用。


rpm包的其它查询指令
rpm-qa:查询所安装的所有rpm软件包(很多的)
rpm-qa | more

rpm-qa | grep xxx 
[rpm -qa | grep firefox ]

rpm -q 软件包名:查询软件包是否安装
rpm -q firefox

rpm -qi 软件包名:查询软件包信息
rpm -qi firefox

rpm -ql 软件包名:查询软件包中的文件
rpm -ql firefox


rpm -qf 文件全路径名:查询文件所属的软件包

rpm -qf /etc/passwd
rpm -qf /root/install.log


卸载rpm包

基本语法
rpm -e RPM包的名称

应用案例
删除firefox软件包
rpm -e firefox
细节讨论
如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。
如:rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1

如果我们就是要删除foo这个rpm包,可以增加参数–nodeps,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行
如:rpm -e --nodeps foo


安装rpm包

基本语法
rpm -ivh RPM包全路径名称

参数说明
i=install安装
v=verbose提示
h=hash 进度条

应用实例
演示卸载和安装firefox浏览器

先找到firefox的安装rpm包,你需要挂载上我们安装centos的iso文件,然后到/media下去找rpm找。
虚拟机可以按照以下方式挂载iso


  • cp firefox-45.0.1-1.el6.centos,x86_64.rpm /opt/
  • rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm

YUM

简介
yum是一个shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。

基本指令
查询yum服务器是否有需要安装的软件
yum list | grep xxx软件列表
安装指定的yum包
yum install xxx 下载安装yum

应用实例
案例:请使用yum的方式来安装firefox
先查看以下firefox rpm在yum服务器有没有
yum list | grep firefox

安装 yum install firefox