雪花飘落

Linux文件系统

1.系统目录的基本结构

以Centos为例,系统的基本目录如下:

其中说一下几个比较重要的:

1./:/就是系统的根目录

2.bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令,linux执行命令的时候,会在这个目录里面找。

3.home:用户的目录,每个用户有自己的文件夹

4.root:系统管理员的用户目录

5./usr:usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

6./usr/bin:系统用户的应用程序软件。/bin里面存放着系统的一些常用指令,而/usr/bin里面则存放着用户安装的软件的指令。如果是用户安装的软件命令,需要在/usr/bin目录里创建软连接才可以正常使用命令。

7./sbin和/usr/sbin:同样是用来存放命令的,但是其中的命令只有系统管理员,也就是root用户可以使用

2.cd命令

  Linux cd(英文全拼:change directory)命令用于切换当前工作目录。

其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。

另外,~ 也表示为 home 目录 的意思, . 则是表示目前所在的目录, .. 则表示目前目录位置的上一层目录。

其基本语法为:

cd [dirName]

  例如 cd /usr/bin 可以移动到usr/bin目录下

3.ls命令

Linux ls(英文全拼:list files) 用于显示指定目录下的文件和文件夹,其语法及参数为:

 ls [-alrtAFR] [name...]
参数 :

-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出(递归)

  这里主要说一下ls -l(亦可简写为ll)命令,用该命令可以显示文件的详细信息,如:

drwxr-xr-x 7 lighthouse lighthouse     4096 May 20 16:04 data

  字段1表示权限,r为可读,w为可写,x为可执行,开头的d表示这是一个目录。权限分为三个,分别为创建者的权限、同组用户的权限、其他用户的权限。上述内容中,他们的权限分别为rwx、rx、x(-表示没有对应的权限)

  字段2表示文件的硬链接数量

  字段3表示文件的所有者

  字段4表示所属用户组

  字段5表示大小(单位byte)

  字段6表示修改时间

  字段7表示文件名

4.文件的权限

更改文件权限

上面说到了可以使用ls -l命令来查看文件的权限,那么如何修改权限和所有者呢?

修改文件权限需要使用chmod命令,例如:

chmod -R 777 data
递归修改data目录下所有文件的权限

chmod 777 t
修改文件t的权限

其中三个八进制数分别表示创建者的权限、同组用户的权限、其他用户的权限。权限顺序为rwx,用二进制的1表示开放该权限,0表示关闭该权限。例如只开放读取权限,则是二进制100,转化为八进制就是4,而三个权限同时开放,即111,转化为八进制就是7,所以7代表开放所有权限。

r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5

更改所有者和用户组

chown 拥有者名字 文件名
更改所有者
chgrp 用户组名字 文件名
更改用户组

同样的可以使用-R参数来对文件夹内所有文件进行递归修改 

ch(change) own(owner) grp(group)

5.文件的复制、移动、删除

复制:

cp 源文件或目录 目标目录

 使用参数-r,可以将一个文件夹内的文件递归复制到目标目录里

移动:

移动使用mv命令,但是mv命令也可以用来对文件进行重命名,所以稍微复杂一点

mv [options] source dest
mv [options] source... directory
参数说明:

-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n: 不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

  如果两个参数都是文件,表示把源文件改为新的文件名

  如果第一个参数是文件,第二个参数是目录,表示把文件移动到新的目录中

  如果两个参数都是目录,则:若第二个目录存在,则将源目录中的文件移动到新目录中。如不存在,则对源目录重命名。

删除:

删除文件可以直接使用rm命令,若删除目录则必须配合选项"-r",例如:

# rm  test.txt 
rm:是否删除 一般文件 "test.txt"? y  
# rm  homework  
rm: 无法删除目录"homework": 是一个目录  
# rm  -r  homework  
rm:是否删除 目录 "homework"? y 
删除当前目录下的所有文件及目录,命令行为:

rm  -r  * 

6.创建目录 

创建目录使用mkdir命令(make directory)

mkdir [-p] dirName
在当前目录下创建一个目录
若给出的是一个路径,则上级目录不存在时会报错。加入参数-p之后可以按照给出的路径依次创建目录

  

7.硬链接与软链接

  Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。一般来说,软链接的应用场景会更广泛,软链接就像快捷方式,可以从这台电脑上的任何位置链接到目标。相较于硬链接,软链接可以跨越文件系统,也可以对目录创建软链接。不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

  要创建软链接需要使用ln命令(link file):

 ln [参数][源文件或目录][目标文件或目录]
其中 -s 表示创建符号链接(Symbol)即软链接

例如:
ln -s /usr/local/python3/bin/python3 /usr/bin/python
可以将安装的python软链接到usr/bin里,这样就可以使用python命令了

  

 
posted @ 2022-05-27 14:33  haruyuki  阅读(101)  评论(0编辑  收藏  举报