chgrp [选项] 新组名 文件名
-R :递归第修改目录及其下的所有文件和子目录的所属组
例如:
chgrp -R group file # 将目录dir1及旗下所有文件和子目录所属组修改为group1
chmod [选项] 模式 文件名
选项:
-R:递归第修改目录及其下的所有文件和子目录的权限
模式:
r:4 w:2 x:1(字符数字两种都可)
例如:
chmod 777 wenjian.txt
chmod rwx wenjian.txt
chmod -r wenjian.txt
chown [选项] 属主名 文件名
选项:
-R:递归第修改目录及其下的所有文件和子目录的所属主(属主是第一个,属组是第二个)
例如:
chown -R root csq
常规文件分为:纯文本文件(*.txt),二进制文件(例如cat),数据文件(特点就是使用cat读取会乱码)
目录:第一个属性为【d】例如:drwxrwxrwx
链接文件:第一个属性为【l】例如:lrwxrwxrwx
设备文件:
数据接口文件:第一个属性为【s】
数据输送文件:第一个属性为【p】
相对路径:路径写法【不是由 / 写起的】,例如由【/usr/share/doc】要到【/usr/share/man】下面,可以执行【cd …/man】
绝对路径:路径写法【一定由根目录写起】例如:/etc/systemctl/selinux
cd #切换目录命令
./ #当前目录
cd .. # 返回上一级目录
cd [相对路径或绝对路径]
例如:
[root@localhost /]# pwd
/
mkdir [-mp] 目录名称
选项:
-m:设置文件的权限
-p:递归创建
例如:
mkdir -m 711 test2
mkdir -p /test1/test2/test3 # 建立多层目录
rmdir [-p] 目录名称
选项:
-p:连接上层空的目录一起删除
例如:
rmdir -p /test1/test2/test3 # 如果三个目录里面都没东西就会全部删除
$PATH是一个环境变量,用于指定系统可执行文件的路径。
[root@localhost sysconfig]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
ls [-ahltSR] 文件名或目录名称
选项:
-a:全部的文件,连同隐藏文件(.开头的文件)一并列出来
-h:将文件容量以人类能看懂的方式展现出来
-l:详细信息显示,包含文件属性权限
-t:按时间排序,而不是文件名
-S:以文件容量大小排序
-R:连同子目录一起列出来
例如:
[root@localhost ~]# ls -a /etc/yum.repos.d/
. .. aliyun.repo local.repo
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 [-rvf] 文件或目录
选项:
-r:递归删除
-f:不显示警告信息
-v:显示删除过程
例如:
[root@localhost ~]# rm -rvf /media/*
已删除"/media/aliyun.repo"
已删除"/media/CentOS-7-x86_64-DVD-2009.iso"
已删除"/media/local.repo"
mv [-f] 文件或目录
选项:
-f:强制移动,不会询问
例如:
# 改名
[root@localhost ~]# mv anaconda-ks.cfg ppp
# 移动目录
[root@localhost ~]# mv csq /etc/
[root@localhost ~]# basename /etc/yum.repos.d/
yum.repos.d
[root@localhost ~]# dirname /etc/sysconfig/
/etc
cat [-n] 文件内容
选项:
-n:打印行号,连同空白行也会有行号
例如:
查看ppp文件,并显示行号
[root@localhost ~]# cat -n ppp
1 #version=DEVEL
2 # System authorization information
........
...
倒着显示ppp文件
[root@localhost ~]# tac ppp
%end
......
....
查看ppp文件并显示行号
[root@localhost ~]# nl ppp
1 #version=DEVEL
2 # System authorization information
3 auth --enableshadow --passalgo=sh
[root@localhost ~]# more /etc/man_db.conf
怎么翻页?:
Enter : (代表下一页)
/字符串 : 代表在这个显示内容中,向下查找字符串这个关键字
:f : 立刻显示出文件名已经目前显示的行数
q : 立刻离开more
b或ctrl + b :代表往前翻页
[root@localhost ~]# less /etc/man_db.conf
怎么翻页?:
[pagedown]:向下反动一页
[pageup]:向上翻动一页
/字符串:向下查找字符串
n:重复前一个查找(/字符串,和?字符串使用)
g:前进到数据的第一行
G:前进到数据的最后一行
q:离开less
head [-n] [文件内容]
选项:
-n:后面接数字,代表显示几行的意思
例如:
查看man_db.conf文件的第一行内容
[root@localhost ~]# head -n 1 /etc/man_db.conf
选项:
-n:后面接数字,代表显示几行的意思
-f:表示持续刷新显示后面所接的文件中的内容,按ctrl + c结束
例如:
持续检测文件ppp的内容
[root@localhost ~]# tail -f ppp
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 新文件名字
[root@localhost ~]# umask 022
[root@localhost ~]# umask
0022
例如,如果umask的值为022,那么新创建的文件的权限掩码就是644(666减去022),新创建的目录的权限掩码就是755(777减去022)。
chattr [+-=] [ai] 文件或目录名称
选项:
a:当设置了a之后,这个文件将只能增加数据,而不能删除也不能修改数据,只有root能设置这个属性。
i:可以让一个文件【无法删除,改名,以及设置链接】,对于系统安全有相当大的助益。
例如:
[root@localhost ~]# chattr +i ppp
[root@localhost ~]# rm -rf ppp
rm: 无法删除"ppp": 不允许的操作
lsattr [-Ra] 文件或目录
选项:
-R:连同子目录的数据也一并列出来
-a:将隐藏文件的属性也显示出来
例如:
[root@localhost ~]# lsattr ppp
----i----------- ppp
SUID权限表示当普通用户执行该文件时
,会以文件所有者的身份来运行该文件
SGID权限表示一个目录中创建的文件的所属组将会与该目录的所属组相同,这通常用于多个用户需要共享文件的情况下
,可以将文件和目录的所属组设置为相同的组,以便多个用户进行文件共享
SBIT权限表示在一个目录中,只有文件的所有者、目录所有者或root用户才能够删除该文件
注意:SUID不是用在目录上,SBIT不是用在文件上
例如:
可以让普通用户能够执行yum这个命令
[root@localhost bin]# chmod 4755 yum ;ls -l yum
-rwsr-xr-x. 1 root root 801 10月 2 2020 yum
file 文件名
例如:
查看/home是什么文件
[root@localhost bin]# file /home
/home: directory # 是目录文件
which 执行文件(例如:cat,more)
例如:
查找cat命令在哪
[root@localhost bin]# which cat
/usr/bin/cat
whereis 文件名
例如:
查找ls命令在哪,以及他的说明文件
[root@localhost bin]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
需要手动安装
yum install -y mlocate
安装完成输入updatedb更新数据库
locate [-ir] 文件名称
选项:
-i:忽略大小写
-r:后面可接正则表达式
例如:
[root@localhost bin]# locate ppp
/dev/ppp
/etc/ppp
/etc/ppp/ip-down
.......
...
find [path] [option] [action]
# path 表示要查找的起始路径,可以是绝对路径或相对路径;
# option 表示选项参数
# action 表示查找条件,可以是文件名、大小、权限等。
查找文件名包含指定字符串的文件
: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的文件,可以根据需要修改文件大小范围。
GPT分区表除了分区数量扩充较多之外,支持磁盘容量也可以超过2TB
MBR分区表中。第一个扇区最重要,里面有:主引导记录及分区表,其中MBR占有446B,分区表则占64B
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 [-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 .
硬链接的作用是让多个文件名指向同一个数据块
软链接的作用是创建一个指向另一个文件或目录的指针
[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 12月 15 00:52 f1
-rw-r--r--. 2 root root 0 12月 15 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 12月 15 00:52 f1
-rw-r--r--. 2 root root 0 12月 15 00:52 f2
lrwxrwxrwx. 1 root root 2 12月 15 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 [-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
[root@localhost ~]# blkid
/dev/sdb1: UUID="a47cd75e-9efb-48d7-adcb-0e1fd3e7b3a2" TYPE="xfs"
/dev/sda1: UUID="12fbc8e4-fc2b-458d-87ad-15193057ca19" TYPE="xfs"
.........
...
# 这个标识符可以拿来作为挂载或是使用这个设备文件
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的操作是即刻生效的,和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
[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 [-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 [-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.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 [-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 [-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 [-fl] 设备文件或挂载点
选项:
-f:强制卸载
-l:立刻卸载文件系统,比-f还强
例如:
>>解除刚刚挂载的/dev/sdb1设备文件<<
[root@localhost ~]# umount /mnt/
vi /etc/fstab
[设备名称/UUID等] [挂载点] [文件系统参数] [dump(该参数默认为0)] [fsck(该参数默认为0)]
[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
# 创建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"
[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
[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 4月 18 16:58 /tmp/swap
[root@localhost ~]# mkswap /tmp/swap
正在设置交换空间版本 1,大小 = 131068 KiB
无标签,UUID=07313d44-3844-46b0-809c-268f55f76e35
[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
[root@localhost ~]# swapoff /tmp/swap
[root@localhost ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/dm-1 partition 8257532 0 -2
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 [-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 [-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
zip [选项] [压缩文件名] [文件或目录名]
选项:
-r:递归压缩子目录中的文件。
-q:安静模式,不输出任何消息。
-m:压缩后删除原文件。
-j:仅压缩文件,不包括目录。
-u:更新压缩文件,仅添加新文件和已修改的
例如:
>>将"directory/" 和 “csq”及其所有子目录和文件压缩成一个名为"compressed.zip"的zip文件。<<
zip -r compressed.zip directory/ csq/
unzip [选项] 文件名.zip [-d 目标目录]
选项:
-q:安静模式,不输出任何信息。
-o:覆盖已有的文件。
-j:只解压缩文件,不创建目录。
-d 目标目录:指定解压缩后的文件存放的目录,默认为当前目录。
例如:
>>将文件file.zip解压缩到目录/home/user/下<<
unzip file.zip -d /home/user/
选项:
-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 [-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 [ -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 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 -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 4月 18 20:30 /tmp/beifen.cpio
>>将他在/root/目录下解开<<
[root@localhost ~]# cpio -idvc < /tmp/boot.cpio # 首先你得在root目录下才行
[root@localhost ~]# du -h boot/
118M boot/