一、根目录(/)
根目录是Debian系统的根源,所有的一级目录都从这里开始。 根目录下,存放这常用文件夹结构:
/bin
bin 是 Binaries (二进制文件) 的缩写,/bin目录包含了一些基本的可执行命令,如ls、cp和mkdir等。这些命令是系统启动时必需的,不依赖于其他文件系统。
/boot
/boot目录包含了引导Linux内核启动时所需的文件。例如,内核映像文件(vmlinuz)和引导加载程序(GRUB或LILO)配置文件都位于此目录中。
/etc
/etc目录包含了系统的配置文件。在这个目录下,存着网络配置文件、用户账户配置文件、软件包管理器(apt)配置文件等。一般修改IP,DNS等系统参数都修改此目录下文件。
/home
/home目录是每个用户的个人主目录。当创建新用户时,每个新用户就会在这个目录下生成个人文件夹,有点类似windows的用户目录,用于存储文件和配置。可以将该目录单独分一个盘区存放,重做系统后数据不丢失
/lib和/lib64
/lib和/lib64目录包含了系统所需的共享库文件。这些库文件被可执行文件使用,以提供系统功能和支持。
/lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/proc
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/opt
/opt目录用于安装可选软件包。一些第三方软件,如跨平台应用程序和专有软件,可能会安装在这个目录下。通常情况下,它们会有自己的子目录,以保持整洁。
/root
/root目录是超级用户(root)的个人主目录。与普通用户的主目录(/home)不同,root用户的主目录位于/root目录下。
/tmp
/tmp目录用于存储临时文件。这个目录下的文件通常在系统重新启动后被清除,所以你可以在这里放置临时数据和缓存文件。
/var
/var目录存储经常变化的数据。数据包括日志文件(/var/log)、临时文件(/var/tmp)和软件包数据库(/var/lib/dpkg)等。
/usr: /usr目录是一个重要的目录,包含了系统的许多子目录和文件。主要内容如下:
/usr/bin:系统的用户可执行命令。 /usr/include:用于C/C++编程的头文件。 /usr/lib:非系统关键库的共享库文件。 /usr/local:用户自行安装的软件(通常由源码编译得到)。 /usr/sbin:系统管理员使用的系统管理命令。 /usr/share:共享数据文件,如系统文档、图标和桌面文件等。
二、自己编译的程序放置的目录
当编译自己的程序时,你可以选择将可执行文件和相关文件放置在以下目录之一: /usr/local/bin: /usr/local/bin目录用于存放用户自行编译的可执行文件。将你的程序放置在这里,可以使其成为系统的一部分,并在终端中全局访问。
/opt: 前面已提到,/opt目录适用于安装可选软件包。你可以创建一个子目录(如/opt/myprogram)来存放你编译的程序及其相关文件。
eg:需要注意的是,如果你希望你编译的程序能够被所有用户访问,你需要相应地设置文件和目录的权限。
三、第三方软件的安装目录
对于第三方软件的安装,一般而言,可以选择将其放置在/opt目录或者/usr/local目录下。
/opt目录:该目录用于安装可选的软件包。你可以在/opt目录下创建一个子目录,例如/opt/mysoftware,然后将第三方软件的文件放置在这个子目录中。这种方式可以将第三方软件与系统自带的软件分开,使其易于管理。
/usr/local目录:/usr/local目录也可以用于存放用户自行安装的软件。你可以将第三方软件的文件放置在/usr/local目录下的相应子目录中,例如/usr/local/bin用于存放可执行文件,/usr/local/lib用于存放库文件,等等。使用/usr/local目录的好处是,它可以让你的软件成为系统的一部分,并且能够被所有用户访问。
需要注意的是,无论你选择将第三方软件放置在/opt还是/usr/local目录下,你需要确保正确设置文件和目录的权限,以便所有用户能够访问和执行这些软件。
此外,对于特定的第三方软件,它们可能会有自己的安装指导或推荐的安装目录。在安装该软件之前,最好查阅其官方文档或参考指南,以了解它们的推荐安装位置。
四、用户源代码
用户源代码通常放置在用户的个人目录或者特定的源代码目录中。下面是两个常见的放置源代码的目录:
用户的个人目录: 每个用户都有自己的个人目录,通常位于/home目录下,其路径类似于/home/username,其中username是用户的用户名。在个人目录中,用户可以创建一个专门用于存放源代码的文件夹,例如/home/username/src或/home/username/code。这样做的好处是,每个用户都有自己的私有空间来管理和组织自己的源代码。
/usr/local/src目录: /usr/local/src目录是一个常见的用于存放用户源代码的系统级别目录。在这个目录下,用户可以创建一个子目录,例如/usr/local/src/myproject,并将源代码放置在其中。这种方式适用于多个用户或者系统范围内的共享源代码,使得多个用户可以方便地访问和共享源代码。
需要注意的是,放置源代码的具体目录位置可以根据个人偏好和实际需求进行自定义。重要的是选择一个有组织且易于管理的位置,并确保适当设置文件和目录的权限,以确保源代码的安全性和访问性。
--------------------------------
我们应该知道 Windows 有一个默认的安装目录专门用来安装软件。Linux 的软件安装目录也应该是有讲究的,遵循这一点,对后期的管理和维护也是有帮助的。
/usr 系统级的目录,可以理解为 C:/Windows/ , /usr/lib 可理解为 C:/Windows/System32 。
/usr/local 用户级的程序目录,可以理解为 C:/Progrem Files/ 。用户自己编译的软件默认会安装到这个目录下。
/opt 用户级的程序目录,可以理解为 D:/Software , opt 有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接 rm -rf 掉即可。
在硬盘容量不够时,也可将 /opt 单独挂载到其他磁盘上使用。
源码放哪里?
/usr/src 系统级的源码目录。
/usr/local/src 用户级的源码目录。
拓展:
/opt
Here’s where optional stuff is put. Trying out the latest Firefox beta? Install it to /opt where you can delete it without affecting other settings. Programs in here usually live inside a single folder whick contains all of their data, libraries, etc.
这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可 以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。
举个例子:刚才装的测试版firefox,就可以装到/opt/firefox_beta目录下,/opt/firefox_beta目录下面就包含了运 行firefox所需要的所有文件、库、数据等等。要删除firefox的时候,你只需删除/opt/firefox_beta目录即可,非常简单。
/usr/local
This is where most manually installed(ie. outside of your package manager) software goes. It has the same structure as /usr. It is a good idea to leave /usr to your package manager and put any custom scripts and things into /usr/local, since nothing important normally lives in /usr/local.
这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面,我想这应该是个不错的主意。
常用目录及用途
/bin 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。
/etc 存放系统管理和配置文件
/home 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/usr 用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
/usr/x11r6 存放x window的目录
/usr/bin 众多的应用程序
/usr/sbin 超级用户的一些管理程序
/usr/doc linux文档
/usr/include linux下开发和编译应用程序所需要的头文件
/usr/lib 常用的动态链接库和软件包的配置文件
/usr/man 帮助文档
/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/lib 本地增加的库
/opt 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。
/proc 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/root 超级用户(系统管理员)的主目录(特权阶级^o^)
/sbin 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
/dev 用于存放设备文件。
/mnt 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。
/boot 存放用于系统引导时使用的各种文件
/lib 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。
/tmp 用于存放各种临时文件,是公用的临时文件存储点。
/var 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。
例:linux中lnmp相关软件的安装目录
Nginx 目录: /usr/local/nginx/
MySQL 目录 : /usr/local/mysql/
MySQL数据库所在目录:/usr/local/mysql/var/
PHP目录 : /usr/local/php/
PHP项目目录:/www/ 或者 /home/www/
FTP目录:/usr/local/ftp/
https://zhuanlan.zhihu.com/p/145270349