从上一章节,我们学会了基本的登入与登出桌面环境,以及如何将终端机从桌面环境进行打开,还有基本的几个指令的介绍与使用,接下来,继续介绍作业系统上的基础。本章节,要来介绍档案系统,来看看Linux之档案系统的结构,并期许看玩了这个章节,能够知道与描述Linux档案系统的结构以及档案与目录的基本操作。
从上面的图来看,就是Linux档案系统的架构,最上面都会从根(/)档案系统,也是就是root开始,往下以阶层的方式扩展下去,里面有几个重要的档案系统目录整理在下面的清单:
其中,/dev、/run、/proc与/sys都是特别的目录,不要将档案放在这些目录底下,原因是这些目录会放置Kernel至存档案的地方而且这四个目录会对应到一个记忆体之空间。
指定一个档案可以透过两种方式来完成,一种叫做绝对路径,一种叫做相对路径。绝对路径指的是:从根目录开始,直接指定到档案的路径位址,像是使用者存的密码档案之绝对路径就会以:/etc/passwd来表示。路径之间的隔开会用斜线(slash),相对路径就是不是从根目录开始指定一个路径,可能是从某个当前目录开始指定一个档案路径,什麽意思呢?可以看看下面这个例子:
[rockylinux@workstation ~]$ ls /etc/passwd
/etc/passwd
[rockylinux@workstation ~]$ ls ../
rockylinux
[rockylinux@workstation ~]$
ls
指令是一个可以查看目录或是档案的指令,第一个指令,毫无疑问的是一个绝对路径的例子,那第二个指令是什麽意思呢?指的是从当前目录去察看上一层目录下的档案与目录,因为当前目录是使用者的家目录,上一层就是/home目录,因此就会显示出所有使用者的目录了,所以从这边可以知道,./
指的是当前目录,而../
指的是上一层目录。
这边介绍几个观看目录会用到的指令。首先,pwd
这个指令会显示出当前目录的完整名称,指令的执行方式与输出如下:
[rockylinux@workstation ~]$ pwd
/home/rockylinux
[rockylinux@workstation ~]$
ls
指令是列出指定目录下之档案与目录,执行指令方式与输出的结果如下:
[rockylinux@workstation ~]$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
[rockylinux@workstation ~]$
cd
指令是可以切换到某个目录底下,相关的执行指令方式与输出的结果如下:
[rockylinux@workstation ~]$ cd Music/
[rockylinux@workstation Music]$ cd /home/rockylinux/Videos
[rockylinux@workstation Videos]$
从上面输出的指令结果可以看到,cd
指令可以接的目录可以是绝对路径,也可以是相对路径,而同样的,ls
後面接要查看的目录位置也可以允许相对与绝对路径,若cd
指令没有接任何的参数,则执行之後会切换到当前使用者的家目录。
若要输出更多每个档案与目录更多的资讯,像是每个档案存取权限的资讯、拥有者、修改时间日期或是隐藏档案,可以使用-a
与-l
这两个选项来做到,可以把选项合在一起变成-al
,就会变成下面这样:
[rockylinux@workstation ~]$ ls -al
total 32
drwx------. 15 rockylinux rockylinux 4096 Sep 19 20:38 .
drwxr-xr-x. 3 root root 24 Sep 18 00:05 ..
-rw-------. 1 rockylinux rockylinux 453 Sep 19 23:13 .bash_history
-rw-r--r--. 1 rockylinux rockylinux 18 Jun 17 07:42 .bash_logout
-rw-r--r--. 1 rockylinux rockylinux 141 Jun 17 07:42 .bash_profile
-rw-r--r--. 1 rockylinux rockylinux 376 Jun 17 07:42 .bashrc
drwxr-xr-x. 10 rockylinux rockylinux 238 Sep 18 00:05 .cache
drwx------. 11 rockylinux rockylinux 215 Sep 18 00:05 .config
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Desktop
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Documents
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Downloads
-rw-------. 1 rockylinux rockylinux 16 Sep 18 00:05 .esd_auth
-rw-------. 1 rockylinux rockylinux 1550 Sep 19 20:31 .ICEauthority
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 .local
drwxr-xr-x. 4 rockylinux rockylinux 39 Sep 17 23:33 .mozilla
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Music
drwxr-xr-x. 2 rockylinux rockylinux 4096 Sep 19 20:58 Pictures
drwxrw----. 3 rockylinux rockylinux 19 Sep 18 00:05 .pki
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Public
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Templates
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Videos
上述的档案资讯说明如下:
drwx------.
为例,第一个字元d指的是目录的意思,而如果是-
则指的是一般档案,若是l
的话则是soft-link,而b
和c
则是设备档,而s
是Unix domain socket档,而p
指的是pipeline档,後面的有r
、w
与x
则会在後面提到,这边只需要了解代表的是使用者权限的意思,最後一个字元是.
的话,则是一般的档案权限,若是+
的话,指的是ACL档案权限,至於ACL档案权限介绍也会在後面章节中做详细的介绍。.bash_history
这样表示,则是一个隐藏档案。若是只要印出指定路径所有的目录即可的话,则可以使用ls -ald
做到,意思就是加上一个-d
参数做到,相关的执行指令执行後的结果如下:
[rockylinux@workstation ~]$ ls -ald
drwx------. 15 rockylinux rockylinux 4096 Sep 19 20:38 .
[rockylinux@workstation ~]$
若要印出某个指定路径底下,所有子目录底下的路径的话,则可以使用-R
来做到,相关执行後的结果如下:
[rockylinux@workstation ~]$ ls -alR /home/
/home/:
total 4
drwxr-xr-x. 3 root root 24 Sep 18 00:05 .
dr-xr-xr-x. 17 root root 224 Sep 17 23:34 ..
drwx------. 15 rockylinux rockylinux 4096 Sep 19 20:38 rockylinux
/home/rockylinux:
total 32
drwx------. 15 rockylinux rockylinux 4096 Sep 19 20:38 .
drwxr-xr-x. 3 root root 24 Sep 18 00:05 ..
-rw-------. 1 rockylinux rockylinux 453 Sep 19 23:13 .bash_history
-rw-r--r--. 1 rockylinux rockylinux 18 Jun 17 07:42 .bash_logout
-rw-r--r--. 1 rockylinux rockylinux 141 Jun 17 07:42 .bash_profile
-rw-r--r--. 1 rockylinux rockylinux 376 Jun 17 07:42 .bashrc
drwxr-xr-x. 10 rockylinux rockylinux 238 Sep 18 00:05 .cache
drwx------. 11 rockylinux rockylinux 215 Sep 18 00:05 .config
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Desktop
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Documents
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Downloads
-rw-------. 1 rockylinux rockylinux 16 Sep 18 00:05 .esd_auth
-rw-------. 1 rockylinux rockylinux 1550 Sep 19 20:31 .ICEauthority
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 .local
drwxr-xr-x. 4 rockylinux rockylinux 39 Sep 17 23:33 .mozilla
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Music
drwxr-xr-x. 2 rockylinux rockylinux 4096 Sep 19 20:58 Pictures
drwxrw----. 3 rockylinux rockylinux 19 Sep 18 00:05 .pki
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Public
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Templates
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 Videos
/home/rockylinux/.cache:
total 20
drwxr-xr-x. 10 rockylinux rockylinux 238 Sep 18 00:05 .
drwx------. 15 rockylinux rockylinux 4096 Sep 19 20:38 ..
-rw-r--r--. 1 rockylinux rockylinux 12288 Sep 19 20:31 event-sound-cache.tdb.efa711973c694923969a64fd32220e6d.x86_64-redhat-linux-gnu
drwx------. 8 rockylinux rockylinux 94 Sep 18 00:05 evolution
drwxr-xr-x. 3 rockylinux rockylinux 26 Sep 18 00:05 flatpak
drwxr-xr-x. 7 rockylinux rockylinux 114 Sep 18 02:26 gnome-software
drwxrwxr-x. 2 rockylinux rockylinux 33 Sep 18 00:05 gstreamer-1.0
drwx------. 2 rockylinux rockylinux 6 Sep 18 00:05 libgweather
drwxr-xr-x. 51 rockylinux rockylinux 4096 Sep 19 20:54 mesa_shader_cache
drwxr-xr-x. 2 rockylinux rockylinux 229 Sep 19 20:31 tracker
drwx------. 4 rockylinux rockylinux 45 Sep 18 00:05 yelp
/home/rockylinux/.cache/evolution:
total 0
drwx------. 8 rockylinux rockylinux 94 Sep 18 00:05 .
drwxr-xr-x. 10 rockylinux rockylinux 238 Sep 18 00:05 ..
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 addressbook
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 calendar
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 mail
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 memos
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 sources
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 tasks
/home/rockylinux/.cache/evolution/addressbook:
total 0
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 .
drwx------. 8 rockylinux rockylinux 94 Sep 18 00:05 ..
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 trash
/home/rockylinux/.cache/evolution/addressbook/trash:
total 0
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 .
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 ..
/home/rockylinux/.cache/evolution/calendar:
total 0
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 .
drwx------. 8 rockylinux rockylinux 94 Sep 18 00:05 ..
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 trash
/home/rockylinux/.cache/evolution/calendar/trash:
total 0
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 .
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 ..
/home/rockylinux/.cache/evolution/mail:
total 0
drwxr-xr-x. 3 rockylinux rockylinux 19 Sep 18 00:05 .
drwx------. 8 rockylinux rockylinux 94 Sep 18 00:05 ..
drwxr-xr-x. 2 rockylinux rockylinux 6 Sep 18 00:05 trash
......
若要新建立一个档案,则可以使用touch
指令来做到,例如:假设要在当前的使用者目录建立一个档案的话,则可以使用:touch file1
来做到,相关的输出指令结果如下:
[rockylinux@workstation ~]$ touch file1
[rockylinux@workstation ~]$ ls
Desktop Documents Downloads file1 Music Pictures Public Templates Videos
这边列出几个常见的档案与目录的操作,相关的操作如下列表:
mkdir directory
:这个mkdir
指令指的是新增一个目录,後面可以接的是要新增目录的名称。mkdir -p directory1/directory2
,多了-p
参数则会在建立目录的时候,若directory1不存在的话,则会先建立,接着再建立directory2
。cp file new_file
:这个cp
指令指的是复制一个档案并为复制的档案取一个新的档案名称。cp -r directory new_dirctory
,这个cp
指令搭配了-r
参数,则是将一个目录包含底下所有的目录与档案整个复制到一个取名的目的目录名称。mv file new_file
,这个mv
指令就是将档案重新命名成另一个档案名称,而用在目录则是将目录重新命名。rm file
,rm
这个指令就是将指定的档案给删除。rm -i file
,加上-i
指令则是互动式方式询问是否要删除这个档案,给使用者作最後一次地确认。rm -r directory
,这个指令就是将某个目录给删除,不管目录是不是空的,都可以将指定的目录给删除掉rm -rf directory
,这个指令也是将指定的目录删除,但是比上面指令多了一个-f
参数,这个参数指的是,因为有时候档案或是目录可能不存在,而-f
则是忽略那些档案或是目录,一律就是强制的删除而且不会有任何的互动的询问。rmdir directory
,这个指令是将空的目录删除,若目录底下不是空的,则会无法删除。档案捷径分成:soft links与hard links,所谓的hard links,中文会叫做硬连结,指的是有两个档案会指向同一个inode,inode会储存档案物件与属性,hard links并不会暂额外的空间,但是无法跨越装置与分割的磁碟空间,通常是用在磁碟空间有限的地方,像是嵌入系统的环境。使用-i
参数在执行ls
指令的时候,则会可以印出指定的档案之inode编号是多少,相关的指令之输出结果如下:
[rockylinux@workstation ~]$ ls -i file1
1495446 file1
soft links又是什麽呢?中文会叫做软连结,则没有hard links之限制,能够跨装置或是磁碟分割区路径来做到连结,但是建立连结的同时,则会占额外空间给建立连结的档案,那要怎麽建立hard links与soft links呢?可以使用ln
来做到,相关的执行方法如下:
[rockylinux@workstation ~]$ ln file1 file2_hard
[rockylinux@workstation ~]$ ls -i file1 file2_hard
1495446 file1 1495446 file2_hard
若只用ln
没有加其他参数,只有加上档案与被建立连结档案名称的话,则会建立成hard links,而使用ls -i
指令则可以知道,这两个档案之inode编号是一样的,若要建立的是soft links,则可以使用下列的方法:
[rockylinux@workstation ~]$ ln -s file1 file2_soft
[rockylinux@workstation ~]$ ls -i file1 file2_soft
1495446 file1 2242910 file2_soft
[rockylinux@workstation ~]$
[rockylinux@workstation ~]$
从上面输出的结果可以得知,建立的soft link之档案是单独的一个档案,因为使用的inode编号是不同的,那删除呢?我们试着将档案删除之後,接着再执行上述查看档案相关的连结之间的指令,则会看到下列的结果:
[rockylinux@workstation ~]$ rm file1
[rockylinux@workstation ~]$ ls -al file2_hard
-rw-rw-r--. 1 rockylinux rockylinux 0 Sep 21 01:17 file2_hard
[rockylinux@workstation ~]$
[rockylinux@workstation ~]$ ls -al file2_soft
lrwxrwxrwx. 1 rockylinux rockylinux 5 Sep 21 01:45 file2_soft -> file1
最後一个若在画面上会显示红色的警告,表示soft link之连结已经失效,但是hard link之档案不会有任何的影响,其档案仍能够存取,相关的结果如下所示:
[rockylinux@workstation ~]$ rm file1
[rockylinux@workstation ~]$ cat file2_hard
test
123
[rockylinux@workstation ~]$ cat file2_soft
cat: file2_soft: No such file or directory
开启workstation之虚拟主机,并以rockylinux
之使用者登入,密码为:rocky,依序完成下列的操作:
ls
指令来查看当前使用者目录底下所有档案属性等资讯directory1/sub_directory
,请以一行指令完成test_file1
test_file1
使用指令建立一个soft link,soft link名称为:test_file1_soft
directory1
删除test_file1
删除并使用ls
指令观察test_file1_soft
之状态test_file1_soft
删除
>>: day5_Windows,Linux, MacOs 与 arm 的支援度和 x86 的差异
嗨~大家好!! 我是饿麟,你们也可以叫我小饿 今天是铁人赛开赛的第1天 身为一个小白,我正思考着也许...
教材网址 https://coding104.blogspot.com/2021/06/java-e...
挑战目标: MockNative Camp 今天来看一下在各种页面中是否有遗漏教师的栏位 这边整理一...
撰写测试 相信很多人会想要增加系统的稳定度,但是这该如何做则是个问题,相信很多人看过91 TDD的文...
您所使用的Windows 10是否经常崩溃?您是否在Windows 10中收到档案丢失或损坏的错误?...