linux 基础知识(2)

一、基础知识

1.1 inode和block

  • 存储设备被格式化为文件系统后,会有两部分,一部分是inode,一部分是block,
    inode是记录了linux系统中所有的文件的一些元息,包括文件的类型,拥有者,所属组,链接数(指向文件名的路径的个数),文件的大小,时间戳等等。
  • block是用来存储数据的。
  • 允许不同文件的indoe是相同的

1.2 查看文件的inode

$ ll -i a.txt
1407374883849193 -rw-r--r-- 1 ybx 197609 0 122 16:49 a.txt

1.3 cp和mv命令的区别

cp是新建一个inode号,在inode表中新建一个目录项,将名称与inode编号关联,拷贝数据生成新文件。
mv在重命名时,相当于换了新的目录项,并不影响inode表(除时间戳)或磁盘上的数据位置

1.4 参考

浅谈linux系统中mv、cp、rm这三种命令的工作原理

1.5 硬链接

  • 同一个inode节点的链接称为硬链接
  • 只有文件才能创建硬链接
  • 硬链接的文件的内容是相同的,修改其中一个文件会影响到其他的文件
  • 创建a.txt的硬链接
$ ln a.txt a1.txt
  • 查看硬链接的个数,数字变成2
$ ll a.txt
-rw-r--r-- 2 ybx 197609 0 122 16:49 a.txt

1.6 软链接

软链接只是源文件的一个标记,删除源文件,则查看软链接没有任何的效果

1.7 查看每个硬盘分区的inode总数和已使用

df -i

$ df -i
Filesystem           Inodes IUsed IFree IUse% Mounted on
C:/Program Files/Git      -     -     -     - /
D:                        -     -     -     - /d

二、基础命令

2.1 查看文件的创建时间

  • stat 文件名
$ stat b.txt
  File: b.txt
  Size: 49              Blocks: 1          IO Block: 65536  regular file
Device: b64f166ch/3058636396d   Inode: 3096224743823644  Links: 1
Access: (0644/-rw-r--r--)  Uid: (197609/     ybx)   Gid: (197609/ UNKNOWN)
Access: 2019-12-02 16:00:54.000451100 +0800
Modify: 2019-12-02 15:48:44.435701000 +0800
Change: 2019-12-02 15:59:05.376818000 +0800
 Birth: 2019-12-02 15:13:28.640534200 +0800

2.2 三种时间介绍

  • access Time ——文件的最近访问时间
    只要读取,文件的时间就会改变

对应的Access项

$ stat b.txt
  File: b.txt
  Size: 49              Blocks: 1          IO Block: 65536  regular file
Device: b64f166ch/3058636396d   Inode: 3096224743823644  Links: 1
Access: (0644/-rw-r--r--)  Uid: (197609/     ybx)   Gid: (197609/ UNKNOWN)
Access: 2019-12-02 16:36:02.037409800 +0800
Modify: 2019-12-02 15:48:44.435701000 +0800
Change: 2019-12-02 15:59:05.376818000 +0800
 Birth: 2019-12-02 15:13:28.640534200 +0800
  • modify time 文件的修改时间
    只要文件被修改,修改时间就会变化
ybx@DESKTOP-PVQFC1H MINGW64 ~/Desktop/A
$ stat b.txt
  File: b.txt
  Size: 61              Blocks: 1          IO Block: 65536  regular file
Device: b64f166ch/3058636396d   Inode: 1688849860559800  Links: 1
Access: (0644/-rw-r--r--)  Uid: (197609/     ybx)   Gid: (197609/ UNKNOWN)
Access: 2019-12-02 16:41:27.726665700 +0800
Modify: 2019-12-02 16:40:52.844580200 +0800
Change: 2019-12-02 16:40:52.922542000 +0800
 Birth: 2019-12-02 15:13:28.640534200 +0800
  • change time 文件属性
    只要文件的属性被改变,对应的时间就会被改变
$ stat b.txt
  File: b.txt
  Size: 61              Blocks: 1          IO Block: 65536  regular file
Device: b64f166ch/3058636396d   Inode: 1688849860559800  Links: 1
Access: (0644/-rw-r--r--)  Uid: (197609/     ybx)   Gid: (197609/ UNKNOWN)
Access: 2019-12-02 16:43:06.411667700 +0800
Modify: 2019-12-02 16:40:52.844580200 +0800
Change: 2019-12-02 16:40:52.922542000 +0800
 Birth: 2019-12-02 15:13:28.640534200 +0800

2.3 touch修改文件的时间

  • 修改access time
$ touch -a b.txt
  • 修改Modify time
$ touch -d '15:02:03' b.txt

2.4 touch指令创建文件的默认权限

  • touch a.txt
$ ll a.txt
-rw-r--r-- 1 ybx 197609 0 122 16:49 a.txt

三、linux中的查找

3.1 find命令

  • 查找目录:find /(查找范围) -name ‘查找关键字’ -type d
  • 查找文件:find /(查找范围) -name 查找关键字 -print

3.2 find查找条件

  • 可以根据正则表达式去匹配要找的文件或者目录
$ find /c/Users/ybx/Desktop/A -name 'a1.txt'
/c/Users/ybx/Desktop/A/a1.txt
  • 当前目录下的查找
$ find . -name '*.txt'
./.txt
./a1.txt
./a2.txt
./a6.txt
./b.txt
./b1.txt
./c1.txt
./d1.txt
  • 用 -o 连接匹配条件
$ find . -name 'a.txt' -o -name 'b.txt'
./b.txt
  • 基于正则表达式匹配
$ find . -regex '.*\(\a.txt\|\b.txt\)$'
./a1.txt
./a2.txt
./a6.txt
./b.txt
./b1.txt
./c1.txt
./d1.txt
  • 否定参数
$ find . ! -name 'a.txt'
.
./.txt
./a1.txt
./a2.txt
./a6.txt
./b.txt
./b1.txt
./c1.txt
./d1.txt
  • 根据文件类型搜索
f 普通文件
l 符号连接
d 目录
c 字符设备
b 块设备
s 套接字
p Fifo
$ find . -type d
.
./A
./B
  • 查找3天内被修改过的文件
$ find . -ctime -3 -name '*'
.
./.txt
./A
./a1.txt
./a2.txt
./a6.txt
./B
./b.txt
./b1.txt
./c1.txt

根据文件时间戳进行搜索
find . -type f 时间戳
UNIX/Linux文件系统每个文件都有三种时间戳:

  • 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
  • 修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
  • 变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

3.2 参考

linux find 命令查找文件和文件夹

四、回退撤销命令

4.1 vim中的回退和前进

前提:在esc模式下

  • 后退
    u
  • 前进
    ctrl + r

4.2 cd命令

  • 回退到上一级
$ cd ..
  • 返回上次执行的目录
$ cd -
/c/Users/ybx/Desktop/A
  • 回到用户主目录
$ cd
  • 进入当前目录
cd .
  • 进入根目录
cd /

4.3 查看文件大小

du -h a.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值