Linux标准目录结构(FHS)
所有unix和类unix操作系统的目录结构均是以根开始的倒挂树形结构
======================================
路径
所谓路径即目录组成结构
一个linux路径由"/"和目录(文件)名称两部分组成
比如:/etc/passwd
如果"/"出现在路径开头,则其表示根目录,在路径中间出现"/",其含义是某
一个目录下,那么上面所示路径的意思就是"根目录下的etc目录下的
passwd文件"
如果路径最后出现"/",则表示这是一个目录
路径分为两类:绝对路径和相对路径
绝对路径:凡是从根开始的路径
比如: /etc/sysconfig/ /etc/grub.conf
相对路径:凡是非根开始的路径
比如:etc var/ftp/pub ../test.txt ./test.sh
使用pwd命令查看当前所在的绝对路径:
pwd: 即print work directory
/ 下目录
/dev设备文件目录(块设备和字符设备)
/usr应用程序目录
/var日志,服务文件(服务器数据目录)
/etc配置文件目录
/home普通用户家目录
/root管理员家目录
/boot系统启动目录(内核 启动文件 引导程序)
/proc伪文件系统(硬件信息,内核参数,进程在内存中的信息)
/sys伪文件系统(硬件信息,内核参数,进程在内存中的信息)
/mnt其他挂载点
/opt第三方软件(flush,splunk,open office)
/media媒介目录(光盘 u盘)
/cgroup资源控制目录(内存 cpu....)
/selinuxselinux安全组件使用的目录
/misc和/netautofs服务使用的目录
/srv服务器数据目录
/tmp临时文件目录
比如:
[root@wing etc]# pwd
/etc
切换路径:
最常用使用的是cd命令,全称:change directory
比如:
#cd //切换到当前登陆用户的家目录
#cd test //切换到当前目录下的test目录
#cd - //切换到上一次去过的目录
#cd .. //切换到父目录
======================================
必知目录作用
根目录下所有一级目录全部因安装软件"filesystem"而生
/usr 软件默认安装目录,类似于windows系统内的programs目录
系统内所安装软件的文件会分散存储到其各个子目录下
/usr/local/src 通常存储下载的源安装文件
/usr/src 通常存储下载的源安装文件
/bin 目录/usr/bin的符号链接,用来存储所有人可以使用的命令
/sbin 目录/usr/sbin的符号链接,用来存储只有root可用的命令
/proc 虚拟文件系统 映射当前内核状态 系统进程文件所处目录
cpuinfo cpu信息
meminfo 内存信息
/sys 虚拟文件系统,和proc不同的是如果硬件设备没有插拔操作,其子目
录结构不会发生变化
/root root账户的家目录
/home 所有普通账户的家目录
/etc 存储配置文件
/var variable 存储一些经常变化的文件(ftp发布文件的目录,web发布
网站的目录,日志,邮件,计划任务)
/lib
/lib64 library存储库文件
/dev 存储设备文件
常用设备文件:/dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/
pts/1, /dev/zero, /dev/null, /dev/random
/boot 存储启动文件,比如grub和内核文件
/media 图形自动挂载所使用的目录(rhel7已经没用)
/run rhel7新增加目录,是/var/run的硬链接,之前的光驱和u盘自
动挂载目录从/media换到了/run/media
/mnt 手动挂载目录
/opt 空目录,某些软件也会把它作为默认安装目录
/cgroup 资源控制
/tmp 存储临时文件和因软件退出而没有被回收的垃圾文件
/net /srv /selinux /lost+found这几个目录平时用的很少
--------------------------------------
根分区 -----/
启动分区 -----/boot
切换路径扩展
pushd 切换到指定路径
popd 回到上次的目录
======================================
pushd可以切换到后面指定的路径,顺便累积堆栈目录
堆栈:这里把pushd累积的目录称为堆栈
[root@wing etc]# pushd /etc/sysconfig/network-scripts/
/etc/sysconfig/network-scripts /etc//这两个目录就是累积的堆栈
再次累积一个堆栈目录/test
[root@wing network-scripts]# pushd /test/
/test/etc/sysconfig/network-scripts /etc
dirs可以查看当前累积的堆栈目录,也可以用dirs -c清空堆栈
[root@wing test]# dirs
/test /etc/sysconfig/network-scripts /etc
每次pushd都会切换到堆栈中排位第2的目录
[root@wing etc]# pushd
/test /etc /etc/sysconfig/network-scripts
可以pushd +1把堆栈目录向前挪一位,顺便进入挪位后排在第一的目录
[root@wing etc]# pushd +1
/etc/sysconfig/network-scripts /test /etc
可以加更多数字挪更多目录:
[root@wing network-scripts]# pushd +2
/etc /etc/sysconfig/network-scripts /test
======================================
popd 回到上一次去过的目录
======================================
popd 和 pushd 命令的实际应用中,在编写 shell 脚本时会派上用场 - 你不需要记住你从哪里来;只要执行一下 popd,你就能回到你来的目录。