linux 2/2
分区知识
分区的方式
mbr分区
1.最多支持四个主分区
2.系统只能安装在主分区
3.扩展区要占一个主分区
4.MBR最大支持2TB,但有最好的兼容性
gtp分区
1.支持无限多个主分区,但有的也有限制,win下最多128
2.支持最大18eb的大容量
eb=1024pb
pb=1024tb
win 7 64位都支持gtp
win下的磁盘分区一般都是这样
linux分区
原理介绍
linux无论哪一个分区,分区给哪个目录使用,归根结底都是一个根目录,一个独立且唯一的文件结构,linux中每个分区都是用来组成整个文件系统的一部分。
linux采用一种叫“载入”的处理方式,他的整个文件系统中包含了一整套的文件和目录且将一个分区和目录联系起来,这时要载入的一个分区将使她的存储空间在一个目录下获得
mount挂载文件到linux的目录中
卸载挂载 umout
硬盘说明
linux硬盘分为IDE硬盘和SCSI硬盘,目前基本是scsi硬盘
1
2
lsblk -f 查看系统的分区和挂载的情况
看看我的
从左到右依次是 分区情况、分区类型、然后是唯一标识分区的40位不重复的字符串 最后是挂载点
要是只用lsblk就是可以查看文件的大小
挂载硬盘
虚拟机添加硬盘
分区 fdisk /dev/sdb 先按m,嗯。。然后n添加,然后主分区加按1,然后一路回车,然后w结束
格式化 mkfs -t ext4 /dev/sdb1(1这个得先看命令lsblk -f)
挂载
设置可以自动挂载
1
先在设置里添加硬盘 scsi格式
2
重启查看
3
在进行分区和格式化后
4
创建文件,然后创建目录
mkdir 挂载名字(自己取)
例如
mkdir /home/newdisk
5
然后挂载
mount /dev/sdb1 /home/newdisk
这种挂载重启后就没有了,所以要设置
6
设置永久挂载
vim /etc/fstab
文件分区和挂载点的情况
yy1就是对当前行进行复制
可以使用uuid也可以使用虚拟硬盘的挂载名字
不挂载
umout /dev/sdb1
这时候就没有了
mount -a立即生效
磁盘情况查询
df -h
查询系统磁盘整体使用情况
df -lh更加详细
还有查询指定目录下的磁盘的占用情况
ps(虚拟机键盘小技巧,出虚拟机ctrl+alt,然后进去是alt+g)
查询指定目录的磁盘占用情况
du -h /目录
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max--depth=1 子目录深度
-c 列出明细的同时,增加汇总值
du -ach --max-depth=1 /home
统计指定文件夹下的文件
ls -l /home | grep "^-" |wc -l(“^打头,是以-开头的”)
-是文件
d是目录
ls -rl是子文件夹里也有
树状显示
首先需要安装树状软件
apt-get install tree
直接指令tree就行了,显示当前目录的树形
网络配置
修改ip,可以使用编辑上的虚拟网络编辑器的设置
查看网关,就nat那个查看
在win下查看vm的配置有两种方法
1
ipconfig
2
在cmd下输入control,然后
找到
找到属性,打开internet协议版本的ipv4进行查看
linux网络环境的配置
1
自动连接
缺点:自动获取ip,每次ip可能都不一样
2 ps(ctrl+-缩小文字 ctrl++ 增大文字)
指定ip
修改配置文件来指定ip,并且可以连接到外网
vim /etc/network/interfaces
具体看
Linux Kali 命令行版手动设置网络_星辰Again的博客-CSDN博客
重启服务 service network reatart
进程管理
win下的进程看任务管理器
linux下、
每个程序的代码都称为一个进程,每个进程都有一个id号码
每一个进程都对应一个父进程,而父进程可以复制多个子进程
每个进程有两种存在方式,前台和后台。
系统服务一般都是后台,并且常驻在系统中,知道关机结束
ps
查看目前系统中,那些正在执行以及执行的情况
类依次是
进程号识别、终端机号、此进程所谓cpu时间、正在执行的命令或者进程
pa -a:显示当前终端的所有进程信息
ps -u:以用户的格式显示进程信息
ps -x:显示后台进程运行的参数
联合起来就是ps -aus 信息更加全面
可以使用管道符more来进行分页查看
依次是
用户名、进程号、占用cpu、占用内存、占用的虚拟内容、使用的物理内存、适使用的终端、进程的状态(s休眠,r运行、z僵死、n表示比普通用户的权限还低、d短期等待、t被跟踪或者被停止)启用时间,占用cpu的总时间、进程启动时的命令行
也可也通过过滤来进行查看
例如:
ps -aux | grep sshd
父进程的查看
ps -ef | more
PPID父进程
同样要查看sshd的相关父进程
ps -ef | grep sshd
kill 或者killall
当进行一半要停止、或者已经消耗了很大的系统资源,此时可以来考虑停止该进程。并且支持通配符的
一般是kill 加进程号
例如远程的 ps -aux | grp sshd
killall 通过进程名字,把归属于进程的名字的所有进程全部杀掉
kill -9 进程号 可以强制进行终止终端指令
查看进程树pstree
pstree [选项] ,可以更加直观的来看进程信息
-p:显示进程的id
-u:显示进程的归属用户
ps -p
ps -u
ps -pu
就是显示进程的id和归属用户
mysql端口 3306 电脑可以远程连接到mysql
服务(service)管理
服务本质就是进程,但是是运行在后台的,通常会监听某个端口,等待其他进程的请求,例如mysql、sshd防火墙等,又叫守护进程
管理指令
service 服务名 [sart | stop | restart | reload | status]
自己最喜欢用sshd的status。。。
centos下是systemctl
防火墙开启 service iptables start
查看状态就是换成status
win下
可以通过talnet指令检测linux的某些端口是否在监听,并且可以访问
dos下
telnet ip 端口
ps:
刚开始没有发现命令
因为没有安装
所以在程序和功能下找到
进行监听,但最近虚拟机有点问题,无法继续
查看服务名
1
在红帽下是setup
在centos和kali下是nmtui
带星号的会自动启动
2
ls -l /etc/init.d
服务的运行级别
刚才查到
kali下是
runlevel
来查看级别
who -r 查看正在运行的级别
service --status-all 查看所有的开启服务的指令
linux下的7种运行级别:日常3和5
拓展:NFS
搜索文档查看就是
NFS是网络文件系统,NFS就是一种促使servers(服务器)上的文件能被其他的计算机挂接而达到资源共享的网络文件系统,使用这些文件的计算机就可称为Client(客户机),一个客户机可以从服务器上挂接一个文件或者一个层次的目录。
如果不下心默认运行级别设置错了们就进入单用户修改,毕竟root权限嘛
chkconfig
可以给各个运行级别设置自启动或者关闭
没有,在网上搜索应该是红毛的,不是卡里的
但还是要干
chkconfig --list进行查看
筛选查看用 | grep xxx
指定的状态查看
chkconfig 服务 --list好像和grep一样
修改服服务在运行级别下是否打开(是否自启动)
chkconfig --level 级别 服务名 on/off
监控系统的网络情况
查看网络情况netstat
-an 按一定顺序排列输出
-p 显示哪个进程在通用
netstat -anp查看所有的网络监听口
太多可以使用more来进行分页查看
查看某个服务,使用grep sshd 来进行
检测主机连接命令ping
是一种网络检测工具,主要检测远程主机是否正常,或者说两部主机之间的介质的情况
动态监控进程
显示正在执行的进程,top在执行一段时间可以更新正在运行的进程,这也是与ps的不同点
回顾:ps
用于显示当前进程的状态,类似于 windows 的任务管理器,嘻嘻
- -aux 显示所有包含其他使用者的行程
用法:
-d 秒数:指定在几秒更新,默认3秒
-i:使top不显示任何僵死和闲置进程
-p:指定进程id来监视某个进程的状态
交互操作说明
P:以cpu使用率来,默认的这个,加不加都一样】
M:以内存使用率来
N:以PID排序
q:退出top
第一行
第一个时间是当前时间
up后是系统运行的时间
user前是当前的用户数量
目前的负载均衡(1是最大,直接卡死)
第二行
zombie是僵死进程可以使用kill -9将其杀死
第三行
us是用户占的
sy是系统占的
id是空闲的
第四行
内存使用
第五行
内存不够用,才会用swap分区
在top命令下输入u来查看指定用户
输入k,然后输入pid,就可以杀死进程
例如更新top时间 top -d 10
rpm和yum
rpm是红帽的,类似软件包管理工具
rpm基本指令:
查询是否安装指定软件:
rpm -qa | grep 软件名字
如果查询有,就会显示,没有就不显示
rpm的包的管理
rpm -e rpm包的名称
当产生错误信息时,可以加参数强制删除
rpm -e --nodeps 包名字
rpm的安装
i 安装 install
v 提示 verbose
h 进度条 hash
rpn -ivh 包名字
然后挂载iso映像,在/media设备上显示
然后rpm包都在那里
然后cp到opt目录下
然后定位到指定的cp目录
然后rpm - ivh 包名字 进行安装
好像用的是apt-get
自己写一下对kali的更新
滴滴滴滴
apt-get命令适用于ubuntu,debian等系统
安装软件
apt-get install {包名}
更新软件
apt-get install update
软件包升级
apt-get upgrade
移除软件
apt-get remove {包名}
自动移除系统不需要的旧的软件包
apt-get autoremove
完全移除,除了移除所需文件之外还移除配置文件以及历史文件
apt-get purge {包名}
清理已经安装过的软件包
apt-get clean
系统版本升级
apt-get dist -upgrade 注意:要先进行软件包升级才可以进行系统版本升级
在kali linux中 还有个Debian软件包管理器,功能可能并没有apt强大,但是它可以检查已经安装的软件包
dpkg -l {包名} 查看软件包的状态,而且可以看到被移除的软件包的配置文件
yum
是一个shell前端的软件包管理器,基于rpm包管理,可以从指定的服务器自动下载rpm包,自动依赖性关系
查询yum服务器是否需要安装软件
yum list | grep 软件包
安装指定yum包
yum install 软件包
默认会安装最新版本的