【Linux】Linux各文件夹说明
转载
- /bin/ — 用来贮存普通命令。
- /sbin/ — 许多系统命令(例如 shutdown)的贮存位置。属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统。/sbin目录下的命令通常只有管理员才可以运行,/bin下的命令管理员和一般的用户都可以使用。
- /root/ — 根用户(超级用户)的主目录。
- /mnt/ — 该目录中通常包括系统引导后被挂载的文件系统的挂载点。譬如,默认的光盘挂载点是 /mnt/cdrom/.
- /boot/ — 包括内核和其它系统启动期间使用的文件。
- /lost+found/ — 被 fsck 用来放置零散文件(没有名称的文件)。
- /lib/ — 包含许多被 /bin/ 和 /sbin/ 中的程序使用的库文件。目录 /usr/lib/ 中含有更多用于用户程序的库文件。
- /dev/ — 贮存设备文件。
- /etc/ — 包含许多配置文件和目录。
- /var/ — 用于贮存variable(或不断改变的)文件,例如日志文件和打印机假脱机文件。
- /usr/ — 包括与系统用户直接有关的文件和目录,例如应用程序及支持它们的库文件。
- /proc/ — 一个虚拟的文件系统(不是实际贮存在磁盘上的),它包括被某些程序使用的系统信息。
- /initrd/ — 用来在计算机启动时挂载 initrd.img 映像文件的目录以及载入所需设备模块的目录。
/usr详解:
usr 指 Unix System Resource,而不是User
- /usr/bin : 所有可执行文件,如 gcc,firefox 等(指不包含在 /sbin 和 /bin 内的),登录用户可以使用的预装程序一般都放在这里;
- /usr/include : 各种头文件,编译文件等时需要使用;
- /usr/include/’package-name’ : 程序特定的头文件;
- /usr/lib : 所以可执行文件所需要的库文件;
- /usr/local : /usr 通常只包含系统发行时自带的程序,而 /usr/local 则是本地系统管理员用来自由添加程序的目录;/usr/local/ 目录下的都不是系统预装,而是手动编译或者安装的程序
- /usr/X11R6 : x 系统的二进制文件,库文件,文档,字体等。它不等同于 /usr 的作用,只有 x 才能调用这些库文件等,其他程序不读取或者使用。因为 linux 没有原生图形界面,而且 linux 大部分情况下是 for server 的,所以图形界面没有意义;其中 X11R6 代表 version 11 release 6;
- /usr/X11R6/bin : x 的二进制文件,包含运行 x 的必须文件;
- /usr/X11R6/include : x 相关的头文件;
- /usr/X11R6/lib : x 库文件;
- /usr/X11R6/lib/modules : x 的模块,启动时加载。缺少 video4linux, DRI and GLX 和 输入输出设备 模块,将工作不正常;
- /usr/X11R6/lib/X11/fonts : x font server 的字体文件;
- /usr/doc : 文档。实际是 /usr/share/doc 的软链接;
- /usr/etc : 一个极少用到的配置文件存放地;
- /usr/games : 曾经包含游戏等文件,现在很少用到;
- /usr/info : 系统相关信息,是 /usr/share/info 的软链接;
- /usr/man : man 手册,已经移至 /usr/share/man;
- /usr/sbin : 类似 /sbin,root 可以执行。但此目录不包含在环境变量 $PATH 中,它包含的程序类似于 chroot, useradd, in.tftpd and pppconfig;
- /usr/share : 它包含了各种程序间的共享文件,如字体,图标,文档等。(/usr/local 对应的目录是 /usr/loca/share);
- /usr/share/doc : 类似应用程序的 man 手册。它包含程序的说明文件,默认配置文件等;
- /usr/share/info : 不常用,已经被 man 代替;
- /usr/share/man : app 的 manual;
- /usr/share/icons : 应用程序的图标等文件,分为 png,svg 等多种格式;
- /usr/share/fonts : 字体文件,系统范围内可使用,~/.fonts 仅当前用户可用;
- /usr/src : linux 内核的源码和说明文档等;
- /usr/src/linux : linux 源代码;
- /usr/src/linux/.config : 内核编译过程产生的文件;通常由命令 ‘make config’ , ‘make menuconfig’ 或 ‘make xconfig’ 执行后产生;
- /usr/src/linux/.depend, /usr/src/linux/.hdepend : ‘make dep’ 检测编译依赖时需要的文件,由 /usr/src/linux/.config 产生;
- /usr/src/linux/COPYING : GNU license;
- /usr/src/linux/Makefile : 编译内核所需的 Makefile;
- /usr/src/linux/Rules.make : 当有多个 Makefile 时,根据它的规则执行 make;
- /usr/tmp : 已经被众多发行版抛弃的临时文件夹。
补充:
/bin是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
/sbin一般是指超级用户指令。主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、 runlevel、shutdown等。
/usr/bin 是你在后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。
/usr/sbin 放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。
如果新装的系统,运行一些很正常的诸如:shutdown,fdisk的命令时,悍然提示:bash:command not found。那么
首先就要考虑root 的$PATH里是否已经包含了这些环境变量。
可以查看PATH,如果是:PATH=$PATH:$HOME/bin则需要添加成如下:
PATH=$PATH:$HOME/bin:/sbin:/usr/bin:/usr/sbin
/usr/bin与/usr/local/bin区别
/usr/bin下面的都是系统预装的可执行程序,会随着系统升级而改变
/usr/local/bin目录是给用户放置自己的可执行程序的地方,推荐放在这里,不会被系统升级而覆盖同名文件
如果两个目录下有相同的可执行程序,谁优先执行受到PATH环境变量的影响,比如我的一台服务器的PATH变量为
- echo $PATH
- /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dean/bin
这里/usr/local/bin优先于/usr/bin, 一般都是如此。
/lib, /usr/lib与/usr/local/lib
/lib目录都是为/bin, /sbin准备的,一般作为开发者不用关心
开发者需要关心下面的事情,一个应用程序启动的时候,会在/lib 和 /usr/lib库中查找动态库,如果动态库没有放在此处,需要用环境变量LD_LIBRARY_PATH指定。比如在程序启动脚本中这样写,就能在/usr/local/lib目录中加载到自己放进去的动态库