Linux(二) | 文件基本属性与链接扩展
个人主页-爱因斯晨
文章专栏-Linux
最近学习人工智能时遇到一个好用的网站分享给大家:
人工智能学习
文件属性
看懂文件属性
在Linux中我们可以使用ll
或者ls-l
命令来显示一个文件的属性以及文件所属的用户和组。如:
root@VM-24-17-ubuntu:~# cd /
root@VM-24-17-ubuntu:/# ls -ll
total 2035800
lrwxrwxrwx 1 root root 7 Apr 22 2024 bin -> usr/bin
drwxr-xr-x 2 root root 4096 Feb 26 2024 bin.usr-is-merged
drwxr-xr-x 3 root root 4096 Jul 1 15:32 boot
dr-xr-xr-x 2 root root 4096 Apr 23 2024 cdrom
drwxr-xr-x 2 root root 4096 Apr 29 2024 data
drwxr-xr-x 19 root root 3960 Aug 27 22:03 dev
drwxr-xr-x 119 root root 4096 Aug 27 22:09 etc
drwxr-xr-x 4 root root 4096 Aug 28 10:37 home
lrwxrwxrwx 1 root root 7 Apr 22 2024 lib -> usr/lib
lrwxrwxrwx 1 root root 9 Apr 22 2024 lib64 -> usr/lib64
drwxr-xr-x 2 root root 4096 Feb 26 2024 lib.usr-is-merged
drwx------ 2 root root 16384 Apr 26 2024 lost+found
drwxr-xr-x 2 root root 4096 Apr 23 2024 media
drwxr-xr-x 2 root root 4096 Apr 23 2024 mnt
drwxr-xr-x 2 root root 4096 Apr 23 2024 opt
dr-xr-xr-x 188 root root 0 Aug 27 22:03 proc
drwx------ 6 root root 4096 Aug 28 17:24 root
drwxr-xr-x 33 root root 1160 Aug 28 17:24 run
lrwxrwxrwx 1 root root 8 Apr 22 2024 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 Apr 3 2024 sbin.usr-is-merged
drwxr-xr-x 2 root root 4096 Apr 26 2024 snap
drwxr-xr-x 2 root root 4096 Apr 23 2024 srv
-rw------- 1 root root 2084569088 Apr 26 2024 swap.img
dr-xr-xr-x 13 root root 0 Aug 27 22:04 sys
drwxrwxrwt 13 root root 4096 Aug 28 16:26 tmp
drwxr-xr-x 12 root root 4096 Apr 23 2024 usr
drwxr-xr-x 13 root root 4096 Apr 26 2024 var
root@VM-24-17-ubuntu:/#
在Linux中,我们使用第一个字符来表示这个文件是目录还是文件或连接
- 当为
[d]
则是目录 - 当为
[-]
则是文件 - 若是
[l]
则表示为链接文档(link file) - 若是
[b]
则表示为装置文件里面的可供储存的接口设备(可随机存取装置) - 若是
[c]
则表示为装置文件里面的串行端口设备
接下来的字符中是以三个为一组[rwx]
的三个参数的组合
[r]
是指可读,[w]
是指可写,[x]
:可以执行
三个参数的位置不会改变,如果没有权限则用-
代替。
drwxr-xr-x 3 //文件个数 root //属主 root//游客 4096 Jul 1 15:32 boot
修改文件属性
1.chgrp:更改文件属组
chgrp [-R] 属组名 文件名
-R:递归更改文件属组,更改某个目录的同时,修改目录下的所有文件属组
2.chown :更改文件属主,也可以同时修改属组
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
3.chmod :更改文件9个属性(必须掌握)
chmod [-R] xyz 文件或目录
文件属性有两种设置方法,一种是数字(常用的数字),一种是符号
Linux文件的基本权限就有九个,分别是owner/group/others三种身份,各有自己的三种权限r/w/x
我们可以用数字来代表三个权限 :
r-4,w-2,x-1
rw-4+2=6
rwx-4+2+1=7
每种身份的三个权限是要累加的,例如:
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
other=---=00
chmod 770 filename
root@VM-24-17-ubuntu:/# cd /home
root@VM-24-17-ubuntu:/home# ls
lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# ls -ll
total 16
drwxr-x--- 2 lighthouse lighthouse 4096 Aug 27 22:03 lighthouse
drwxr-xr-x 2 root root 4096 Aug 28 17:57 test7
drwxr-xr-x 2 root root 4096 Aug 28 17:57 test8
drwxr-x--- 5 ubuntu ubuntu 4096 Aug 27 22:03 ubuntu
root@VM-24-17-ubuntu:/home# chmod 770 test7 //修改权限
root@VM-24-17-ubuntu:/home# ls -ll
total 16
drwxr-x--- 2 lighthouse lighthouse 4096 Aug 27 22:03 lighthouse
drwxrwx--- 2 root root 4096 Aug 28 17:57 test7
drwxr-xr-x 2 root root 4096 Aug 28 17:57 test8
drwxr-x--- 5 ubuntu ubuntu 4096 Aug 27 22:03 ubuntu
root@VM-24-17-ubuntu:/home#
文件内容查看
Linux 系统中使用以下命令来查看文件的内容:
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容,带余下内容的(空格代表翻页,enter代表向下看一行,-f 行号)
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!(空格下翻页,上下键代表滚动页面!退出q命令,查找字符串/要查询的字符向下查询,要查询字符串,n继续查询下一个)
- head 只看前头几行
- tail 只看尾巴几行
你可以使用 man [命令] 来查看各个命令的使用文档,如:man cp。
root@VM-24-17-ubuntu:~# cd /root
root@VM-24-17-ubuntu:~# ls
0665f1354725765580a9f5fa1dca3178.pdf 1fef20ff65d7f03923621f8494e5877c.pdf tee
1eada41a4fd1d0278ef5dc7bfceea6d.jpg ceshi.docx
root@VM-24-17-ubuntu:~# cat ceshi.docx //查看第一行内容
PK
N docProps/PN࿇¾\qdocProps/app.xmlQo0ߗ꽐ޡ㒔Ĺ´l&M¹@3h¶ޛ=紧_{̙f'n謃Ɩ»6¤
ٝtDª#ŊU#QUFϓܠ.x ¥'¸<ÿ¸J
1|ªөϰડPcÿ©7G :ג臏Ժ¥0Fw
¿3noZsl"µ"²¹# aH[°ZƬnZVF£OÿջYMÿ»ÿkٌ4¹$tzP|¼²eڷz٥ϧc
a|܆o飵yAƓ`Q¶Ũm©9Гb瘿o,�«PN,EddocProps/core.xmlQKpCȻ¦m*{r0פ⋄㬫6iH¢½iؕ>snn[5ª@$Q7¢R
root@VM-24-17-ubuntu:~# tac ceshi.docx //查看最后一行
» 9word/theme/theme1.xmlPKO$Nྐword/theme/PNၝµ
Nྐr!word/_rels/PN၈P禂 !word/_rels/document.xml.relsPNအ¬ vword/document.xmlPNၢU¾ :word/fontTable.xmlPN࿄
word/styles.xmlPK ®· ۷ord/settings.xmlPNၴٝ¢ ªe
Nྐ胷ord/PK
N docProps/PN࿇¾\q 'docProps/app.xmlPN,Ed ±docProps/core.xmlPN࿁쀓 %docProps/custom.xmlPK
N྆( _rels/PNཱྀ""
因为ceshi文件是 Microsoft Word 文档(Office 格式),属于二进制文件,直接用 cat
查看会显示乱码(二进制内容被强制转成文本)。后续我们会安装插件
硬链接和软连接
root@VM-24-17-ubuntu:/# cd ~
root@VM-24-17-ubuntu:~# cd /
root@VM-24-17-ubuntu:/# ll
total 2035808
drwxr-xr-x 24 root root 4096 Aug 28 23:22 ./
drwxr-xr-x 24 root root 4096 Aug 28 23:22 ../
-rw-r--r-- 1 root root 0 Aug 27 22:03 .autorelabel
lrwxrwxrwx 1 root root 7 Apr 22 2024 bin -> usr/bin/
drwxr-xr-x 2 root root 4096 Feb 26 2024 bin.usr-is-merged/
drwxr-xr-x 3 root root 4096 Jul 1 15:32 boot/
dr-xr-xr-x 2 root root 4096 Apr 23 2024 cdrom/
drwxr-xr-x 2 root root 4096 Apr 29 2024 data/
drwxr-xr-x 19 root root 3960 Aug 27 22:03 dev/
drwxr-xr-x 119 root root 4096 Aug 27 22:09 etc/
drwxr-xr-x 6 root root 4096 Aug 28 17:57 home/
lrwxrwxrwx 1 root root 7 Apr 22 2024 lib -> usr/lib/
lrwxrwxrwx 1 root root 9 Apr 22 2024 lib64 -> usr/lib64/
drwxr-xr-x 2 root root 4096 Feb 26 2024 lib.usr-is-merged/
drwx------ 2 root root 16384 Apr 26 2024 lost+found/
drwxr-xr-x 2 root root 4096 Apr 23 2024 media/
drwxr-xr-x 2 root root 4096 Apr 23 2024 mnt/
drwxr-xr-x 2 root root 4096 Apr 23 2024 opt/
dr-xr-xr-x 189 root root 0 Aug 27 22:03 proc/
drwx------ 6 root root 4096 Aug 28 22:53 root/
drwxr-xr-x 33 root root 1160 Aug 28 22:53 run/
lrwxrwxrwx 1 root root 8 Apr 22 2024 sbin -> usr/sbin/
drwxr-xr-x 2 root root 4096 Apr 3 2024 sbin.usr-is-merged/
drwxr-xr-x 2 root root 4096 Apr 26 2024 snap/
drwxr-xr-x 2 root root 4096 Apr 23 2024 srv/
-rw------- 1 root root 2084569088 Apr 26 2024 swap.img
dr-xr-xr-x 13 root root 0 Aug 27 22:04 sys/
drwxrwxrwt 13 root root 4096 Aug 28 23:15 tmp/
drwxr-xr-x 12 root root 4096 Apr 23 2024 usr/
drwxr-xr-x 13 root root 4096 Apr 26 2024 var/
root@VM-24-17-ubuntu:/#
l
开头的是链接
Linux下的链接分为两种:软连接和硬链接
硬链接:A–B, 假设 B 是 A 的硬链接,那么他们两个指向了同一个文件!允许一
个文件拥有多个路径,用户可以通过这种机制建立硬链接到一些重要文件上,防
止误删!
软链接:类似 Window 下的快捷方式,删除的源文件,快捷方式也访问不了!
touch
命令创建文件!
创建链接命令 ln
echo
输入字符串
root@VM-24-17-ubuntu:/# cd /home
root@VM-24-17-ubuntu:/home# ls
lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# touch f1 //创建f1文件
root@VM-24-17-ubuntu:/home# ls
f1 lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# ln f1 f2 //创建一个硬链接
root@VM-24-17-ubuntu:/home# ls
f1 f2 lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# ln -s f1 f3 //创建一个软链接 符号链 f3
root@VM-24-17-ubuntu:/home# ls
f1 f2 f3 lighthouse test7 test8 ubuntu
root@VM-24-17-ubuntu:/home# ll
total 24
drwxr-xr-x 6 root root 4096 Aug 28 23:32 ./
drwxr-xr-x 24 root root 4096 Aug 28 23:32 ../
-rw-r--r-- 2 root root 0 Aug 28 23:31 f1
-rw-r--r-- 2 root root 0 Aug 28 23:31 f2
lrwxrwxrwx 1 root root 2 Aug 28 23:32 f3 -> f1
drwxr-x--- 2 lighthouse lighthouse 4096 Aug 27 22:03 lighthouse/
drwxrwx--- 2 root root 4096 Aug 28 17:57 test7/
drwxr-xr-x 2 root root 4096 Aug 28 17:57 test8/
drwxr-x--- 5 ubuntu ubuntu 4096 Aug 27 22:03 ubuntu/
root@VM-24-17-ubuntu:/home# echo "i love chen">>f1 //给f1文件种写入字符串
root@VM-24-17-ubuntu:/home# cat f1
i love chen
root@VM-24-17-ubuntu:/home# cat f2
i love chen
root@VM-24-17-ubuntu:/home# cat f3
i love chen
root@VM-24-17-ubuntu:/home#
删除f1之后,f2和f3的区别
root@VM-24-17-ubuntu:/home# rm -rf f1 //删除f1文件
root@VM-24-17-ubuntu:/home# ls
f2 f3 lighthouse test7 test8 ubuntu //f3爆红
root@VM-24-17-ubuntu:/home# cat f2 //f2还存有
i love chen
root@VM-24-17-ubuntu:/home# cat f3 //f3内容缺失
cat: f3: No such file or directory
root@VM-24-17-ubuntu:/home#