Linux系统目录结构

1系统目录结构

  • /binbinBinaries(二进制文件)的缩写,存放最长使用的命令。
  • /devdevDevice(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
  • /etcetcEtcetera(附加物)的缩写,用来存放所有的系统管理所需要的配置文件和子目录。
  • /home:用户的目录,每个用户都拥有自己的目录,一般目录名都是以用户的用户名命名的。
  • /liblibLibrary(库)的缩写,存放系统最基本的动态链接共享库,类似于Windows操作系统中的DLL文件。几乎所有应用程序都需要用到的这些共享库。
  • /lib64:同/lib/lib是存放32位的,本目录存放64位的。
  • /media:Linux操作系统识别的一些设备会挂载在这个目录下,如U盘、硬盘、光驱等。
  • /mnt:用户临时挂载别的文件系统,如可以将光驱挂载在该目录下,即可进入目录查看光驱的内容。
  • /optoptoptional(可选)的缩写,是用户安装软件的目录。
  • /procprocProcesses(进程)的缩写,这是一个伪文件系统(虚拟文件系统),存储当前内核中运行状态的一系列特殊文件。这是一个虚拟的目录,是系统内存的映射,可以通过直接访问这个目录来获取系统信息。
  • /root:系统管理员(root用户)的主目录。
  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,该目录下的文件会被全部清空。
  • /sbinsSuper User的意思,是Super User Binaries(超级用户的二进制文件)的缩写,这里存放的是系统管理员使用的系统管理程序。
  • /srv:该目录存放一些服务启动之后需要提取的数据。
  • /sys:该目录用于将系统设备组织或层次结构,并向用户提供详细的内核数据信息。
  • /tmptmptemporary(临时)的缩写,用来存放一些临时文件。
  • /usrusrunix shared resources(共享资源)的缩写,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的Profile Files目录。
  • /varvarvariable(变量)的缩写,存放着不断扩充着的东西,通常把那些经常修改的目录放在这个目录下。包括各种日志文件。

在 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表示递归,目录下所有文件都继承该权限。

通过权限符号

这种方法更为直观。

上述描述中,这三组权限分别为所属用户、所属组、其他用户,可以分别表示为ugo,另外,还可以通过a来代表ugo三个,即所有用户。
对权限进行修改使用三种符号,分别为+-=,分别表示添加某权限、减去某权限、设置为某权限。

案例:

chmod u+rwx,g-x,o=r filename

文件所有者和所属组修改

更改文件所有者

chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

更改文件所有组

chgrp [-R] 组名 文件名

参考资料:

  1. 菜鸟教程 - Linux 系统目录结构
  2. 菜鸟教程 - Linux 文件与目录管理
  3. [菜鸟教程 - Linux 文件基本属性](