一、磁盘分区的配置
mbr与gpt的区别:参考资料网站 https://zhidao.baidu.com/question/457998790987659965.html
二、什么是LVM
LVM(逻辑卷管理程序),是Linux环境下对磁盘分区进行管理的一种机制。
参考资料网站 https://baike.baidu.com/item/LVM/6571177?fr=aladdin
三、什么是挂载点
一棵大树(根目录/)有很多树枝(目录,挂载点),每个树枝上都挂着一个箱子(分区,存储空间)。
四、基础命令
0.改变文件属性与权限:
chgrp:改变文件所属群组 chgrp 群组名 目录或文件
chown:改变文件拥有者 chown 账号名[账号名:群组名] 目录或文件
chmod:改变文件的权限 chmod xyz[ugoa +-= rwx] 目录或文件
1.文件与目录的监视: ls [-adl] [--full-time] [--time=atime,ctime] 文件名或目录名称
-a : 全部文件,连同隐藏文件
-d : 仅列出目录
-l : 包含属性和权限。
full-time : 显示完整时间
atime(access time),ctime(change time),mtime(modify time)
2.复制: cp [-aipr] 来源文件或目录 目标文件或目录
-a :所有全部复制,跟-p有点像
-i :复制时会询问是否复制
-p :文件属性一起复制(权限,用户,时间)
-r :复制目录时使用,不改变权限就用-a
3.移除: [\]rm [-fir] 文件或目录
-f:忽略不存在的文件,不询问
-i:复制时会询问是否移除
-r:删除目录时使用
\:不询问直接操作
4.移动或更名: mv [-fiu] 来源文件或目录 目标文件或目录
-f:文件存在,不询问直接覆盖
-i:文件存在,询问是否覆盖
-u:文件存在,只在来源文件比较新时才覆盖。-
5.取路径的文件名/目录名: basename/dirname 路径
6.文件内容查阅:
cat [-n] 文件 连同空白行打印出行号
tac [-n] 文件 从最后一行到第一行开始打印
less/more 文件 可以对显示出来的内容进行翻页。
head/tail [-n number] 文件 取前面/后面几行,默认显示10行。
od [-t TYPE] 文件 非纯文本档的显示。
7.修改文件时间或建新文件: touch [-td] 文件
-d:修改日期: touch -d "2 days ago" 文件
-t:修改时间
8.文件权限查看: umask [-S]
-S:已字符形式显示,无者数字形式显示
9.文件修改默认权限: umask [xyz]
“ [ ] ”中的数字是减去权限。比如此群主默认权限是666,设置002后,变成664。
10.配置文件隐藏属性: chattr [+-=][ai] 文件或目录
+:增加一个特殊参数
-:减少一个特殊参数
=:设定特殊参数
a:只能增加
i:不能做任何变动
11.显示文件隐藏属性: lsattr [-adR] 文件或目录
-a:将隐藏文件的属性显示出
-d:仅列出目录本身的属性
-R:连同子目录的数据也一并列出
12.文件特殊权限:
SUID:只对二进制程序有效;出现在文件拥有者的x权限上;执行者有x的权限;仅在执行该程序的过程中有效;执行者将具有该程序拥有者的权限。
SGID:对文件或目录都可以设定;出现在群组的x权限上;执行者对程序有x的权限;执行者在执行的过程中获得该群组的支持
SBIT:只对目录有效;用户对此目录具有w,x权限时,在此目录下创建文件或目录,只有自己和root有权利删除该文件;无法删除其他人的文件。
13.文件特殊权限设定:
SUID:4 u+s
SGID:2 g+s
SBIT:1 o+t
14.观察文件类型: file 文件
15.命令文件名的搜寻: which [-a] 命令
-a:列出所有可以找到的指令。
16.文件名的搜寻1: whereis [-lbmsu] 文件或目录名 ps:只在几个特定目录进行搜索
-l:搜寻了哪几个目录
-b:只找二进制binary文件
-m:只找说明文件manual路径下的文件
-s:只找source来源文件
-u:搜寻不在上面三个项目的其他特殊文件。
16-2.文件名的搜寻2: locate [-icl] 文件或目录名 ps:查找前先进行更新命令 updatedb
-i:忽略大小写的差异
-c:不输出文件名,仅计算找到的文件数量
-l:仅输出几行的意思,例如输出5行则是 -l 5
17.文件名的搜寻3: find [PATH] [option] [action] ps:全盘进行搜索,很操硬盘,无法必要少用
PATH:路径,比如“/”,“/home”
option:选项与参数
action:行为
find PATH -mtime [n,+n,-n] 【第n天的当天内,n天之前,n天之内】被改动过的文件
find PATH -newer file 列出比file文件还要新的文件名
find PATH [-user,-group] 使用者账号,群组名
find PATH [-nouser,-nogroup]
find PATH [-uid,-gid] n n为数字
find PATH -name filename filename可以是广泛匹配 ,“*部分文件名*”
18.更新磁盘内容。 sync
19.列出文件系统的整体磁盘使用量: df [-ahi] [目录或文件名]
-a:列出所有的文件系统
-h:以较易阅读的 GB MB KB等格式自行显示
-i:不用显示磁盘容量,而以inode的数量来显示
20.评估文件系统的磁盘使用量: du [-as] 文件或目录
-a:列出所有的文件与目录容量
-s:列出总量,而不列出每个个别的目录占用的容量
21.建立实体链接: ln [-s] 源文件 目标文件
-s:有s就是symbolic link(类似快捷方式),无s就是hard link。
22.列出系统上的所有磁盘列表: lsblk [-ip] [device]
-i:使用ASCII的线段输出,不要使用复杂的编码
-p:列出改装置的完整文件名!而不是仅列出最后的名字而已
MAJ:MIN:主要:次要装置代码
23.列出装置的UUID等参数: blkid
24.列出磁盘的分区表类型与分区信息: parted device_name print
25.磁盘分区: gdisk或fdisk 装置名称
26.更新linux核心的分区表信息: partprobe -s
27.磁盘格式化:mkfs.xfs [-f] 装置名称
-f:强制格式化
28.XFS文件系统检验: xfs_repair [-fnd] 装置名称
-f:后面的装置是个文件而不是实体装置
-n:仅做检查不做修改
-d:进入单人模式时,针对根目录进行检查与修复,务必随便使用
29.挂载文件系统:
mount -a
mount [-l]
mount LABEL=''" 挂载点
mount UUID=''" 挂载点
mount 装置文件名 挂载点
-a:依照配置文件/etc/fstab的数据将所有未挂载的磁盘都挂载上来
-l:单纯的输入mount会显示目前挂载的信息。有 -l 可增列Label名称
30.从新挂载目录(remount)并加入参数rw与auto: mount -o remount,rw,auto 挂载点
31.卸除装置文件或挂载点: umount [-fn] 装置文件或挂载点
-f:强制卸除
-n:不更新/etc/mtab情况下卸除
32.磁盘/文件系统参数修订: mknod 装置文件名 [bcp] [Major] [Minor]
b:设定装置名称成为一个周边储存设备文件,例如磁盘
c:设定装置名称成为一个周边输入设备文件,例如鼠标
p:设定装置名称成为一个FIFO文件
Major:主要装置代码
Minor:次要装置代码
33.修改XFS文件系统的UUID与Label name: xfs_admin [-lu] [-L label_name] [-U uuid] 装置文件名
-l:列出这个装置的label name
-u:列出这个装置的UUID
-L:设定这个装置的Label name
-U:设定这个装置的UUID
34.产生新的UUID: uuidgen
35.挂载光盘/DVD映像文件: mount -o loop 映像文件 挂载点
36.开机挂载/etc/fstab级/etc/mtab:
/etc/fstab的文件内容:[装置/UUID等] [挂载点] [文件系统] [文件系统参数] [dump] [fsck]
36.特殊装置loop挂载:
1. dd if=/dev/zero of=/srv/loopdev bs=1M count=512 创建一个大文件(/srv/loopdev),块复制。
2. ll -h /srv/loopdev
3. mkfs.xfs -f /srv/loopdev
4. blkid /srv/loopdev
5. mount -o loop UUID="取上一步查出的值" /mnt
6. df /mnt
7. nano /etc/fstab
8. /srv/loopdev /data/file xfs default,loop 0 0
9. umount /mnt
10. mkdir /data/file
11. mount -a
12. df /data/file
总结:分区 -- 格式化 -- 挂载 -- 设置/etc/fstab -- 卸载挂载点 -- 创建新的挂载点 -- 重新挂载所有
37.利用gdisk/fdisk创建新分区槽(一下例子已创建swap为例):
1. fdisk /dev/sda
2. 建立新分区槽(n) -- 输入分区槽大小(?G) -- 生成新的分区槽
3. partprobe 强制更新分区槽
4. lsblk 查看新的分区槽
5. mkswap /dev/vda6 创建swap格式
6. blkid /dev/vda6
7. free 观察分区槽剩余容量
8. swapon /dev/vda6 启动swap。 关闭swap的命令是:swapoff
9. free
10. swapon -s
11. nano /etc/fstab
12. UUID=''' swap swap default 0 0
总结: fdisk建立新分区槽 -- partprobe强制更新分区表 -- mkfs.xfs -f格式化 -- mkdir创建挂载点 -- nano /stc/fstab增加一行配置 -- mount -a重新挂载所有。
38.利用GNU的parted进行分区行为: parted [装置即入径] [指令 [参数]]
指令功能:
新增分区:mkpart [ primary | logical | extended ] [ ext4 | vfat | xfs ] 开始 结束
显示分区:print
删除分区:rm [ partition ]
1. parted /dev/vda unit mb print
2. parted /dev/vda mkpart primary fat32 36.0GB 36.5GB (最后两个参数是分区的起始点和结束点)
3. parted /dev/vda print
4. partprobe
5. lsblk /dev/vda7
6. mkfs -t vfat /dev/vda7
7. blkid /dev/vda7
8. nano /etc/fstab
UUID="上一步骤查到的UUID" /data/win vfat defaults 0 0
9. mkdir /data/win
10. mount -a
11. df /data/win
39.了解下这6个文件系统是什么:
boot sector , 引导扇区,启动区
superblock , 记录此filesystem的整体信息,包括inode/block的总量、使用量、剩余量,以及filesystem的格式与相关信息
inode bitmap , 索引节点位图,记录使用与未使用的inode。
block bitmap , 块的位图,记录使用与未使用的block。
inode table , 记录文件属性:该文件的存取模式;该文件的拥有者与群组;该文件的容量;该文件的atime,ctime,mtime,SUID;该文件真正内容的指向。
data block , 存放文件内容数据。
40.gzip压缩: gzip [-vdc#] 文件名
-v:可以显示出原文件/压缩文件的压缩比等信息(占比源文件多少)
-d:解压缩
-c:gzip -c 文件名 > 文件名.gz 保留源文件
-#:为数字的意思,默认是6。 数值越高压缩越慢,压缩比越好。
41.在压缩文件中找出某个关键词的位置: zgrep -n '关键词' 压缩文件
42. cat/more/less读取纯文本文档。 zcat/zmore/zless读取压缩后的压缩文件
43.bzip2压缩: xz/bzip2 [-vdc#] 文件名
同上
44.打包指令:
压缩: tar -jcv -f 待建立的新文件名 要被压缩的文件或目录名称
查询: tar -jtv -f 已有的tar文件名
解压缩: tar -jxv -f 已有的tar文件名 -C 预解压缩的目录
-j:通过bzip2的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2 (-z:gzip ,*.tar.gz ; -J:xz, *.tar.xz)
-c:建立打包文件
-t:查看打包文件的内容含有哪些文件名
-x:解打包或解压缩的功能
-v:在压缩/解压缩的过程中,将正在处理的文件名属性显示出来
-C:用于解压缩至指定目录
备份: time tar -zpcv -f 备份的文件名 被备份的文件名
-time:会显示程序运作的时间
-p:保留备份数据的原本权限与属性
-P:保留绝对路径,即允许备份数据中含有跟目录存在。
45.仅解打包文件里的单一文件: tar -jxv -f 已有的tar文件名 预解的文件
46.打包某目录,但是不含该目录下的某些文件: tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2 /etc /root
47.仅备份比某个时刻还要新的文件: tar -jcv -f 备份的文件名 --newer[-mtime]="2019/11/12" 被压缩的文件名
48.将文件备份到磁带机: tar -cv -f 磁带机名 被打包的文件
联系题: -time tar -jpcv -f /backups/backup-system-20150701.tar.bz2 --exclude=/home/loop* --exclude=/root/*.bz2.* /etc/* /home/* /var/spool/mail/* /var/spool/cron/* /root
49.备份xfs系统文件:
xfsdump [-L S_label] [-M M_label] [-l #] [-f 备份文件名] 被备份文件名
-L:xfsdump会记录每次备份的session表头,这里可以填写针对此文件系统的简易说明
-M:xfsdump 可以记录储存的标头,这里可以填写此媒体的简易说明
-l:指定等级0-9,(默认为0,即完整备份)
-f:有点类似tar。后面接产生的文件,亦可接例如 /dev/st0装置文件名或其他一般文件名等
xfsdump -I
-I:从/var/lib/xfsdump/inventory列出目前备份的信息状态
50.制作/修改可开机光盘映像档:
1. isoinfo -d -i /home/Image文件.iso
2. mount /home/image文件.iso /mnt
3. mkdir /srv/newcd
4. rsync -a /mnt/ /srv/newcd
5. ll /srv/newcd
6. ll /srv/newcd/isolinux/
7. cd /srv/newcd
8. mkisofs -o /custom.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -V 'CentOS 7 x86_64' -boot-load-size 4 -boot-info-table -R -J -v -T
51.光盘刻录工具:
wodim --devices dev=/dev/sr0... 查询刻录机的BUS位置
wodim -v dev=/dev/sr0 blank=[fast|all] 抹除重复读写片
wodim -v dev=/dev/sr0 -format 格式化DVD+RW
--devices:用在扫描磁盘总线并找出可用的刻录机,后续的装置为ATA借口
-v:在cdrecord运作的过程中,显示过程
dev/dev/sr0:找出此光驱的bus地址
blank=[fast|all]:blank为抹除可重复写入的CD/DVD-RW,使用fast较快,all较完整
-format:对光盘进行格式化
wodim -v dev=/dev/sr0 [可用选项功能] file.iso
-data:指定后面的文件以数据格式写入,不是已CD音轨方式写入
speed=X:指定刻录速度,例如CD可用speed=40为40倍数,DVD则可用speed=4
-eject:指定刻录完毕后自动退出光盘
driveropts=burnfree:打开Buffer Underrun Free模式的写入功能
-sao:支持DVD-RW的格式
实例步骤:
1. wodim -v dev=/dev/sr0 blank=fast 清除DVD旧记录
2. wodim -v dev=/dev/sr0 speed=4 -dummy -eject /tmp/system.img 刻录DVD
3. mount /dev/sr0/mnt
4. df -h /mnt
5. ll /mt
6. umount /mnt
52. dd if="input_file" of=''output_file" bs="block_size" count="number"
if:就是input file ,也可以是装置
of:就是output file , 也可以是装置
bs:规划的一个block的大小,若未指定则默认是512bytes(一个sector的大小)
count:多少个bs的意思
实用案例:备份映像档至USB中,并设置成开机默认USB
1. lsblk /dev/sda
2. dd if=/tmp/system.iso of=/dev/sda
3. mount /dev/sda /mnt
4. ll /mnt
53.可以备份任何东西的指令 cpio
备份:cpio -ovcB > [file | device]
-o:将数据复制输出到文件或装置上
-B:让预设的Blocks可以增加至5120bytes
还原:cpio -ivcdu < [file | device]
-i:将数据从文件或装置复制到系统中
-d:自动建立目录。
-u:自动的将较新的文件覆盖较旧的文件
-t:需配合-i选项,可用在“察看”以cpio建立的文件或装置的内存
察看:cpio -ivct < [file | device]
实例:
1. find boot | cpio -ocvB > /tmp/boot.cpio
2. cpio -idvc < /tmp/boot.cpio
五。程序编辑器vi,vim
1)一般指令模式按钮说明(常用)
ctrl+f:屏幕向下移动一页
ctrl+b:屏幕向上移动一页
数字0或功能键home:移动到这一行的最前面字符处。
$或功能键end:移动到这一行的最后面字符处
G:移动到这个文件的最后一行
nG:n为数字,移动到这个文件的第n行
gg:移动到这个文件的第一行。
n<Enter>:n为数字,光标向下移动n行
/word:向光标以下寻找一个名称为word的字符串
?word:向光标以上寻找一个名称为word的字符串
:n1,n2s/word1/word2/g:n1,n2为数字,在第n1行和第n2行之间寻找word1这个字符串,并取代为word2。 实例: :100,200s/word1/word2/g
:1,$s/word1/word2/g:从第一行到最后一行寻找word1这个字符串,并取代为word2
:1,$s/word1/word2/gc:从第一行到最后一行寻找word1这个字符串,并取代为word2。并跟用户确认是否取代。
x , X:x向后删除,X向前删除
dd:删除光标所在的一整行
ndd:n为数字,删除光标以下的n行
yy:复制光标所在的行
nyy:n为数字,复制光标向下n行
p , P:p为将已复制的数据在光标下一列粘贴,P为在光标上一列粘贴
u:复原前一个动作
Ctrl+r:重新做上一个动作
.:重复前一个动作
2)一般指令模式切换到指令模式的可用按钮
:w 将编辑的数据写入硬盘文件中
:q 离开vi
:set nu 显示行号
:set nonu 取消行号
:r 文件名 将文件的内容读入现在打开的文件
3)区块选择
v:字符选择,会将光标经过的地方反白选择
V:行选择,会将光标经过的行反白选择
[Ctrl]+v:区块选择,可以用长方形的方式选择
y:将反白的地方复制起来
d:放反白的敌法删除掉
p:将复制的区块,在游标处贴上
4)多文件编辑
:n 编辑下一个文件
:N 编辑上一个文件
:files 列出目前这个vim开启的所有文件
5)多窗口功能
:sp 文件名 打开多一个窗口
[ctrl]+w+↓ 窗口切换
[ctrl]+w+q 结束下方窗口
6)挑字补全功能
[ctrl]+x -> [ctrl]+n 透过目前正在编辑的这个[文件的内容文字]作为关键词,予以补齐。
[ctrl]+x -> [ctrl]+f 以当前目录内的[文件名]作为关键词,予以补齐
[ctrl]+x -> [ctrl]+o 以扩展名作为语法补充,以vim内建的关键词,予以补齐
7)vim环境设定与记录
:set hlearch/nohlsearch 设置搜索词高亮
:set autoindent/noautoindent 自动缩排
:set backup 自动备份
:set ruler 显示右下角的状态栏说明
:set showmode 在左下角显示--INSERT--之类的说明
:set backspace=(012) 按 i 进入编辑模式后,是否可以利用(backspace)退格键删除字符,2可以,01不行。
:set all 显示目前所有的环境参数设定值
:set 显示自行变动过的设定参数
:syntax on/off 依据程序相关语法显示不同颜色
:set bg=dark/light 可用于显示不同的颜色色调
以上设置可在~/.vimrc中配置。
8)常用指令示意图