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
更改文件属组
chgrp
是Change Group
的缩写
-R
:大写;递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
[...]# chgrp [-R] 更改的属组名 文件名
2)chown
更改文件属主
chown
是Change 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 = 4
,w = 2
,x = 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 2月 22 10:58 f1
-rw-r--r--. 2 root root 6 2月 22 10:58 f2
lrwxrwxrwx. 1 root root 2 2月 22 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: 没有那个文件或目录
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/70442.html