Linux文件管理和IO重定向知识总结

目录

一,文件管理

Linux的目录结构是一个树状结构:

文件的分类:

操作文件的常用命令:

文件元数据和节点和inode表结构:

特点:

创建文件:

查看文件inode号:

cp和inode:

rm和inode:

mv和inode:

软硬连接:

硬连接:

软连接:

二,IO重定向

1,标准输入输出

查看:

演示: 

查看:

 演示:

2, 重定向

标准输出重定向: 

标准输入重定向:

3,管道


一,文件管理

Linux的目录结构是一个树状结构:

文件的分类:

符号文件类型
-普通文件
d目录文件
l连接文件
c字符文件
b块设备文件
s套接字文件
p管道文件

操作文件的常用命令:

文件元数据和节点和inode表结构:

特点:
1,在 Linux 系统中,一切皆文件, 每个文件,又分为文件元数据和具体内容两部份
2, 一个文件元数据和其具体内容数据,在磁盘分区上,是分开存放的。
3, 这种存储文件元数据的区域就叫 inode,中文译作 " 索引节点 ", 每个文件都有一个 inode n(n>=1) block 数据块, inode 存储文件元数据,数据块存储文件内容 数据。
创建文件:

在linux中创建文件时会为文件分配一个inode号,并且分配一些block。但是一个inode对应多少blocks则由系统决定。所以,创建文件是否能成功由inode和内除决定内存够但是创建文件不成功可能是inode号不足,inode号足够但创建文件不成功可能是因为内存不够。

查看inode号和内存用量:

df -i
查看文件inode号:
ls -i filename
cp和inode:
cp 命令:
分配一个空闲的 inode 号,在 inode 表中生成新条目
在目录中创建一个目录项,将名称与 inode 编号关联
拷贝数据生成新的文件
rm和inode:
rm 命令:
链接数递减,从而释放的 inode 号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖
mv和inode:
如果 mv 命令的目标和源在相同的文件系统,作为 mv 命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响 inode 表(除时间戳)或磁盘上的数据位置:没有数据被移动!

软硬连接:

硬连接:

硬连接相当于让原文件的inode号有了多个别名。如下图所示:

创建硬连接:

ln filename1 filename2 //创建一个指向filename1的硬连接filename2

 演示:

查看inode号:inode号相同

 

软连接:

软连接相当于让原来的文件名多了一个别名。

创建软连接:

ln -s file1 file3 //为file创建一个软连接file3

 演示:

inode号:不一样

二,IO重定向

1,标准输入输出

在linux中由三个最基本的IO文件:标准输入,标准输出,标准错误输出

查看:
ll /dev/std*
演示: 

在虚拟终端中,标准输入输出都是当前窗口

查看:
ll /proc/self/fd/ //显示fd对应的硬件 

tty //显示当前窗口
 演示:

2, 重定向

将输入和输出转移到别的文件中,不在当前窗口显示。

标准输出重定向: ​​​​​​​

#覆盖操作符,如果文件存在,会被覆盖

> #把STDOUT重定向到文件

1>     #同上

2> #把STDERR重定向到文件

&> #把标准输出和错误都重定向

>& #和上面功能一样,建议使用上面方式

#追加操作符,在原有文件的基础上追加内容

>> #追加标准输出重定向至文件

1>> #同上

2>> #追加标准错误重定向至文件

标准输入重定向:

<  #标准输入重定向

<<终止词 #标准多行输入重定向

cmd <<< "string"#高级输入重定向

3,管道

能将输出变为另一个文件或者指令的输入。有些文件不支持管道,但是可以在中间加入参数:xargs来当中间人转换

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值