【Linux】3、文件管理

1、文件属性

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

  • 可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组
  • 每个文件的属性由左边第一部分的10个字符来确定

在这里插入图片描述

  • 文件类型

    • d 表示目录
    • - 表示文件
    • l 表示链接文档(link file)
    • b 表示为装置文件,文件里面的可供存储的接口设备(可随机存取装置)
    • c 表示为装置文件,文件里面包含了:串行端口设备,比如键盘、鼠标(一次性读取装置)
  • 文件权限的拥有者和用户组、其他用户的访问权限

    • 接下来的字符中,以三个为以一组,均为【r w x】的三个参数组合。分别是owner/group/others三种身份各有自己的权限
    • 三个权限字符的位置不会更改,如果没有权限则会显示减号 -
    • r 表示读
    • w 表示写
    • x 表示执行

在这里插入图片描述

2、修改文件属性

1)chgrp 更改文件属组

chgrpChange Group 的缩写

  • -R:大写;递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
[...]# chgrp [-R] 更改的属组名 文件名

2)chown 更改文件属主

chownChange Owner 的缩写;也可以同时更改文件属组

[...]# chown [-R] 更改的属主名 文件名
[...]# chown [-R] 更改的属主名:更改的属组名 文件名

3)chmod 更改文件的9个属性

两种设置方法,一种是符号,一种是数字

  • 符号

    使用方式 : chmod [-cfvR] [--help] [--version] mode file...
    说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
    参数 :
    mode : 权限设定字串,格式如下 : [ugoa…][[±=][rwxX]…][,…],其中

    • u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
    • -c : 若该档案权限确实已经更改,才显示其更改动作
    • -f : 若该档案权限无法被更改也不要显示错误讯息
    • -v : 显示权限变更的详细资料
    • -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递归的方式逐个变更)
    • --help : 显示辅助说明
    • --version : 显示版本
#! 将档案 file1.txt 设为所有人皆可读取
[...]# chmod ugo+r file1.txt

#! 将档案 file1.txt 设为所有人皆可读取
[...]# chmod a+r file1.txt 

#! 将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
[...]# ug+w,o-w file1.txt file2.txt

#! 将 ex1.py 设定为只有该档案拥有者可以执行
[...]# chmod u+x ex1.py 

#! 将目前目录下的所有档案与子目录皆设为任何人可读取
[...]# chmod -R a+r *
  • 数字

    语法为:[...]# chmod abc file
    其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
    r = 4w = 2x = 1

    • 若要rwx属性则:4+2+1=7;
    • 若要rw-属性则:4+2=6;
    • 若要r-x属性则:4+1=5
#! 将file设为任何人可读可写可执行;与 chmod a=rwx file 等效
[...]# chmod 777 file

#! 将file设为User、Gruop可读可写可执行;Other仅可执行;与 chmod ug=rwx,o=x file 等效
[...]# chmod 771 file

3、文件内容查看

1)cat 从头开始显示

从第一行开始显示文件的所有内容

参数

  • -A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
  • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
  • -E :将结尾的断行字节 $ 显示出来;
  • -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
  • -T :将 [tab] 按键以 ^I 显示出来;
  • -v :列出一些看不出来的特殊字符
[...]# cat [-AbEnTv] 文件名

2)tac 从尾开始显示

cat 相反;从最后一行开始显示文件的所有内容;

3)nl 带行号从头开始显示

从第一行显示开始文件的所有内容,并显示行号

参数

  • -b :指定行号指定的方式,主要有两种:-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);-b t :如果有空行,空的那一行不要列出行号(默认值);
  • -n :列出行号表示的方法,主要有三种:-n ln :行号在荧幕的最左方显示;-n rn :行号在自己栏位的最右方显示,且不加 0 ;-n rz :行号在自己栏位的最右方显示,且加 0 ;
  • -w :行号栏位的占用的位数。
[...]# nl [-bnw] 文件名

4)more 往后翻页

一页一页的显示文件的内容,可以往后翻页

功能按键

  • 空白键 (space):代表向下翻一页;
  • Enter :代表向下翻『一行』;
  • /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字,
    • 按下v键,进入vi编辑器,/加搜索内容+回车;
    • 退出按ESC,:q离开
  • :f :立刻显示出档名以及目前显示的行数;
  • q :代表立刻离开 more ,不再显示该文件内容。
  • b[ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

5)less 往前翻页

跟 more 类似

功能按键

  • 空白键 :向下翻动一页;
  • [pagedown]:向下翻动;
  • [pageup] :向上翻动;
  • /字串 :向下搜寻『字串』的功能;
  • ?字串 :向上搜寻『字串』的功能;
  • n :重复前一个搜寻 (与 / 或 ? 有关!)
  • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • q :离开 less 这个程序;

6)head 取出前几行内容

取出文件头几行内容

选项与参数

  • -n 后面接数字,代表显示几行的意思!默认的情况中,显示前面 10 行!

7)tail 取出尾几行内容

head 相反;取出文件尾几行内容

选项与参数

  • -n 后面接数字,代表显示几行的意思!默认的情况中,显示前面 10 行!

4、硬链接 与 软链接

Linux 链接分两种,一种为硬链接(Hard Link),另一种为符号链接(Symbolic Link),即软链接

1)硬链接

硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以 防止“误删” 的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除

2)软链接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

3)测试

相关命令:

  • ln 创建链接;ln f1 f2 硬链接,ln -s f1 f3 软链接
  • touch 创建文件;touch f1
  • echo 写入字符串到文件;echo "hello" >> f1
  • 进入 test 目录
[root@bogon /]# cd home/tuwer/test
  • 创建 f1 文件;touch f1
#! 创建f1
[root@bogon /]# touch f1
#! 查看
[root@bogon /]# ls
f1
  • 向 f1 中添加内容;echo "hello" >> f1
#! 向f1中添加 hello
[root@bogon test]# echo "hello" >> f1
#! 查看 f1 内容
[root@bogon test]# cat f1
hello
  • 为 f1 文件创建硬链接 f2;ln f1 f2
#! 为 f1 文件创建硬链接 f2
[root@bogon test]# ln f1 f2
#! 查看目录
[root@bogon test]# ls
f1  f2
#! 查看 f2 文件内容
[root@bogon test]# cat f2
hello
  • 为 f1 文件创建软链接 f3;ln -s f1 f3
#! 为 f1 文件创建软链接 f3
[root@bogon test]# ln -s f1 f3
#! 查看目录;f1、f2类型为-,f3类型为 l
[root@bogon test]# ll
总用量 8
-rw-r--r--. 2 root root 6 222 10:58 f1
-rw-r--r--. 2 root root 6 222 10:58 f2
lrwxrwxrwx. 1 root root 2 222 11:04 f3 -> f1
#! 查看 f3 文件内容
[root@bogon test]# cat f3
hello

在这里插入图片描述

  • 删除 f1
#! 删除 f1
[root@bogon test]# rm -f f1

#! 查看目录;f3变为红色,已失效
[root@bogon test]# ls
f2  f3

#! 查看 f2
[root@bogon test]# cat f2
hello

#! 查看 f3
[root@bogon test]# cat f3
cat: f3: 没有那个文件或目录

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

土味儿~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值