在linux下我们一直使用很多命令,比如ls,cd,mkdir等等,那这些命令是在哪个目录里呢?我们可以先看看根目录,所有目录都挂在根目录下,有且只有一个根目录,所有东西都从根目录开始,如果在终端输入/home,其实是告诉电脑从/(根目录)开始,再到home目录。
/是根目录,cd /进入根目录后,我们可以看见很多目录:bin、dev、root……
接下来将会依次介绍每个目录:
bin
对于bin目录可以点击后面链接有详细介绍:
http://www.linuxbase.org/betaspecs/fhs/fhs/ch03s04.html 我们可以ls bin看下bin目录都存放些什么:
可以看到一些cp(拷贝)、rm(删除)、ps(查看进程)等等很多命令,bin目录的主要作用是存放一些常用命令。bin目录其实在PATH这个环境变量里面,如果你在终端输入ls,系统会在/bin目录下查找是否有ls这个程序。
dev
在linux中,各种设备都在dev目录下。这里主要存放与设备(包括外设)有关的文件(unix和linux系统均把设备当成文件)。dev是设备(device)的英文缩写,/dev这个目录对所有用户都十分重要,因为在这个目录中包含了所有Linux系统中的外部设备,但是存放的并不是外部设备的驱动程序,这一点和Windows,dos操作系统不同,而是一个访问外部设备的端口。我们可以十分方便的访问这些外部设备,和访问一个文件访问一个目录没有区别。如果想要连线打印机,就是从这个目录开始工作的。磁盘驱动、USB驱动等都放在这个目录。
/dev/ram[0-15]:内存;
/dev/null:无限数据接受设备,相当于黑洞;
/dev/loop[0-7]:本地回环设备;
/dev/lp[0-3]:并口;
/dev/zero:无限零资源;
/dev/tty[0-63]:虚拟中断;
/dev/console:控制台;
/dev/random:随机数设备;
root
在linux下分为两种用户一种是root用户,一种是普通用户,在root用户下可以干任何事情,可以删除任何文件,所以要谨慎使用root用户,如果从普通用户切换到root后,要再su回到普通用户。(su 可以切换用户:su root )
home
home是用户主目录,或者是家目录。
这里主要存放你的个人数据。具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名,我的用户主目录就是/home/admin。当然,root用户除外。
etc
etc目录下主要存放了系统配置方面的文件;
如果安装了samba,可以用ls /etc/samba查看samba的配置信息。
/etc/rc或/etc/rc.d/或/etc/rc?.d :启动或改变运行级时运行的脚本或脚本的目录;
/etc/passwd :用户数据库,其中的域给出了用户名、真实姓名、用户其实目录、加密口令和用户的其他信息;
/etc/fdprm :软盘参数表,用于说明不同的软盘格式;
/etc/group:类似/etc/passwd,但说明的不是用户信息而是组的信息,包括组的各种数据;
/etc/issue :包括用户在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息,具体由系统管理员确定。
/etc/magic:"file"的配置文件。包含不同文件格式的说明,“file”基于它猜测文件类型;
/etc/shadow :在安装了影子(shadow)口令软件的系统上的影子口令文件。影子口令文件将/etc/passwd文件的加密口令移动到/etc/shadow中,而后者只对拆机用户(root)可读,这使破译口令更困难,以此增加系统的安全性;
/etc/shells:列出可以使用的shell。chash命令允许用户在本文件指定范围内改变登录的shell。提供一台机器ftp服务的服务进程ftpd检查用户shell是否列在/etc/shells文件中,如果不是,将不允许该用户登录;
/etc/termcap:终端性能数据库。说明不同的终端用什么“转义序列”控制。写程序时不直接输出转义序列,而是在/etc/termcap中查找要做的工作的正确序列。
tmp
tmp是临时文档,对于一些程序,有些文件被用了一次两次不会被用到,这样的文件就会存放在此处。有些linux系统会定期对这个目录的文件进行清理,所以一些重要文件不要存放在此处。
ls tmp:
sbin
sbin:是super user,存放是系统管理员使用的系统管理模式。存放大多涉及系统管理的命令(例如引导系统的init程序,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令(但是有时普通用户也可能会用到。))
注:sbin里的命令只有root用户可以使用。
lib
lib目录是根文件系统上程序所需的共享库,存放了根文件系统运行时所需的共享文件,这些文件包含了可被许多程序共享的代码,以避免每个程序都有相同的子程序副本,可以使执行文件变得更小,节省空间。
boot
boot目录包括了启动linux的核心文件。在最开始的启动阶段,通过引导程序将内核加载到内存,完成内核的启动(这个时候,虚拟文件 系统还不存在)加载的内核虽然是从硬盘读取的,但是没经过linux的虚拟文件系统,这是比较底层的东西来实现的。然后内核自己创建好虚拟文件系统,并且从虚拟文件系统的其他子目录中(如/sbin、/etc)加载需要在开机启动的其他程序或者服务或者特定的动作。
opt
可择的文件目录。主机额外安装软件所摆放的目录。一些自定义软件包或者第三方工具可以安装在这里。
mnt
临时挂载目录。这个目录一般用于存放挂载储存设备,比如光驱,磁盘,网络文件系统等,当我们需要挂载某个磁盘设备的时候,可以把吸盘设备挂载到这个目录上去,这样我们可以直接通过访问这个目录来访问该磁盘。一般可以在mnt下多建几个子目录,挂载的时候挂载到这些子目录上,因为通常我们可能会挂载很多设备。
srv
存储系统提供的服务数据。
media
挂载的媒体设备目录,一般外部设备挂载到这里,例如cdrom等。比如我们插入一个U盘,我们会发现,Linux自动在这个目录下建立一个disk目录,然后把U盘挂载到这个disk目录上,通过访问这个disk来访问U盘。
var
存放不断变化的文件。此目录下文件 的大小可能会改变,如缓冲文件,日志文件,缓存文件,计划性任务和邮件等。
/var/cache:应用程序缓存目录;
/var/crash:系统错误信息;
/var/games:游戏数据;
/var/log:日志文件;
/var/mail:电子邮件;
/var/tmp:临时文件目录;
lost+found
恢复文件存放的位置。当系统崩溃的时候,该目录可能存放在系统修复过程中需要恢复的文件。
selinux
用来加固操作系统,提供系统的安全性。
proc
特殊文件目录。这个本身是 一个虚拟文件系统,包含了全部虚拟文件。此目录的数据全部在内存中,如系统核心,外部设备,网络状态 ,行程资讯(process即进程,可以用/process 查看进程信息)由于数据都存放在内存中,所以不占据磁盘空间。
几个比较重要的目录:
/proc/1:进程pid是1;
/proc/cpuinfo:处理器信息,如类型、制造商、型号和性能;
/proc/interrupts:显示使用的中断,and how many of each there have been;
/proc/ioports :当前使用的I/O窗口;
/proc/net:网络协议状态信息。
sys
虚拟文件系统:记录核心系统硬件信息。
usr
这个目录中包含了命令库文件和在通常操作不会修改的文件。
/usr/lib:目标库文件,包括动态链接库加上一些通常不是直接调用的可执行文件的存放位置;
/usr/bin:用户和管理员的标准命令;
/usr/sbin:存放root超级用户使用的管理程序;
/usr/include:C程序语言编译使用的头文件。linux下开发和编译应用程序所需要的头文件一般都存放在这里,通过头文件来使用某些库函数。默认来说这个路径被添加到了环境变量中,这样编译开发程序的时候编译器会自动搜索这个路径,从中找到你的程序中可能包含的头文件;
/usr/local:安装本地程序的一般默认路径;
/usr/share:用于存放一些共享的数据;
/usr/src:linux开放的源代码;
/usr/games:存放XteamLinux自带的小游戏。
接下里对一些易混淆目录简单区分一下:
**/bin、/sbin、/usr/bin、/usr/sbin:**
/bin:一般存放对于用户和系统来说“必需”的程序(二进制文件);
/sbin:一般存放用于系统管理的“必需”的程序(二进制文件),一般普通用户不会使用,根用户使用;
/usr/bin:一般存放的只是对用户和系统来说“不是必需的”程序(二进制文件);
/usr/sbin:一般存放用于系统管理的系统管理的不是必需的程序(二进制文件)。
/lib、/usr/lib:
/lib和/usr/lib的区别类似/bin、/sbin、/usr/bin、/usr/sbin。
/lib一般存放对于用户和系统来说“必需”的库(二进制文件)。
/usr/lib一般存放的只是对用户和系统来说“不是必需的”库(二进制文件)