重点:inode、block(数据区块)、superblock(超级区块)
磁盘结构
GPT与MBR
区别
磁盘以文件表示
linux中设备都以文件形式在/dev中表示,如磁盘为/dev/sd[a-p物理][1-128分区]
文件系统:boot+group+group...
group: inode信息 数据
限制:
缺点:
区块大:小文件多浪费空间
区块小:inode多读写性能差
记录一个区块指针需要4B,一个inode包含12个直接、1个间接、1个双间接、1个三间接,所以1K区块下一个文件最大12+256+256 256+256 256*256个数据区块共16G
如何查看这些信息
输出:超级区块信息+区块群组信息
存
取
数据不一致
异步处理
修改时将文件读入内存标记为clean,修改后标记为dirty但并不立即写入硬盘,需要调用sync。
不正常关机时会导致磁盘校验。
文件系统与目录树
挂载:文件系统与目录树结合,比如将 / 挂载到 /dev/sda1 这个设备
相同文件系统类型的不同文件系统目录树根的inode相同,不同文件系统内文件inode值可能重复,同一个文件系统inode与文件一一对应。
Linux支持多种文件系统,包括 传统、日志、网络 的,以下命令可以查询。
VFS(Virtual Filesystem Switch)是位于 内核层 的 系统调用 ,帮助处理读取不同文件系统
ext4不好:预先分配所有inode,格式化慢,不适合大容量磁盘
XFS好:适合大容量磁盘和巨型文件
lsattr 和 chattr 可以更改隐藏属性,但是xfs不支持部分隐藏属性
xfs分为数据区(data section)、文件系统活动登录区(log section)、实时运行区(realtime section)
数据区
同ext,分为超级区块、剩余空间的管理、inode分配与追踪。但是inode动态分配,格式化快。且数据块(4K以上内核不给挂载)与inode大小(256B-2M)可以自定义。
文件系统活动登录区
类似日志区,所有文件变化在此记录,当完全被写入记录才被删除,用于校验。可指定外部磁盘作为该区。
实时运行区
先在该区段中寻找数个extent区块,将文件放到这些区块中, 等分配完了 再写入数据区中的inode与区块中。
xfs文件系统查看信息
注意点:如果对 /boot 使用,可以看到 /dev/sda2 指向某个物理设备,但是对 / 使用,可以看到指向 /dev/mapper/centos-root 。这是因为在安装系统时候, 设备分区 使用了LVM而非标准分区,linux为你自动创建的空间池,用多少取多少。
含有inode大小、个数、总数、区块大小、数量、与阵列 stripe 有关的信息
df
/proc 中1kblock,used,free都是0,因为这个目录挂载在内存中
/dev/shm/ 是用内存虚拟出的磁盘空间
不知道某个目录/文件所在挂载点,还想知道这个分区还能存多少东西?
du
硬链接
符号链接
流程: 分区->格式化->检验(可选)->挂载(Linux特色)
查看UUID(全局唯一标识符): lsblk-f 或 blkid
分区流程: lsblk 或 blkid 查看分区->gdisk 或 fdisk 根据提示 *** 作
区块与扇区:区块针对 文件系统 而言,扇区针对 物理硬盘 而言
不要处理正在活动的分区 (已挂载的分区),linux将不能更新分区表
添加分区默认按序号给分区编号,且默认开始扇区从第一个未被占用的扇区开始。
功能:使用文件系统格式化软件格式化磁盘分区。
命令: mkfs.xfs mkfs.ext4 mkfs
运维管理命令netstat -nap 查看系统正在开放的端口
netstat -tnlp | grep 80 查看哪个服务占用了80端口(-t表示只列出tcp协议的连接)
netstat -anptu | grep tcp 查看当前开放的所有tcp端口
rm -r 文件名 删除文件 (-r 递归) (-f 强制)
rm -rf ./* 删除当前目录里的所有文件
mv 文件路径 目标路径 移动文件到指定目录
mv 文件名a 文件名b 将文件名a重命名为文件名b
mv ./* ../ROOT/ 把当前目录下的所有文件移动到上级目录的ROOT文件夹里面
cp 起始路径 目标路径 将一个文件从一个地址复制到另一个地址
cp 文件1 文件2 将文件1复制一份命名为文件2
ssh 远程主机的用户名@远程主机ip 远程登录服务器(如果无法登陆,删除本地.ssh文件里的known_hosts文件里的内容)
scp -r 本地路径 user@ip:服务器路径 将本地文件传到服务器
scp user@ip:服务器路径 本地路径 将服务器文件传到本地
chmod -R 777 文件路径 赋予指定文件所有权限
chmod -R 777 . 以递归的方式修改当前目录下所有文件和子目录的权限
rpm -qa | grep httpd 查询是否安装httpd服务,并列出安装文件
rpm -e 软件名 查询某个软件是否被安装 (只有通过yum安装的才能查询到)
ps -ef | grep java 显示当前进程及参数,并过滤出java程序的进程 { PID表示这个程序的ID,PPID表示这个程序的父程序的ID }
kill PID 立即终止这个进程
crontab -e 编写计划任务(语法格式:分 时 日 月 周 需要执行的命令)
mkdir a 创建一个名称为a的文件夹
touch 文件名.文件格式 创建一个带后缀的文件
du -sh 文件路径 查看指定路径的文件的大小
grep "关键词" 文件名 查找文件中带这个关键词的文件
系统维护命令
service 服务名 start/stop/restart 在deb包管理的系统中开关服务的命令
systemctl start/stop/restart 服务名 在rpm包管理的系统中开关服务的命令
man 命令 解释这个命令
history 数字 显示最近使用的命令
apt-get install 命令符号 安装命令程序
apt-get purge 命令符号 卸载命令程序
which 程序名 搜索某个程序路径
whereis 软件名 搜索某个软件路径
echo $PATH查看标准路径目录
dmesg -T 显示系统接入设备日志
sudo nautilus 文件路径 以管理员身份打开文件夹进行删改
df -h 查看磁盘使用情况
fdisk -l 查看分区具体情况
route 检查自己的路由表
traceroute url 检查本机到url的完整路径
git clone github地址 从github下载文件到本地
常用路径的作用
cd /bin 进入根目录下的bin目录
cd bin 进入当前目录下的bin目录
/etc/init.d 系统的启动文件目录,可以使用start启动着里面的文件 如:./bluetooth start 启动蓝牙
/usr/share / 从源安装的软件的文件默认存放地址
windows系
快捷键
Alt + Esc 切换活动窗口
Alt + F4 关闭当前程序
win + D 显示和隐藏桌面
win + I 打开设置
win + M 最小化所有窗口
win + Tab 打开任务视图
Ctrl + win + D 添加虚拟桌面
Ctrl + win + 切换虚拟桌面
Ctrl + win + F4 关闭你正在使用的虚拟桌面
打开服务配置
gpedit.msc 打开组策略
services.msc 打开服务控制
sysdm.cpl 打开系统属性(配置环境变量等 *** 作)
chcp 65001 设置cmd为utf8字符集
c:ProgramDataMicrosoftWindowsStart MenuPrograms windows启动程序路径
在cmd中光标只有在当前行才能 ctrl + v 进行粘贴
windows下的ssh的使用
C:ProgramDatassh sshd_config配置文件所在目录,修改这个文件可以更改ssh连接到win后所在的目录 #ChrootDirectory none 改成 ChrootDirectory C: 然后重启ssh server服务,这样用linux连接到win后就会到 C: 目录下
将linux上的 a.txt文件 复制到windows的 c盘的a文件夹中
scp user@ip:/home/username1/视频/a.txt /c:/a ( -r 递归传送 )
将windows的 c盘的a文件夹中的c.txt文件 复制到linux的中
scp /c:/a/c.txt user@ip:/home/username1/视频/a ( -r 递归传送)
只能在windows系统上 *** 作上面的两条命令,win中的user是用户文件夹里的文件夹名字。
在Mysql安装的目录中找到bin目录,复制此路径到系统属性的‘高级’中的环境变量path里,这样就可以在cmd中运行 mysql -u root -p
Dos命令
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)