初探 Linux-- 鸟哥私房菜读书笔记,廖雪峰 java 教程百度云
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
解压缩:tar -zxv -f filename.tar.bz2 -C 欲解压缩的目录
**
coding@DESKTOP-5MQ0I0D:/tmp$ bzip2 services
coding@DESKTOP-5MQ0I0D:/tmp$ ll
total 12
drwxrwxrwt 1 root root 512 Mar 5 16:26 ./
drwxr-xr-x 1 root root 512 Feb 27 14:33 ../
-rw-r--r-- 1 coding coding 3771 Feb 28 19:47 bashrc
-rw-r--r-- 1 coding coding 7108 Mar 5 15:38 services.bz2
drwxr--r-- 1 coding coding 512 Mar 5 16:12 testing/
coding@DESKTOP-5MQ0I0D:/tmp$ bzip2 -kd services.bz2
coding@DESKTOP-5MQ0I0D:/tmp$ ll
total 44
drwxrwxrwt 1 root root 512 Mar 5 16:27 ./
drwxr-xr-x 1 root root 512 Feb 27 14:33 ../
-rw-r--r-- 1 coding coding 3771 Feb 28 19:47 bashrc
-rw-r--r-- 1 coding coding 19183 Mar 5 15:38 services
-rw-r--r-- 1 coding coding 7108 Mar 5 15:38 services.bz2
drwxr--r-- 1 coding coding 512 Mar 5 16:12 testing/
coding@DESKTOP-5MQ0I0D:/tmp$
coding@DESKTOP-5MQ0I0D:/tmp$ tar -jcv -f testing.bz2 testing/
testing/
testing/20190304test001.txt
coding@DESKTOP-5MQ0I0D:/tmp$ ll
total 44
drwxrwxrwt 1 root root 512 Mar 5 16:28 ./
drwxr-xr-x 1 root root 512 Feb 27 14:33 ../
-rw-r--r-- 1 coding coding 3771 Feb 28 19:47 bashrc
评论