第一个字符代表这个文件是“目录、文件或链接文件等等”:
当为[ d ]则是目录,例如上表文件名为“.config”的那一行;
当为[ - ]则是文件,例如上表文件名为“initial-setup-ks.cfg”那一行;
若是[ l ]则表示为链接文件(link file);
若是[ b ]则表示为设备文件里面的可供储存的周边设备(可随机存取设备);
若是[ c ]则表示为设备文件里面的序列埠设备,例如键盘、鼠标(一次性读取设备)。
接下来的字符中,以三个为一组,且均为“rwx” 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写
(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而
已。
第一组为“文件拥有者可具备的权限”,以“initial-setup-ks.cfg”那个文件为例, 该文件的拥有者可以读写,但不可执
行;
第二组为“加入此群组之帐号的权限”;
第三组为“非本人且没有加入本群组之其他帐号的权限”。
r的权限4
w的权限2
x的权限1
如:rwxr-xr-- 754
绝对路径:路径起始是‘/’,因为Linux中所有的目录都挂在“/”目录下。
相对路径:相对于当前目录的路径
cd:变换目录
pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
cp:复制目录
mv:移动目录
rm:删除目录
coding@DESKTOP-5MQ0I0D:~$ cd /tmp/
coding@DESKTOP-5MQ0I0D:/tmp$ ls
20190304test001.txt all.tar.xz bashrc test2 testing
coding@DESKTOP-5MQ0I0D:/tmp$ pwd
/tmp
coding@DESKTOP-5MQ0I0D:/tmp$ mkdir test
coding@DESKTOP-5MQ0I0D:/tmp$ ls
20190304test001.txt all.tar.xz bashrc test test2 testing
coding@DESKTOP-5MQ0I0D:/tmp$ rmdir test
coding@DESKTOP-5MQ0I0D:/tmp$ ls
20190304test001.txt all.tar.xz bashrc test2 testing
coding@DESKTOP-5MQ0I0D:/tmp$ cp test2 .
cp: -r not specified; omitting directory ‘test2’
coding@DESKTOP-5MQ0I0D:/tmp$ cp /etc/services .
coding@DESKTOP-5MQ0I0D:/tmp$ ls
20190304test001.txt all.tar.xz bashrc services test2 testing
coding@DESKTOP-5MQ0I0D:/tmp$ mv 20190304test001.txt test2
coding@DESKTOP-5MQ0I0D:/tmp$ ls
all.tar.xz bashrc services test2 testing
coding@DESKTOP-5MQ0I0D:/tmp$ ls test2
20190304test001.txt
coding@DESKTOP-5MQ0I0D:/tmp$ rm test2
rm: cannot remove ‘test2’: Is a directory
coding@DESKTOP-5MQ0I0D:/tmp$ rm test2/20190304test001.txt
coding@DESKTOP-5MQ0I0D:/tmp$ ls test2
coding@DESKTOP-5MQ0I0D:/tmp$ rmdir test2
coding@DESKTOP-5MQ0I0D:/tmp$ ls
all.tar.xz bashrc services testing
coding@DESKTOP-5MQ0I0D:/tmp$
SUID(SetUID) :将user的x权限变成s 如:-rwsr-xr-x
SGID(SetGID):将group的x权限变成s 如:-rwxr-sr-x
whatis 指令 : 表示这指令是做什么的
which 指令 :指令所在的目录
whereis 指令:指令的位置
coding@DESKTOP-5MQ0I0D:/tmp$ whatis ls
ls (1) - list directory contents
coding@DESKTOP-5MQ0I0D:/tmp$ which ls
/bin/ls
coding@DESKTOP-5MQ0I0D:/tmp$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz
coding@DESKTOP-5MQ0I0D:/tmp$
文件系统通常会将这两部
份的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。
Hard Link:
通过文件系统的 inode 链接来产生新文件名,而不是产生新文件!这种称为实体链接
Symbolic Link
Symbolic link 就是在创建一个独立的文件,而这个文件会让
数据的读取指向他 link 的那个文件的文件名!由于只是利用文件来做为指向的动作, 所以,当来源文件被删除之后,symbolic link
的文件会“开不了”, 会一直说“无法打开某文件!”
Hard Link 和Symbolic Link的区别:Hard Link是对源文件的inode取了一个新的名称,通过源文件或链接文件都可以访问到inode存储的内容,也就是说源文件和链接文件对应的inode是一样的。所以即使删掉了源文件,通过链接文件还是可以访问的。而Symbolic Link 会产生一个新的文件记录下源文件的位置,访问链接文件,实际上是通过读取里面的信息从而找到源文件进行访问。也就是说源文件和链接文件的iNode是不一样的,并且当文件删除后,再次访问链接文件会报错找不到源文件的。
coding@DESKTOP-5MQ0I0D:/tmp$ ln testing/20190304test001.txt .
coding@DESKTOP-5MQ0I0D:/tmp$ ls -li . testing/
.:
total 24
36873221949214360 -rw-rw-rw- 2 coding coding 83 Mar 5 13:46 20190304test001.txt
25332747903961015 -rw-rw-rw- 1 coding coding 304 Mar 5 14:07 all.tar.xz
10696049115236520 -rw-r–r-- 1 coding coding 3771 Feb 28 19:47 bashrc
55732045388840168 -rw-r–r-- 1 coding coding 19183 Mar 5 15:38 services
27021597764376606 drwxr–r-- 1 coding coding 512 Mar 5 16:12 testing
testing/:
total 0
36873221949214360 -rw-rw-rw- 2 coding coding 83 Mar 5 13:46 20190304test001.txt
coding@DESKTOP-5MQ0I0D:/tmp$
coding@DESKTOP-5MQ0I0D:/tmp$ ln -s testing/20190304test001.txt 20190304tets002.txt
coding@DESKTOP-5MQ0I0D:/tmp$ ls -li
total 24
36873221949214360 -rw-rw-rw- 2 coding coding 83 Mar 5 13:46 20190304test001.txt
23362423067085188 lrwxrwxrwx 1 coding coding 27 Mar 5 16:17 20190304tets002.txt -> testing/20190304test001.txt
25332747903961015 -rw-rw-rw- 1 coding coding 304 Mar 5 14:07 all.tar.xz
10696049115236520 -rw-r–r-- 1 coding coding 3771 Feb 28 19:47 bashrc
55732045388840168 -rw-r–r-- 1 coding coding 19183 Mar 5 15:38 services
27021597764376606 drwxr–r-- 1 coding coding 512 Mar 5 16:12 testing
coding@DESKTOP-5MQ0I0D:/tmp$
文件压缩
gzip
bzip2
xz
三者的语法基本都差不多,gzip 效率最差,但是速度最快
xz效率最高,但是耗时最长。
选项与参数:
-c :将压缩的数据输出到屏幕上,可通过数据流重导向来处理;
-d :解压缩的参数;
-t :可以用来检验一个压缩文件的一致性~看看文件有无错误;
-v :可以显示出原文件/压缩文件的压缩比等信息;
-# :# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6
打包指令 tar
选项与参数:
-c :创建打包文件,可搭配 -v 来察看过程中被打包的文件名(filename)
-t :察看打包文件的内容含有哪些文件名,重点在察看“文件名”就是了;
-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串命令行中。
-z :通过 gzip 的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz
-j :通过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2
-J :通过 xz 的支持进行压缩/解压缩:此时文件名最好为 *.tar.xz 特别留意, -z, -j, -J 不可以同时出现在一串命令行中
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
-f filename:-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项啰!(比较不会忘记)
-C 目录 :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
其他后续练习会使用到的选项介绍:
-p(小写) :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
–exclude=FILE:在压缩的过程中,不要将 FILE 打包!
**其实最简单的使用 tar 就只要记忆下面的方式即可
.bz2结尾的
压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
.gz结尾的
压 缩:tar -zcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -ztv -f filename.tar.bz2
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
-jtv -f filename.tar.bz2
解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
.gz结尾的
压 缩:tar -zcv -f filename.tar.bz2 要被压缩的文件或目录名称
查 询:tar -ztv -f filename.tar.bz2
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
[外链图片转存中…(img-xMFP95KQ-1726053693833)]
[外链图片转存中…(img-fiVUsLvI-1726053693834)]
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新