Linux文件

Linux 文件

Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

在Linux中普通文件和目录文件保存在称为块物理设备的磁盘或者磁带上。一套Linux系统支持若干物理盘,每个物理盘可定义一个或者多个文件系统。(类比于微机磁盘分区)。每个文件系统由逻辑块的序列组成,一个逻辑盘空间一般划分为几个用途各不相同的部分,即引导块、超级块、inode区以及数据区等。

文件管理的常用命令

创建文件

touch命令可以创建空文件,或者改变文件的时间戳属性

练习:使用touch命令

1
2
3
4
touch a.txt #创建一个名为a.txt的空文件
ls #查看文件是否创建成功

touch -d `date` a.txt #修改a.txt最后的修改时间

文件内容查看

cat 由第一行开始显示文件内容
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl 显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行

cat 是一个命令,除了主要用来查看文件;

练习

1
2
cat /proc/uptime
cat /proc/version

还可以与<<END连用用于读入大段数据。输入cat <<END之后,回车,会看到终端出现一个大于号,大于号后面可以输入内容,再回车,继续输入内容,直到我们输入END (大写的,与上面一致),输入过程结束,我们输入的内容都显示在了屏幕上。

练习

1
2
3
4
cat << END
a
bc
END

两个有意思的命令,tac: 文件翻转;rev每列反转

练习:

1
2
3
4
5
cat << END | tac
first
second
third
END

练习:

1
2
3
4
cat << END | rev
abcde
xyz
END

练习:

1
2
3
4
ll >> ll.txt  #将命令屏幕输出结果保存至文件ll.txt
cat ll.txt
tac ll.txt
head ll.txt

文件元信息查看

stat命令可以显示详细的文件的属性状态信息

练习

1
2
3
4
touch test
stat test
echo '1' >> test
stat test

find查找文件

练习:

1
find *.txt /

删除文件

1
rm

文件的属性

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

在Linux中我们可以使用ll或者ls –l命令来显示一个文件的属性以及文件所属的用户和组,

返回结果的第一列会类似drwxrwxrwx,其中第一个字符的含义如下

标志对应
-文件
dDirectory 目录
lLinking File 链接文档
bBlock Device 可随机存取的块设备,即可供储存的接口设备()
cCharset Device 串行端口设备,键盘、鼠标(一次性读取装置)
sSocket 套接字文件

接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

每个文件的属性由左边第一部分的10个字符来确定,从左至右用0-9这些数字来表示。

第0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限。

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,第7-9位确定其他用户拥有该文件的权限。 其中,第1、4、7位表示读权限,如果用”r”字符表示,则有读权限,如果用”-“字符表示,则没有读权限;

第2、5、8位表示写权限,如果用”w”字符表示,则有写权限,如果用”-“字符表示没有写权限;第3、6、9位表示可执行权限,如果用”x”字符表示,则有执行权限,如果用”-“字符表示,则没有执行权限。

练习:观察linux下文件的标志

1
2
3
ll /usr/bin #对结果进行观察
ll /dev #对结果进行观察
ll /run #对结果进行观察

改变文件属性命令

chown:更改文件属主,也可以同时更改文件属组 chgrp:更改文件属组 chmod:更改文件9个属性


Linux文件
https://blog-21n.pages.dev/2022/02/15/Linux文件/
作者
Neo
发布于
2022年2月15日
许可协议