❤Linux文件、目录与磁盘格式总结❤

news2024/9/21 22:40:35

文章目录

  • Linux文件、目录与磁盘格式总结
  • Linux文件权限
    • chgrp
    • chmod
    • chown
    • 文件种类
    • Linux文件扩展名
  • Linux文件与目录管理
    • 常用的目录解释
    • 目录树
    • 绝对路径与相对路径
    • cd(切换目录)
    • pwd(显示当前目录)
    • mkdir(建立一个新目录)
    • rmdir(删除空目录)
    • 执行文件路径变量$PATH
    • ls(文件与目录的查看)
    • cp(复制文件或目录)
    • rm(删除文件或目录)
    • mv(移动文件与目录,或重命名)
    • basename(获取文件名)
    • dirname(获取目录名称)
    • cat(显示文件内容)
    • tac(从最后一行开始显示文件内容)
    • nl(查看文件显示行号)
    • more(一页一页显示文件内容)
    • less(前后翻页显示文件内容)
    • head(只看开头几行)
    • tail(只看结尾几行)
    • od(以二进制的方式读取内容)
    • touch(创建新文件)
    • umask(文件默认权限)
    • chattr(配置文件隐藏属性)
    • lsattr(显示文件隐藏属性)
    • 文件特殊权限:SUID、SGID、SBIT
    • file(观察文件类型)
    • which(查找执行文件)
    • whereis(特定目录查找文件)
    • locate和updatedb(建立数据库查找文件)
    • find(指定目录查找文件)
  • Linux磁盘与文件系统管理
    • 磁盘的组成与分区表
    • df(列出文件系统的整体磁盘使用量)
    • du(查看文件系统的磁盘使用量)
    • ln(硬链接)ln -s (软链接)
    • lsblk(列出系统上的所有磁盘列表)
    • blkid(列出设备的UUID等参数)
    • fdisk(磁盘分区工具)
    • parted(磁盘分区工具)
    • mkfs(磁盘格式化)
    • xfs_repair文件系统校验
    • xfs_admin(修改XFS文件系统的UUID与Label name)
    • fsck.ext4处理ext4文件系统
    • tune2fs(修改ext4的label name和UUID)
    • mount(文件系统挂载)
    • umount(解除挂载)
    • /etc/fstab(开机自动挂载)
    • 使用物理分区创建内存交换分区(mkswap,free,swapon,swapoff)
    • 使用文件创建内存交换分区(dd,mkswap,swapon,swapoff)
  • Linux系统常见的压缩命令
    • gzip/zcat
    • bzip2/bzcat
    • xz/xzcat
    • tar(打包命令)
    • xfsdump(XFS文件系统备份)
    • xfsrestore(XFS文件系统还原)
    • dd(随机数据生成,用法不止这个)
    • cpio(文件归档和备份工具)

Linux文件、目录与磁盘格式总结

Linux文件权限

chgrp

chgrp [选项] 新组名 文件名
-R :递归第修改目录及其下的所有文件和子目录的所属组
例如:
chgrp -R group file         # 将目录dir1及旗下所有文件和子目录所属组修改为group1

chmod

chmod [选项] 模式 文件名
选项:
-R:递归第修改目录及其下的所有文件和子目录的权限
模式:
r:4   w:2   x:1(字符数字两种都可)
例如:
chmod 777 wenjian.txt
chmod rwx wenjian.txt
chmod -r wenjian.txt

chown

chown [选项] 属主名 文件名
选项:
-R:递归第修改目录及其下的所有文件和子目录的所属主(属主是第一个,属组是第二个)
例如:
chown -R root csq

文件种类

  1. 常规文件分为:纯文本文件(*.txt),二进制文件(例如cat),数据文件(特点就是使用cat读取会乱码)

  2. 目录:第一个属性为【d】例如:drwxrwxrwx

  3. 链接文件:第一个属性为【l】例如:lrwxrwxrwx

  4. 设备文件:

  • ​ 区块设备文件:第一个属性为【b】
  • ​ 字符设备文件:第一个属性为【c】
  1. 数据接口文件:第一个属性为【s】

  2. 数据输送文件:第一个属性为【p】

Linux文件扩展名

  • *.sh , *.py:脚本或批处理文件
  • * Z , * . tar,*.zip 打包压缩文件
  • *.html *.php 网页相关文件
  • .txt 文本文件

Linux文件与目录管理

常用的目录解释

  • /:根目录,所有其他目录都是在根目录下的子目录。
  • /bin:二进制可执行文件目录,存放常用的命令。
  • /boot:系统引导文件目录,存放启动Linux系统所需的文件。
  • /dev:设备文件目录,包含系统中所有的设备文件。
  • /etc:系统配置文件目录,存放系统的配置文件。
  • /home:用户主目录,每个用户在此目录下都有一个以用户名命名的子目录,用于存放该用户的文件和数据。
  • /lib:系统库文件目录,存放系统和应用程序共享的库文件。
  • /media:可移动设备挂载目录,用于挂载可移动设备,如U盘、光驱等。
  • /mnt:挂载目录,用于临时挂载文件系统。
  • /opt:可选应用程序目录,用于存放第三方应用程序。
  • /proc:虚拟文件系统目录,包含系统和进程的信息,可通过此目录访问系统内核的运行状态。
  • /root:超级用户(root)主目录。
  • /sbin:系统二进制可执行文件目录,存放系统管理员使用的命令。
  • /tmp:临时文件目录,存放临时文件。
  • /usr:用户程序目录,存放系统和用户的应用程序、库文件、帮助文档等。
  • /var:可变数据目录,存放系统和软件运行过程中产生的变化数据,如日志文件、邮件、缓存等。

目录树

img

绝对路径与相对路径

相对路径:路径写法【不是由 / 写起的】,例如由【/usr/share/doc】要到【/usr/share/man】下面,可以执行【cd …/man】

绝对路径:路径写法【一定由根目录写起】例如:/etc/systemctl/selinux

cd      #切换目录命令
./      #当前目录
cd  ..  # 返回上一级目录

cd(切换目录)

cd  [相对路径或绝对路径]

pwd(显示当前目录)

例如:
[root@localhost /]# pwd
/

mkdir(建立一个新目录)

mkdir [-mp]  目录名称
选项:
-m:设置文件的权限
-p:递归创建
例如:
mkdir -m 711 test2
mkdir -p /test1/test2/test3  # 建立多层目录

rmdir(删除空目录)

rmdir [-p] 目录名称
选项:
-p:连接上层空的目录一起删除
例如:
rmdir -p /test1/test2/test3    # 如果三个目录里面都没东西就会全部删除

执行文件路径变量$PATH

$PATH是一个环境变量,用于指定系统可执行文件的路径。

[root@localhost sysconfig]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

ls(文件与目录的查看)

ls [-ahltSR]   文件名或目录名称
选项:
-a:全部的文件,连同隐藏文件(.开头的文件)一并列出来
-h:将文件容量以人类能看懂的方式展现出来
-l:详细信息显示,包含文件属性权限
-t:按时间排序,而不是文件名
-S:以文件容量大小排序
-R:连同子目录一起列出来
例如:
[root@localhost ~]# ls -a  /etc/yum.repos.d/
.  ..  aliyun.repo  local.repo

cp(复制文件或目录)

cp [-rfpv] 原文件   目标文件
选项:
-r:递归复制
-f:强制复制
-p:连同文件的属性(权限、用户、时间)一起复制过去,不是使用默认属性
-v:显示复制过程
例如:
[root@localhost ~]# cp -rvfp /etc/yum.repos.d/* /media/
"/etc/yum.repos.d/aliyun.repo" -> "/media/aliyun.repo"
"/etc/yum.repos.d/local.repo" -> "/media/local.repo"

rm(删除文件或目录)

rm [-rvf] 文件或目录
选项:
-r:递归删除
-f:不显示警告信息
-v:显示删除过程
例如:
[root@localhost ~]# rm -rvf /media/*
已删除"/media/aliyun.repo"
已删除"/media/CentOS-7-x86_64-DVD-2009.iso"
已删除"/media/local.repo"

mv(移动文件与目录,或重命名)

mv [-f]  文件或目录
选项:
-f:强制移动,不会询问
例如:
# 改名
[root@localhost ~]# mv anaconda-ks.cfg ppp
# 移动目录
[root@localhost ~]# mv csq  /etc/

basename(获取文件名)

[root@localhost ~]# basename /etc/yum.repos.d/
yum.repos.d

dirname(获取目录名称)

[root@localhost ~]# dirname /etc/sysconfig/
/etc

cat(显示文件内容)

cat [-n] 文件内容
选项:
-n:打印行号,连同空白行也会有行号
例如:
查看ppp文件,并显示行号
[root@localhost ~]# cat -n ppp
     1  #version=DEVEL
     2  # System authorization information
     ........
     ...

tac(从最后一行开始显示文件内容)

倒着显示ppp文件
[root@localhost ~]# tac ppp
%end
......
....

nl(查看文件显示行号)

查看ppp文件并显示行号
[root@localhost ~]# nl ppp
     1  #version=DEVEL
     2  # System authorization information
     3  auth --enableshadow --passalgo=sh

more(一页一页显示文件内容)

[root@localhost ~]# more /etc/man_db.conf 
怎么翻页?:
Enter  : (代表下一页)
/字符串 : 代表在这个显示内容中,向下查找字符串这个关键字
:f     : 立刻显示出文件名已经目前显示的行数
q      : 立刻离开more
b或ctrl + b :代表往前翻页

less(前后翻页显示文件内容)

[root@localhost ~]# less /etc/man_db.conf 
怎么翻页?:
[pagedown]:向下反动一页
[pageup]:向上翻动一页
/字符串:向下查找字符串
n:重复前一个查找(/字符串,和?字符串使用)
g:前进到数据的第一行
G:前进到数据的最后一行
q:离开less

head(只看开头几行)

head [-n]  [文件内容]
选项:
-n:后面接数字,代表显示几行的意思
例如:
查看man_db.conf文件的第一行内容
[root@localhost ~]# head -n 1 /etc/man_db.conf 

tail(只看结尾几行)

选项:
-n:后面接数字,代表显示几行的意思
-f:表示持续刷新显示后面所接的文件中的内容,按ctrl + c结束
例如:
持续检测文件ppp的内容
[root@localhost ~]# tail -f ppp 

od(以二进制的方式读取内容)

od [-t] 文件
选项:
-t        :后面可以接各种【类型】的输出,如:
            a :利用默认的字符来输出
            c :使用ASCII输出
            d : 利用十进制输出
            f :利用浮点数输出
            o :利用八进制输出
            x :利用16进制输出
例如:
将 /bin/passwd的内容使用ASCII方式来显示
[root@localhost ~]# od -t c /bin/passwd 
0000000 177   E   L   F 002 001 001  \0  \0  \0  \0  \0  \0  \0  \0  \0
0000020 003  \0   >  \0 001  \0  \0  \0   H   2  \0  \0  \0  \0  \0  \0
.........
...
例如:
不想查找passwd的ASCII码可以使用一下操作
[root@localhost ~]# echo password | od -t c

touch(创建新文件)

touch  新文件名字

umask(文件默认权限)

[root@localhost ~]# umask 022
[root@localhost ~]# umask
0022

例如,如果umask的值为022,那么新创建的文件的权限掩码就是644(666减去022),新创建的目录的权限掩码就是755(777减去022)。

chattr(配置文件隐藏属性)

chattr [+-=] [ai] 文件或目录名称
选项:
a:当设置了a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root能设置这个属性。
i:可以让一个文件【无法删除,改名,以及设置链接】,对于系统安全有相当大的助益。
例如:
[root@localhost ~]# chattr +i ppp 
[root@localhost ~]# rm -rf ppp 
rm: 无法删除"ppp": 不允许的操作

lsattr(显示文件隐藏属性)

lsattr [-Ra] 文件或目录
选项:
-R:连同子目录的数据也一并列出来
-a:将隐藏文件的属性也显示出来
例如:
[root@localhost ~]# lsattr ppp
----i----------- ppp

文件特殊权限:SUID、SGID、SBIT

SUID权限表示当普通用户执行该文件时会以文件所有者的身份来运行该文件

SGID权限表示一个目录中创建的文件的所属组将会与该目录的所属组相同,这通常用于多个用户需要共享文件的情况下,可以将文件和目录的所属组设置为相同的组,以便多个用户进行文件共享

SBIT权限表示在一个目录中,只有文件的所有者、目录所有者或root用户才能够删除该文件

  • 4为SUID
  • 2为SGID
  • 1为SBIT

注意:SUID不是用在目录上,SBIT不是用在文件上

例如:

可以让普通用户能够执行yum这个命令

[root@localhost bin]# chmod 4755 yum ;ls -l yum
-rwsr-xr-x. 1 root root 801 102 2020 yum

file(观察文件类型)

file  文件名
例如:
查看/home是什么文件
[root@localhost bin]# file /home
/home: directory  # 是目录文件

which(查找执行文件)

which  执行文件(例如:cat,more)
例如:
查找cat命令在哪
[root@localhost bin]# which cat
/usr/bin/cat

whereis(特定目录查找文件)

whereis 文件名
例如:
查找ls命令在哪,以及他的说明文件
[root@localhost bin]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

locate和updatedb(建立数据库查找文件)

需要手动安装

yum install -y mlocate

安装完成输入updatedb更新数据库

locate [-ir] 文件名称
选项:
-i:忽略大小写
-r:后面可接正则表达式
例如:
[root@localhost bin]# locate ppp
/dev/ppp
/etc/ppp
/etc/ppp/ip-down
.......
...

find(指定目录查找文件)

find [path] [option] [action]
# path 表示要查找的起始路径,可以是绝对路径或相对路径;
# option 表示选项参数
# action 表示查找条件,可以是文件名、大小、权限等。
  1. 查找文件名包含指定字符串的文件
find /path/to/dir -name "*keyword*"

其中,/path/to/dir是指要查找的目录路径,*keyword*是指要查找的字符串,可以是部分字符串或完整字符串。
2. 查找指定类型的文件:

find /path/to/dir -type f -name "*.txt"

其中,-type f表示查找类型为文件的对象,*.txt表示查找扩展名为.txt的文件。
3. 查找指定时间范围内修改过的文件:

find /path/to/dir -type f -mtime -7

其中,-mtime -7表示查找最近7天内修改过的文件,可以根据需要修改时间范围。
4. 查找指定权限的文件:

find /path/to/dir -type f -perm 644

其中,-perm 644表示查找权限为644(即rw-r–r–)的文件,可以根据需要修改权限。
5. 查找指定大小的文件:

find /path/to/dir -type f -size +10M -size -100M

其中,-size +10M表示查找大小大于10MB的文件,-size -100M表示查找大小小于100MB的文件,可以根据需要修改文件大小范围。

Linux磁盘与文件系统管理

磁盘的组成与分区表

  1. 圆形碟片(主要记录数据的部分)
  2. 机械手臂与在机械手臂上的磁头(可擦写碟片上的数据)
  3. 主轴马达可以转动碟片让机械手臂的磁头在碟片上读写数据
  4. 扇区:最小的物理存储单位
  5. 柱面:将扇区组成一个圆就叫柱面

img

GPT分区表除了分区数量扩充较多之外,支持磁盘容量也可以超过2TB

MBR分区表中。第一个扇区最重要,里面有:主引导记录及分区表,其中MBR占有446B,分区表则占64B

df(列出文件系统的整体磁盘使用量)

df   [-hT] [目录或文件名]
选项:
-h:以人类能看得懂的方式展现内存使用量大小
-T:连同该磁盘分区的文件系统(xfs)名称也列出
例如:

>>查看系统中挂载情况及文件的特殊格式<<
[root@localhost ~]# df -hT
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  3.8G     0  3.8G    0% /dev
tmpfs                   tmpfs     3.9G     0  3.9G    0% /dev/shm
tmpfs                   tmpfs     3.9G   12M  3.8G    1% /run
........
...

du(查看文件系统的磁盘使用量)

du [-sh] 文件或目录名称
选项:
-s:仅列出当前文件或目录下的占用量
-h:以人类能看得懂的方式展现磁盘使用量
例如:

>>查看当前目录下每个目录所占用的容量<<
[root@localhost ~]# du -h
0       ./boot/efi/EFI/centos
0       ./boot/efi/EFI
0       ./boot/efi
2.4M    ./boot/grub2/i386-pc
3.2M    ./boot/grub2/locale
2.5M    ./boot/grub2/fonts
8.0M    ./boot/grub2
4.0K    ./boot/grub
118M    ./boot
118M    .

ln(硬链接)ln -s (软链接)

硬链接的作用是让多个文件名指向同一个数据块

软链接的作用是创建一个指向另一个文件或目录的指针

[root@linux csq]# touch f1    #创建一个f1文件
[root@linux csq]# ln f1 f2    #创建一个硬链接 f2
[root@linux csq]# ls
f1  f2
[root@linux csq]# ll
总用量 0
-rw-r--r--. 2 root root 0 1215 00:52 f1
-rw-r--r--. 2 root root 0 1215 00:52 f2
[root@linux csq]# ln -s f1 f3  #创建一个软链接(符号链接) f3
[root@linux csq]# ls
f1  f2  f3
[root@linux csq]# ll 
总用量 0
-rw-r--r--. 2 root root 0 1215 00:52 f1
-rw-r--r--. 2 root root 0 1215 00:52 f2
lrwxrwxrwx. 1 root root 2 1215 00:55 f3 -> f1
[root@linux csq]# echo "i love xuexi Linux" >> f1      #给f1文件写入一些字符串
[root@linux csq]# ls
f1  f2  f3
[root@linux csq]# cat f1    #查看f1
i love xuexi Linux
[root@linux csq]# cat f2    #查看f2
i love xuexi Linux
[root@linux csq]# cat f3    #查看f3
i love xuexi Linux 
# 删除f1之后,查看 f2 和 f3 的区别
# 删除f1查看链接情况
[root@linux csq]# rm -rf f1
[root@linux csq]# ls
f2  f3
[root@linux csq]# cat f3   # (软链接、符号链接)快捷方式失效了!
cat: f3: 没有那个文件或目录
[root@linux csq]# cat f2    # 硬链接还在
i love xuexi Linux

lsblk(列出系统上的所有磁盘列表)

lsblk [-fd] [device]
选项:
-f:同时列出该磁盘内的文件系统名称
-d:仅列出磁盘本身
例如:
[root@localhost ~]# lsblk -f
NAME            FSTYPE      LABEL           UUID                                   MOUNTPOINT
sda                                                                                
├─sda1          xfs                         12fbc8e4-fc2b-458d-87ad-15193057ca19   /boot
└─sda2          LVM2_member                 Og1mrC-J9QJ-pAWk-JoqC-TtQc-vgtG-N1TxSH 
  ├─centos-root xfs                         1206152a-83c1-491f-8532-0961a85b528c   /
  ├─centos-swap swap                        63e31067-fa5f-4db9-b699-b0a1f435ab69   [SWAP]
  └─centos-home xfs                         898bf541-3d93-485f-870d-ee678c593b15   /home
sdb                                                                                
└─sdb1          xfs                         a47cd75e-9efb-48d7-adcb-0e1fd3e7b3a2   
sr0             iso9660     CentOS 7 x86_64 2020-11-04-11-36-43-00    

blkid(列出设备的UUID等参数)

[root@localhost ~]# blkid
/dev/sdb1: UUID="a47cd75e-9efb-48d7-adcb-0e1fd3e7b3a2" TYPE="xfs" 
/dev/sda1: UUID="12fbc8e4-fc2b-458d-87ad-15193057ca19" TYPE="xfs" 
.........
...
# 这个标识符可以拿来作为挂载或是使用这个设备文件

fdisk(磁盘分区工具)

fdisk [选项] 磁盘
选项:
-l   列出所有硬盘的分区信息

交互式界面按键介绍:
d   删除一个分区
n   增加一个分区
p   打印分区表
q   不保存退出
w   保存退出

例如:

>>把sdb分为2个主分区,每个主分区5G<<
[root@localhost ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-104857599,默认为 2048)# 回车
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599):+5G  # +5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):n
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (10487808-104857599,默认为 10487808)# 回车
将使用默认值 10487808
Last 扇区, +扇区 or +size{K,M,G} (10487808-104857599,默认为 104857599):+5G # +5G
分区 2 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):w   # 保存退出
[root@localhost ~]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  50G  0 disk 
├─sdb1   8:17   0   5G  0 part 
└─sdb2   8:18   0   5G  0 part 

parted(磁盘分区工具)

parted的操作是即刻生效的,和fdisk不太一样,所以要想好怎么分

parted  [选项]  磁盘
选项:
-l  列出系统系统中所有的磁盘设备,和fdisk -l命令的作用差不多

交互式界面按键介绍:
mkpart: 创建一个分区
rm :删除分区
print:打印分区表
quit:退出程序

例如:

>>对磁盘 /dev/sdb分区<<
[root@localhost ~]# parted /dev/sdb 
(parted) mkpart primary 0 1000       #给主分区1 分配1000MB
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? Ignore                                           
(parted) print       # 打印分区表                                                     
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End     Size    Type     File system  标志
 1      512B   1000MB  1000MB  primary#(主分区)
(parted) q 

mkfs(磁盘格式化)

[root@localhost ~]# mkfs.   # 按两下tab可以列出系统支持的格式化文件系统有哪些
mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs 

语法:
mkfs.xxx  [选项] 磁盘名称
选项:
-f:如果设备已有文件系统,则需要使用这个-f来强制格式化
例如:

>>强制将/dev/sdb1格式化为xfs文件系统<<
[root@localhost ~]# mkfs.xfs -f /dev/sdb1 
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=61035 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=244140, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

xfs_repair文件系统校验

xfs_repair [-fn] 设备名称
选项:
-f:后面的设备其实是个文件不是实体设备
-n:单纯检查并不修改文件系统的任何数据
-L:选项用于为修复后的文件系统命名,修复可能需要一些时间,具体时间取决于文件系统的大小和损坏程度。
例如:

>>检查一下/dev/sdb1的文件系统<<
[root@localhost ~]# xfs_repair /dev/sdb1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
Phase 3 - for each AG...
Phase 4 - check for duplicate blocks...
Phase 5 - rebuild AG headers and trees...
Phase 6 - check inode connectivity...
Phase 7 - verify and correct link counts...
done
# 总共有七个检查流程

xfs_admin(修改XFS文件系统的UUID与Label name)

xfs_admin [-lu] [-L label] [-U uuid] 设备文件名
选项:
-l:列出这个设备的label name
-u:列出这个设备的UUID
-L:设置这个设备的Label name
-U:设置这个设备的UUID
例如:

>>设置/dev/sdb1的label name 为 sdb1_xfs 并测试挂载<<
[root@localhost ~]# xfs_admin -L sdb1_xfs /dev/sdb1 
writing all SBs
new label = "sdb1_xfs"
[root@localhost ~]# xfs_admin -l /dev/sdb1
label = "sdb1_xfs"
[root@localhost ~]# mount LABEL=sdb1_xfs /mnt/
[root@localhost ~]# df -hT /mnt/
文件系统       类型  容量  已用  可用 已用% 挂载点
/dev/sdb1      xfs   951M   33M  919M    4% /mnt

fsck.ext4处理ext4文件系统

fsck.xxx [-f] [-b 超级区块] 设备名称
选项:
-f:强制检查
-b:后面接超级区块的位置,如果超级区块损坏时,可以使用这个选项一般来说,超级区块备份在:1K区块放在8193,2K区块放在16384,4K区块放在32768
例如:

>>强制检查一次/dev/sdb1<<
[root@localhost ~]# fsck.xfs /dev/sdb1 
If you wish to check the consistency of an XFS filesystem or
repair a damaged filesystem, see xfs_repair(8).

tune2fs(修改ext4的label name和UUID)

tune2fs [-l] [-L Label] [-U uuid] 设备名称
选项:
-l:将superblock内的数据读出来
-L:修改LABEL name
-U:修改UUID
例如:

>>列出/dev/sdb2的label name之后,将他改成 sdb2_ext4<<
[root@localhost ~]# tune2fs -l /dev/sdb2 |grep name
Filesystem volume name:   <none>
[root@localhost ~]# tune2fs -L sdb2_ext4 /dev/sdb2 
tune2fs 1.42.9 (28-Dec-2013)
[root@localhost ~]# tune2fs -l /dev/sdb2 |grep name
Filesystem volume name:   sdb2_ext4

mount(文件系统挂载)

mount [-l] 
mount [-t 文件系统] LABEL='' 挂载点
mount [-t 文件系统] UUID=''  挂载点
mount [-t 文件系统] 设备文件名 挂载点
选项:
-l:单纯输入mount会显示目前挂载信息,加上-l可显示Label名称
-t:可以加上文件系统种类来指定欲挂载的类型,常见类型有:xfs、ext4
-o:后面可以接一些挂载时额外加上的参数。比如账号、密码、读写权限等
    ro,rw:挂载文件系统改成ro(只读),rw(可读可写)
    exec,noexec:是否允许此文件系统上拥有可执行的二进制文件
    defaults:默认值为:rw、suid、dev、exec、auto、nouser、and async
    remount:重新挂载
    loop:挂载镜像文件
    
例如: 

>>使用 UUID 的方式挂载/dev/sdb1设备<<
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: UUID="64db34dd-5bd5-49bb-93bb-cbe906de100b" TYPE="xfs" 
[root@localhost ~]# mount UUID="64db34dd-5bd5-49bb-93bb-cbe906de100b" /mnt/
[root@localhost ~]# df -hT /mnt/
文件系统       类型  容量  已用  可用 已用% 挂载点
/dev/sdb1      xfs   951M   33M  919M    4% /mnt

umount(解除挂载)

umount [-fl] 设备文件或挂载点
选项:
-f:强制卸载
-l:立刻卸载文件系统,比-f还强
例如:

>>解除刚刚挂载的/dev/sdb1设备文件<<
[root@localhost ~]# umount /mnt/

/etc/fstab(开机自动挂载)

vi /etc/fstab
[设备名称/UUID等]     [挂载点]   [文件系统参数]   [dump(该参数默认为0)]  [fsck(该参数默认为0)]

使用物理分区创建内存交换分区(mkswap,free,swapon,swapoff)

  1. 先进行分区操作
[root@localhost ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):n
Select (default p): 
Using default response p
分区号 (3,4,默认 3):
起始 扇区 (1953126-104857599,默认为 12439552):
将使用默认值 12439552
Last 扇区, +扇区 or +size{K,M,G} (12439552-104857599,默认为 104857599):+5G
分区 3 已设置为 Linux 类型,大小设为 5 GiB
命令(输入 m 获取帮助):W
[root@localhost ~]# lsblk |grep sdb3
└─sdb3            8:19   0     5G  0 part 
  1. 开始创建swap格式
# 创建swap格式
[root@localhost ~]# mkswap /dev/sdb3 
正在设置交换空间版本 1,大小 = 5242876 KiB
无标签,UUID=45f20c37-5e6f-491c-9e9b-bb2310ded78b
[root@localhost ~]# blkid /dev/sdb3 
/dev/sdb3: UUID="45f20c37-5e6f-491c-9e9b-bb2310ded78b" TYPE="swap" 
  1. 开始观察与加载查看
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        440M        6.9G         11M        266M        6.9G
Swap:          7.9G          0B        7.9G
# 我有7.6G的物理内存,使用了440M,剩余6.9G
# 266M被缓存使用,内存交换分区已经有了 7.9G
[root@localhost ~]# swapon /dev/sdb3 
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        442M        6.9G         11M        266M        6.9G
Swap:           12G          0B         12G     # 看到增加了吗
[root@localhost ~]# swapon -s  # 列出内存交换分区的设备有哪些
文件名                          类型            大小    已用    权限
/dev/dm-1                               partition       8257532 0       -2
/dev/sdb3                               partition       5242876 0       -3
[root@localhost ~]# swapoff /dev/sdb3   # 关闭内存交换分区
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        437M        6.9G         11M        267M        6.9G
Swap:          7.9G          0B        7.9G

使用文件创建内存交换分区(dd,mkswap,swapon,swapoff)

  1. 使用dd这个命令在/tmp下面增加一个128MB文件
[root@localhost ~]# dd if=/dev/zero of=/tmp/swap bs=1M count=128
记录了128+0 的读入
记录了128+0 的写出
134217728字节(134 MB)已复制,1.25053 秒,107 MB/秒
[root@localhost ~]# ll -h /tmp/swap 
-rw-r--r--. 1 root root 128M 418 16:58 /tmp/swap
  1. 使用mkswap将/tmp/swap这个文件格式化为内存交换分区的文件格式
[root@localhost ~]# mkswap /tmp/swap 
正在设置交换空间版本 1,大小 = 131068 KiB
无标签,UUID=07313d44-3844-46b0-809c-268f55f76e35
  1. 使用swapon将/tmp/swap启动
[root@localhost ~]# mkswap /tmp/swap 
正在设置交换空间版本 1,大小 = 131068 KiB
无标签,UUID=07313d44-3844-46b0-809c-268f55f76e35
[root@localhost ~]# swapon /tmp/swap 
swapon: /tmp/swap:不安全的权限 0644,建议使用 0600。
[root@localhost ~]# swapon -s # 列出内存交换分区的设备有哪些
文件名                          类型            大小    已用    权限
/dev/dm-1                               partition       8257532 0       -2
/tmp/swap                               file    131068  0       -3
  1. 使用swaoff关闭swap file,并设置自动启用
[root@localhost ~]# swapoff /tmp/swap 
[root@localhost ~]# swapon -s
文件名                          类型            大小    已用    权限
/dev/dm-1                               partition       8257532 0       -2

Linux系统常见的压缩命令

gzip/zcat

gzip [-dv]  文件名
选项:
-d:解压缩
-v:可以显示源文件/压缩文件的压缩比等信息
-1:压缩的更快
-9:压缩的更好
例如:

>>压缩文件ppp<<
[root@localhost ~]# gzip ppp

>>解压缩ppp<<
[root@localhost ~]# gzip -d ppp

>>查看压缩比<<
[root@localhost ~]# gzip -v ppp
ppp:     64.9% -- replaced with ppp.gz
zcat 文件名.gz
例如:
[root@localhost ~]# zcat ppp.gz   # 查看.gz压缩文件的内容
csq1 csq2 csq3 csq4 csq5 csq6

bzip2/bzcat

bzip2 [-dv] 文件名
选项:
-d:解压缩
-v:可以显示源文件/压缩文件的压缩比等信息
-1:压缩的更快
-9:压缩的更好
例如:

>>压缩文件ppp<<
[root@localhost ~]# bzip2 ppp

>>解压缩文件ppp<<
[root@localhost ~]# bzip2 -d ppp.bz2 

>>查看压缩比<<
[root@localhost ~]# bzip2 -v ppp 
  ppp:      2.969:1,  2.694 bits/byte, 66.32% saved, 291 in, 98 out.
bzcat 文件.bz2
例如:
[root@localhost ~]# bzcat ppp.bz2 
csq1 csq2 csq3 csq4 csq5 csq6 

xz/xzcat

xz [-dl] 文件名
选项:
-d:解压缩
-l:列出压缩文件的相关信息
-v:可以显示源文件/压缩文件的压缩比等信息
-1:压缩的更快
-9:压缩的更好
-k:保留原本的文件不删除
例如:

>>压缩文件ppp<<
[root@localhost ~]# xz ppp

>>解压缩ppp<<
[root@localhost ~]# xz -d ppp.xz

>>查看压缩比<<
[root@localhost ~]# xz -v ppp  # 压缩比很好,但是压缩的时间很慢
ppp (1/1)
  100 %               152 B / 291 B = 0.522 
xzcat 文件名.xz
例如:
[root@localhost ~]# xzcat ppp.xz 
csq1 csq2 csq3 csq4 csq5 csq6 

tar(打包命令)

选项:
-j:通过bzip2的支持进行压缩/解压缩,解压缩时文件最好为* . tar.bz2
-J:通过xz的支持进行压缩/解压缩,解压缩时文件最好为* . tar.xz
-z:通过gzip的支持进行压缩/解压缩,解压缩时文件最好为* . tar.gz
-c:建立打包文件,可以搭配-v来显示被打包的文件名
-t:查看打包文件的内容
-x:解包或压缩的功能,可以搭配-C指定解压在特定目录

压缩:tar -jcv -f filename.tar.bz2   要被压缩的文件或目录
查询:tar -jtv -f filename.tar.bz2  
解压缩:tar -jxv -f filename.tar.bz2  -C 欲解压缩目录

xfsdump(XFS文件系统备份)

xfsdump [-L S_label] [-M M_label]  [-l] [-f 备份文件] 待备份的文件
选项:
-L label:为备份文件添加标签
-M : xfsdump可以记录存储媒介的标头,这里可以填写此媒介的简易说明
-l level:指定备份级别,支持0-9级别
-f file:指定备份文件的路径和名称
-I:列出目前备份的信息状态
例如:

>>将完整备份的文件名记录成为 /srv/boot.dump<<
[root@localhost ~]# xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot
[root@localhost ~]# du -h /srv/boot.dump /boot/
118M    /srv/boot.dump
....
..
118M    /boot/

>>在boot里面添加一个大小为20M的文件再次备份一下<<
[root@localhost ~]# dd if=/dev/zero of=/boot/xinjia.dump bs=1M count=20
记录了20+0 的读入
记录了20+0 的写出
20971520字节(21 MB)已复制,0.208884 秒,100 MB/秒
[root@localhost ~]#  xfsdump -l 1 -L boot_all1 -M boot_all1 -f /srv/boot.dump1 /boot
[root@localhost ~]# du -h /boot  /srv/boot.dump1 
138M    /boot
21M     /srv/boot.dump1   # 第二次备份只备份了新添加的那个20MB大小的文件

xfsrestore(XFS文件系统还原)

xfsrestore [ -f 备份文件]  [ -L label ] [ -s ] 待恢复目录
选项:
选项于参数:
-I   跟xfsdump相同的输出,可查询备份数据,包括Label名称与备份时间等。
-f   指定备份数据的存储位置;
-L   就是session的Label name,可以用 -I查询到
-s   需要接某特定目录,就是仅恢复某一个文件或目录的意思
例如:
>>>简单恢复level 0 的文件系统到/tmp/boot目录下  (如果不知道-L的参数可以使用-I查看)<<<
[root@localhost ~]# mkdir /tmp/boot
[root@localhost ~]# xfsrestore -f /srv/boot.dump -L boot_all /tmp/boot/
>>>恢复level 1 的文件系统到 /tmp/boot2目录下<<<
[root@localhost ~]# xfsrestore -f /srv/boot.dump1 -L boot_all1 /tmp/boot2
[root@localhost ~]# du -h /tmp/boot2
20M     /tmp/boot2

dd(随机数据生成,用法不止这个)

dd if="input_file"  of="output_file"  bs="block_size" count="number"
选项:
if:就是输入文件 也可以是设备
of:就是输出文件 也可以是设备
bs:设置一个block的大小,若为指定则默认是512Bytes(一个扇区大小)
count:多少个bs的意思
例如:
>>>生成一个大小为1MB的随机数据文件,并将其保存到/home/csq/suijifile文件<<<
[root@localhost ~]#  dd if=/dev/random of=/home/csq/cuijifile bs=1M count=1
记录了0+1 的读入
记录了0+1 的写出
115字节(115 B)已复制,0.00060674 秒,190 kB/秒

>>>生成一个大小为1MB的空文件,并将其保存为/home/csq/kongfile文件<<<
[root@localhost ~]#  dd if=/dev/random of=/home/csq/kongfile bs=1M count=1
记录了0+1 的读入
记录了0+1 的写出
88字节(88 B)已复制,0.000269978 秒,326 kB/秒

>>>将sda1磁盘内容复制到sdb4总并挂载出来<<<
[root@localhost ~]# dd if=/dev/sda1 of=/dev/sdb4 
记录了2097152+0 的读入
记录了2097152+0 的写出
1073741824字节(1.1 GB)已复制,70.3215 秒,15.3 MB/秒
[root@localhost ~]#  xfs_repair -L /dev/sdb4   # 修复文件系统
[root@localhost ~]# uuidgen
5194e776-4295-4785-a433-fd7078feea2f
[root@localhost ~]# xfs_admin -U 5194e776-4295-4785-a433-fd7078feea2f /dev/sdb4  # 将修复后的文件系统重命名为指定的UUID
[root@localhost ~]# mount /dev/sdb4  /mnt/
[root@localhost ~]# xfs_growfs /mnt/    # 对/mnt目录下的文件系统进行扩容
[root@localhost ~]# df -h /mnt/
文件系统        容量  已用  可用 已用% 挂载点
/dev/sdb4       5.0G  171M  4.9G    4% /mnt
[root@localhost ~]# umount  /mnt/

cpio(文件归档和备份工具)

cpio -ovcB   > [ file | device ]               <== 备份
cpio -ivcd  < [ file | device ]               <== 还原
cpio -ivct   < [ file | device ]               <== 查看
选项与参数:
-i:解包文件,即将打包文件还原成原始的文件和目录。
-o:打包文件,即将多个文件和目录打包成一个单独的文件。
-B:让默认的blocks可以增加到5120字节,默认是512字节,这样做的好处就是可以让大文件的存储速度加快
-d:自动创建目录,即在解包时自动创建目标目录。
-v:显示详细信息,即在打包或解包时显示更多的信息。
-t:列出文件列表,即显示打包文件中包含的文件和目录列表。
-c:一种较新的 portable format 方式存储
例如:
>>将/boot备份到/tmp/beifen.cpio文件中<<
[root@localhost tmp]# find /boot |cpio -ovcB > /tmp/beifen.cpio
[root@localhost tmp]# ll -h /tmp/beifen.cpio 
-rw-r--r--. 1 root root 138M 418 20:30 /tmp/beifen.cpio

>>将他在/root/目录下解开<<
[root@localhost ~]# cpio -idvc  < /tmp/boot.cpio  # 首先你得在root目录下才行
[root@localhost ~]# du -h boot/
118M    boot/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/431855.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

青藤首提“业安融合”理念,正式发布先进云安全方案CNAPP

4月18日&#xff0c;以“云时代&#xff0c;安全变了”为主题的2023年云安全高峰论坛在北京举行。会上&#xff0c;青藤首次提出“业安融合”理念&#xff0c;正式发布先进云安全方案CNAPP。 中国全面进入云和数字化时代 当前&#xff0c;全球已进入数字经济时代&#xff0c;…

物联感知产品如何助力企业实现智能化转型?

如果您的企业想要实现设备全生命周期管理、设备信息管理、设备监控和数据处理等功能&#xff0c;想要进行智能化数字转型&#xff0c;不妨了解一下物联感知。 物联感知产品是利用物联网技术&#xff0c;实现对物理世界的感知、联接和智能化。物联感知产品一般由四个部分组成&a…

python中的pyc文件了解一下?

基本说明 pyc 文件是 Python 编译过的字节码文件。当你运行一个 Python 程序时&#xff0c;Python 解释器首先将源代码&#xff08;通常是 .py 文件&#xff09;编译成字节码。这个字节码是一种低级的、与平台无关的代码&#xff0c;它可以被 Python 虚拟机&#xff08;Python…

TCP的连接管理机制(三次握手与四次挥手)

目录为啥要三次握手与四次挥手三次握手syn 与 ack三次握手具体流程四次挥手注意为啥要三次握手与四次挥手 相比于UDP, TCP是有连接的, 这个连接就体现在这了. 三次握手就是TCP建立连接, 四次挥手就是TCP断开连接. 三次握手 握手是指通信双方进行网络交互. 三次握手就相当于…

记录上传文件异常 /tmp/tomcat... (No space left on device)

一&#xff0c;问题描述 用postman调用上传接口&#xff0c;基本每两次调用会有一次报错&#xff0c;如下 {"timestamp": "2023-04-11T03:00:15.4690000","status": 500,"error": "Internal Server Error","exceptio…

【活动】想对大学的自己说……

写在前面&#xff1a; 时间过得真的很快&#xff0c;眨眼间我们已经走过了这么多年的大学时光。回想起来&#xff0c;我们曾经有过无数的欢笑和泪水&#xff0c;有过无数的成功和挫败&#xff0c;但是这些经历都让我们变得更加坚强和成熟。如果现在有机会回到大学时光&#xff…

【LInux】进程间通信 -- 匿名管道

前言 我们在学习进程管理&#xff0c;进程替换时&#xff0c;都强调了进程的独立性&#xff0c;那进程间通信是什么&#xff1f;这好像和进程的独立性相矛盾吧&#xff1f; 那么今天&#xff0c;我们就来学习进程间通信&#xff0c;和第一种通信方式 – 管道 文章目录 前言一. …

高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务

目录 前言一、nohup命令详解1-1、nohup命令介绍1-2、语法格式1-2-1、基础语法介绍1-2-2、执行脚本文件1-2-3、执行python文件1-2-4、拓展延申&#xff1a;在服务器上运行后台进程1-2-5、nohup和&的区别 二、进程查看2-1、jobs命令&#xff08;基本不用&#xff09;2-2、ps命…

Android进阶宝典—在Compose中跳转Fragment

使用场景 我们原有的项目中基本采用的是单Activity架构&#xff0c;页面之间的跳转都是通过Navigation进行的&#xff0c;举个简单的例子。 在这种单Activity架构模式下&#xff0c;有一天我们想把MainActivity或者BFragment使用Compose重构&#xff0c;这个时候我们就需要去…

PasteSpider软件优势介绍

PasteSpider采用.netcore编写&#xff0c;运行于linux服务器的docker/podman里面&#xff0c;涉及的技术或者工具有podman/docker,registry,nginx,top,ssh,git,svn等。 PasteSpider可以更好的为你执行服务的升级和维护工作。支持集群模式安装&#xff0c;也支持单例模式运行。…

如何为 Apple 官方 SwiftUI 示例中的图表元素加上首显动画?

0. 概览 在 Apple 官方教程示例 Animating Views and Transitions 中,苹果为我们展示了如何为 SwiftUI 中的各种视图添加动画和过渡效果。 在示例的最后,我们在完成 3 种不同数据类型(Elevation, Heart Rate, Pace)切换的同时,顺面收获了美美的图表元素动画效果: 不过,…

科研方向与个人思考

文章目录 关于科研选题与方法的若干思考如何选题选题tips确定研究问题之后如何读论文——与一篇优秀论文作者的博弈阅读论文的技巧代码实现过程中成果发表四步走&#xff1a;科技论文的书写顺序学会利用工具科研的正确姿势 研究生时间线个人思考入门一个领域的步骤&#xff08;…

【有功-无功协调优化】基于改进多目标粒子群优化算法(小生境粒子群算法)的配电网有功-无功协调优化研究(Matlab代码实现)

&#x1f4a5; &#x1f4a5; &#x1f49e; &#x1f49e; 欢迎来到本博客 ❤️ ❤️ &#x1f4a5; &#x1f4a5; &#x1f3c6; 博主优势&#xff1a; &#x1f31e; &#x1f31e; &#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 …

Windows 安装 GDAL C++库

Windows 安装 GDAL C库1. 方法1&#xff1a;下载配置网友编译的GDAL版本1.1 下载1.2 配置1.3 测试1.4 缺点2. 方法2&#xff1a;自己编译3. 参考1. 方法1&#xff1a;下载配置网友编译的GDAL版本 1.1 下载 CSDN: GDAL&#xff0c;geos联合编译的库&#xff0c;版本为1.8.0&am…

VMware虚拟机搭建

网络步骤 VMWARE虚拟机NAT模式上网设置 VM虚拟机设置 虚拟机全局设置 启动虚拟机选择【虚拟网络编辑器】 如果需要管理员权限点【更改设置】&#xff0c;没有提示这忽略这一步 选择NAT模式&#xff0c;更改下面的子网IP&#xff0c;改成你需要的任何一个子网网段&#xff08;…

KDZD608屏蔽服效率测试仪

一、产品概述 KDZD608型屏蔽服效率试验装置&#xff08;带电作业用屏蔽服屏蔽效率试验装置&#xff09;是对屏蔽服进效率试验的专用设备&#xff0c;广泛用于电力系统、生产厂家和科研单位不可缺少的检测设备。KDZD608型屏蔽服效率试验装置根据最新国家标GB6568.2-86《带电作业…

9.含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度

说明书 MATLAB代码&#xff1a;含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度 关键词&#xff1a;冰蓄冷空调 CCHP-MG 多时间尺度优化 冷热电联供 参考文档&#xff1a;《含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度》完全复现 仿真平台&#xff1a;MATLAB yal…

算法学习day57

算法学习day57 1.力扣647. 回文子串1.1 题目描述1.2分析1.3 代码 2.力扣 516.最长回文子序列2.1 题目描述2.2 分析2.3 代码 3.参考资料 1.力扣647. 回文子串 1.1 题目描述 题目描述&#xff1a; 给定一个字符串&#xff0c;计算这个字符串中有多少个回文子串。 具有不同开始…

TenserRT(一)模型部署简介

第一章&#xff1a;模型部署简介 — mmdeploy 0.12.0 文档 pytorch.onnx.export方法参数详解&#xff0c;以及onnxruntime-gpu推理性能测试_胖胖大海的博客-CSDN博客 我们来谈谈ONNX的日常 - Oldpan的个人博客 初识模型部署 训练&#xff1a;网络结构&#xff08;深度学习框…

【Windows】更换笔记本键盘操作

目录 一、拆旧 1、电脑保持关机状态 2、拆下电池 3、拧开中间这块区域的螺丝 4、拿键盘进行对照&#xff0c;找到对应的固定键盘的螺丝的位置&#xff0c;拧开 5、直接撬起原本的键盘&#xff0c;注意不要扯到下面的排线&#xff0c;小心点 二、换新 6、换新键盘&#…