vip1-day06 文件系统及目录结构

文件系统

简介:

  • ext:扩展文件系统。
  • ext2:第二代扩展文件系统,linux 内核使用的文件系统。
  • ext3:第三代扩展文件系统,是一个日志文件系统。
  • ext4:第四代扩展文件系统,基于磁盘的日志文件系统。
    • CentOS6 默认使用。
    • 目录文件超过 200W 性能开始下降。
    • 最大文件个数40亿+,inode 为32位,单个文件支持 16T。
    • 断电数据容易丢失。
  • XFS:支持超大文件容量。
    • CentOS7 默认使用。
    • 最大文件个数达到EB级别,inode 为64位。
    • 多文件,大文件系统,空间利用率比 ext4 高。
    • 缩容比较困难。
  • NTS:网络文件系统,用来共享文件。
  • NTFS:windows xp、NT。
  • ISO9660:光盘或镜像采用的文件系统。
  • SMBFS:SAMBA公司开发的共享文件系统。
  • TMPFS:内存文件系统。

XFS 特性:

  • 为大数据而生。
  • 单个系统支持 8EB。
  • 单个文件大小支持 16TB。
  • 拓展性比较高。
  • 默认工具:备份工具 xfsdump,恢复工具:xfsrestore。
    • 备份和恢复可保持镜像的一致性。
    • 不会锁定文件系统,备份和恢复过程中可中断继续。
    • 可拆分为多个数据流。
    • xfsdump 有10个备份级别。
      • 0:完全备份。
      • 1~9:增量备份,只备份新增内容。

目录结构

windows:多根系统,即c:/d:/e:/

linux:单根系统,即/

特性:

  • 大小写敏感。
  • 隐藏文件以.开头。
  • 路径以/作为分割符。
  • 文件名最长255个字节,包括路径在内4095个字节。
  • 一切皆为文件

路径分类:

  • 绝对路径:从根目录/开始的路径。
  • 相对路径:从当前目录...开始的路径。

根目录/:linux 系统结构的最顶端,linux 的入口、文件、目录、设备都在根目录下。

  • /bin:二进制命令目录,例如cat、ls、mkdir。
  • /boot:系统启动相关文件目录,例如 kernel.grub(引导装载程序),服务器配置建议大小 500M。
  • /dev:设备文件目录。
  • /etc:配置文件,服务启动命令,系统二进制安装包默认目录,例如 hosts、group、passwd。
  • /home: 普通用户主目录。
  • /lib/lib64:库文件目录。
  • /media:移动设备默认挂载点。
  • /mnt:光驱挂载点。
  • /net:automount 进程挂载点。
  • /opt:可移动设备的挂载目录,可选为软件包的安装目录。
  • /proc:进程信息,内核信息,内存信息目录,是系统映射的虚拟目录。
  • /root:管理员主目录。
  • /run:系统运行数据的临时储存目录。
  • /sbin:系统管理相关命令目录,只有 root 用户才能访问。
  • /srv: 存放服务启动后需要提取的数据,不是服务器为空。
  • /sys:存放针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
  • /tmp:临时文件目录。
  • /usr:系统文件,普通用户应用程序和文件的存放目录。
  • /var:存放经常修改文件及日志文件。
    • /var/log/secure:ssh 日志。
    • /var/log/message:系统日志。
    • /var/log/mail:邮件日志。
    • /var/spool/cron:定时任务。

常用配置文件(熟记)

  • /etc/resolv.conf:linux 系统 DNS 客户端。
  • /etc/hostname:主机名。
  • /etc/host:用户名,域名。
  • /etc/fstab: 开机自动挂载。
  • /etc/inittab:系统启动时设定运行级别等。
  • /etc/profile/etc/bashrc:系统环境变量/别名等。
  • /etc/profile.d:用户登录后执行的脚本。
  • /etc/motd:配置用户登录系统之后显示提示内容。
  • /etc/redhat-release:查看Red Hat 版本号和名称信息。
  • /etc/sysctl.conf:Linux 内核参数。
  • /var/log:记录系统及软件运行信息和所在目录。
  • /var/log/secure:用户登录信息日志文件。
  • /proc/cpuinfo:当前 CPU 相关信息。
  • /proc/meminfo:当前内存信息。
  • /proc/loadavg:当前平均负载。
  • /proc/mounts:当前挂载相关信息。

文件信息

ll

示例:

$ ls -l xdg
# 或
$ ll xdg

附图:
在这里插入图片描述

文件类型:

  • -:普通文件。
  • d:目录文件。
  • l:链接文件。
  • b:块设备文件。
  • c:字符设备文件。
  • p:管道文件。
  • s:socket 套接字文件。
  • c:字符设备文件。

文件名称颜色:可以辅助判断文件类型,但是不能只靠颜色判断。

颜色文件类型
蓝色目录
黑色文件
浅蓝色链接
红色压缩包
绿色可执行文件
黑底黄字设备文件

stat

示例:

[root@centos7-110 test]# stat test.txt
  文件:"test.txt"
  大小:73        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:42112982    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:admin_home_t:s0
最近访问:2022-12-02 20:02:50.581114497 +0800
最近更改:2022-12-02 20:02:40.146114912 +0800
最近改动:2022-12-02 20:02:40.154114912 +0800
创建时间:-

属性解析:

  • Uid、GId:root 用户创建的文件是 0,普通用户创建的文件是非零值。
  • 创建时间:
    • 最近访问(atime):查看或更改文件内容刷新,如cat
    • 最近更改(mtime):更改文件内容刷新,如 vim
    • 最近改动(ctime):修改文件权限或更改文件内容刷新,如chmod +x

命令

touch

功能:创建空文件,如果文件存在,则修改文件的创建时间,文件的内容不会改变。

格式:

$ touch [参数] [文件名]

常用参数:

  • 缺省:创建文件,若文件已存在则刷新更改时间。
  • -m:只修改更改时间和改动时间。
  • -a:只修改访问时间和改动时间。

示例:

# 在当前目录下创建文件
$ touch test.txt

# 刷新文件的更改时间和改动时间
$ touch -m 1.txt

# 刷新文件的访问时间和改动时间
$ touch -a 1.txt

# 在指定目录下创建文件
$ touch /root/test.txt

mkdir

功能:创建目录。

格式:

$ mkdir [参数] [目录名]

常用参数:

  • 缺省:创建目录。
  • -p:要创建目录的上级目录如果不存在的话,也一并创建。
  • -v:每次创建都显示详细信息。
  • -m:直接给权限。

示例:

# 在当前目录下创建 test 目录
$ mkdir test

# 创建目录 如果父目录不存在也一并创建
$ mkdir -p /root/test/a/b

# 创建目录 并显示创建信息
$ mkdir -v sh

# 创建目录并给与最大权限 rwxrwxrwx
$ mkdir -m 777 test

rm

功能:删除目录或文件,删除单个或多个都可以。链接文件,源文件保持不变。

格式:

$ rm [参数] [文件/目录]

常用参数:

  • 缺省:删除文件。
  • -f:强制删除,不提示。
  • -r:递归删除目录。
  • -v:删除时输出详细信息。

示例:

# 删除当前目录下所有文件及目录
$ rm -rf ./*

# 删除文件并显示删除信息
$ rm -v 1.txt

注意:删除重要文件前,要考虑先备份后删除。

cp

功能:复制目录或者文件。

格式:

$ cp [参数] [] [目标]

常用参数:

  • -r:递归目录。
  • -p:保留源文件或目录属性。
  • -v:详细信息。

示例:

# 递归拷贝 a 目录及其所有子目录和文件到 aa 目录 
$ cp -r a aa

# 拷贝文件并保留源文件的属性
$ cp -p test.txt test1.txt

# 拷贝文件并显示拷贝信息
$ cp -v test.txt test2.txt

mv

功能:移动目录或者文件,也可以用来重命名。

格式:

$ mv [参数] [] [目标]

常用参数:

  • 缺省:移动目录或文件。
  • -b:若需覆盖文件,则覆盖前先备份。
  • -f:force 强制覆盖,如果目标文件已经存在,则直接覆盖。

示例:

# 将多个文件移动到 test 目录下 有同名则先备份
$ mv -b a.txt b.txt c.txt test/

# 移动文件 若存在同名文件则强制覆盖
$ mv -fv test1.txt test2.txt

cat

功能:查看文件内容。

格式:

# 查看文件内容
$ cat [参数] []

# 在文件中追加内容 以 EOF 作为结束标志 结束标志可自定义
$ cat >>[文件名]<< EOF

常用参数:

  • -n:添加行号。
  • -s: 多个空行显示为一行。
  • -b:跳过空行。

示例:

# 查看文件的内容 并跳过空行 合并空行 添加行号
$ cat -bns passwd

# 查看 passwd 的内容 只查看以root开头的行
$ cat passwd | grep ^root

# 在 redhat.repo 文件中追加内容 并以 EOF 作为结束标志
$ cat >> /etc/yum.repo.d/redhat.repo << EOF
> 123456
> abcdef
> EOF

# 将 a.txt 和 b.txt 的内容追加到 d.txt 如果没有 d.txt 则创建一个
$ cat a.txt b.txt > d.txt

# 清空 c.txt 的内容
$ cat /dev/null > c.txt

# 查看 d.txt 有几行数据
$ cat d.txt | wc -l

more

功能:逐页或逐行查看文件内容,不支持翻页。

格式:

$ more [参数] [文件]

常用参数:

  • 缺省:分页查看文件内容。
  • -d:查看帮助。
  • -s:多个空行显示为一行。
  • -[n]:指定每页显示 n 行。
  • +[n]:从文件第 n 行开始显示。

常用操作:

  • 下一行:回车
  • 下一页:空格
  • 退出:q

示例:

# 分页查看文件内容
$ more /etc/passwd

# 分页查看文件内容 并显示帮助信息
$ more -d /etc/passwd

# 分页查看文件内容 有多个空行时合并为一个
$ more -s test.txt

# 从第 3 行开始显示 每页 10行
$ more +3 -10 /etc/passwd

less

功能:逐页查看文件内容,支持翻页。

格式:

$ less [文件]

常用操作:

  • 向上翻页:[Page Up]键
  • 向下翻页:[Page Down]键,空格键
  • 显示下一行:方向键下,回车键
  • 显示上一行:方向键上
  • 显示下一页:空格
  • 退出:q

示例:

# 逐页查看
$ less /etc/passwd

head

功能:查看文件内容。

格式:

$ head [参数] [文件]

常用参数:

  • 缺省:显示前10行。
  • -n [num]:显示前 num 行

示例:

# 显示前3行
$ head -3 test.txt

tail

功能:查看文件内容。

格式:

$ tail [参数] [文件]

常用参数:

  • 缺省:显示后10行
  • -n [num]:显示倒数 num 行
  • -f:动态查看内容,[Ctrl] + [c] 退出

示例:

# 查看第7行
$ head -7 /etc/passwd | tail -1

# 动态查看登录日志文件 有人登录会自动刷新内容
$ tail -f /var/log/secure

tree

功能:查看目录结构工具。

格式:

$ tree [参数][目录]

常用参数:

  • 缺省:查看当前目录结构。
  • -L [level]:指定最大显示深度。
  • -d:只显示目录。

示例:

# 查看 /nmt 目录的结构
$ tree /mnt

# 之查看一级目录
$ tree -L 1 /mnt

# 只显示目录
$ tree -d /mnt

拓展

磁盘操作

创建分区:

  • 查看设备:$ lsblk
  • 磁盘位置:/dev/sd*
  • 分区工具:fdisk
  • 格式化命令:$ mkfs.xfs [分区]
  • 挂载磁盘:mount /dev/[分区] [挂载目录]

fdisk 的使用

格式:

$ fdisk /dev/[磁盘]

常用命令:

  • n:增加新硬盘。
  • w:保存退出。
  • p:查看现有分区。
  • m:查看命令清单。
  • d:删除分区。

示例:

# 在硬盘上创建一个5G大小的主分区
[root@tp404 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
├─centos-root 253:0    0   17G  0 lvm  /
└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sr0              11:0    1  4.3G  0 rom  /run/media/root/CentOS 7 x86_64
[root@tp404 ~]# ll /dev/sdb*
brw-rw---- 1 root disk 8, 16 114 19:17 /dev/sdb
[root@tp404 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x29d8643f 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m
命令操作
a   toggle a bootable flag
b   edit bsd disklabel
c   toggle the dos compatibility flag
d   delete a partition
g   create a new empty GPT partition table
G   create an IRIX (SGI) partition table
l   list known partition types
m   print this menu
n   add a new partition
o   create a new empty DOS partition table
p   print the partition table
q   quit without saving changes
s   create a new empty Sun disklabel
t   change a partition's system id
u   change display/entry units
v   verify the partition table
w   write table to disk and exit
x   extra functionality (experts only)

命令(输入 m 获取帮助):n
Partition type:
p   primary (0 primary, 0 extended, 4 free)
e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+5G
分区 1 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x29d8643f

设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

yum 的使用

格式:

# 查找执行命令所需的包
$ yum search [命令]

示例:

[root@centos7-110 test]# yum search rz
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
================================== N/S matched: rz ==================================
lrzsz.x86_64 : The lrz and lsz modem communications programs

  名称和简介匹配 only,使用“search all”试试。

统计文件行数

格式:

$ wc -l []

示例:

# 统计行数并显示文件名
$ wc -l a.txt
# 统计文件行数不显示文件名
$ wc -l < a.txt

集合

示例:
{1..20}:从1到20逐个取值。
[1-10]:从1到10逐个取值。
[a,b,c]:按顺序逐个取值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tp404

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值