对于每一个初学Linux系统的初学者来说,了解Linux的目录结构是第一步也是关键一步,下图是Linux系统的树状目录结构
/bin目录:
bin为binary的缩写,主要放置系统的必要执行文件,例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等
/boot目录:
boot是引导程序,内核的存放的目录。此目录包含了在引导过程中所必须的文件,引导程序的相关文件(如:grup、kernel、lilo以及相应的配置文件及Linux操作系统内核相关文件;sbin超级用户可以使用的命令存放目录。存放大多数涉及系统管理命令,如:引导系统的init程序,是超级用户root的可执行命令存放地,普通用户无权限)
[root@linuxprobe Desktop]# ls /boot config-3.10.0-123.el7.x86_64 grub2 initramfs-0-rescue-c0dfe5671a8c40a7a4eaf2c389476e05.img initramfs-3.10.0-123.el7.x86_64.img initramfs-3.10.0-123.el7.x86_64kdump.img initrd-plymouth.img symvers-3.10.0-123.el7.x86_64.gz System.map-3.10.0-123.el7.x86_64 vmlinuz-0-rescue-c0dfe5671a8c40a7a4eaf2c389476e05 vmlinuz-3.10.0-123.el7.x86_64 [root@linuxprobe Desktop]#
/dev目录:
用于存放设备文件的目录,dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
[linuxprobe@linuxprobe Desktop]$ ls /dev agpgart kmsg rtc0 tty20 tty45 ttyS3 autofs log sda tty21 tty46 uhid block loop-control sda1 tty22 tty47 uinput bsg lp0 sda2 tty23 tty48 urandom btrfs-control lp1 sg0 tty24 tty49 usbmon0 bus lp2 sg1 tty25 tty5 usbmon1 cdrom lp3 shm tty26 tty50 usbmon2 char mapper snapshot tty27 tty51 vcs console mcelog snd tty28 tty52 vcs1 ... robe@linuxprobe Desktop]$
/etc目录:
用来存放程序所需的整个文件系统的配置文件
[linuxprobe@linuxprobe Desktop]$ ls /etc abrt httpd printcap adjtime idmapd.conf profile aliases init.d profile.d aliases.db inittab protocols alsa inputrc pulse alternatives iproute2 purple amanda ipsec.conf qemu-ga anacrontab ipsec.d qemu-kvm ... [linuxprobe@linuxprobe Desktop]$
/e**tc/rc or/etc/rc.d or/etc/rc*.d
启动、或改变运行级时运行的scripts或scripts的目录.
/etc/passwd
用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息.
/etc/fdprm
软盘参数表.说明不同的软盘格式.用setfdprm 设置.
/etc/fstab
启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表.linux下,也包括用swapon -a启用的swap区的信息.
/etc/group
类似/etc/passwd ,但说明的不是用户而是组.
/etc/inittab
init 的配置文件.
/etc/issue
getty在登录提示符前的输出信息.通常包括系统的一段短说明或欢迎信息.内容由系统管理员确定.
/etc/magic
file 的配置文件.包含不同文件格式的说明,file 基于它猜测文件类型.
/etc/motd
Message Of TheDay,成功登录后自动输出.内容由系统管理员确定.经常用于通告信息,如计划关机时间的警告.
/etc/mtab
当前安装的文件系统列表.由scripts初始化,并由mount 命令自动更新.需要一个当前安装的文件系统的列表时使用,例如df命令.
/etc/shadow
在安装了影子口令软件的系统上的影子口令文件.影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow中,而后者只对root可读.这使破译口令更困难.
/etc/login.defs
login 命令的配置文件.
/etc/printcap
类似/etc/termcap ,但针对打印机.语法不同.
/etc/profile , /etc/csh.login ,/etc/csh.cshrc
登录或启动时Bourne或Cshells执行的文件.这允许系统管理员为所有用户建立全局缺省环境.
/etc/securetty
确认安全终端,即哪个终端允许root登录.一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权.
/home目录:
用户的主目录,这是系统预设的使用者家目录(home directory)。 在你新增一个一般使用者帐号时,预设的使用者家目录都会规范到这里来。比较重要的是,家目录有两种代号:
~ :代表当前使用者的家目录,而 ~guest:则代表用户名为guest的家目录。
/lib目录:
系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库,以及在/bin或/sbin底下的指令会呼叫的函式库而已 。 什么是函式库呢?妳可以将他想成是外挂,某些指令必须要有这些外挂才能够顺利完成程式的执行之意。 尤其重要的是/lib/modules/这个目录,因为该目录会放置核心相关的模组(驱动程式)。
[linuxprobe@linuxprobe Desktop]$ ls /lib alsa firmware java-ext modprobe.d sse2 binfmt.d games jvm modules sysctl.d bonobo gcc jvm-commmon modules-load.d systemd cpp grub jvm-exports mozilla tmpfiles.d crda java jvm-private polkit-1 tuned cups java-1.5.0 kbd python2.7 udev debug java-1.6.0 kdump rpm udisks2 dracut java-1.7.0 kernel sendmail yum-plugins firewalld java-1.8.0 locale sendmail.postfix [linuxprobe@linuxprobe Desktop]$
/media目录:
media是媒体的英文,顾名思义,这个/media底下放置的就是可移除的装置。 包括软碟、光碟、DVD等等装置都暂时挂载于此。 常见的档名有:/media/floppy, /media/cdrom等等。
[linuxprobe@linuxprobe Desktop]$ ls /media cdrom [linuxprobe@linuxprobe Desktop]$ ls /media/cdrom addons images Packages RPM-GPG-KEY-redhat-release EFI isolinux release-notes TRANS.TBL EULA LiveOS repodata GPL media.repo RPM-GPG-KEY-redhat-beta [linuxprobe@linuxprobe Desktop]$
/mnt目录:
如果你想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中。在古早时候,这个目录的用途与/media相同啦。 只是有了/media之后,这个目录就用来暂时挂载用了。
/opt目录:
这个是给第三方协力软体放置的目录 。 什么是第三方协力软体啊?举例来说,KDE这个桌面管理系统是一个独立的计画,不过他可以安装到Linux系统中,因此KDE的软体就建议放置到此目录下了。 另外,如果妳想要自行安装额外的软体(非原本的distribution提供的),那么也能够将你的软体安装到这里来。 不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下。
[linuxprobe@linuxprobe Desktop]$ ls /opt centos rh [linuxprobe@linuxprobe Desktop]$
/proc目录:
这个目录本身是一个虚拟文件系统(virtual filesystem)喔。 他放置的资料都是在内存当中,例如系统核心、行程资讯(process)(是进程吗?)、周边装置的状态及网络状态等等。因为这个目录下的资料都是在记忆体(内存)当中,所以本身不占任何硬盘空间。比较重要的档案(目录)例如: /proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/*等等。
[linuxprobe@linuxprobe Desktop]$ ls /proc 1 118 155 197 239 274 3093 55 618 78 diskstats 10 119 156 198 24 275 3096 56 619 79 dma 100 12 157 199 240 2754 31 562 62 8 driver 101 120 158 2 241 2764 3101 563 620 80 execdomains 1013 1208 159 20 242 278 314 564 621 81 fb 1014 121 16 200 243 279 3142 566 622 82 filesystems 1019 122 160 2008 244 28 32 567 623 83 fs 102 123 161 201 245 280 33 569 624 84 interrupts ... [linuxprobe@linuxprobe Desktop]$
/root目录:(普通用户无权限进入)
系统管理员(root)的家目录。 之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分区中。
[linuxprobe@linuxprobe Desktop]$ ls /root ls: cannot open directory /root: Permission denied [linuxprobe@linuxprobe Desktop]$ sudo su [sudo] password for linuxprobe: [root@linuxprobe Desktop]# ls /root anaconda-ks.cfg Downloads nginx-1.8.1 Public Desktop initial-setup-ks.cfg nginx-1.8.1.tar.gz Templates Documents Music Pictures Videos [root@linuxprobe Desktop]#
/run目录:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
[root@linuxprobe Desktop]# ls /run abrt dmeventd-server lock ppp spice-vdagentd alsactl.pid dovecot log radvd sshd.pid atd.pid faillock lsm rhsm syslogd.pid auditd.pid gdm lvm rpcbind.lock systemd avahi-daemon httpd lvmetad.pid rpcbind.sock tmpfiles.d ... [root@linuxprobe Desktop]#
/sbin目录:
Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来设定系统,其他使用者最多只能用来查询而已。放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。至于某些伺服器软体程式,一般则放置到/usr/sbin/当中。至于本机自行安装的软体所产生的系统执行档(system binary),则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。(里面的文件数太多了就不展示了)
/srv目录:
srv可以视为service的缩写,是一些网路服务启动之后,这些服务所需要取用的资料目录。 常见的服务例如WWW, FTP等等。 举例来说,WWW伺服器需要的网页资料就可以放置在/srv/www/里面。呵呵,看来平时我们编写的代码应该放到这里了。
/sys目录:
这个目录其实跟/proc非常类似,也是一个虚拟的档案系统,主要也是记录与核心相关的资讯。 包括目前已载入的核心模组与核心侦测到的硬体装置资讯等等。 这个目录同样不占硬盘容量。
[root@linuxprobe Desktop]# ls /sys block class devices fs kernel power bus dev firmware hypervisor module [root@linuxprobe Desktop]#
/tmp目录:
用于存放各种临时文件,是公用的临时文件存储点
[root@linuxprobe Desktop]# ls /tmp ssh-7LTG04R9SIaZ systemd-private-EsaF3D systemd-private-P0mpwv ssh-lS0kig3iO9UD systemd-private-f3jeAB systemd-private-p9kC25 ssh-r3sEpXMiwnGZ systemd-private-fqGL4a systemd-private-Pdp0DR systemd-private-0ftXos systemd-private-FSRkYO systemd-private-PGmaEB systemd-private-0qQWO2 systemd-private-ft6WLL systemd-private-PSImbU ... [root@linuxprobe Desktop]#
/usr目录:
用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录
[root@linuxprobe Desktop]# ls /usr bin etc games include lib lib64 libexec local sbin share src tmp [root@linuxprobe Desktop]#
/var目录:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
[root@linuxprobe Desktop]# ls /var account crash ftp gopher local mail opt spool www adm db games kerberos lock named preserve tmp yp cache empty gdm lib log nis run var [root@linuxprobe Desktop]#
这些Linux目录的解释是我在查阅了大量的资料,观看教学视频时记录下来的,以及根据自己的一些经验总结出来的,正是因为水平有限,所以想把这些目录整理一下,方便自己更好的查阅,当然我总结的也不是很深入,还有很多要学习的。