Linux系统目录结构
/bin
:bin
是Binaries
(二进制文件)的缩写,存放最长使用的命令。/dev
:dev
是Device
(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。/etc
:etc
是Etcetera
(附加物)的缩写,用来存放所有的系统管理所需要的配置文件和子目录。/home
:用户的目录,每个用户都拥有自己的目录,一般目录名都是以用户的用户名命名的。/lib
:lib
是Library
(库)的缩写,存放系统最基本的动态链接共享库,类似于Windows操作系统中的DLL文件。几乎所有应用程序都需要用到的这些共享库。/lib64
:同/lib
,/lib
是存放32位的,本目录存放64位的。/media
:Linux操作系统识别的一些设备会挂载在这个目录下,如U盘、硬盘、光驱等。/mnt
:用户临时挂载别的文件系统,如可以将光驱挂载在该目录下,即可进入目录查看光驱的内容。/opt
:opt
是optional
(可选)的缩写,是用户安装软件的目录。/proc
:proc
是Processes
(进程)的缩写,这是一个伪文件系统(虚拟文件系统),存储当前内核中运行状态的一系列特殊文件。这是一个虚拟的目录,是系统内存的映射,可以通过直接访问这个目录来获取系统信息。/root
:系统管理员(root用户)的主目录。/run
:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,该目录下的文件会被全部清空。/sbin
:s
是Super User
的意思,是Super User Binaries
(超级用户的二进制文件)的缩写,这里存放的是系统管理员使用的系统管理程序。/srv
:该目录存放一些服务启动之后需要提取的数据。/sys
:该目录用于将系统设备组织或层次结构,并向用户提供详细的内核数据信息。/tmp
:tmp
是temporary
(临时)的缩写,用来存放一些临时文件。/usr
:usr
是unix shared resources
(共享资源)的缩写,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的Profile Files
目录。/var
:var
是variable
(变量)的缩写,存放着不断扩充着的东西,通常把那些经常修改的目录放在这个目录下。包括各种日志文件。
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
/etc
:这个是系统中的配置文件,如果错误的更改了该目录下的某个文件可能会导致系统不能启动。/bin
、/sbin
、/usr/bin
、/usr/sbin
: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。/var
: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log
目录下,另外 mail 的预设放置也是在这里。
Linux文件与目录管理
Linux的目录结构为树状结构,最顶级的目录为根目录/
。
处理目录的常用命令
ls
: list files
,列出目录和文件
cd
: change directory
,切换目录
cd 相对路径或绝对路径
pwd
: print work directory
,显示当前目录
pwd [-P]
可选参数:
-P
:显示真实目录,而非连结目录
mkdir
: make directory
,创建一个新的目录
mkdir [-mp] 目录名称
可选参数:
-m
:在创建时可以指定权限-p
:可以创建不存在的多级目录
mkdir -m 775 ./test_path
mkdir -p ./test1/test2/test3
rmdir
: remove directory
,删除一个空的目录
注意:此命令不能删除非空文件夹
rmdir [-v] path
可选参数:
-v
:显示指令执行过程
cp
: copy file
,复制文件或目录
cp [-adfilprsu] src dest
cp [-adfilprsu] src1 src2 ... dest
可选常用参数:
-a
:相当于-pdr
-p
:连同文件的属性一起拷贝(常用于备份)-d
:当src为连结时,复制连结而非文件本身-r
:递归复制,当需要复制的目录中有内容时,需要添加此参数-i
:若目标文件已存在,在覆盖时会先询问如何进行(询问是否覆盖)-l
:对文件进行硬式连结拷贝,而非文件本身
rm
: remove
,删除文件或目录
rm [-fir] 文件或目录
可选参数:
-f
:强制,忽略不存在的文件,不会出现警告信息-i
:交互模式,在删除前会二次询问是否确认删除-r
:递归删除,常用语删除有内容的目录
mv
: move file
,移动文件或目录,或修改文件或目录的名称
mv [-fiu] src dest
mv [-fiu] src1 src2 ... dest
可选参数:
-f
:若目标文件已存在,直接覆盖-i
:若目标文件已存在,询问是否进行覆盖-u
:若目标文件已存在,且src较新时,进行覆盖
查看文件的常用命令
file
: 识别文件类型
查看文件类型。
应用场景:从网上下载一个压缩包,解压不成功。可以通过file
命令查看该文件是否是规则的压缩包。
file [-bcfLmvzi] 文件名
常用可选参数:
-b
:不显示文件名称(简洁模式)-c
:详细显示指令执行过程-L
:直接显示符号连接所指向的文件类别-v
:显示版本信息-z
:尝试解读压缩文件的内容
cat
: 从第一行显示文件内容
cat [-AbEnTx] 文件名称
可选参数:
-A
:相当于-vET
-b
:列出行号(空白行不标)-n
:显示行号(空白行标)-E
:将结尾的断行字节$显示出来-T
:将TAB
以^I
显示出来-v
:列出一些看不出来的特殊字符
tac
: 从最后一行开始显示文件内容
head
: 读取文件前几行
head [-n number] 文件
-n
后面接数字,表示显示几行,若不填写此参数,则默认输出十行。
tail
: 读取文件最后几行,参数同head
Linux文件基本属性
文件基本属性
在Linux中,我们可以使用ls -l
命令显示文件的属性等信息。
# ① ② ③ ④ ⑤ ⑥ ⓻
dr-xr-x--- 1 root root 4096 Jul 7 09:25 root
属性
以/root
目录为例,其属性为dr-xr-x---
,其含义为:
- ①
- 第一个字符标识该文件是目录还是其他文件类型
d
表示目录-
表示普通文件l
表示链接文档b
表示装置文件里可供储存的接口设备,如U盘等c
表示装置文件里可供串行端口的设备,如键盘等
r-xr-x---
为该文件的权限标识- 前三个是所属用户的权限
- 中间三个是所数组的权限
- 最后三个是其他用户的权限
- r为读、w为写、x为执行,-表示没有该权限。
- 第一个字符标识该文件是目录还是其他文件类型
- ②:硬连接数量
- ③:文件所属用户
- ④:文件所属组
- ⑤:文件长度
- ⑥:最后修改时间
- ⓻:文件名
文件权限修改
修改文件权限有两种方式,一种是通过权限数字,另一种是通过符号改变。
通过权限数字
权限数字的计算:执行的权限为1、写的权限为2、读的权限为4,多个权限进行累加
原理:将rwx按照顺序排列,若拥有权限记1、没有权限记0,可以组成一个三位的二进制数,将其转成十进制,即可得到权限数字。
命令:
chmod [-R] xyz 文件名
-R
表示递归,目录下所有文件都继承该权限。
通过权限符号
这种方法更为直观。
上述描述中,这三组权限分别为所属用户、所属组、其他用户,可以分别表示为u
、g
、o
,另外,还可以通过a
来代表ugo
三个,即所有用户。
对权限进行修改使用三种符号,分别为+
、-
、=
,分别表示添加某权限、减去某权限、设置为某权限。
案例:
chmod u+rwx,g-x,o=r filename
文件所有者和所属组修改
更改文件所有者
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
更改文件所有组
chgrp [-R] 组名 文件名
参考资料:
- 菜鸟教程 - Linux 系统目录结构
- 菜鸟教程 - Linux 文件与目录管理
- [菜鸟教程 - Linux 文件基本属性](